架构设计(对齐 dsh-anchored-standard)

August 15, 2026 · View on GitHub

本版按 dsh-anchored-standard 的 preset 模型重写: persona 由 @deepseek-ai/dsh-personacomplete: true 提供;首轮工具目录由 @dsh-security/bootstrapsystem-prompt/assemble 瀑布中过滤;router 只注册工具,不再注入系统提示段。

0. 定位

  • 领域知识 = 每个领域 bundle 的 references/,通过 read_reference 按需读,不注入 prompt。
  • 工程纪律 = @deepseek-ai/dsh-personacomplete 文本(packages/router/prompt.md 的规范化内容)。
  • 首轮工具锚定 = @dsh-security/bootstrap,首个顶层请求只暴露 pwsh/readbash/read
  • 后续轮次 = 完整 Standard 工具目录 + helmd 路由/领域工具。

1. AI 遇到一个问题的调用链

flowchart TD
  U["用户发来问题"] --> S["agent session / step assembly"]
  S --> A["system-prompt/assemble waterfall"]
  A --> B["@dsh-security/bootstrap 过滤器"]
  B --> B1{"顶层 agent 且首轮未晋升?"}
  B1 -- "是" --> C["工具目录收窄为<br/>pwsh/read 或 bash/read"]
  B1 -- "否 / 子 agent" --> D["完整工具目录"]
  C --> M["模型请求 #1"]
  D --> M2["模型请求(含完整工具)"]
  M2 --> P{"出现第一个 durable<br/>tool/call 或 assistant/message?"}
  P -- "是" --> R["该会话晋升;后续请求完整目录"]
  R --> T["router / 领域 bundle 工具"]
  T --> K["read_reference 按需读 references/"]
  K --> O["模型自主判断,输出带置信度结论"]

顺序说明:

  1. preset 挂载时注册 @deepseek-ai/dsh-persona(complete)与 @dsh-security/bootstrap
  2. 每个 step 组装时,dsh-system-prompt 先按 scope 收集工具,再走 system-prompt/assemble 瀑布。
  3. bootstrap 过滤器读取 assembled.tools,依据会话是否已晋升决定是否裁剪。
  4. 晋升依据 durable session events,默认 promoteOn: either
    • 顶层 agent 首个请求看到 bootstrap 目录;
    • 只要出现过一次 tool/callassistant/message,下一次请求开始看到完整目录;
    • 子 agent(delegationDepth > 0)永远直接看到完整目录。
  5. 完整目录包含 Standard 工具 + @dsh-security/routerskill_catalog / read_reference)+ 各领域 bundle 工具。
  6. 领域知识在 references/,模型按需读取,参考内容不替模型下结论。

置信度:上述调用链基于已安装 rc.6 的 dsh-system-prompt / dsh-agent 类型与参考仓库源码,;仅“rc.6 与参考 rc.5 在行 id/config 上的启动兼容性”需实际启动验证,

2. 三层扩展面

机制内容是否注入 prompt
身份/纪律@deepseek-ai/dsh-persona complete: true工程代理工作规范(中文)是,作为唯一系统提示
工具锚定@dsh-security/bootstrap system-prompt/assemble首轮 shell/read 过滤否,只改工具目录
按需知识router + 领域 bundle 的 ctx.tools.register路由、领域工具、references/否,工具调用时读取

3. 目录结构

helmd/
├── packages/
│   ├── bootstrap/               # 首轮工具锚定(不再做首条消息注入)
│   │   ├── src/index.ts         # system-prompt/assemble 过滤器
│   │   ├── cordis.patch.yml
│   │   └── package.json
│   ├── router/                  # 路由工具(不再注册系统提示段)
│   │   ├── src/index.ts         # skill_catalog / read_reference
│   │   ├── references/
│   │   └── package.json
│   ├── skill-android/           # 领域 bundle
│   ├── skill-web/
│   ├── skill-native/
│   ├── skill-protocol/
│   ├── skill-malware/
│   ├── skill-ai-security/
│   └── skill-evidence/
├── presets/
│   ├── minimal/
│   │   ├── preset.yml
│   │   └── agent.cordis.yml
│   ├── standard/
│   │   ├── preset.yml
│   │   └── agent.cordis.yml
│   └── full-reverse/
│       ├── preset.yml
│       └── agent.cordis.yml
└── docs/

4. 关键组件

4.1 persona(@deepseek-ai/dsh-persona

preset 中:

- id: persona
  name: '@deepseek-ai/dsh-persona'
  config:
    text: |
      # 安全分析工程代理工作规范
      ...
    complete: true
    includeRuntimeContext: false

complete: true 使该文本成为唯一系统提示,压制 harness identity 与 per-tool guidance;工具 schema 与运行时约束仍保留。 includeRuntimeContext: false 不把 runtime context 自动塞进 system prompt,任务和仓库规则交由用户消息与显式文件读取。

4.2 首轮工具锚定(@dsh-security/bootstrap

- id: tool-bootstrap
  name: '@dsh-security/bootstrap'
  config:
    shellTools: [bash, pwsh]
    commonTools: [read]
    promoteOn: either

实现要点:

  • export const inject = ['systemPrompt']
  • 监听 system-prompt/assembleawait next() 后过滤 assembled.tools
  • 仅在未晋升的顶层 agent 上过滤;子 agent、无 agent context、会话已晋升时返回原样。
  • 缺失 bootstrap 工具或过滤异常时降级为完整目录并一次性 warning,不 brick 会话。

4.3 路由工具(@dsh-security/router

  • inject = ['tools']
  • 注册 skill_catalogread_reference
  • 不再 ctx.systemPrompt.section(...)

4.4 领域 bundle

各领域 bundle 保持 ctx.tools.register(defineTool(...)) 结构,工具描述指向 references/,知识不注入 prompt。

4.5 presets

  • minimal:Standard 行 + router + evidence。
  • standard:Standard 行 + router + android/web/native + evidence。
  • full-reverse:Standard 行 + router + 全部领域 bundle + evidence。
  • 每个 preset 都有 preset.yml(name/description/order)和 agent.cordis.yml

5. 与参考仓库的差异

dsh-anchored-standardhelmd
persona text固定英文一句helmd 工程代理工作规范(中文)
bootstrap 插件./tool-bootstrap.mjs@dsh-security/bootstrap(TS,逻辑对齐)
领域能力router + 7 个领域 bundle
preset 数量2(anchored / zero)3(minimal / standard / full-reverse)

6. 验证

  • 安装包 prepare 会执行 tsc -p tsconfig.json,git 安装时自动构建。
  • preset YAML 需用 dsh 的 YAML loader(支持 !!js)解析;PowerShell 脚本已做 UTF-8 无 BOM 写入。
  • 运行时验证:导出 session JSONL,检查首条 request/header 只含 pwsh/readbash/read,后续 header 为完整目录。
  • 未在本机启动 dsh 做端到端验证(无明确启动授权;且当前工作区未安装依赖),该项为残余风险。

7. 结论置信度

  • preset 模型、complete persona、system-prompt/assembleagent/inbox/insertedctx.tools.register(基于本机 rc.6 包源码/类型与参考仓库)。
  • rc.5 参考行 id/config 在本机 rc.6 的启动兼容性:(需实际启动验证)。
  • @dsh-security/* 从 preset 中以 name 行解析:(需包安装进 host 可解析的 node_modules 后验证)。