dsh-agent-manager:在 DSH 里按 Agent 管理人格、知识库与 MCP

前言

DeepSeek Harness(DSH)用 Agent 预设把「选哪个智能体、挂哪些工具、怎么写系统提示」绑在一起。官方预设卡片和设置里,常见做法是围绕某一个 Eli Mode 式单体做配置:人格、知识库注入、工具开关都在同一套界面里完成。当你需要多个角色并行——例如一个偏写作、一个偏检索、各自勾选不同的知识库条目和 MCP 连接——就要反复改预设目录或组合文本,既容易误改 Eli Mode 自带文件,也不方便在 Web 设置里「先选 Agent,再改它的参数」。

下面介绍社区插件 dsh-agent-manager(仓库 let-mi-think/agent-manager)。它在 DSH Web 设置中增加 Agent 管理 分区,并与 dsh-eli-mode 并存,不改动 Eli Mode 的任何文件;知识库读写仍复用 Eli Mode 的 eliKb 服务,可选依赖未安装时,知识库相关 UI 为禁用态,其余配置照常可用。

这是什么

dsh-agent-manager 是 DeepSeek Harness 的多 Agent 管理与配置插件,维护者为 let-mi-think。npm 包名为 dsh-agent-manager,当前版本 0.1.0,许可证 MIT。

它解决的核心问题是:在不动 Eli Mode 的前提下,为每个 Agent 预设单独配置人格 prompt、知识库注入模板与可勾选条目、四个知识库工具的开关,以及 按 Agent 收窄可用 MCP 连接;并支持从现有预设复制蓝本 新建 Agent,新会话即可在预设选择器里看到。

核心功能

设置区与预设卡片

  1. 在 DSH 设置里新增 Agent 管理 分区:流程是 先选 Agent,再配置它(比 Eli Mode 单体配置多一步「多 Agent 选择」)。
  2. 在官方「Agent 预设」卡片上叠加 编辑 按钮,点进该 Agent 的配置(实现方式为 DOM 注入;官方卡片结构变化时按钮可能不显示,独立分区仍可用)。

每个 Agent 可配项

  • 人格 prompt、知识库注入 prompt 模板。
  • 可勾选的知识库条目清单:勾选后把清单注入提示词,正文由 kb_read 按需读取;清单每行格式为 - <条目路径> — <标题>,与 eli-mode 目录页一致。
  • 四个知识库工具的独立开关(执行期拦截;禁用后工具仍可能出现在清单里,调用会被拒绝并返回说明)。
  • 可用哪些 MCP 连接:默认不限制(mcpRestrict 为 false);开启后按勾选的 mcpServers 放行,勾选为空则该 Agent 下 MCP 工具全禁。

新建 Agent

选一个现成预设作蓝本,插件复制其目录并改写组合文件,在 ~/.dsh/.agent-presets/<id>/ 写入侧车 .agent-manager.json(managedBy / blueprintId / createdAt)。删除仅允许带该标记且位于上述目录下的预设,避免误删 eli-mode、wechat 等既有预设。

知识库导入与索引

复用 ~/.dsh/eli-knowledge 与同一份 wiki,不重复实现存储层。面板提供 导入知识库(填绝对路径 → 扫描预览 → 批量导入)和 仅重建索引;eli-kb 在直接拷贝文件到 wiki/ 时不会自动重建根索引 index.md,插件补了这一入口。

导入规则要点:只认 .md / .markdown;跳过各级 index.md、隐藏目录、node_modules 等;默认跳过已存在同名条目(可勾选覆盖);源文件首行不是 # 标题 时会补一行 # <文件名>,因为上游 kb.js 读取时会丢弃首行,否则正文会永久读不到。

中文或非 [a-z0-9-] 段名的条目能否被 读取,取决于 dsh-eli-mode 的 lib/kb.js 是否打了 normalizeId 补丁;未补丁时可能「能列出但读不到」。使用中文条目时需让 Eli Mode 使用打了补丁的版本。

MCP 按 Agent 收窄

数据来源是 DSH 工具注册表(ctx.tools.schemas()),不是 MCP 连接器自己的 status。在预设平面用 ctx.tools.restrict({ deny }) 去掉未勾选连接的工具;订阅 tools/registered 在连接变化后重算;restrict() 失败时只记 warn 并保持不限制,避免预设挂载失败。

安装与启用

宿主要求:dsh 0.1.0-rc.7(见包内 dsh.engines.dsh),Node ^22.19.0 || ^24.0.0。客户端产物 lib/client.js 随包分发,安装时无需构建。

在 Web 配置档下执行:

dsh plugin --profile web add dsh-agent-manager

装完后 重启 dsh web,设置里会出现 Agent 管理 分区。未安装 dsh-eli-mode 时,知识库清单 / 导入 / 重建索引相关功能为禁用态。

典型用法

1. 在 Web 里配置某个 Agent

重启 Web 后打开设置 → Agent 管理 → 选择目标 Agent → 编辑人格、知识库注入模板、勾选条目与工具开关;若需限制 MCP,开启收窄并勾选允许的连接。

2. 从预设卡片进入编辑

在 Agent 预设列表卡片上点 编辑(若按钮未出现,仍可从 Agent 管理分区进入同一配置)。

3. 新建 Agent

在 Agent 管理中选择「新建」,指定蓝本预设与新 id;新 Agent 出现在预设选择器,新会话 生效。

4. 批量导入知识库

Agent 管理头部 导入知识库 → 填写源目录绝对路径(可选落点前缀,如 tripartite/...)→ 扫描 查看 + 新增 / = 已存在 与跳过原因 → 导入 N 项。导入后会自动调用 eliKb.regenerateAllIndexes()。

5. DSH 未运行时维护索引或预览注入

在插件包目录下(资料示例为 PowerShell 环境,Linux/macOS 用 node 同样路径):

node scripts/reindex-kb.mjs
node scripts/preview-injection.mjs [presetId]

已有 wiki 文件首行非标题导致内容丢失时,可在包目录预览或修复:

node scripts/fix-title-lines.mjs
node scripts/fix-title-lines.mjs --apply

配置持久化在 ~/.dsh/settings.yaml 的 agent-manager 段,形状为 agents: { <presetId>: { ... } },不写进预设组合文本。

适用场景与注意

适合谁:已在 DSH Web 使用多 Agent 预设、需要 per-Agent 人格与知识库清单、希望按角色限制 MCP、或要从目录批量初始化 Eli 知识库的团队与个人开发者。

权限与安全:插件以当前 dsh 进程权限 读写 ~/.dsh/settings.yaml、~/.dsh/.agent-presets/ 与(在 Eli Mode 可用时)知识库目录。安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的部署策略。

生态说明:DSH 社区插件目录(如 skillhub.cn)由社区维护,与 DeepSeek / 幻方无官方从属关系;本文安装命令与行为以仓库 README 为准。

已知限制(摘要):预设卡片编辑按钮依赖 DOM 选择器;新建 Agent 直接写预设目录并只做按行修改与 YAML 校验;知识库导入为复制而非双向同步;用 eli-kb remove() 删条目后可能留下仅含 index.md 的空壳目录。

结尾

dsh-agent-manager 把「多 Agent 选择 + 分 Agent 配置」收进 DSH Web 设置,并与 Eli Mode 知识库、官方 MCP 工具注册机制对齐,适合在 Harness 里长期维护多套角色而不改 Eli Mode 本体。

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

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

小夜