前言¶
在 DeepSeek Harness(DSH)里跑 Agent 时,会话过程中会读写文件、留下产物、产生子 Agent 轨迹,还可能写入或提议 Workspace Memory。这些信息若全部堆进聊天区,界面很快变得难用。常见做法是切到终端或 IDE 另开窗口查 diff、翻目录、对 Memory 做确认——步骤分散,且与当前会话上下文脱节。
下面介绍 kk-ai-lab 维护的 dsh-workspace-plugin(仓库名 dsh-workshpace-plugin)。它在本地 DSH Web UI 的对话视图里增加 Workspace 标签页,把「Agent 碰过什么、会话产物、受管 Memory、Git 变更」收进同一会话界面,只读查看 Sub-agent Trace,并支持有边界的预览与治理操作,无需离开当前对话。插件在社区目录中归类为「记忆」;当前 GitHub 星标为 1。
这是什么¶
DSH Workspace Plugin 为本地 Harness Web UI 增加与 Trajectory 并列的 Workspace 入口(对话视图行中的唯一入口)。它面向「Workspace backed」会话:在 Agent 工作时产生的文件与状态不占用聊天布局,而是在独立标签里按需汇总与展示。
维护者:kk-ai-lab。版本以仓库 package.json 为准(资料截取时为 0.8.0)。构建要求 Node >=22.18.0。
核心功能¶
以下能力均来自项目 README,按界面结构说明。
会话摘要与 Sub-agent Trace¶
Workspace 标签顶部有会话摘要:按类型统计 Agent 触及的文件、产物、Memory/决策数量、活跃 span 等,按需推导,对已关闭重开的会话与 live 会话行为一致。
摘要下方是只读 Sub-agent Trace:有界的子 Agent descendant 树与选中节点的详情,用于跟踪本地 Session backed 子 Agent;不可用或损坏的子节点会明确标注,而不是显示为空。
Artifacts¶
Artifacts 标签列出会话创建的可交付物:按类型分组、可搜索;列表项展示大小、修改时间、预览状态,支持 copy-path 与一键下载。预览侧支持只读多标签、Markdown(相对路径图片与 mermaid 图)、流式 PDF 等,内容有边界限制。
Memory¶
Memory 标签用于查看与管理项目/会话级 Workspace Memory:创建、验证、固定、归档或遗忘记录;Agent 通过 workspace_memory_propose 提出的条目以 model-suggested 形式出现,在 Verify 或 Reject 之前为未验证状态。每个会话有自动写入的 derived facts(来自 Agent 活动),便于 Export 携带有效信息。存储细节见仓库内 docs/MEMORY_STORAGE.md。
Git¶
Git 标签在非 Git 工作区根目录时显示清晰的「not a Git repository」状态。在 Git 仓库内提供:
- 仓库状态头:分支、dirty/clean、staged / unstaged / untracked 数量、ahead/behind;
- Changes / History 切换:Changes 按 staged / unstaged / untracked 分组,可过滤状态,统一/分栏 diff、行号与
+N −M统计、copy-diff;History 为提交列表及每 commit 的文件与 diff。
其它行为¶
- Artifacts、Memory、Git 共用一套视觉与交互(自动刷新、空态/错误态、键盘可操作)。
- 样式作用域限定在插件内,不改变 Harness 外壳全局样式。
- 界面文案随 Harness 应用语言提供中英文(浏览器语言仅作回退)。
安装与启用¶
插件需从源码构建并注册到本地 Harness checkout,不要凭仓库名自行拼接 dsh plugin add github:... 一类未在文档出现的命令。
在插件仓库目录构建:
npm install
npm run build
在 Harness 项目目录执行注册(路径按你本机 checkout 位置调整):
dsh plugin --profile web add ../dsh-workshpace-plugin
上述命令把 Web 插件注册写入本地 Harness profile。
启动 Web UI:
dsh web
浏览器打开 http://127.0.0.1:3080/。重新 build 插件后需重启 dsh web 才能加载最新 bundle。仅当插件注册或链接路径变更时才需再次执行 dsh plugin --profile web add ...;对已链接插件只 rebuild 时,重启 Web 即可。
开发校验可选用:
npm test
npm run check
npm run build
npm run smoke:compat
npm run build 将可运行包输出到 lib/,Web profile 加载该 bundle。
典型用法¶
- 打开 Harness Web UI 并选择模型。
- 选择或创建一个 Workspace-backed 会话。
- 开始对话,让 Agent 创建或检查文件。
- 打开对话行的 Workspace 标签。
- 在标签页上方的 Sub-agent Trace 中查看本地子 Agent 轨迹。
- 在 Artifacts、Memory、Git 之间切换,完成预览、Memory 治理或 Git 检视。
适用场景与注意¶
适合谁: 经常在 DSH Web 里跑 Agent、需要同屏查看会话产物、Memory 提议与 Git 变更,又不想在聊天流里堆文件内容的开发者。
权限与安全: 插件随当前 dsh 进程权限访问工作区与 Git;安装前应阅读源码与许可证(仓库 package.json 与 GitHub 页面),确认符合你的环境与合规要求。
生态说明: DSH 采用「一切皆插件」思路;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。
排错要点(摘自 README):
- Workspace 标签缺失:rebuild 插件、重启
dsh web;若在 build 前创建过 profile,需重新add插件。 - 仍看到旧版右下角浮动面板:停止旧 Web 进程后重新启动(v0.2 起仅保留 Workspace 标签入口)。
- v0.6 之前创建的某些历史会话可能无法重开(旧版向 session log 写入的
workspace/summary事件与 DSH 冷加载策略冲突);新会话正常,受影响日志无法安全改写,需删除或新建会话。 - Markdown 图片或 mermaid 不显示:v0.6 rebuild 后需重启
dsh web以注册新路由。 - Artifacts 或 Memory 为空:须从活跃 Harness 会话打开 Workspace,数据是会话作用域的。
- Memory Export 为空数组:仅当会话无 Memory 且无 Agent 文件活动时预期如此;有工具活动的会话会由 auto-writer 导出 fact 记录。
结尾¶
dsh-workspace-plugin 把 Workspace 摘要、Sub-agent Trace、Artifacts 预览、Memory 治理和 Git 检视收敛到对话旁的 Workspace 标签,减少在聊天、终端和 IDE 之间来回切换。需要细节时可直接查阅仓库 README 与 docs/DSH_Workspace_PRD.md、docs/DSH_Workspace_ARD.md。