dsh-agent-rules:在设置页统一管理全局 AGENTS 规则

前言

在 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。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye