
KevinZhangNothing/dsh-task-graph
dsh-task-graph
dsh-task-graph is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add github:KevinZhangNothing/dsh-task-graphRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-task-graph)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from KevinZhangNothing/dsh-task-graph, cleaned of badges and images.
dsh-task-graph · DSH 单任务执行流程图谱
中文 | English
给 DeepSeek Harness (DSH) 的单个任务画一张可交互的执行流程图谱:从
任务开始 → Agent / Skill / Tool → 子任务 → 代码改动 → 测试 → 成功 / 失败 / 重试一眼看清,支持实时执行状态与历史回溯。
- Task First:第一层概念是 Task(一次会话),不是 Session / Message / Event 流水。
- Graph First:进入任务先看到执行图谱,而不是一长串日志。
- Detail on Demand:画布只放关键节点;每一步具体做了什么(每个 LLM 步骤、每次工具调用、输入输出、错误、重试)都收进右侧详情面板。
- Trajectory 是底层数据:图谱由
session.jsonl(zstd)解析而来,节点保留 Event ID,可与原始 Trajectory 双向跳转。
设计语言
一次克制的信息可视化,融合四种气质:
| 取向 | 落到产品上 |
|---|---|
| Apple 的克制 | 发丝线边框、低饱和配色、柔光无重阴影、状态用「染色 + 圆点」而非色块 |
| Linear 的信息密度 | 紧凑工具栏、等宽数字、高密度详情日志、单屏放下更多 |
| Vercel 的视觉精度 | 全局 tabular-nums、大写微标签、像素级对齐、仅浮层带分层阴影 |
| AI Agent 的实时执行感 | 运行节点脉冲 + 秒级计时、活动边虚线流动、LIVE 徽标呼吸 |
视觉上采用玻璃拟态:图谱 / 详情 / 轨迹与「对话」「轨迹」两个原生 Tab 一样透出皮肤壁纸;每张卡片按节点类型染上专属半透明色调(任务蓝 · 轮次靛 · Agent 青 · 工具石灰 · Skill 紫 · 子代理琥珀 · 计划绿 · 代码橙 · 测试天蓝)。
功能总览
关键节点视图(默认画布)
画布只呈现语义上重要的节点,避免被几百个步骤淹没:
- Turn 节点:带摘要行(
N steps · N tools · N tok · ↻重试 · ✗失败) - 代码改动批量节点:同一轮多处 edit 聚合为
×N · M files一张卡 - 保留的关键事件:Plan / Skill / SubAgent / 测试 / 失败或重试过的工具 / LLM 重试
- 普通步骤与读取类工具不上图——它们都在详情里
点击任意关键节点,右侧详情面板展示具体做了什么:
- 点 Turn → 「执行明细 · N steps」:每个 LLM 步骤(模型 / 耗时 / Token / 重试)+ 其下全部工具调用
- 点 代码改动 → 「包含 N 处改动」:文件级列表,点任意一行继续下钻到该编辑的输入 / 输出
- 任意工具行可点击,继续深入该节点详情
布局与交互
- 蛇形(默认):一行最多 6 个关键节点,左→右一行、连线向下折返、右→左再折返(牛耕式);按"任务→轮次→关键事件"的执行顺序排布,像读文档一样顺着看完整条执行链
- DAG:分层有向图(横向排布),适合看层级依赖
- 时间线:按真实执行时刻铺开,直观看到并行与耗时
- 力导向:自由探索复杂关系
- 滚轮纵向滚动浏览长图,
Ctrl/⌘ + 滚轮在光标处缩放(限幅 0.3×–2.2×,不会缩成看不清的小图);拖拽平移、⤢ 适配宽度、⇕ 一键折叠到轮次概览/全部展开、类型过滤、搜索、聚焦节点、邻域高亮
实时执行状态
会话运行时通过 SSE 增量刷新:
RUNNING节点脉冲高亮 + 秒级计时(18.2s · running实时跳动)- 连接运行节点的边呈虚线流动,表达数据正在流动
- 顶部 LIVE 徽标;节点状态机
PENDING / RUNNING / SUCCESS / FAILED / SKIPPED / CANCELLED / RETRYING
图谱 ↔ Trajectory 双向联动
- 点节点 → 轨迹抽屉高亮并滚动到对应事件
- 点事件行 → 反选并聚焦图谱节点
- 节点保留
event_ids/session_id/task_id/ 时间戳,随时回答「这个节点对应哪条 Event」 - 「轨迹」Tab 与「对话」「图谱」一致,同为玻璃透明
分析与定位
- 关键路径:自动计算耗时主导链并高亮(关键视图下投影到轮次级)
- 错误定位:失败节点标红,聚合错误消息 / 输入输出 / 重试历史 / 恢复动作
- 重试聚合:相同调用失败后重试不复制节点,聚合为一个节点的多个 attempt + 重试弧
- 任务摘要:耗时、轮次 / Agent / 工具 / Skill / 子代理 / 代码改动 / 测试 / 重试 / 错误计数、Token、最慢步骤、高频工具
- 并行执行:同一步骤内并行工具渲染为 fork → join
- 子任务下钻:SubAgent 节点关联子会话,一键打开子任务图谱
快速开始
独立 Demo(无需安装 DSH)
npm run demo # 使用内置脚本化数据(含一个"正在运行"的任务,可看实时效果)
npm run demo -- --real # 读取你本机真实 $DSH_HOME 会话
npm run demo -- --port 8123
打开打印出的地址即可;图谱会悬浮在页面上,自动加载任务。
作为 DSH 插件安装(一行命令)
dsh plugin --profile web add github:KevinZhangNothing/dsh-task-graph
dsh plugin 会调用 pnpm 安装,并自动把声明了 dsh.bundle 的包注册进 dsh.profile.bundles(已实测)。重启引擎(或重新加载 Web UI)后,原生「对话 / 轨迹」标签旁会出现第三个「图谱」Tab。
发布到 npm 后即可直接
dsh plugin --profile web add dsh-task-graph; 也可以在插件市场(dshmarket)里搜索安装。
点击「图谱」后只在内容区展示任务执行图谱——标签栏、侧边栏与其它功能入口保持可见。点回「对话 / 轨迹」或按 Esc 即恢复原视图。
本地开发安装
cd "$DSH_HOME/profiles/web"
dsh plugin --profile web add link:/path/to/dsh-task-graph
# 或手工:pnpm add "dsh-task-graph@link:/path/to/dsh-task-graph"
服务端需要 Node ≥ 22.15(用内置
zlib.zstdDecompressSync解码.zstd会话,零原生依赖)。
架构
…

