Rungraph 上线:把 AI 编程智能体运行轨迹画成可交互图谱
独立开发者推出 Rungraph,自动将 Claude Code 等智能体会话日志转为有向图,便于回溯与调试。
Rungraph 是一款把 AI 编程智能体(如 Claude Code)运行过程可视化的小工具:它会扫描本地会话目录,把原本冗长的文本日志自动转换为一幅有向图,编排器、子智能体、工具调用变成节点,派生与返回关系变成边,让几千行的 transcript 一眼可读。安装只需一条命令 npx rungraph,扫描 ~/.claude/projects 后启动本地服务器并在浏览器中呈现,不需要 hook、wrapper 或额外遥测。
节点与边:呈现一次运行的骨架
Rungraph 把智能体的一次「运行」建模为一张向下流动的有向图。
- 时间向下:用户的提示词是主干,并行子智能体以横向车道展开,最终回到收集结果的回合。
- 工具节点含语义:例如
Bash · npm test ×12、Edit · canvas.jsx、Grep · waitForURL。同一工具的连续调用会被折叠为一个节点,避免测试-修复循环变成乱麻。 - 点击即看细节:回合节点展示完整 prompt 与回复;工具节点展示输入、输出、错误与耗时;子智能体节点展示其完整 transcript,并附带调用前的智能体自述(即「为什么这么调」)。
- 人为介入是一等节点:被拒权限、被答问题、中途打断都会被标记,连边还会注明原因(如「权限被拒后」「Bash 报错后」)。
工作流式多智能体编排会被显示为单个可下钻的节点,其内部还有子图、阶段框和重试链路。节点上会标注 token 数、耗时与模型,全局统计在页面顶部。
信号条:让真正的问题浮出来
如果所有节点同等权重,两秒的读文件和四十分钟的重试螺旋看起来一样,问题就被淹没。因此 Rungraph 从运行中派生几个关键信号,置于画布上方的横条,干净运行时该条高度为零。
- ⟳ 重试风暴:同一工具在同一处反复失败。
- ⚠ 未解决错误:失败后始终未回到该处修复。
- ✋ 人工介入:用户拒绝权限、打断回合或回答问题。
- ◆ 离群节点:单步 token 或耗时远高于其他步骤。
- ⚑ 转折点:智能体自身记录的「为什么改变方向」。
点击信号,图谱会自动聚焦——相关节点高亮,其余淡化到四分之一亮度(变暗但不消失,便于保留原有空间记忆)。同样的聚焦机制驱动文件检索、/ 查找与「Live escalation」——实时跟踪时,信号条只有在真正出现新问题才会变响。
MCP 服务:让智能体反过来问问题
仪表盘给人看,MCP 服务给智能体用。安装一行 npx rungraph mcp --install 即可接入 Claude Code。仪表盘还会根据当前运行自动生成提问模板(如「为什么对 token.js 的 Edit 反复失败?」),用户复制后粘贴进 Claude Code。智能体调用 find_nodes / get_graph / get_detail 在终端内作答,再调用 focus_nodes 把当前仪表盘的相关节点点亮。
MCP 暴露的只读工具包括:
list_runs:运行索引。get_graph:单次运行的图(默认压缩,含信号与文件)。find_nodes:先过滤再拉取,大图可压缩到 2 万 token 以内。get_detail:节点背后的原始错误文本。focus_nodes:点亮仪表盘对应节点并返回可分享深链。get_current_view:仪表盘当前视图。open_visualization:在浏览器中打开某次运行。
多仪表盘场景下,MCP 会聚合所有 server 的运行,按来源标记,其他工具则按 run id 路由到对应的仪表盘。Rungraph 不代理、不注入 prompt,只贡献图谱,不参与对话。
试用与文档
官方提供 docs/GUIDE.md,覆盖读图、各信号含义、把图谱接到自家智能体的方式,以及「图看起来坏掉」时的排错建议。Show HN 页面同时展示了该工具如何被用于自举——文中那段动画正是它在实时绘制自身开发会话的过程。
