前言¶
在 DeepSeek Harness(DSH)里跑带技能、MCP 和子代理的长会话时,「轨迹」页能回答什么时候调了工具、各段花了多久,但很难一眼看出:某次 MCP 是哪个技能带出来的、配了多个 MCP 本会话实际用了哪几个、子代理内部又调了什么、提示词里哪句话把链路引到这一步。下面介绍的 call-map(维护者 NICEGSP,分类为客户端插件)在会话头部增加第三个视图「调用可视化」,从本地会话日志折叠出归因树,不埋点、不上传。
这是什么¶
call-map 是一个 DSH 插件:在会话里多看一页,把这一轮实际用到的技能、MCP 工具和子代理,以及提示词 / 思维链里与之同名的词面片段,画成一张可缩放的分支图。数据全部来自本机会话事件,插件自身不写会话、不新增网络请求。
- 目录页:https://www.skillhub.cn/plugins/NICEGSP/call-map
- 源码与说明:https://github.com/NICEGSP/call-map
- 当前 package 版本:0.1.0,许可证 MIT
它与宿主自带的「对话」「轨迹」并列:轨迹侧重时序,call-map 侧重归因。
核心功能¶
一页聚合与可缩放画布¶
所有轮次按时间顺序连续排在同一张画布上,不必按轮次切标签页。
- 滚轮缩放(30%–240%),按住左键拖拽平移;右下角显示当前比例
- 进入页签时默认定位到最新一轮,并按画布宽度自适应
- 右下角 最新 定位最后一轮,全览 把整棵树缩进一屏
- 单击与拖拽区分:指针移动超过 4px 才进入平移,避免误触卡片
归因树与子代理聚合¶
树从 提示词 → 思维链 → 技能 / MCP / 派发 展开,并与右侧明细表同源:
| 节点类型 | 说明 |
|---|---|
| 技能(绿) | skill 工具调用,技能名来自 arguments.name;展示加载与命中次数 |
| MCP(琥珀) | 工具名形如 mcp__<server>__<tool> 的调用及次数 |
| 派发(紫) | spawn_teammate / subagent / subagent_fork / workflow / ralph;子代理卡片下可折叠子会话内的技能 / MCP,点击跳转子会话 |
| 提示词 / 思维链(蓝 / 紫蓝) | 正文中与下层节点同名的词按目标着色,便于肉眼追触发线索 |
调用明细与未使用清单¶
右侧表格字段包括:类型、名称·工具、次数、轮次、触发线索、结果。可筛 全部 / 技能 / MCP / 未使用;点行打开宿主原生调用详情。
未使用 筛选列出本会话可用但未调用的技能与 MCP:可用集合来自系统提示词中的 <available_skills> 与会话已暴露的 MCP server,减去实际调用部分。
轨道图¶
插件另绘输入 / 模型 / 工具三泳道时间条,用于快速定位「哪一段在干什么」。实现与宿主「轨迹」页的原版图表不同,宿主轨迹页本身不受影响。
安装与启用¶
要求:DSH 已安装并可用。插件注册既有槽位 conversation.view,不改宿主编译产物。
方式一:DSH 内置插件管理器(推荐)
把仓库目录作为本地包安装:
plugin_manager install_bundle target = <本目录的绝对路径>
安装后刷新页面,会话头部会出现第三个视图标签「调用可视化」(英文界面为 Call map)。
仓库已声明 dsh.bundle manifest,也可被 DSH 的 dsh plugin add 识别(纯 JS,无构建步骤);具体 add 参数以你当前 DSH 与插件管理器文档为准,勿在未核对 manifest 前自行拼接命令。
方式二:手动挂载
- 把本目录放到任意位置
- 在 profile 目录执行
pnpm add <本目录绝对路径>(或软链进node_modules/call-map) - 在 profile 的
package.json的dsh.profile.bundles数组里加入call-map - 重启或刷新
卸载:
plugin_manager remove_bundle target = call-map
典型用法¶
经过上面的安装步骤后,可按 README 中的顺序操作:
- 打开任意会话,点头部 调用可视化
- 画布里滚轮缩放、按住左键拖拽平移
- 右下角 最新 回到最新一轮,全览 缩到整张图
- 右侧表格点行 → 打开该次调用的宿主原生详情;点子代理卡片 → 跳到对应子会话
数据来源与口径¶
插件只读当前会话事件窗口,类型包括 user/message、assistant/message、tool/call、tool/result、request/header、turn/start 等,在前端本地完成折叠与渲染。
触发线索是提示词 / 思维链里与调用同名的词面匹配,不是因果证明;文中未出现同名词则不标。
适用场景与注意¶
适合谁:需要复盘「本会话到底用了哪些技能 / MCP / 子代理、哪些配置了却没用、子代理内部又做了什么」的 DSH 用户与插件作者。
已知限制(摘自 README):
- 跨会话聚合依赖能拿到子会话 id;
spawn_teammate仅返回队友名时,插件用「工作区会话标题 == 队友名」反查,改名或快照未加载时会显示「会话未加载」 - 极长会话若早期事件未加载,早期轮次的提示词可能显示为「不在已加载的事件窗口里」
- 宿主「轨迹」页工具栏无对外插槽,本插件只能作为并列第三个页签,无法嵌入该行
安装前:插件以当前 DSH 进程权限在本地前端运行;安装前请自行查看源码与 MIT 许可证。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
call-map 补的是 DSH 会话观测里「归因」这一层:一页可缩放树、明细表、未使用清单与轨道图,全部来自本地日志。需要进一步了解时可访问 SkillHub 目录页 与 GitHub 仓库。