dsh-plugin-open-source-first:将开源复用优先原则注入 DSH 系统提示词

前言

在 DSH(DeepSeek Harness)的开发中,系统提示词(system prompt)的顺序决定了指令的优先级。当前 DSH 0.2.1-rc.2 的内置顺序中,persona(order 0)之后是 plan/team 策略(order 500/600),再往后才是工具引导(order 1000+)。这意味着任何外部插件只要将 section 的 order 设在 0~1000 之间,就能在工具调用之前介入决策流程。

现有插件要么提供固定规则(如 openharness-core-rule 的五条铁律),要么只提供工具(如 dsh-find-plugin 的插件检索能力),没有插件将「先搜索、再决策、最后才造」的开源复用优先原则以可配置的方式注入到 system prompt 中。wjc300000000-beep/dsh-plugin-open-source-first 正是为填补这一空白而设计。

插件定位

这是一款工作流插件,通过在 DSH 系统提示词中插入一个高优先级 section(order 50),强制执行「搜索 → 三级评估 → 构造」的开源复用优先工序。插件本身是纯 host 插件,零运行时依赖,不引入任何 client 或 UI 代码。它只在真实 agent 装配时渲染,避免污染非 agent 的 assemble() 调用。

插件维护者为 wjc300000-beep。插件本身不直接实现搜索或构建功能,而是通过收紧条款引导 agent 优先使用 dsh-find-plugin 提供的 find_dsh_plugin 工具进行插件生态检索。

核心功能

1. 注入开源复用优先规则

插件通过 ctx.systemPrompt.section({ name, order: 50, text }) 注册一个全局唯一的 section,名称默认为 open-source-first:rule。规则正文定义了三步流程:先搜索现有开源方案,再进行三级评估,最后才决定是否从零构建。这条规则会出现在 persona 之后、plan/team 策略和工具引导之前,确保在工具调用前就先执行「搜索」这一前置工序。

2. 自动检测与收紧条款

插件会自动检测 dsh-find-plugin 提供的 find_dsh_plugin 工具。如果检测到该工具存在,就会追加一条收紧条款,要求「插件生态检索必须优先使用 find_dsh_plugin」。如果不希望追加此条款,可以在配置中设置 findPluginTool: false。

3. 可审计的注入

注入的规则正文存储在 lib/index.js 的 RULE_TEXT 常量中。DSH 会把渲染后的 system prompt 写进会话日志的 system/message 事件,可以通过日志确认规则是否被成功注入。插件也提供了集成测试脚本,可以挂载真实的 @deepseek-ai/dsh-system-prompt 服务进行自检。

安装与启用

安装命令(desktop profile)

桌面版使用应用自带的 CLI。普通 npm 安装的 dsh 命令会把 desktop 判为「由 Electron 应用独占管理」而拒绝,因此需要使用应用自带 CLI。

# 1. 在插件目录打包
cd dsh-plugin-open-source-first
npm pack                     # 产出 dsh-plugin-open-source-first-0.1.0.tgz

# 2. 用应用自带 CLI 安装;--profile desktop 即当前桌面配置
DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
"$DSH" plugin --profile desktop add ./dsh-plugin-open-source-first-0.1.0.tgz

也可以直接安装目录(pnpm 会建 link: 依赖):

"$DSH" plugin --profile desktop add /absolute/path/to/dsh-plugin-open-source-first

也可以直接从 GitHub 安装(仓库无构建步骤、无运行时依赖):

"$DSH" plugin --profile desktop add github:wjc300000000-beep/dsh-plugin-open-source-first

安装后需要彻底退出应用(⌘Q)再重开,让 host 模块重新加载。

卸载

"$DSH" plugin --profile desktop remove dsh-plugin-open-source-first

然后重启应用;必要时在 Plugins 页确认 bundle 已取消选择。

配置

bundle patch 里默认已写入 order: 50。要覆盖配置,在 ~/.dsh/profiles/desktop/cordis.patch.yml 追加一个按 id 定位的 patch 层:

- id: open-source-first
  config:
    enabled: true
    order: 50
    # sectionName: 'open-source-first:rule'
    # findPluginTool: find_dsh_plugin   # 强制指定;false 关闭收紧条款
字段 默认 含义
enabled true 设为 false 时不注册任何 section
order 50 必须为有限数字;改动后需重载 profile
sectionName open-source-first:rule 全局唯一;与其他插件撞名时改这里
findPluginTool 自动检测 字符串:强制使用该工具名;false:不追加收紧条款;不填:检测 ctx.tools.get('find_dsh_plugin', agent)

典型用法

验证注入是否生效

在对话框直接问:「系统提示里有没有『开源复用优先原则』这条?请复述三步流程。」模型能复述即注入成功(软约束:注入一定发生,是否严格遵守无法 100% 保证)。

查会话日志

DSH 会把渲染后的 system prompt 写进会话日志的 system/message 事件:

S=~/.dsh/sessions/--Users-ether-Documents-deepseek-harness-default-workspace--/<session-id>/session.v4.jsonl.zstd
zstdcat "$S" | grep -c "开源复用优先原则"

跑真实服务集成测试

不启动应用、不调用 LLM,直接挂载真实的 @deepseek-ai/dsh-system-prompt 服务做装配:

ELECTRON_RUN_AS_NODE=1 "/Applications/DeepSeek Harness.app/Contents/MacOS/DeepSeek Harness" \
  --expose-internals scripts/verify-in-app.mjs

实测输出:

OK  live assembly order: deployment:persona-prefix -> open-source-first:rule -> verify:plan-marker -> verify:tool-marker -> deployment:persona-suffix
OK  rule length: 1401 chars

适用场景与注意

这款插件适合需要在 DSH 中强制执行「先搜索、再决策、最后才造」开发流程的开发者。它特别适合以下场景:

  • 需要系统化地降低重复造轮子的团队
  • 需要可审计的系统提示词变更流程
  • 已经使用或计划使用 dsh-find-plugin 进行插件生态检索的场景

插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。插件采用 MIT 许可证,挂载模式参考 MIT 许可的 openharness-core-rule;规则正文为本仓库原创。

生态背景

DSH 的理念是「一切皆插件」,社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。本插件与现有的 dsh-find-plugin 互补而非重复:前者提供 find_dsh_plugin 工具用于实时搜 GitHub dsh-plugin topic,后者通过收紧条款引导优先使用该工具。

如果不想装插件,还有两条替代方案:在 ~/.dsh/profiles/desktop/cordis.patch.yml 中覆盖 system-prompt 的 personaPrefix,或写进 $DSH_HOME/AGENTS.md 作为 user 角色的持久上下文。但这两条都不具备 context.agent gating 和可配置的 order,不适合需要硬约束的场景。

总结

dsh-plugin-open-source-first 通过在 DSH 系统提示词中插入一个高优先级的 section,将「先搜索、再决策、最后才造」的开源复用优先原则注入到开发流程中。它不提供搜索或构建能力,而是通过收紧条款引导 agent 优先使用 dsh-find-plugin 工具。插件采用纯 host 实现,零运行时依赖,安装后需重开应用才能生效。

插件目录:https://www.skillhub.cn/plugins/wjc300000000-beep/dsh-plugin-open-source-first
GitHub:https://github.com/wjc300000000-beep/dsh-plugin-open-source-first

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

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

小夜