DeepSeek Harness 的执行迷宫——看智能体真实怎么干活:迷宫时间轴、数据轨道、确定性执行分析、多会话对比 | DSH 智能体的执行迷宫:迷宫时间轴、逐步数据轨道、确定性执行分析、多会话对比…
56/100
综合分
85
GitHub 星标
458
npm 周下载
—/5
用户评分
数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-mazenpm 源 · dsh-maze 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 24 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-maze @ 2.4.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 09:03:27
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-chat@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-sidebar给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
6 张 · 点击查看大图功能亮点
- 迷宫时间轴
- 数据轨道
- 多会话对比
最近更新
在 GitHub 查看全部 →v2.4.02026-10-05内容较长已截断
子代理支路在新宿主上改由插件自己持有(0.1.6-alpha.2 起);运行中的步骤与支路每秒生长;上下文窗口优先用宿主真值;并修掉 2.3.0 冒烟与评审查出的几处小问题。另外补上了桌面版装不上的两个包侧问题:GitHub 安装不再装出空壳,peer 范围放开到 0.2.x。
· 子代理支路(吴昊 2026-10-01 拍板):宿主 0.1.6-alpha.2 起子会话只在被持有时可读,2.3.0 只能跟着右侧栏画。本版在有 sessions.retain 的宿主上由插件用自己的来源名 maze 持有子会话——成员来自父会话的子代理目录投影 subagentCatalog,不再看右侧栏;迷宫打开之前就结束的子代理也画完整支路。规则:运行中的子代理一直持有到结束;已结束的读一次就释放,结果按子会话缓存,页签切回不重拉——结算要等它的最后一轮在对话里关闭(宿主先翻运行标记、事件随后才到,只看标记会缓存成残缺版),最多等 3 秒;同时最多展开 8 个,超出的在泳道信息行注明「另有 N 个子代理未展开」;页签切走或切会话时全部释放。持有不会切换当前会话(宿主判定当前会话只看它自己的 mainView 计数)。宿主在持有/释放时会同步通知会话列表,花名册先占名额再向宿主持有、嵌套通知延后处理,不会重入。宿主拒绝打开的子会话(持有抛错、打开失败、目录条目没有模式)让出名额,目录变化前不重试(不在运行时被拒的,翻回运行后再试一次)。超过宿主一页(500 条消息)的子会话只画首页。子代理流式输出的对话切面按 250 毫秒合并一次发布。没有 retain 的老宿主(0.1.5 / 0.1.2)保持 2.3.0 的被动跟随:只画宿主已打开过的子会话。孙代理不画。
· 支路名字:改用子代理目录里的名字(派出时的任务简述,宿主下拉菜单显示的那个),不再用会话标题——0.1.5 上没有标题的子会话原来会显示成工作区目录名。
· 运行中实时生长:实时页签加一秒时钟,只在父会话或某个子代理运行中、且页签可见时走;运行中的子代理支路终点取「现在」(宿主自己的子代理菜单也这么算),不再停在上一个持久事件(2.3.0 实测卡在 0.7 秒、结束才一下跳到全长)。页面侧:结构没变、只是时钟走了一秒时,不整页重画——按原始时间的增量延长运行中的节点,只重画迷宫 SVG(与缩放同一条路径),图例、头部指标条、分析区都不动;时间轴预留余量(30 秒或 8% 取大),余量用完就扩大时间轴再留一段,仍走同一条只重画迷宫的路径;头部的总时长跟着刷新;运行中子代理里某个工具跑完(判定变色)算结构变化,照常整图重画。
· 上下文窗口:实时页签改读宿主 token-meter 的 contextPressure.contextWindow(宿主上下文指示器同一来源,0.1.0-rc.8 起字段不变)作为泳道窗口和当前模型请求的窗口;宿主不留逐请求历史,中途换掉的旧模型仍按模型表;没装 token-meter 时退回查表。
· 头部指标条:「N 次调用」只算父会话自己的,子代理支路里的调用另注「子代理另有 M 次」,与工具轨道的总数对得上(2.3.0 冒烟:头部写 1 次、轨道写共 2 次)。
· 小修(2.3.0 冒烟与评审查出,均为旧问题):结果与证据——同一轮里失败步与回答落在同一个 0.1 秒刻度时按步序裁决,不再误判「没有最终回答」;上传页第一次上传就解析失败不再多抛一条控制台报错;选中行为信号时顺带打开的详情面板按一次 Esc 同时关面板、撤选中;侧边栏入口改用宿主侧边栏同一套颜色变量,深色主题下对比度从 2.2:1 恢复到与宿主条目一致;实时迷宫的子代理花名册改在 effect 里创建、卸载时释放,被丢弃的渲染不再留下不释放的实例。
· 构建基座与测试:devDependencies 换到 npm 的 0.2.0-rc.2 包组(宿主 latest),产物依赖不变;类型检查另在 0.1.2-rc.1、0.1.5-rc.3 两套包上跑过,均为零错误。新增 22 个单元测试(持有式花名册:宿主在 retain 内同步通知列表时不重入不泄漏、dispose 早于 ready、末轮未关闭时的结算与宽限、重跑后宽限重新计时、上限、打开失败与 ready 异常让出名额、持有抛错不重试但翻回运行后再试一次、无模式不持有、可续聊子代理重跑时沿用缓存、首次订阅同步回调后监听器仍被摘掉、流式切面合并发布、不变不通知、目录命名;未展开计数、时钟生长、宿主窗口、同刻度裁决),136 → 158,全部通过。
· 包侧:桌面版装不上的两个原因(2026-10-05):
- GitHub 安装装出空壳(真正的原因):DSH 插件管理器安装 git 依赖时按 package.json 的 fil
v2.3.02026-10-01内容较长已截断
适配宿主 0.1.6 / 0.1.7(npm 上宿主的 latest 现已到 0.2.0-rc.2,本版同样适用):新宿主上侧边栏入口与实时迷宫恢复,切换会话时自动关闭上传面板也恢复。
· 现象:
- 宿主 0.1.7-alpha.1 起:侧边栏的「执行迷宫」入口不显示(插件位置渲染时崩溃),「实时迷宫」页签整片空白(构造子代理花名册时抛 TypeError)。宿主给每个插件位置做了错误隔离,页面其余部分不受影响。
- 宿主 0.1.6-alpha.2 起(不崩,但悄悄失效):会话列表不再公开「当前会话」,子会话也要先被持有才能读取,所以 2.2.0 在这些宿主上切换会话时不再自动关闭上传面板,子代理支路也不画。0.1.6-alpha.1 及更早的宿主不受影响。
· 原因与改法(全部是运行时探测,一份构建同时服务 0.1.2 到 0.1.7):
- 图标组改名(0.1.7-alpha.1,IconBranchOutline16 → IconBranchOutlineRegular):运行时先取旧名、再取新名;两个都没有时只画按钮、不画图标。
- 子代理目录的 setSubagentCatalogOpen / refreshSubagents 被删除(0.1.7-alpha.1,目录改从父会话的投影读取):改为宿主有才调用。
- 会话列表去掉了 current(0.1.6-alpha.2):判断「当前会话」改为先读 current,没有时取被主视图持有(retainedBy.mainView)的那一行——宿主自己的 ui-session 也按这个计数判定选中的会话。它用于切换会话时自动关闭上传面板。
- 运行中的工具调用新增「准备」阶段(0.1.7-rc.1),此时还没有参数原文:按空字符串处理。
- 请求上的 provenance 改名为 providerMetadata(0.1.6-alpha.1):模型名按 providerMetadata → provenance → 请求配置的顺序取。请求配置只在该请求的请求头还在已加载窗口里时才有;长会话的请求头滚出窗口后,不读新字段就拿不到泳道模型名和逐请求的上下文窗口。
- 子会话只在被持有时可绑定(0.1.6-alpha.2):花名册跟着宿主的绑定换代——子会话被释放就移出,再次被持有就重新跟上,不再画一条停在最后一刻的支路(评审查出:右侧栏打开过的子代理关掉后,支路会冻结,还可能把仍在运行的子代理显示成已结束)。
· 顺带修正(实机冒烟查出,新宿主上才明显):
- 模型表把宿主 0.1.5 起的默认模型 deepseek-flash(DeepSeek-V41-Flash)落进了「其他 deepseek = 128K」,宿主模型目录写的是 1M:实时页签的上下文占用会放大约 8 倍,「上下文峰值」信号在实际占用约 6% 时就会亮。补上这一行。
- 日志格式 v4(宿主 0.1.7 起)拒收 kind: 'plugin' 的消息来源,旧来源在迁移时被改写成 plugin::「待办陈旧」原来只认旧写法,在新宿主上会一直是 0。现在新旧写法都认,实时页签与上传页共用 verdict.js 的 isTodoReminderSource。
· 已知限制:从 0.1.6-alpha.2 起的宿主上,子代理支路只在别的界面(例如右侧栏)打开了该子代理时才画,关掉就随之消失;完整支持要按新接口重写花名册,留到下一版。不会报错。
· 构建基座:devDependencies 换到 npm 的 0.1.7-rc.2 包组(cordis 4.0.4),pnpm-workspace.yaml 里针对 0.1.2-rc.1 的发布时间门禁豁免随之删除。类型检查另在 0.1.2-rc.1、0.1.5-rc.3、0.2.0-rc.2 三套包上跑过,均为零错误。新增 14 个单元测试(图标新旧名与都缺失、没有旧目录接口且子会话未被持有时的花名册、花名册跟随绑定换代、两代会话列表的当前会话、providerMetadata 优先、长会话只剩 providerMetadata 时的模型名与窗口、准备阶段参数为空、待办提醒的新旧来源写法;另在既有用例里补了 deepseek-flash 窗口与 v4 来源),针对新宿主的用例都确认在旧代码上会失败;并入行为信号后本版合计 136 个测试,全部通过。
· 实机验收:全新的 0.1.5-rc.3、0.1.7-rc.2、0.2.0-rc.2 宿主各装本版安装包、用模拟模型跑会话:侧边栏入口、上传页、实时迷宫、分析区两块、设置开关、切换会话自动关闭上传页全部通过,插件相关的控制台报错为零,迷宫上的步数、调用数、Token 与宿主底栏一致;上传页读通了这
v1.1.22026-10-01
1.x 线,给老宿主(0.1.0-rc.6 ~ 0.1.1-rc.2)用,npm 标签 legacy-1x;宿主 0.1.2 及以后请装 2.x(latest)。功能与 2.x 的 v2.3.0「行为信号」部分相同。
诊断层第 2 项:分析区新增「行为信号」块——12 种信号,阈值按本机 202 份会话校准;上下文占用改按每次请求当时的模型换算窗口。
· 信号与阈值(ANALYSIS_RULES.SIGNALS,与校准表逐条对应;「中」落在最差的 15%~20% 会话,「高」落在最差的 3%~5%。校准脚本在独立评审后修正了三处并于 2026-09-07 重跑,括号里是重跑后的命中占比,149 场有效):失败后原样重试(中 ≥1,高 ≥3;15% / 4%)、同轮重复调用(排除 job_output/todo_write/list_agents/send_message 等轮询记账类,原样重试不算;低 ≥10% 且 ≥5 次,中 ≥15% 且 ≥8 次;原定「中」≥20% 且 ≥10 次重跑只命中 8%,低于目标区间,2026-09-24 放宽后按本机 184 场重跑为 29% / 14%;重复读取 ≥5 作子标签,26%)、循环(排除轮询类后长度 1~3 序列连续 3 次,长窗口先扫、已覆盖的下标不再数;占用 ≥9 步中,≥30 步高;16% / 4%)、工具失败(沿用迷宫判定——错误标志 + 输出失败特征,比只看错误标志宽;失败率 ≥8%(且本场调用 ≥10 次)或失败 ≥10 次中,失败率 ≥15% 且 ≥10 次高;19% / 3%。code 模式会话的失败率几乎为 0,整体占比被它拉低,普通模式单看是 23% / 3%,落在区间上沿)、慢调用(单次 ≥120 秒;≥1 低,≥3 中;14% / 3%)、工具集中度(≥20 次且赫芬达尔指数 ≥0.85,低;10%;code 模式外层全是 run_code 时不报)、上下文骤升(≥20 个百分点,只在同一窗口内比,中;1%)/ 骤降(信息,落在压缩事件附近标「压缩」;4%)、上下文峰值(50/70/90% → 低/中/高;11% / 5% / 0%)、压缩发生(compaction/start ≥1 信息,prune ≥10 另加一句;5%)、待办陈旧(todo-freshness-guard 提醒 ≥10 低,≥30 中;11% / 3%)、换策略恢复(信息,不设阈值;32%)。参数签名与校准脚本同规则:bash 取整条命令压空白,读写类取路径,grep/glob 这类带 pattern 的工具与 query 类工具取页面 argSummary 的形态(pattern=… path=…),截到 300 字,两条链路一致。
· 块:失败恢复链旁;每条严重度徽标 + 一句话依据(含具体数字)+ 涉及调用数;点一条淡化其他节点(复用过滤淡化,与「只看失败/重试」等过滤同时生效)并缩放到该段第一个调用、打开详情,再点同一条或按 Esc 取消;选中按「泳道 + 信号类型」记,实时重渲染顺序变了高亮不漂移;没有信号时明说「本场没有触发任何信号」。方法说明写明阈值来源、各信号独立计数(循环与重复、原样重试与失败可能指向同一段调用)、失败口径比错误标志宽、签名截 300 字、code 模式本版只统计外层 run_code 调用(内部派发未展开,与校准集的 code 模式数字不可直接对照)。中英双语、明暗主题。
· 上下文占用按每次请求当时的模型换算窗口(吴昊 2026-09-07 拍板):上传链路按时间顺序读 request/context,每步的 usage 用它之前最近一条的 contextWindow(宿主真值优先,没有再查模型表;第一条之前的样本用第一条兜底);实时链路按 Trajectory 请求的 (turn, step) 把逐请求模型的表值填到节点,只缺宿主报的窗口真值。上下文峰值 / 骤升 / 骤降信号、上下文压力轨道(纵轴改为占用百分比,标题标注中途切过的窗口与略过的样本)、摘要卡 03 与头部指标条统一用这一口径(contextOccupancy)。健全性守卫按窗口算:某窗口下有样本超过它(实测:中转站声称 262144 却跑了 595K 的请求),只作废该窗口下的样本、略过不画、比较链在它处断开,其余照常;全部作废才退回绝对 token。窗口切换处同样断开比较链:300K@1M(30%)切到 128K 模型跑 100K(78%)只是换了尺子,不报骤升,反过来不报骤降。
· 两条链路:上传链路解析时记录 compaction/* 事件(start 时刻、prune/summary 次数)、todo-freshness-guard 提醒次数、request/co
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-maze
🔀 dsh-trace-compare 已更名为 dsh-maze(v1.0.0 起)。旧包保留可装但不再更新,迁移只要两条命令。
dsh.so 安全扫描:低风险 dsh.so 沙盒安装实测:通过 Mentioned in Awesome DSH Plugins
dshbase
Listed on dshfind
还被收录于: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 内置插件市场
DeepSeek Harness 的执行迷宫:把智能体真实的干活过程完整画出来、并分析给你看。
展开完整文档(README 剩余 1 节)
dsh-maze
🔀 dsh-trace-compare 已更名为 dsh-maze(v1.0.0 起)。旧包保留可装但不再更新,迁移只要两条命令。
dsh.so 安全扫描:低风险 dsh.so 沙盒安装实测:通过 Mentioned in Awesome DSH Plugins
dshbase
Listed on dshfind
还被收录于: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 内置插件市场
DeepSeek Harness 的执行迷宫:把智能体真实的干活过程完整画出来、并分析给你看。
执行迷宫:迷宫 + 数据轨道 + 执行分析,一屏读懂一场 8.6 小时的真实会话
- 迷宫——主干路径、失败支路、折返点落在同一根时间轴上;空闲自动折叠、密集段自动聚合成「×N」徽标(点击放大、标签逐级补齐)、进度条自带失败热力,8 小时的会话照样字字可辨:
密集会话:整图态聚合徽标 → 点击放大 → 标签补齐 → 点开失败详情
- 数据轨道——每一步的工具调用密度、Token 脉冲(缓存背景 + 未缓存输入/推理/输出增量柱)、上下文压力曲线(70%/90% 阈值线、压缩事件「⌄−N%」标注,悬停看压缩前后真值):轨道悬停:Token 分层数字 → 上下文占用 → 压缩事件前后对比
- 执行分析——失败恢复链(原样重试 / 换参数 / 换工具 / 未恢复)、工具结果矩阵、耗时分位散点。每个结论一键点回原始命令与返回内容:
点失败链任意一条:缩放定位到那次失败,弹出完整命令、报错返回与判定依据
- 多会话对比——同一任务在不同模型上的 2~5 次跑同轴对比:轮次对齐、手动锚点、支路盘点。
对比:同一任务的两次真实跑 → 支路盘点按轮次列差额 → 点行缩放到该轮
- 回放——最高 300× 重放整场执行,看它是怎么一步步走到结果的:
回放:300× 重放一场 8.6 小时的会话
铁律:所有数字都是对判定数据的确定性聚合,不调 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.config.ts、grep pytest 不算),一条命令命中多类分别记;通过 = 该调用没有错误标志且返回末行没有非零退出码;每个类别以最后一次运行的结果为准,此前别的命令最后一次失败的条数小字注明(「同一条命令」按命中的那段算,cd 前缀、重定向、&& echo PASS 装饰不同不算两条);后台任务按之后 job_output 末行的退出码计,取不到就不计并标注;点格定位到最后一次运行所在的那一步并打开该步详情。产物 = 写入/编辑/补丁类调用成功触及的文件去重(格内展开路径);任务完成 = 最后一轮 turn/end 不是 error/aborted/interrupted/blocked 且最后一步是回答;人工确认只看最终回答之后有没有真人消息,不解读内容。一条验证命令都没有时显示中性的「未验证」;code 模式会话(run_code)里脚本内部派发的真实命令暂不识别,块里如实标注。规则在 verdict.js 的 ANALYSIS_RULES.VALIDATION。
- 行为信号(诊断层第 2 项,失败恢复链旁的块):每条带严重度(高/中/低/信息)、一句话依据(含具体数字)和涉及调用数——失败后原样重试、同轮重复调用(含重复读取子标签)、循环、工具失败、慢调用(≥120 秒)、工具集中度(赫芬达尔指数)、上下文骤升/骤降(骤降落在压缩事件附近标「压缩」)、上下文峰值、压缩发生、待办陈旧、换策略恢复。阈值按本机 202 份会话校准(「中」落在最差的 15%~20% 会话,「高」落在最差的 3%~5%),常量在 verdict.js 的 ANALYSIS_RULES.SIGNALS;各信号独立计数。点一条淡化其他节点并定位到该段第一个调用(再点或按 Esc 取消,与其他过滤叠加);没有信号时明说「本场没有触发任何信号」。code 模式本版只统计外层 run_code 调用,方法说明注明。上下文占用(峰值信号、上下文压力轨道、摘要卡与头部指标条)按每次请求当时的模型换算窗口:上传日志读 request/context,实时页签按逐请求模型查表;轨道纵轴是占用百分比,标题标注中途切过的窗口和因窗口值不可信而略过的样本。
- Agent 关系图谱(v0.7 起,分析区内的块):主 Agent 与子代理的星形总览,节点大小 = 各 Agent 消耗的 token、连线粗细 = 工具调用数、运行中的虚线标示;点子代理节点跳到时间轴位置。只在有子代理数据时出现。
- 导出:一键导出当前视图(含缩放窗口与过滤淡化状态)为 SVG 或 2x PNG,样式已内联、拿去即用;无论页面当前是浅色还是暗色,导出固定浅色底(分享场景)。
- 界面双语(v0.5.0 起):整页 UI(上传区、图例、泳道统计、对齐线、支路盘点、悬停卡、详情面板、错误提示)中英双语,嵌入宿主时实时跟随 dsh 的语言设置切换,独立打开按浏览器语言兜底;判定依据是结构化键值、按当前语言渲染,切语言不用重新上传。
- 主题跟随(v0.3.1 起):页面随宿主 dsh 的明暗主题自动切换(宿主组件监听 body[data-ds-dark-theme] 并 postMessage 进 iframe);独立打开时按系统偏好。
- 设置页开关(v2.1.0 起):「设置 → Maze」可隐藏侧边栏入口——只用「实时迷宫」页签的人可以把常驻按钮收掉,开关即时生效、无需刷新,按浏览器保存;隐藏后实时页签与已打开的迷宫页不受影响。
- 紧凑页头(v0.3.1 起):出数据后说明文字隐藏、上传区收成细条、泳道统计卡隐藏(同信息已画在泳道带内)、图例压成一行——迷宫拿走绝大部分视口。
- 播放功能最高 300× 回放整次运行。
时间轴的诚实规则:
- 空闲折叠:超过 60 秒没有任何步骤/工具活动的区间(比如两轮对话之间你在思考)压缩成一条带 ⏸ 标注的细缝,标明省略了多久;活动段内的刻度仍显示真实墙钟时间。
- 步骤标识带轮次(S15·47),多轮会话的支路不会挂错节点。
- 步骤时长、工具耗时、总耗时都保持墙钟真值,只有轴被压缩。
- 实时页签只画对话已加载的事件窗口(v0.2.3 起诚实标注):窗口边缘残留的更早轮次步骤会被丢弃并标注「⏮ 另有 N 步更早历史未加载」,不再钳到 0 秒堆在左边缘、虚高统计;要看全会话用「Session log 下载 → 上传对比」。
- token 是真值(v0.2.2 起):推理/输出 token 读自 session log 里 assistant/message 的 usage(此前的「reasoning N tok」数的是流式段数,不是 token)。日志没有 usage 时标签诚实回退为「推理 N 段(日志未报 token 用量)」——中转站日志常缺推理 token 字段,与原厂日志并排时单位不同,标签自带原因(v0.5.1 起)。
判定的诚实规则(v0.2.1 起):
- 不按输出长度判定。单工具判定三层:错误标志(isError)→ 失败特征 → 按工具分类(写入类无错误即成功;检索类空结果才算扑空;bash 及未知工具有输出即成功)。
- 失败特征只扫开头与末尾窗口(v0.2.3 起):真实报错要么从开头开始说、要么是追加在末尾的 stderr 段;而 git log / 读文件 / 转储日志时引用的报错字样悬在长文本中部——判定刻意不看那里,避免把「病历」当「发病」(实测案例:提交信息里写 "upstream returns HTTP 400" 被误判为该命令失败)。两条渲染链路统一在未截断的全文上判定。
- 盲目重试是行为学判定:时间序上连续的「同工具 + 参数相似」调用簇、且簇内至少一次失败,才标为无效重试——借鉴 AgentLens 对 SWE-agent 轨迹「浪费」的确定性检测。
- 每个判定都带依据文本,悬停 tooltip 和详情面板可见(如「同一操作连续重试 4 次(其中 1 次失败),判为盲目重试」)。
- 全部阈值与分类在 src/client/verdict.js 的 VERDICT_RULES 常量里,可按项目语料调整;页面与实时两条渲染链路共用这一份实现(构建期注入)。
支持的 session log 格式
按文件内容识别格式,文件名任意(macOS 复制出的「session.jsonl 2」也能直接选):
- 纯文本 .jsonl(session 格式 v0 事件流)
- ~/.dsh/sessions/ 下原样的 .jsonl.zstd——浏览器端直接解压(原生 DecompressionStream('zstd') 可用时优先,否则用内置的 fzstd)
安装
先看你的宿主是哪来的。 宿主 0.1.2 把客户端包重新拆分了一次(dsh-client-runtime 拆成 dsh-client-store 等),同时换掉了会话快照的数据模型,所以两条线的插件不通用:
| 你的宿主 | 装哪个版本 | 命令 |
| 0.1.2 及以后——npm 的 @deepseek-ai/dsh(现在的 latest 是 0.2.0-rc.2)、内核 0.1.2 以后的各家桌面版、或自建 master | dsh-maze 2.x,latest 标签 | dsh plugin --profile web add dsh-maze |
| 老宿主(0.1.0-rc.6 ~ 0.1.1-rc.2) | dsh-maze 1.1.2,手动钉版本 | dsh plugin --profile web add dsh-maze@1.1.2 |
宿主 0.1.7 起需要 dsh-maze 2.3.0 及以上:0.1.7 改了图标名和子代理目录接口,更早的 2.x 装上去侧边栏入口不显示、实时迷宫页签空白。0.1.6-alpha.2 起的宿主上 2.2.0 虽然不崩,但切换会话时不再自动关闭上传面板,也建议升级。桌面版(0.2.0-rc.2)请用 2.4.0:本版把 @deepseek-ai/dsh* 的 peer 范围从 <0.2.0 放开到 <0.3.0,并把构建产物 lib/ 纳入版本控制——否则从 GitHub 安装会装出一个没有 lib/index.js 的空壳,插件完全加载不了(2026-10-05 桌面版就是这个原因)。用 pnpm 11 的默认设置时,插件发新版后的 24 小时内,不带版本号的安装会解析回上一版,这时请钉精确版本,例如 dsh plugin --profile desktop add dsh-maze@2.4.0。
兼容性:2.4.0 对着 npm 的 0.2.0-rc.2 全家桶构建,类型检查另在 0.1.2-rc.1、0.1.5-rc.3 两套包上跑过,均为零错误,158 个测试全绿;实机验收在全新的 0.1.5-rc.3、0.1.7-rc.2、0.2.0-rc.2 宿主上做过(2.3.0 那轮:装上安装包、用模拟模型跑会话、界面数字与宿主自己的统计逐项对账,上传页也读通了这些宿主写出的第 3 版、第 4 版会话日志),0.2.0-rc.2 桌面版另装了本版做回归。1.1.x 已对官方 0.1.0-rc.6(构建 + 全量测试)与 rc.8(插槽/类型核对 + 实机验收)验证。
npm install --global @deepseek-ai/dsh
dsh plugin --profile web add dsh-maze
dsh web
重启 dsh web 后,侧边栏底部出现「执行迷宫」入口,每个会话视图多一个「实时迷宫」页签。
从源码安装:
git clone https://github.com/lamost423/dsh-maze.git
cd dsh-maze
corepack enable && pnpm install && pnpm build
dsh plugin --profile web add .
dsh web
也可以直接从 GitHub 装(仓库里带着构建产物,不用你本地构建;不钉版本时拿到的是默认分支最新提交):
dsh plugin --profile desktop add github:lamost423/dsh-maze
从 dsh-trace-compare 迁移
dsh plugin --profile web remove dsh-trace-compare
dsh plugin --profile web add dsh-maze
旧包停在 v0.7.0(功能与 dsh-maze 1.0.0 相同),此后只有 dsh-maze 继续更新。GitHub 旧地址自动重定向到本仓库。
版本历史
全部演进见 CHANGELOG.md。
开发
pnpm install
pnpm check # 类型检查 + vitest + 构建
上传/可视化页面是一份自包含的 HTML(src/client/maze-upload.html),运行在沙箱化的 里;解析与渲染全部在浏览器端完成,上传的日志内容不会到达宿主。
许可
MIT。见 NOTICE——本项目包含源自 DeepSeek Harness 的衍生代码。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lamost423/dsh-maze
DeepSeek Harness 的执行迷宫——看智能体真实怎么干活:迷宫时间轴、数据轨道、确定性执行分析、多会话对比 | DSH 智能体的执行迷宫:迷宫时间轴、逐步数据轨道、确定性执行分析、多会话对比…
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,359已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,514已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,289已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,675已汉化DSH
71.2
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,522已汉化DSH
71