dsh-workshpace-plugin:在 DSH 会话中查看 agent 足迹并管理 Workspace Memory

前言

用 DeepSeek Harness(DSH)跑 agent 会话时,一个常见的问题是:agent 在工作过程中创建和修改了大量文件,也可能通过工具提交了一些状态变更,但这些信息并不直观。想确认 agent 到底动了哪些文件、产出了哪些交付物、提交了哪些 Memory 提案,往往需要离开对话界面去翻文件系统。

dsh-workshpace-plugin 针对的就是这个场景。它在本地 DSH Web UI 的会话视图中添加一个 Workspace 标签页,让你在不离开会话的前提下检查 agent 触及的文件、审阅会话 artifacts、预览有边界的内容,并管理本地 Workspace Memory。这也符合 DSH「一切皆插件」的思路:能力以插件形式接入,不改动外壳。

下面介绍这个插件的定位、功能、安装与使用。

这是什么

dsh-workshpace-plugin 由 kaiqiangh 维护,README 标题为 DSH Workspace Plugin,package.json 中的版本号为 0.8.0。一句话定位:在本地 DeepSeek Harness Web UI 中添加 Workspace 标签页,用于检查 agent 触及的内容、审阅只读 Sub-agent Trace、审阅会话 artifacts、预览内容、检查 Git 变更,并管理受治理的本地 Workspace Memory,全程不离开对话。社区目录将其归类为「记忆」,与其 Workspace Memory 管理功能相符。

一个命名细节需要留意:仓库/目录名为 dsh-workshpace-plugin,而 package.json 中的包名是 dsh-workspace-plugin,两者拼写不一致。安装命令引用的是仓库目录名,输入路径时别拼错。

核心功能

以下能力均来自仓库 README:

1、会话视图中的 Workspace 标签页。位于 Trajectory 旁边;v0.2 起移除了旧的浮动面板与右下角 pill,该标签页是唯一入口。

2、只读 Sub-agent Trace。位于 Workspace 各标签页上方,提供带边界的子代理后代树与选中子项详情,用于跟进本地 Session-backed 子 Agent;不可用或损坏的子项会保留标签,而不是显示为空。

3、会话摘要块。Workspace 顶部按需汇总 agent 触及的内容:按类型统计的文件、artifacts、memory/decision 计数、活动 span。因为是按需派生,活跃会话与重新打开的会话表现一致。

4、Artifacts 标签页。展示按类型分组、可按名称搜索的会话交付物,逐项显示大小、修改时间、预览状态,支持复制路径与一键下载。预览为只读多标签形式;Markdown 预览可渲染相对图片与 mermaid 图,PDF 支持流式预览。

5、Memory 标签页。可查看、创建、验证(Verify)、置顶、归档、遗忘项目/会话 Memory 记录。Agent 通过 workspace_memory_propose 提交的提案存储为 unverified,需要人工 Verify 或 Reject。v0.2 起会话自动写入器按会话从 agent 工具活动派生 fact 记录。支持 Export 导出。

6、Git 标签页(承载 Changes 与 History 两个视图)。顶部是仓库状态头:分支加短 head、dirty/clean、staged/unstaged/untracked 计数、ahead/behind。Changes 按三个区分组、可按状态过滤,提供彩色行号的 unified/split diff、+N −M 统计与复制 diff;History 提供提交列表与逐提交的文件/diff 详情。非 Git 工作区显示干净的 “not a Git repository” 状态。

7、界面细节。三个标签页共享视觉系统,支持自动刷新、友好的空/错误状态、键盘可操作。样式是 scoped 的,不会全局改变 Harness 外壳。全部文案提供英文与中文并跟随 Harness 应用语言,浏览器语言仅作回退。

安装与启用

环境要求:Node >= 22.18.0。

先从本仓库构建插件。npm run build 会把产物写入 lib/,并将 mermaid vendor bundle 复制到 lib/assets/

npm install
npm run build

再在 Harness 项目目录运行注册命令(相对路径按本仓库的检出位置调整)。注册信息会存入本地 Harness profile:

dsh plugin --profile web add ../dsh-workshpace-plugin

然后启动 Web UI,浏览器打开 http://127.0.0.1:3080/:

dsh web

两点提醒:重建插件后需重启 Web UI 才能加载最新 bundle;只有注册或链接路径变化时才需要重新运行 add 命令,重建已链接的插件只需重启。

典型用法

README 给出的使用流程如下:

1、打开 Harness Web UI,选择模型。

2、选择或创建 Workspace-backed session。

3、开始对话,让 agent 创建或检查文件。

4、打开会话视图中的 Workspace 标签页。

5、查看标签页上方的 Sub-agent Trace,跟进本地 Session-backed 子 Agent。

6、按需使用 Artifacts / Memory / Git 标签页。

如果需要本地开发验证,可运行以下命令:

npm test
npm run check
npm run build
npm run smoke:compat

适用场景与注意

适合的开发者:需要在会话过程中或会话结束后核对 agent 行为的人——确认 agent 改了哪些文件、审阅会话产出的 artifacts、处理 agent 提交的 Memory 提案、检查工作区 Git 状态,同时不想离开对话界面。

使用时注意以下几点:

1、Artifacts 和 Memory 读取的是会话级数据而非全局文件列表,需从活跃的 Harness 会话打开 Workspace;Git 视图要求工作区根目录是 Git 仓库。

2、v0.6 之前创建的历史会话无法重新打开。旧版本曾向会话日志持久化自定义 workspace/summary 事件,DSH 的冷持久化路径拒绝加载含未知非可忽略事件类型的日志;受影响日志无法安全重写,这些会话不可恢复,只能删除或新建会话。v0.6 起不再持久化该事件,新会话可正常重新打开。

3、若 Web UI 在 v0.6 重建之前启动,Markdown 图片与 mermaid 图可能不显示,需重启 dsh web 以注册新路由(/workspace/vendor/mermaid.js/workspace/resource 的 Range/ETag)。

4、Memory Export 下载到空 bundle("records":[])仅在会话既无 Memory 也无 agent 文件活动时属预期;活跃会话即使没有手动记录,也会导出自动派生的 facts。

5、旧 Web 进程可能提供缓存 bundle(例如旧浮动面板仍然可见),需停止当前进程并重新运行 npx @deepseek-ai/dsh web

另外必须说明:插件以当前 dsh 进程的权限运行,安装前应检查源码与许可证。该插件的已抓取资料中未提及许可证信息,安装前请自行到仓库确认。想深入了解设计,可参考仓库内的 CONTEXT.md(项目术语)、docs/adr/(架构决策)、docs/DSH_Workspace_PRD.md 与 docs/DSH_Workspace_ARD.md(产品/架构文档),以及 docs/MEMORY_STORAGE.md(Memory 存储细节)。

结尾

dsh-workshpace-plugin 把 agent 会话中分散的文件、artifacts、Memory 与 Git 状态收拢到 Web UI 的一个标签页里,让核对 agent 行为这件事留在对话流程内完成,适合在本地认真使用 DSH 的开发者。

  • 社区目录页:https://www.skillhub.cn/plugins/kaiqiangh/dsh-workshpace-plugin (该目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系)
  • GitHub 仓库:https://github.com/kaiqiangh/dsh-workshpace-plugin
羽毛球分组比赛记分
小程序二维码

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

小夜