sandbase-harness
sandbaseai
Local-first, self-hosted AI agent runtime and MCP bridge with sandboxed sessions, memory, credentials, audit/replay, and a local Console.
lamost423/dsh-maze
DeepSeek Harness 的执行迷宫——看 Agent 真实怎么干活:迷宫时间轴 · 数据轨道 · 确定性执行分析 · 多会话对比 | The execution maze for DSH agents: maze timeline, per-step data tracks, deterministic execution analysis, multi-session comparison. Formerly dsh-trace-compare.
PROJECT TOPICS
PROJECT README
🔀
dsh-trace-compare已更名为dsh-maze(v1.0.0 起)。旧包保留可装但不再更新,迁移只要两条命令。
中文 | English
还被收录于:fendouai/awesome-deepseek-harness(独立介绍页)· Zhiyuan-Fan/Awesome-DeepSeek-Harness-Plugins · ZeroPointRepo/awesome-dsh-plugins · cccakeee/awesome-dsh-plugins
DeepSeek Harness 的执行迷宫:把 Agent 真实的干活过程完整画出来、并分析给你看。






铁律:所有数字都是对判定数据的确定性聚合,不调 LLM;每个判定带依据、每个结论可回溯到证据;数据缺失时如实标注(不画没有数据的轨道、不猜未知模型的窗口),绝不编。
两个入口:会话内的「实时迷宫」页签(随当前会话实时生长),侧边栏的「执行迷宫」(上传 session log 单看或对比)。
origin: 'subagent'),手动分支和 side-chat 侧聊不入图。依赖宿主「后台加载子会话历史」的能力,官方 rc 线暂缺该能力时自动静默隐藏。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。body[data-ds-dark-theme] 并 postMessage 进 iframe);独立打开时按系统偏好。时间轴的诚实规则:
⏸ 标注的细缝,标明省略了多久;活动段内的刻度仍显示真实墙钟时间。S15·47),多轮会话的支路不会挂错节点。assistant/message 的 usage(此前的「reasoning N tok」数的是流式段数,不是 token)。日志没有 usage 时标签诚实回退为「推理 N 段(日志未报 token 用量)」——中转站日志常缺推理 token 字段,与原厂日志并排时单位不同,标签自带原因(v0.5.1 起)。判定的诚实规则(v0.2.1 起):
src/client/verdict.js 的 VERDICT_RULES 常量里,可按项目语料调整;页面与实时两条渲染链路共用这一份实现(构建期注入)。按文件内容识别格式,文件名任意(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 线——DSH Desktop 2.x、npm 的 @deepseek-ai/dsh@next(0.1.2-rc.1)、或自建 master |
dsh-maze 2.x,latest 标签 |
dsh plugin --profile web add dsh-maze |
老宿主——npm latest(0.1.0-rc.6 ~ 0.1.1-rc.2) |
dsh-maze 1.1.1,手动钉版本 |
dsh plugin --profile web add dsh-maze@1.1.1 |
宿主 0.1.2-rc.1 与拆分出的客户端包已发到 npm(next 标签),所以从 v2.0.0 起 latest 归 2.x;还在老宿主上的人钉住 1.1.0 即可。等宿主的 latest 也切到 0.1.2,这张表就并成一行。
兼容性:2.0.0 对着 npm 的 0.1.2-rc.1 全家桶构建,类型检查与 49 个测试全绿;实机验收在 2.0.0-alpha.2 × 上游 master 0.1.2-alpha.1 上做过——从 npm 装包、真会话跑通、界面数字与宿主自己的统计逐项对账。1.1.x 已对官方 0.1.0-rc.6(构建 + 全量测试)与 rc.8(插槽/类型核对 + 实机验收)验证。
npm install --global @deepseek-ai/dsh@next
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
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),运行在沙箱化的 <iframe srcDoc> 里;解析与渲染全部在浏览器端完成,上传的日志内容不会到达宿主。
MIT。见 NOTICE——本项目包含源自 DeepSeek Harness 的衍生代码。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: observability、agent-observability、tracing、visualization。