会话头显示实时阶段,中途补话不打断任务
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/11 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lyonleeeee/dsh-steer该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 会话头显示实时阶段
- 中途补话不打断任务
- 支持图片附件与插话历史
DeepSeek Harness 的实时状态徽标 + 运行中指导(不打断,支持图片附件与插话历史)
README
由 DeepSeek 最新模型翻译生成dsh-steer
一个 DeepSeek Harness 插件:在会话头放一个实时状态徽标,并允许你在智能体干活的中途补一句、纠一句,而不用打断它。
智能体跑长任务时有两个具体的麻烦。第一,你不知道它此刻在做什么——「等待响应」和「真的卡住」看起来一模一样。第二,你发现方向不对时,只能等它做完,或者直接打断,没有中间选项。这个插件分别解决这两件事。
快速开始
dsh plugin --profile <profile> add github:lyonleeeee/dsh-steer
装完重启应用(bundles 只在启动时读一次)。之后会话头右上角会出现状态徽标和「指导」按钮。
桌面版(DeepSeek Harness.app)独占管理自己的 profile,需要用应用自带的命令行:
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop add github:lyonleeeee/dsh-steer
状态徽标
徽标只显示当前阶段,按发生的顺序推进:分析中 → 思考中 · 本步 N 字 → 输出中 · 本步 N 字 → 运行 <工具> → 读取工具结果,收尾回到「工作中」。
展开完整文档(README 剩余 1 节)
dsh-steer
一个 DeepSeek Harness 插件:在会话头放一个实时状态徽标,并允许你在智能体干活的中途补一句、纠一句,而不用打断它。
智能体跑长任务时有两个具体的麻烦。第一,你不知道它此刻在做什么——「等待响应」和「真的卡住」看起来一模一样。第二,你发现方向不对时,只能等它做完,或者直接打断,没有中间选项。这个插件分别解决这两件事。
快速开始
dsh plugin --profile <profile> add github:lyonleeeee/dsh-steer
装完重启应用(bundles 只在启动时读一次)。之后会话头右上角会出现状态徽标和「指导」按钮。
桌面版(DeepSeek Harness.app)独占管理自己的 profile,需要用应用自带的命令行:
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop add github:lyonleeeee/dsh-steer
状态徽标
徽标只显示当前阶段,按发生的顺序推进:分析中 → 思考中 · 本步 N 字 → 输出中 · 本步 N 字 → 运行 <工具> → 读取工具结果,收尾回到「工作中」。工具阶段后面跟一句命令摘要,例如「运行 bash · Run route probes」。
有两处刻意的取舍。字数是按步统计的——每个 turn/step 边界重新计数,而不是整段会话的累计值,后者最终只会变成一个越来越大的无意义数字。徽标也不显示模型名,模型、服务商、上下文窗口和步号(T4·S3)都放在点开的详情面板里,徽标本身保持安静。
耗时秒数由客户端本地时钟计算,host 只发时间戳,所以空闲时没有定时器,也不会每秒推一次 SSE。
状态不猜。没有新进展时显示「暂无新增量」,实时源断开时显示「状态实时源断开」,而不是继续挂着上一次的阶段。请求失败只显示官方返回的 failure.code;只有 llm/retry 真的触发才显示重试,不写「可能是网络问题」这种无法证明的话。
运行中指导
这是插件的主要能力。你写一句话,它会在当前回合内、最近一次小步(一次推理或一次工具调用)结束的边界被读进上下文,任务继续往下跑——不打断、不重开、不等整轮结束。
实现上用自定义消息 kind(source.kind 为 dsh-steer)加 agent.steer()。这一点是关键:如果按普通用户消息投递,模型会把它当成一条新任务,表现就是打断当前工作。
指导框支持直接贴图或选文件,附件经宿主的 attachments 服务落成持久引用。输入框按会话保存草稿,刷新不丢。
浮层里会列出本次会话发出的插话,每条标出它的归宿:
- ✓ 已读取,并标出在第几轮第几步被读到,例如 T7·S3
- · 已送达,还没被读
- ✗ 未读取,回合已结束或消息被丢弃
点任意一条可以把原文回填到输入框;未读取的可以一键重发,重发会带上原来的附件,不需要重新上传。历史只收本插件发出的插话,主对话框里的聊天记录不算。
界面语言在详情面板里切换,可选自动、中文、English。选择写在 ~/.dsh/dsh-steer.lang,不使用 localStorage。
为什么不提供排队和官方插话
官方的 queue 和 steer 本质上都是「以用户身份发一条消息」——对话框本来就能发,官方队列栏本来就能排队。所以 v0.4.0 把这两条通道删掉了,插件只保留上面那条不打断的投递。
数据通道
| 路由 | 用途 |
| GET /dsh-steer/state?session=<id> | SSE 实时快照,仅状态变化时推送 |
| POST /dsh-steer/steer | 运行中指导。请求体为 {sessionId, text?, attachments?, reuseAtts?},其中 reuseAtts 用于重发时复用已有附件,不重传字节 |
| GET /dsh-steer/attachment?session=<id>&id=<attachmentId>[&raw=1] | 读取指导附件,raw=1 时直接回字节流 |
| GET\|POST /dsh-steer/lang | 界面语言,取值 auto、zh、en |
| GET /dsh-steer/ping | 健康检查 |
出错时返回稳定的错误码:mode-removed(400)、no-live-agent(409)、missing sessionId or content(400)、payload too large(413)、no-attachments 与 no-attachment-api(501)、reuse-attachment-unreadable(404)。客户端按语言把这些码映射成提示文案,界面不会直接显示中文原文。
安全
插件不 import 任何 @deepseek-ai 包,只使用 ctx.agents 与 ctx.webServer 两个公开服务,另外可选地取用 attachments 和 sessionController。所有路由只接受 loopback 地址(127.0.0.1 与 ::1),没有遥测,也没有对外网络请求。
请求体分两档限制:纯文字 3 KB,带附件 48 MB——上限先按宿主 imageLimits 计算,再封顶,避免宿主报出的 200 MB 上限把内存撑爆。附件字节只通过官方 sessionController.attachment 读回,该方法会校验该附件确实属于目标会话日志。
测试
npm test
38 个用例,覆盖状态机(含步切换归零)、附件链路(含宿主不支持时的 501 分支)、路由错误码、语言处理,以及客户端的纯显示逻辑。零依赖,跑在 node --test 上。
刻意不做的事
这个插件的核心只有一件事:工作中途加一条指令。因此排队与改撤排队消息、投递模式、子代理进度、token 面板、可配置阈值、localStorage 都不做。
许可证
MIT © 2026 Lyon
DeepSeek Harness 插件:在会话头部显示实时状态徽章,还能在智能体干活时补一条指令或纠正方向,不用打断它。
智能体跑得久,会冒出两个具体问题。第一,你没法知道它此刻在干什么——「在等回复」和「真卡住了」看起来一模一样。第二,当你发现方向不对,能做的只有等这一轮跑完,或者直接打断。中间没有别的选项。这个插件把两个问题都解决了。
快速开始
dsh plugin --profile <profile> add github:lyonleeeee/dsh-steer
装完重启应用(bundles 只在启动时读一次)。会话头部就会出现状态徽章和一个「Guide」按钮。
桌面应用(DeepSeek Harness.app)独占管理自己的配置档,所以要用它自带的命令行载体:
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop add github:lyonleeeee/dsh-steer
状态徽章
徽章一次只显示一个阶段,按顺序推进:Analyzing → Thinking · N chars this step → Writing · N chars → Running <tool> → Reading tool result,然后回到 Working。工具调用期间会附上一句简短摘要,比如「Running bash · Run route probes」。
有两处是刻意取舍。字符数按步骤统计——每到一轮/一步的边界就归零,而不是整条流累加,累加只会得到一个毫无意义、不断变大的数字。徽章也不显示模型名;模型、服务商、上下文窗口和步骤(T4·S3)都放在弹出面板里,徽章本身保持安静。
耗时由客户端本地时钟计算——宿主只发时间戳——所以空闲时没有计时器,也不会每秒推一次 SSE。
徽章不猜。没有新进展就显示「no new progress」;实时数据源断了就显示「live source disconnected」,而不是把过期的阶段留在屏幕上。请求失败会显示官方的 failure.code;只有 llm/retry 真的触发时才显示重试,绝不靠猜网络状况。
飞行中引导
这是插件的主要能力。你写一句话,它会在当前这一轮内被读进上下文,时机是最近一个小步骤(一个推理块或一次工具调用)结束时。任务继续跑:不打断、不重启、不用等这一轮结束。
它靠一种自定义消息类型(source.kind 为 dsh-steer)加上 agent.steer() 实现。这个细节很关键。如果当成普通用户消息投递,模型会把它当成新任务——那看起来就是一次打断。
引导输入框支持粘贴图片和选择文件;附件通过宿主的 attachments 服务提交为持久引用。草稿按会话保存,刷新不会丢。
弹出面板会列出本次会话发出的引导,每条都标出它最终去了哪里:
- ✓ 已读,并标出它在哪个轮次、哪个步骤被消费,例如 T7·S3
- · 已投递,尚未读取
- ✗ 未读取——轮次已结束,或消息被丢弃
点击任意条目,就能把它的文本放回输入框。从未被读取的条目可以一键重发,重发会带上原始附件,而不是重新上传。列表只包含本插件发出的引导消息;主输入框发出的消息不在此列。
界面语言在详情浮层里切换:Auto、中文或 English。选择保存在 ~/.dsh/dsh-steer.lang,不使用 localStorage。
为什么没有队列,也没有官方 steer
官方队列和 steer 都只是「以用户身份发一条消息」——输入框本来就能做到,官方队列栏本来也能排队。v0.4.0 移除了这两条通道,只保留上面说的非打断式投递。
数据通道
| 路由 | 用途 |
| GET /dsh-steer/state?session=<id> | SSE 实时快照,仅在变化时推送 |
| POST /dsh-steer/steer | 进行中的引导。Body:{sessionId, text?, attachments?, reuseAtts?};reuseAtts 在重发时复用已有附件,无需重新上传 |
| GET /dsh-steer/attachment?session=<id>&id=<attachmentId>[&raw=1] | 读取引导附件;raw=1 直接流式返回字节 |
| GET\|POST /dsh-steer/lang | 界面语言:auto、zh 或 en |
| GET /dsh-steer/ping | 健康检查 |
失败时返回固定错误码:mode-removed(400)、no-live-agent(409)、missing sessionId or content(400)、payload too large(413)、no-attachments 和 no-attachment-api(501)、reuse-attachment-unreadable(404)。客户端把每个错误码映射到本地化文案,所以界面永远不会显示原始中文文本。
安全
插件不导入任何 @deepseek-ai 包。它使用公开服务 ctx.agents 和 ctx.webServer,以及可选的 attachments 和 sessionController。所有路由只接受回环地址(127.0.0.1 和 ::1)。没有遥测,也没有对外网络请求。
请求体分两档限制:纯文本 3 KB,带附件 48 MB——上限根据宿主的 imageLimits 计算后再做钳制,所以宿主报告的 200 MB 数字无法被用来耗尽内存。附件字节只通过官方 sessionController.attachment 读回,它会校验附件确实属于所寻址的会话日志。
测试
npm test
38 个用例,覆盖状态机(包括每步重置)、附件路径(包括宿主没有附件服务时的 501 分支)、路由错误码、语言处理,以及客户端的纯展示逻辑。零依赖,跑在 node --test 上。
有意不做的范围
插件只做一件事:在任务进行中追加一条指令。所以排队与编辑排队消息、投递模式、子代理进度、token 面板、可配置阈值和 localStorage 全都不做。
许可证
MIT © 2026 Lyon预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lyonleeeee/dsh-steer
会话头显示实时阶段,中途补话不打断任务
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,362已汉化DSH
71.4
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,076已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,814已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。