前言¶
在 DeepSeek Harness(DSH)里做智能体或长期对话时,往往需要一批「每次会话都要遵守」的预设说明:回答格式、语言偏好、项目约定等。常见做法是把内容写进 AGENTS.md 或项目里的 CLAUDE.md,再依赖 DSH 自带的指令加载器在会话开始时注入。手写 Markdown 可以,但条目一多就不方便开关、排序和单独编辑,也容易和插件管理的区块混在一起。
下面介绍社区插件 dsh-agent-rules(维护者 MOS-ink,GitHub:MOS-ink/dsh-agent-rules)。它在 DSH 设置里增加 规则与记忆(Rules & Memory)页面,用列表维护长期规则,写入 ~/.dsh/agent-rules.json,并渲染到 ~/.dsh/AGENTS.md 的受管区块;官方包 @deepseek-ai/dsh-agent-instructions 会在每个新会话的首次请求读取该文件,规则全局生效,且不占用 system prompt 的改写链路。
这是什么¶
dsh-agent-rules 是 DeepSeek Harness 插件,分类为「记忆」。一句话:在设置页统一管理长期预设规则,同步到 ~/.dsh/AGENTS.md,由现有指令加载器按 workspace instructions 注入。
插件不 hook 提示词组装,只维护磁盘上的文件与 JSON 存储,与 DSH「一切皆插件」的扩展方式一致。社区目录页见 skillhub.cn 条目;源码与说明以 GitHub 仓库 为准。目录站点为独立社区索引,与 DeepSeek / 幻方无官方从属关系。
核心行为¶
一份列表、一份文件¶
每次在面板里增删改规则,插件会更新 ~/.dsh/agent-rules.json,并重新渲染 ~/.dsh/AGENTS.md 中 <!-- dsh-agent-rules:start --> 与 <!-- dsh-agent-rules:end --> 之间的内容。
手写内容保留¶
标记块以外的 AGENTS.md 内容不会被覆盖。若检测到块外有手写内容,面板会提供「从 AGENTS.md 导入」到列表的选项。
禁用与删除¶
关闭某条规则(圆点开关)只会让它不再写入 AGENTS.md,文本和 ID 仍留在 JSON 里。删除则从存储和 AGENTS.md 中一并移除。
已打开的对话如何跟上变更¶
新会话启动时会拿到完整规则列表作为 workspace instructions。规则在会话进行中变更后,下一轮只会附带一条提醒:仅包含新增或编辑过的规则;被移除或禁用的规则用一行说明。对比基准来自该对话自身 baseline 消息里解析出的规则,避免重复回放。
面板里展示的上下文来源¶
| 来源 | 加载方 |
|---|---|
~/.dsh/AGENTS.md |
dsh-agent-instructions,用户全局 scope |
~/.agents/AGENTS.md |
共享 agents 根目录;字节级相同时会折叠展示 |
各项目目录下的 CLAUDE.md |
仅项目 scope;用户全局 scope 无 CLAUDE.md |
安装与启用¶
插件以 npm 包名 dsh-agent-rules 发布(当前 package 版本为 0.1.1,MIT 许可证)。安装前建议自行查看仓库源码与许可证;插件在 当前 dsh 进程权限 下运行,会读写用户目录下的 ~/.dsh/ 文件。
从 npm 安装¶
官方 registry 与国内镜像提供同一 tarball:
dsh plugin --profile <name> add dsh-agent-rules
将 <name> 换成你的 profile 名称。若使用本地 checkout,可用 link:<绝对路径> 形式添加,并在 profile 的 package.json 里把 dsh-agent-rules 写入 dsh.profile.bundles,然后重启应用(客户端由宿主加载,仅刷新页面不够)。
从插件市场索引安装¶
在 Discover 里添加索引源后选择对应条目:
https://cdn.jsdelivr.net/gh/MOS-ink/dsh-agent-rules@main/market/index.json
与 CDN 等价的 raw 地址:
https://raw.githubusercontent.com/MOS-ink/dsh-agent-rules/main/market/index.json
典型用法¶
打开 Settings → 规则与记忆(Rules & Memory),在列表中维护规则:
| 操作 | 效果 |
|---|---|
| Add rule | 在列表顶部打开编辑器;保存后同时写入 JSON 与 AGENTS.md |
| 点击规则正文或齿轮 | 就地编辑 |
| 圆点开关 | 禁用但不删除;不再写入 AGENTS.md |
| 垃圾桶 | 从存储和 AGENTS.md 删除 |
| Import from AGENTS.md | 当受管块外存在手写内容时出现 |
存储示例(~/.dsh/agent-rules.json):
{
"version": 1,
"rules": [
{ "id": "r1", "text": "Answer with the conclusion first.", "enabled": true }
]
}
渲染到 ~/.dsh/AGENTS.md 的受管块类似:
<!-- dsh-agent-rules:start -->
- Answer with the conclusion first.
<!-- dsh-agent-rules:end -->
多行规则会作为同一条列表项的续行缩进写入。
适用场景与注意¶
适合需要 跨项目、跨会话 保持同一套全局习惯说明的 DSH 用户,又希望用 UI 管理条目、临时禁用某条而不删原文的场景。若你已经在多个项目里维护 CLAUDE.md,本插件主要管用户级的 ~/.dsh/AGENTS.md;面板仍会展示项目级 CLAUDE.md 等来源供对照。
注意:规则生效路径依赖 DSH 内置的 dsh-agent-instructions 加载行为,而非本插件直接改 system prompt。变更规则后,已进行中的对话靠「增量提醒」同步,行为以 README 描述为准。
结尾¶
dsh-agent-rules 把长期规则从「整文件手改」收成设置页里的一条列表,并与 AGENTS.md 受管区块、官方指令加载器对齐,改动面小、可预期。进一步了解可访问 社区目录页 与 GitHub 仓库 README。