前言¶
DeepSeek Harness(DSH)会把工作区里的指令文件注入智能体会话:用户全局的 ~/.dsh/AGENTS.md,以及沿项目根到工作目录链路上的 AGENTS.md、CLAUDE.md 与对应的 .local.md 覆盖层。日常改这些文件通常要切到编辑器或终端,和 Web 设置、字节预算、加载器发现规则也对不上号。下面介绍社区插件 dsh-agent-instructions-editor(维护者 MaRi23333),它在 DSH Web GUI 的设置里增加「个性化指令」页,对标 Codex 式「个性化」设置,用同一套发现规则集中查看与保存。
这是什么¶
dsh-agent-instructions-editor 是 DSH 客户端类插件(npm 包名 dsh-agent-instructions-editor,当前 README 标明版本 0.2.3,面向 DSH 0.2,适配基线 0.2.0-rc.2)。它在 Settings 侧栏贡献 「个性化指令」 入口,由全局编辑器、项目链浏览器和覆盖层编辑组成,并显示字节预算与「新会话生效」提示。桌面客户端沿用同一 Web 插件界面,无需单独桌面包。
项目地址:GitHub — MaRi23333/dsh-agent-instructions-editor;目录页:skillhub.cn/plugins/MaRi23333/dsh-agent-instructions-editor。本插件为独立社区项目,与 DeepSeek 无隶属或背书关系;DSH 生态以「一切皆插件」为方向,skillhub 等目录为社区站点,并非官方应用商店。
核心功能¶
全局指令¶
设置页提供常驻编辑器,读写 ~/.dsh/AGENTS.md,并显示字节预算(默认 65,536 字节)。
项目指令链¶
项目指令区默认折叠。先通过项目选择器选定目标:自动发现来自工作区注册表与最近会话目录,也可手动粘贴路径。选定后按「项目根 → 工作目录」逐层展示,每一层有四个候选槽位:
AGENTS.mdCLAUDE.mdAGENTS.local.mdCLAUDE.local.md
已存在的文件可点击进入编辑;不存在时可新建。发现逻辑与 @deepseek-ai/dsh-agent-instructions 加载器一致:marker 上溯、祖先链、候选探测、按目录内容 sha1(trim) 去重(重复项在 UI 中带 ⧉ 徽标),字节合计与预算条同样遵循加载器规则。
保存与安全写入¶
写入侧做了约束,避免误写路径与静默覆盖:
- 文件名白名单(上述四个候选)。
- 目录
realpath必须落在已注册项目的「项目根 → 工作目录」祖先链内。 - mtime 冲突检测:若磁盘上的修改时间早于保存请求所带基准,返回 409,可选择重新加载或覆盖。
- 临时文件 + 原子
rename替换;同一dsh web进程内对同一文件的写入在内存队列中串行化。
保存成功后,界面会提示建议新建会话:编辑器不会直接替换已有会话里已加载的指令;已有会话何时重新读取由宿主加载器决定。
宿主 HTTP 与界面¶
Host 半区提供路由 /agent-instructions/api/{projects,chain,file};手动注册的项目列表存在本插件 profile 条目中,经 DSH 0.2 的 SettingsForms 读写,并带 revision 冲突检测。Client 半区向 settings.section 贡献设置页,编辑器为纯 textarea(无额外 UI 依赖)。README 说明当前界面文案以硬编码中文为主(locale 字典已注册,供后续接入 t())。
安装与启用¶
桌面客户端与 Web 实例的插件安装、启用状态相互独立,请按实际运行环境操作。环境要求:DSH 0.2、Node.js 22+、与宿主版本匹配的 DSH CLI;npm 包与 GitHub 发布均含 lib/ 构建产物,一般无需本地构建。
仍使用 DSH 0.1 的用户应保留插件 0.1.2(npm 指定 dsh-agent-instructions-editor@0.1.2),不要直接升级到 0.2.x 系列。
桌面客户端(推荐)¶
- 打开左侧 「插件 / Plugins」,点击 「添加插件 / Add plugin」。
- 输入 npm 包名
dsh-agent-instructions-editor@latest并确认安装。 - 安装完成后点击 「立即启用 / Enable now」(若关闭完成弹窗,插件会留在已安装列表但未启用)。
- 仅在界面提示需要重启时,通过菜单 Quit 完整退出后重新打开(Windows / macOS 上关窗口可能仅隐藏到后台)。
- 打开 Settings,确认侧栏出现 「个性化指令」。
备选:在桌面配套 CLI 已注册且客户端已 Quit 的前提下:
dsh plugin --profile desktop add dsh-agent-instructions-editor@latest
dsh plugin --profile desktop list
然后重新启动桌面客户端。外部 npm 安装的普通 dsh CLI 不能管理 desktop profile。
Web 实例¶
优先使用与启动该 Web 实例相同版本的 dsh CLI:
dsh plugin --profile web add dsh-agent-instructions-editor@latest
停止当前进程后重新运行 dsh web,并刷新浏览器页面。
npm 不可用时,可按 README 从 GitHub 固定 tag 安装:
dsh plugin --profile web add github:MaRi23333/dsh-agent-instructions-editor#v0.2.3
若用 npx 执行安装,版本应与 Web 宿主一致(例如 npx @deepseek-ai/dsh@0.2.0-rc.2 ...)。从 GitHub 或本地目录切回 npm 时,请带上 @latest,避免已有安装被判定为已满足而跳过更新。
典型用法¶
- 安装并启用插件,重启宿主(按界面提示或 README 要求)。
- 进入 Settings → 个性化指令。
- 在 全局指令 区域编辑
~/.dsh/AGENTS.md,留意预算条是否接近默认 65,536 字节上限。 - 展开 项目指令,从选择器选中目标项目(或粘贴项目根路径并完成注册)。
- 在项目链每一层点击已有文件编辑,或对空槽位新建四个白名单文件名之一。
- 保存后若收到 409,说明文件在外部被修改:先 重新加载 合并内容,或确认后 覆盖。
- 新建会话 后再验证智能体是否按新指令行为;不要假设当前会话会热更新。
适用场景与注意¶
适合谁:需要在 DSH 内统一管理全局与多项目指令链、且希望 UI 与官方加载器发现规则一致的用户;习惯 Codex 式「个性化」集中编辑场景的开发者也可对照使用。
运行与信任:插件以当前 DSH 进程权限运行,可读写本机 loopback 上的 API 与所允许路径下的指令文件。安装前建议阅读 源码仓库 与 MIT 许可证,理解 Host 校验(loopback Host 头、POST 的 JSON 与同源 Origin)及写入边界。
已知限制(摘自 README):
- 跨进程无文件锁;外部编辑器与本插件同时保存同一文件时,理论上存在极小竞态,可能与常规编辑器一样丢失一次外部更新。
- 若修改了
dsh-base的 agent-instructions 配置(自定义 markers、候选或预算),编辑器展示会随加载器默认值漂移。 - 指令文件为 symlink 时,读取跟随目标;写入通过 rename 替换 symlink 本身,不会写穿目标。
结尾¶
dsh-agent-instructions-editor 把 DSH 指令文件体系搬进设置页:全局 AGENTS.md、项目链四件套与字节预算一屏可见,保存带路径白名单与 mtime 冲突提示。按需从目录页或 GitHub 安装对应 profile 的包,启用后在 个性化指令 中编辑,并通过新建会话确认生效。