dsh-plugin-agent-workflow:以用户轮次查看 Agent 执行链路

前言

在 DeepSeek Harness(DSH)里跑 Agent 时,一次用户发言往往会触发多轮模型请求和若干工具调用。内置「对话」适合看最终结果,「轨迹」适合按事件排查;若希望以「这一轮用户说了什么」为入口,在同一视图里按时间顺序串起请求、响应和工具调用,就需要额外的 Web UI 能力。下面介绍社区插件 dsh-plugin-agent-workflow:它在不替换内置「轨迹」的前提下,增加独立的「工作流」标签页,数据来自 Session 中已有记录,只读展示。

这是什么

dsh-plugin-agent-workflow 是可独立安装的 DSH Web UI 插件,由 flynow-harness 维护;当前资料中的包版本为 0.4.0,适配 dsh@0.2.2-alpha.2。简介表述为:以用户轮次为入口查看模型请求、响应与工具调用链路。

插件在 Cordis 侧通过 patch 注入客户端 bundle,面向 web profile,依赖宿主提供的 Session、Trajectory 等客户端模块;0.4.x 通过标准 hook useTrajectory 读取内置 Trajectory 投影,并复用 Session 事件窗口做分页,不注册自有视图目标,因此不与 Chat、Trajectory 的生命周期交错。

核心功能

按轮次与链路浏览

  • 左侧固定展示当前 Session 的用户对话轮次:提示词摘要、开始时间、模型/工具调用次数、完成状态。
  • 右侧按时间顺序展示本轮的模型调用与工具调用;单行内容过长时可横向滚动。
  • 页顶汇总用户对话数、模型调用数、工具调用数和总耗时(统计范围限于客户端已加载的 Session 历史)。

请求与响应检查

点击请求卡片可查看该次模型请求的真实记录:

  • 系统提示词、与提供方无关的 messages[]、工具定义 tools,均以可折叠 JSON 树展示,支持复制与放大。
  • 响应侧可查看 reasoning、content、工具调用及当次响应的原始记录。

messages[] 按 DSH 与模型请求相同的 Session surface 规则在每次请求边界重建;系统提示词、工具定义、响应与工具结果来自内置 Trajectory 投影。插件不会向模型请求中追加消息、提示词或工具。

工具执行与 Token

  • 工具卡片区分运行中、完成、失败,展示参数、结果、耗时与错误摘要。
  • Token 与缓存统计区分输入、未缓存输入、缓存读取、缓存写入和输出,便于分析上下文复用。

性能与交互

轮次列表与模型调用列表独立滚动;模型调用行使用虚拟化渲染,长链路不会拖垮整页。JSON 展开与卡片选中状态仅保存在当前页面,无深链接分享;同一次响应中的多个工具调用以线性序列展示,不画并行分支图。

版本兼容

升级 DSH 时需安装与之匹配的插件版本:

插件版本 DSH 版本
0.4.x dsh@0.2.2-alpha.2
0.3.x dsh@0.2.0-rc.2
0.2.x dsh@0.1.5-alpha.1
0.1.x dsh@0.1.0-rc.8

从 0.3.x 升到 0.4.x 后需重启 Web UI。DSH 仍处于预发布阶段,RC 间客户端接口可能变化,应成对升级宿主与插件。

安装与启用

插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可。社区目录页 SkillHub 提供索引,与 DeepSeek / 幻方无官方从属关系。

假设安装包 dsh-plugin-agent-workflow-0.4.0.tgz 位于当前目录,在 web profile 下执行:

npx --yes @deepseek-ai/dsh@0.2.2-alpha.2 plugin \
  --profile web \
  add ./dsh-plugin-agent-workflow-0.4.0.tgz

检查是否安装成功:

npx --yes @deepseek-ai/dsh@0.2.2-alpha.2 plugin \
  --profile web \
  list --depth 0

列表中出现 dsh-plugin-agent-workflow 0.4.0 即表示成功。重启 Web UI 后出现「工作流」标签页:

npx --yes @deepseek-ai/dsh@0.2.2-alpha.2 web

其他 profile(例如 video)可使用同一 .tgz,命令形式为 dsh plugin --profile <name> add ./dsh-plugin-agent-workflow-0.4.0.tgz 后启动对应 profile 的 DSH。

若需在本地 DSH 0.2.2-alpha.2 源码树中安装,在已构建好的源码目录执行(将路径换为安装包绝对路径):

pnpm dsh plugin --profile web add /absolute/path/dsh-plugin-agent-workflow-0.4.0.tgz
pnpm dsh plugin --profile web list --depth 0
pnpm dsh web

卸载(不影响内置「轨迹」):

npx --yes @deepseek-ai/dsh@0.2.2-alpha.2 plugin \
  --profile web \
  remove dsh-plugin-agent-workflow

卸载后需重启 DSH Web。

资料中还说明:pnpm 11 默认可能阻止 Git 依赖的构建脚本,推荐先 pnpm pack 得到 .tgz 再安装,而非直接 github: 依赖(除非在 workspace 中显式放行构建且信任源码)。

典型用法

  1. 按上文命令安装并启动 dsh web,打开已有 Agent Session。
  2. 在 Web UI 中切换到「工作流」标签(与「对话」「轨迹」并列)。
  3. 在左侧选择某一用户轮次,右侧查看该轮内的模型请求、响应与工具调用顺序。
  4. 点击具体请求卡片,在详情中展开 system、messages[]、tools 或响应 JSON,复制字段用于对比配置或复现问题。
  5. 结合页顶汇总与 Token/缓存行,判断本轮成本与缓存命中情况。

本地开发插件时需 Node.js ^22.19.0 或 >=24.0.0、pnpm 11;可通过 pnpm install、pnpm run typecheck、pnpm test、pnpm pack 生成可安装的 tarball。

适用场景与注意

适合需要在 Web UI 中以「用户轮次」组织视角、快速扫一遍 Agent 执行链路的开发者与调试场景;与内置「轨迹」互补,而非替代。

需注意:汇总与列表受客户端已加载历史限制;插件只读 Session 事件,不改变模型行为。项目基于 xuanyuanzhifeng/dsh-plugin-agent-workflow(MIT)适配 dsh@0.2.2-alpha.2,由 flynow-harness 继续维护。

结尾

dsh-plugin-agent-workflow 把 DSH Session 里已有的 Trajectory 与 messages[] 重建结果,整理成按轮次浏览的工作流视图,便于检查 Agent 的请求体、响应与工具状态。目录与详情见 SkillHub 插件页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜