前言¶
DeepSeek Harness(DSH)在每个会话开始时,会把与 AGENTS.md 兼容的指令文件注入给 agent:一份用户全局文件,加上按工作区解析出的项目链。平时改这些内容,往往要开外部编辑器或进终端,一次只对一个路径动手,切换工作区时也容易漏改。
Agent Prompt(icrefin/dsh-agent-prompt)把同一套「Harness 实际会读的文件」收进 GUI 左侧边栏的一个面板:左侧是全局与各工作区的文件树,右侧是纯文本编辑器,保存后写下的字节就是下个会话 agent 会读到的内容。维护者为 icrefin,在 SkillHub 目录中归类为客户端插件;当前发布版本为 v0.1.0,面向 dsh 0.2.0-rc.2 生态。
这是什么¶
一句话:在 DeepSeek Harness 图形界面里,集中编辑用户全局与各工作区对应的 AGENTS.md,路径解析规则与官方包 @deepseek-ai/dsh-agent-instructions 一致。
插件不提供 Loader 配置项,也没有独立设置页——磁盘上的文件本身就是状态。
核心功能¶
界面与入口¶
- 侧边栏图标栏新增一行 Agent Prompt,位置在 Schedules 正下方(
sidebar.panellist,id: 'agentPrompt',order: 11)。 - 点击后打开 Agent Prompt 主页面:左侧树列出 GLOBAL(User-global) 与每个已注册 WORKSPACES 节点,带工作区过滤;右侧为等宽字体的纯文本编辑区(无 Markdown 预览、无语法高亮)。
- 每个节点展示解析后的绝对路径;文件尚不存在时标记为
not created,保存时会创建文件及缺失的父目录。
编辑哪些文件¶
| 作用域 | 解析规则 |
|---|---|
| 用户全局 | $DSH_HOME/AGENTS.md,未设置时回退到 ~/.dsh/AGENTS.md(空字符串的 $DSH_HOME 视为未设置) |
| 某个工作区 | 从已注册工作区目录向上查找,直到第一个含 .git 的祖先目录;目标文件为 <该目录>/AGENTS.md。若一路无标记,则止于工作区目录本身 |
Monorepo 中若工作区目录与 Git 仓库根不一致,树节点显示的是仓库根,而不是包目录。
范围说明: 面板只提供 AGENTS.md。加载器在项目链各层还支持 CLAUDE.md、AGENTS.local.md、CLAUDE.local.md,本插件刻意不编辑这些文件。
编辑器操作¶
| 操作 | 快捷键 / 说明 |
|---|---|
| Save | Ctrl+S(macOS 为 ⌘S),全页有效;草稿与磁盘一致前按钮禁用 |
| Reload | 丢弃草稿并重新读盘;有未保存修改时会确认 |
| Undo / Redo | 系统原生撤销;本地历史,连续输入折叠为一步 |
| Wrap | 软换行开关,偏好保存在 localStorage |
切换文件或关闭页面前,若有未保存修改会提示。剪贴板依赖系统快捷键(Ctrl+C / Ctrl+V 等),面板不提供重复按钮。
宿主 HTTP API(供集成或排查)¶
路由注册在 ctx.webServer,并带仅限回环访问限制;写操作会改写 agent 读取的指令文件,不宜在暴露于局域网的 dsh web 部署中开放。请求体上限为 4 MiB。
GET /api/agent-prompt/tree
GET /api/agent-prompt/file?key=global|ws:<workspaceId>
POST /api/agent-prompt/file { key, content }
key 为 global 或 ws:<workspaceId>,工作区 id 必须已在 DSH 注册;未知 id 返回 404。
安装与启用¶
桌面 profile 由 Electron 应用管理,不能用 dsh plugin add 安装(该命令会拒绝此 profile)。应通过 Settings → Plugins(或插件管理器)添加本地打包产物。
从源码构建并打包:
pnpm install
pnpm build # tsc -> lib/, tsdown -> lib/client.js
npm pack --pack-destination dist # dist/dsh-agent-prompt-0.1.0.tgz
在 Plugins 页面添加 dist/dsh-agent-prompt-0.1.0.tgz。bundle 会写入 profile 的 dsh.profile.bundles;cordis.patch.yml 挂载宿主侧,dsh.client manifest 加载浏览器侧。
运维上两点:
- 同一版本号重装不会替换已解压内容。 若在同一版本下重新构建了 tarball,需先从 profile 移除该 bundle 再安装,或提高
package.json中的版本号。 - 首次安装通常无需重启;之后若改动涉及宿主侧路由等,需重启 DSH 进程。 浏览器 bundle 会随 revision 热更新,宿主 ESM 在进程启动时加载,与
@deepseek-ai/dsh-hmr文档描述一致。若条目报failed to import,可尝试重启。
构建环境要求 Node >= 22.17.0(见仓库 package.json 的 engines)。
典型用法¶
- 启动已安装插件的 DSH 桌面应用,在左侧图标栏选择 Agent Prompt。
- 在树中选择 User-global(例如
~/.dsh/AGENTS.md)或某个工作区节点,在右侧编辑通用或项目级 agent 指令。 - 按 Save 或
Ctrl+S写入;状态栏会反映行数、字符数及是否已保存。 - 新开 agent 会话时,Harness 按
@deepseek-ai/dsh-agent-instructions规则加载刚写入的内容。
若需放弃本地修改,使用 Reload;若在外部编辑器改过同一文件,应 Reload 后再编辑,否则 Save 会直接覆盖(面板不做 mtime 合并)。
适用场景与注意¶
适合谁: 经常在多个 DSH 工作区之间切换、需要维护全局与各仓库 AGENTS.md 的开发者;希望在不离开 Harness 窗口的情况下核对「agent 下次会话实际读到的路径与内容」的用户。
权限与安全: 插件以当前 dsh 进程权限运行。写路由可创建或覆盖本机上的 AGENTS.md;README 指出这些 API 对回环地址可达,且不受 SPA ?token= 启动令牌保护(具名路由先于需认证的 SPA 回退匹配)。安装前应阅读 GitHub 仓库 源码与 MIT LICENSE。
其他限制:
- 页面打开期间不会自动感知外部对同一文件的修改;保存即覆盖。
- 未注册
workspaceRegistry时,全局文件仍可用,按工作区的目标可能返回 503。 - 若在
agent-instructions配置中固定了与$DSH_HOME || ~/.dsh不同的dshHome,面板显示路径可能与加载器不一致(默认组合仅设置maxBytes,一般无此问题)。
DSH 社区奉行「一切皆插件」;SkillHub 目录 是独立社区站点,与 DeepSeek / 幻方无官方从属关系。
参考链接¶
- 目录页:https://www.skillhub.cn/plugins/icrefin/dsh-agent-prompt
- 源码与文档:https://github.com/icrefin/dsh-agent-prompt
- 中文 README:https://github.com/icrefin/dsh-agent-prompt/blob/main/README.zh-CN.md
若你已在 Harness 里用 AGENTS.md 约束 agent 行为,把编辑入口收进侧边栏,可以减少在外部编辑器与终端路径之间来回切换的次数。