Czerror / dsh-plugin-prompt-tool

Listed

DSH 插件:简体中文行为规范三层注入(常驻层 + prompt 技能 + anchored preset 锚定注入)+ Web UI 编辑 prompt.md

mainToolSkill View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:Czerror/dsh-plugin-prompt-tool

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 332291aSynced Aug 17, 2026

提示词工具(dsh-plugin-prompt-tool)

DSH 插件:为 DeepSeek Harness 提供三层提示词规范注入,并通过 Web 界面在线编辑。核心是“最优组合”首轮锚定:保持官方 Minimal(极简)训练分布的首轮条件,在模型轨迹稳定后再恢复完整能力。

来源与参考

项目关系复用内容
xiaobright/dsh-anchored-standard上游,内联快照两阶段首轮锚定、tool-bootstrap、context-gate、resident 目录与按需解锁
yjh051108/dsh-router-standard参考首轮结构、追加任务引导、Flash 弱路由人设与三锚、子代理方案
yjh051108/dsh-super-injector参考缓存铁律、工具面成本原则

上游文件固化在 upstream/dsh-anchored-standard/(含 LICENSENOTICEREVISION), 用 pnpm sync:anchored 更新。

项目说明

  • 常驻层:把 AGENTS.md 作为受管块写入 ~/.dsh/AGENTS.md;开启 injectAgentsPrompt 时,以 instruction-hint 的位置每会话注入一次。
  • 按需层:扫描 skills/*/SKILL.md 注册可开关技能,内容只来自技能自身。
  • 锚定层:生成独立的 ~/.dsh/.agent-presets/prompt-tool/ 预设,承载首轮工具引导、上下文闸门、任务引导注入与提示词注入。
  • Web 界面:自建回环设置桥,在线编辑 preset.mdAGENTS.md,切换全部开关;不占用模型设置区。
  • TUI(终端界面)命令/prompt-tool status 查看状态,/prompt-tool on|off|toggle <开关> 切换。
  • 上游管理:上游 dsh-anchored-standard 以内联快照形式放在 upstream/pnpm sync:anchored 刷新;不再使用 git 子模块。

构建 / 装载

pnpm install
pnpm build          # 生成 lib/
pnpm typecheck      # Host 与 Client 两个 tsc program
pnpm lint           # oxlint
pnpm test           # pnpm build + node --test
pnpm prepare        # npm publish / git install 前自动触发
pnpm sync:anchored  # 从上游 main 刷新内联快照(可加 ref 参数)

安装到 prompt-tool profile:

# 1. 先安装宿主服务(提供 webServer 等本插件依赖的服务)
dsh plugin --profile prompt-tool add @deepseek-ai/dsh-web-app
# 或使用 dsh-tui:dsh plugin --profile prompt-tool add @deepseek-harness-tui/dsh-tui

# 2. npm 安装本插件(官方插件指令,自动加入 profile bundles)
dsh plugin --profile prompt-tool add dsh-plugin-prompt-tool

# 3. 本地开发安装(任选其一,会覆盖上一步的 registry 依赖)
dsh plugin --profile prompt-tool add link:<本仓库绝对路径>

# 4. 启动方式(任选)
dsh --profile prompt-tool
dsh web
dsh-tui

# 卸载
dsh plugin --profile prompt-tool remove dsh-plugin-prompt-tool

本插件声明了 dsh.bundle,所以官方 add 会自动把它追加进 dsh.profile.bundlesdsh-basedsh-web-app 不会由本插件写入。 如果启动时报 waiting for service: webServer,说明该 profile 缺少宿主 服务,先执行第 1 步。等价的 profile 清单如下:

// <DSH_HOME>/profiles/prompt-tool/package.json
"dsh": {
  "profile": {
    "bundles": [
      "@deepseek-ai/dsh-base",
      "@deepseek-ai/dsh-web-app",
      "dsh-plugin-prompt-tool"
    ]
  }
}

临时调试可用官方 --patch 覆盖层(不落盘、不改 profile):

dsh --profile prompt-tool --patch <cordis.yml>

完全重启 dsh 后,新建会话并选择 prompt-tool 预设。

原理

模型的首轮请求结构决定整条会话轨迹。上游实测:官方 Minimal 首轮(训练原句 + 持久 bash + str_replace_editor,无输出封顶)稳定锚定 we 轨迹;完整 Standard 目录与自动注入在场会破坏锚定。

本插件把“首轮轨迹选择”和“后续完整能力”拆开:

  1. 干净首轮context-gate 清空首轮自动上下文并剥离自动注入;tool-bootstrap 只暴露 Minimal 两个工具;router-first-turn 按主会话模型替换 persona——Pro 用训练原句,Flash 自动采用 dsh-router-standard 的 Flash 弱路由人设(build/fix 分类 + 三锚 + 先深想再产出)。
  2. 晋升:首次工具调用或助手回复落地后,目录进入 resident(常驻)集,上下文与注入恢复;工具按需解锁。
  3. 追加任务引导:可选 near-anchor,在首条真实用户消息之后追加一次引导——默认按任务自动选择 we/let 首句,也可固定使用自定义文本。Flash 主会话晋升后,router-guide 还会在每个真实用户消息后追加固定深度引导;首句与每轮分别有独立的自定义开关和文本框。
  4. 提示词注入:we 锚定确认后,把 preset.md 作为用户消息注入一次;未确认最多等一轮兜底。
  5. 子代理:目录直接全量放行(实际仍受调用方工具白名单过滤);开启 subagentFlash 时,采用 dsh-router-standard 的 Flash 方案——固定 Flash 路由、任务分类人设与三锚。

主会话首轮始终只有两个工具;模型性能不受记忆、技能等自动注入影响,完整能力在轨迹稳定后恢复。

配置参考

挂载配置(cordis.patch.yml / profile patch):

- insert:
    - id: prompt-tool
      name: dsh-plugin-prompt-tool
      config:
        text: ''            # 覆盖 preset.md 文本;默认读项目文件
        agentsText: ''      # 覆盖 AGENTS.md 文本;默认读项目文件
        injectAgentsPrompt: false  # 用 AGENTS.md 替换 instruction-hint 提示文本
        writeAgents: true   # 写 ~/.dsh/AGENTS.md 受管块(默认 true)
        writePreset: true   # 启用锚定预设(总开关,默认 true)
        injectPrompt: true  # we 确认后注入 preset.md(默认 true)
        skillSwitches: {}   # 按 skills/* 目录名开关,未列出默认开启
        anchorFirstTurn: false  # 追加任务引导(默认关闭)
        anchorText: ''      # 自定义引导文本(首句)
        anchorCustom: false # 使用自定义引导(首句)
        guideText: ''       # 自定义引导文本(每轮);默认写入自动引导(简单/复杂两段)
        guideCustom: false  # 使用自定义引导(每轮;仅 Flash 主会话晋升后生效)
        subagentFlash: false    # 子代理固定 Flash 模型(默认关闭)
        subagentFlashProvider: 'deepseek-official'
        subagentFlashModel: 'deepseek-v4-flash'
        customBashPath: 'bash.exe'  # 自定义 bash 路径(默认 PATH 查找)
        skillsDir: ''       # 可选技能目录(默认包内 skills/)
        skillRankBase: 250  # 技能候选排序基数
        residentAgentsPath: ''  # 默认 ~/.dsh/AGENTS.md
        presetDir: ''       # 默认 ~/.dsh/.agent-presets/prompt-tool/
        presetOrder: 5      # preset 显示顺序
        fallbackText: ''    # preset.md 缺失或不可读时的回退文本

字段说明:

  • 启用锚定预设:总开关。开启时生成并刷新 ~/.dsh/.agent-presets/prompt-tool/;关闭时移除已生成目录,锚定相关开关失效。
  • 追加任务引导:开启时挂载 near-anchor,在首条真实用户消息后追加一次任务引导。
  • 使用自定义引导(首句):开启时固定使用 anchorText;关闭时按任务自动选择 we/let 首句。开启且文本为空时不注入。
  • 使用自定义引导(每轮):开启时每轮固定使用 guideText,Pro 与 Flash 都注入(便于对照测试);关闭时按任务自动选择快速收敛/深度引导,仅 Flash 主会话晋升后由 router-guide 注入。留空则不注入。
  • 子代理固定 Flash 模型:开启时采用 dsh-router-standard 的 Flash 子代理方案——通用子代理行加固定 Flash 路由、任务分类人设与三锚;宿主直派子代理(含 dsh-mnemon)自动补 Flash 路由,调用方显式模型优先。检测不到 DeepSeek 模型路由时 Web/TUI 禁用,且运行时强制降级为关闭。
  • 自定义 bash 路径:上游若带作者机器固定路径,生成 preset 时归一化为该值,默认 PATH 查找 bash.exe
  • 其他字段语义见上方配置注释;设置文件优先级高于挂载配置,首次安装时用项目文件内容初始化设置。

版权

本项目采用 MIT 许可证。

  • 首轮锚定机制源自 xiaobright/dsh-anchored-standard(MIT),其 preset/ 快照内联于本仓库 upstream/,对应上游提交记录见 REVISION
  • 任务引导与 Flash 子代理方案参考 yjh051108/dsh-router-standard(MIT)。
  • 缓存与工具面成本原则参考 yjh051108/dsh-super-injector(MIT)。
  • 上游 agent.cordis.yml 基于 DeepSeek Harness Standard 预设修改;原始 DeepSeek 版权与 MIT 声明保留在 upstream/dsh-anchored-standard/NOTICELICENSE
  • 本项目 LICENSE 见仓库根目录;随上游快照发布的 upstream/dsh-anchored-standard/LICENSENOTICE 继续保留。

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected

Repository information

Language
JavaScript
License
MIT
Last updated
Aug 17, 2026, 6:04 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.