dsh-maze
执行迷宫:把智能体真实的执行过程——主干推进、失败或扑空的支路、折返、请求重试与子代理分支——画在同一根墙钟时间轴上;泳道下方是与它共用时间轴的三条数据轨道(工具调用密度、Token 脉冲、上下文压力),再下方是确定性的执行分析面板(工具结果矩阵、失败恢复链、耗时分布);可在会话页签里实时生长,也可上传最多 5 个 session log 做同轴对比。
安装
dsh plugin --profile web add dsh-maze
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
dsh-maze
🔀dsh-trace-compare已更名为dsh-maze(v1.0.0 起)。旧包保留可装但不再更新,[迁移只要两条命令](#从-dsh-trace-compare-迁移)。
中文 | [English](README.en.md)













<sub>还被收录于:fendouai/awesome-deepseek-harness(独立介绍页)· Zhiyuan-Fan/Awesome-DeepSeek-Harness-Plugins · ZeroPointRepo/awesome-dsh-plugins · cccakeee/awesome-dsh-plugins · diegosouzapw/awesome-omni-dsh-plugins · anbeime/skill · dsh-app 内置插件市场</sub>
DeepSeek Harness 的执行迷宫:把 Agent 真实的干活过程完整画出来、并分析给你看。
- 迷宫——主干路径、失败支路、折返点落在同一根时间轴上;空闲自动折叠、密集段自动聚合成「×N」徽标(点击放大、标签逐级补齐)、进度条自带失败热力,8 小时的会话照样字字可辨:
- 数据轨道——每一步的工具调用密度、Token 脉冲(缓存背景 + 未缓存输入/推理/输出增量柱)、上下文压力曲线(70%/90% 阈值线、压缩事件「⌄−N%」标注,悬停看压缩前后真值):
- 执行分析——失败恢复链(原样重试 / 换参数 / 换工具 / 未恢复)、工具结果矩阵、耗时分位散点。每个结论一键点回原始命令与返回内容:
- 多会话对比——同一任务在不同模型上的 2~5 次跑同轴对比:轮次对齐、手动锚点、支路盘点。
- 回放——最高 300× 重放整场执行,看它是怎么一步步走到结果的:
铁律:所有数字都是对判定数据的确定性聚合,不调 LLM;每个判定带依据、每个结论可回溯到证据;数据缺失时如实标注(不画没有数据的轨道、不猜未知模型的窗口),绝不编。
两个入口:会话内的「实时迷宫」页签(随当前会话实时生长),侧边栏的「执行迷宫」(上传 session log 单看或对比)。
迷宫画的是什么
- 实线:主干路径——工具调用成功推进的步骤和回答节点。
- 时长胶囊条:每个步骤画成从开始到结束的圆角条,判定色填充——3 分钟的 bash 和 0.2 秒的 read 一眼可辨;条够宽时耗时直接写在条内。
- 并行工具分行(v0.3.2 起):一步内 ≥2 次工具调用时,每次调用画成胶囊条下方的细小条(瀑布惯例),按各自真实起止摆位、按各自判定上色——一眼看出并行发的几个调用里哪个拖了时间、哪个失败;悬停单条看该次调用的命令/返回/判定依据,泳道高度随最大并行数自适应。支路节点保持「+N」标签(其空间为固定泳道格,详情面板已列全)。
- 虚线弧:探索支路——工具失败(红 ✗)、检索扑空(灰 ·)或盲目重试(灰 ↻)的步骤,以及折返回分支点的回程线。
- 子代理支路(v0.4.0 起,实时页签):模型派生的 dsh 子代理会话画成主干上分出的聚合支路节点——挂靠在派生它的那一步、与父会话共享时间轴,节点子条是子代理全部已判定的工具调用,运行中的子代理实时生长并标注「仍在运行」;悬停/详情面板显示「子代理支路」身份与派生汇回关系,点击跳回主对话中的派生位置。只认真正的任务子代理(
origin: 'subagent'),手动分支和 side-chat 侧聊不入图。宿主0.1.6-alpha.2起子会话须先被持有才能读取,插件在这些宿主上自己持有子会话(来源名maze,不切换当前会话):成员来自父会话的子代理目录,迷宫打开之前就结束的子代理也画完整支路;运行中的一直持有、已结束的读一次就释放并缓存;同时最多展开 8 个,超出的在泳道上注明。更早的宿主(0.1.5/0.1.2)只画宿主已打开过的子会话。支路名字取派出时的任务简述;运行中的支路每秒向右生长。 - 悬停任意节点或弧线快速预览;点击在右侧打开固定详情面板——完整命令与返回内容(各带复制按钮,返回内容保留前 5000 字)、耗时、判定、思考摘要,Esc 或 × 关闭。
- 缩放导航:滚轮以光标为中心横向缩放,拖拽平移,双击空白处或「⤢ 整图」按钮复位;轴刻度随缩放窗口自动加密(最细到 1 秒)。
- 跳转对话(仅实时页签):详情面板里点「在对话中定位此步骤」,宿主切回对话页并滚动高亮对应的工具行。行太老、超出对话已加载窗口时退化为只切页签。
- 搜索与过滤:工具行提供「只看失败/重试」开关、按工具类型过滤、命令与返回内容全文搜索(含 5000 字面板全文);不命中的节点与支路淡化到 15% 透明度,实时显示命中步数。实时模式下过滤状态在重建后自动还原。
- 轮次对齐线(同任务对比件,v0.3.0 起,现扩到 2~5 泳道):仅当各文件被识别为同一任务的多次跑(首条用户消息一致)时启用。每一轮的回答节点自动连成跨泳道对比链,标注各泳道本轮各自的耗时(该轮起点 → 回答完成;轮与轮之间等用户输入的空闲不计入,v0.5.1 起);双泳道额外标注耗时差与该轮支路数差(如「第 3 轮耗时:1st 4m ↔ 2nd 6m(Δ2m)· 支路 4↔0」)。只连该轮出现在 ≥2 条泳道的轮次——旧版从特定任务总结的「模型列表结果」正则里程碑已退役。
- 手动锚点(同任务对比件):「🔗 加锚点」后在任意两条泳道各点一个节点,钉一条带时差标注的对比线;点线删除,Esc 取消选点。适合钉住语义等价但轮次错位的时刻。
- 支路盘点(同任务对比件):「📋 支路盘点」打开按轮次的盘点表——每轮各泳道的支路步数、墙钟耗时、类别构成(✗ 失败 / ↻ 无效重试 / · 扑空),双泳道附差额列(如「第 2 会话多耗 48.4s」);点一行缩放到该轮并只保留该轮支路,其余淡化。某泳道没有这轮显示「—」,缺席本身就是信号。任务不同的文件仅同轴并排,这三样不出现(图例明示原因)。
- 泳道数据轨道(v0.7 起,📊 可开关):泳道带底部三条与迷宫同一时间轴联动的轨道——工具调用密度(每次调用一根刻线,按读取/检索/命令/编辑/其他着色)、Token 脉冲(每步堆叠柱:缓存输入/未缓存输入/推理/可见输出,读自 usage 真值)、上下文压力(折线+面积,纵轴随数据自适应;模型窗口已知时显示占用百分比与 70%/90% 阈值线,上下文压缩呈现为锯齿下落,窗口未知或表值过时自动退回绝对 token 数——绝不显示超过 100% 的占用)。日志没报 usage 的轨道不画、不占高度。
- 执行分析区(v0.7 起,迷宫下方主界面直出):摘要三卡(工具失败与恢复 / 时间消耗 / 上下文压力)+ 耗时分布散点图(每工具一行,P50/P95 参考线,失败点标红,悬停看单次调用)+ 按工具的结果矩阵(成功/失败/扑空/盲重试/成功率 + P50/P95/最长耗时)+ 失败恢复链——每个失败调用之后发生了什么:原样重试 / 换参数 / 换工具 / 未恢复,恢复耗时如实标注;点一条缩放到该失败并打开详情。口径:链只统计失败(✗),扑空(· 检索无结果)与盲重试(↻)计入矩阵各自列、不单独进链,盲重试也不作为恢复证据。全部数字是确定性聚合,不调 LLM。
- 结果与证据(诊断层第 1 项,分析区首块):六格——任务完成 / 测试 / 构建 / Lint / 产物 / 人工确认——加一个综合徽标(已完成 / 部分成功 / 未验证),全部来自日志证据、不信 Agent 自述。测试/构建/Lint 按命令正则在命令位置识别(初版覆盖 JS/TS、Python、Rust、Go、Swift;npm/pnpm/yarn 的
check脚本按测试计;`cat vitest.c
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:11,最后更新 2026-10-08