dsh-task-lens
English | 中文
装在 DeepSeek Harness 里的「任务透视」插件:结合你的请求、AI 计划、工具调用和错误还原任务步骤, 把 AI 正在做的事翻译成人话,用状态灯和进度条告诉你现在到哪一步,并把踩过的坑记下来给下一次任务用。 不调用模型,不额外消耗 token。

你会得到
- 步骤跟着任务走——先识别你让它做的是绘图、编码、文档、数据、调研还是配置,再给出对应步骤。 例如画图会依次显示「构思构图与配色 → 绘制边框与轮廓 → 铺设底色 → 涂色 → 调整光影 → 导出」, 编码则显示「定位问题 → 阅读代码 → 修改代码 → 补充测试 → 运行测试 → 检查构建 → 整理结果」。 编码、配置和一般任务还会从实际工具操作里还原步骤:区分前后端、合并同一区域的连续写入、补上尚未 发生的验证步骤;也会读取 AI 的思考内容与编号计划,推进到当前那一步,不额外调用模型。
- 工具调用说人话——
pwsh、read、grep、edit、web_fetch… 全部翻成「正在运行测试」 「正在修改 login.tsx」「正在搜索『submitting』」这样的中文动作,命令、文件、搜索词都带你到现场。 - 带星体的真实进度条——优先使用 AI 写下的任务清单;没有清单时按当前步骤在计划中的位置推进, 一轮正常结束时归 100%,中止时不会假装完成。完成段有彩色流光和从左向右流动的星星,进度原点使用 轻轻摇动的 DeepSeek 娘图片,完成后整段变绿。
- 状态灯一眼分辨——进度条旁只有一盏灯:读取、搜索、分析是蓝色;写入、修改、安装是黄色; 运行、测试是青色;完成是绿色;出错或连接中断是红色。步骤行内不再放灯,避免到处都是亮点。
- 主面板只留三步——始终聚焦「已完成 / 正在做 / 下一步」,不用在长列表里找当前位置;简洁模式
也保留这三行。下面还有一行会随思考更新的「思路」摘要,每个阶段只留一句话。每一步带出具体动作、
代码首行、命令或目标文件,
ops_bash会显示命令、脚本、目录和超时。把鼠标放上去可看完整内容, 密钥会自动打码。 - 详情页看完整步骤——点「详情」先用一段较长的思路摘要解释当前判断和下一步,再列出全部步骤、 每步状态和详细动作;不展开原始思考过程。做前后端编码时能直接看到读取了哪些文件、改了哪一层、 测试和构建是否已经补上。
- 进度会继续走——编码拆成 7 个阶段,文档、数据、调研、配置等拆成 6–7 个阶段;当前阶段内再按 工具调用数量与耗时推进,长命令执行时也不会长时间停在同一个百分比。运行中追加要求时会重新预估, 进度先按新增工作量回调,再随新的工具操作继续增长。
- 常驻面板——启用后一直显示;没有任务时进入待命状态,不会消失。默认浮在输入框上方; 按住标题栏即可拖动到任意位置,位置会被记住,双击标题栏恢复默认。多线程或窄窗口会自动缩窄并 限制高度(最多 55% 屏高),重复注入的面板节点会被清理,尽量不挡住主内容。
- 详情页与设置——标题栏的「详情」包含任务翻译、当前工具、较长的思路摘要、完整步骤和最近操作; 「设置」可调面板大小、自定义宽高(320–900 × 220–900)、信息密度(简洁 / 正常 / 详细)、 5 种背景颜色,并查看当前经验,全部自动保存。
- 收起只留重点——收起后保留状态灯、星体进度条、百分比和一句当前任务报告,随时可以再展开。
- 错误经验自动积累——失败原因翻成中文(文件不存在 / 权限不足 / 端口占用 / 依赖没装 / 超时 / 限流 …),重复出现的会合并计数,重试成功后自动标记「已解决」并移出提示。
- 下次任务自动避开——经验会写进
~/.dsh/AGENTS.md里的受管区块,宿主本来就会加载它, 所以后续会话无需你做任何事就能看到(默认上限 10 条、1200 字符,超出自动折叠)。 - 不花 token——翻译、步骤、进度、经验整理全部是本地规则,没有模型调用、没有外部请求。
安装
桌面端:设置 → 插件,搜索 dsh-task-lens 安装,刷新页面即可。
命令行:
dsh plugin --profile web add dsh-task-lens
把 web 换成你自己的 profile 名即可(例如桌面端 profile 由应用自己管理,请在应用的插件页里装)。
装好后输入框上方会出现面板;运行任意任务时它开始工作。按住标题栏可以拖动,双击标题栏回到默认位置。
想单独看悬停详情效果,打开 assets/demo.html?hover=1;想看没有任务时的待命面板,打开 assets/demo.html?idle=1:



配置
在 profile 的 cordis.patch.yml 里改(桌面端插件卡片里也可以改):
- id: dsh-task-lens
name: dsh-task-lens
config:
showPanel: true
showThinking: false
lessonsEnabled: true
lessonsMax: 10
lessonsMaxChars: 1200
| 字段 | 默认 | 说明 |
|---|---|---|
showPanel |
true |
是否注入输入框上方的浮层面板(关掉后仍在后台记录经验) |
showThinking |
false |
在 AI 思考、尚未调用工具时也显示一句「正在分析下一步」 |
lessonsEnabled |
true |
是否记录错误经验并写入 AGENTS.md |
lessonsMax |
10 |
写进 AGENTS.md 的条数上限 |
lessonsMaxChars |
1200 |
受管区块的字符上限(控制 token 成本) |
pollMs |
400 |
面板轮询间隔(仅本地读取,不消耗 token) |
keepDoneMs |
120000 |
任务结束后保留任务数据多久,之后回到待命面板(面板不会消失) |
instructionsFile |
$DSH_HOME/AGENTS.md |
经验落地的指令文件 |
lessonFile |
$DSH_HOME/dsh-task-lens/lessons.json |
经验数据文件 |
经验是怎么工作的
- 工具返回错误时,按
error.code与错误文本归类成中文结论。 - 同一工具 + 同一目标 + 同一报错会合并为一条,并累计重复次数。
- 排序后写入
~/.dsh/AGENTS.md的受管区块(<!-- dsh-task-lens:begin -->…<!-- dsh-task-lens:end -->), 区块之外的内容一个字符都不会动;上限之外自动截断。 - 后面同一工具在相同目标上成功时,该条会被标记为已解决;只剩已解决的条目时受管区块会被完整移除。
- 原始记录留在
~/.dsh/dsh-task-lens/lessons.json,方便你手动查看或删除。
不同工具、不同目录、不同报错算不同条目——不会因为一次失败就把整类工具都记成不可用。
隐私与安全
- 所有处理都在本机完成,插件不发任何网络请求、不上传任何内容。
- 经验里的路径会做脱敏:
$DSH_HOME与用户主目录分别折叠为$DSH_HOME和~。 - 面板用的本地接口只接受
GET,并且要求环回地址、同源、Sec-Fetch-Site不是cross-site。 - 插件是本地代码,请你自行审阅后再安装。
开发
npm test
npm test 会先对 lib/ 做语法检查,再跑无依赖的冒烟测试(伪造宿主组合、模拟会话事件,
校验任务识别、步骤计划、进度、翻译与预览脱敏、经验落盘、AGENTS.md 受管区块与接口安全)。
预览界面:直接用浏览器打开 assets/demo.html(自带演示数据,不需要宿主)。
发布:
npm publish
打 v* 标签会触发 GitHub Release 工作流(见 .github/workflows/release.yml),
需要仓库 Secret NPM_TOKEN。
许可
MIT
No comments yet. Be the first to write one.