安装
在 DeepSeek Harness 里通过 dsh-market 安装
dsh plugin --profile web add dshmarket
或使用命令行
dsh plugin --profile web add github:ruby1304/dsh-preset-anchored-standard
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness(dsh)的 agent preset:把会话的首个请求锚定在官方 Minimal preset 的真实工具对上——持久化 bash + str_replace_editor,并剥离自动注入的工作区/技能上下文——在首个持久晋升信号(一次工具调用或首条助手回复)之后,从 request #2 起开放完整的 Standard 工具目录。
适用于需要 request #1 保持 Minimal 锚定、又不想牺牲后续 Standard 能力的轨迹评测场景。
为什么要做晋升提示
锚定是行为层面的,不只是结构层面的:以纯 shell 开局的模型会保持 bootstrap 阶段 bash 描述教给它的习惯——最典型的是用前台 sleep N + pgrep 轮询长任务——即使工具目录已经悄悄扩全。我们观测到一个被委派的会话用 sleep 240 循环轮询 benchmark 约 90 分钟,而从 request #2 起它的目录里其实已经有 job_output / job_list / job_kill。
因此本 preset 会在晋升的那一步注入一条一次性的 user 角色提示,告知模型完整目录已解锁:超过约 2 分钟的等待应交给后台 job(run_in_background: true + 完成通知),而不是前台轮询。提示只发给本进程确实经历过 bootstrap 阶段的会话——恢复一个早已晋升的旧会话不会被打扰。
安装
作为 bundle 安装(推荐——preset 会在启动时同步进 ~/.dsh/.agent-presets/):
dsh plugin --profile web add "github:ruby1304/dsh-preset-anchored-standard"
手动安装:
git clone https://github.com/ruby1304/dsh-preset-anchored-standard.git
cd dsh-preset-anchored-standard
./install.sh # 把 presets/anchored-standard 拷入 ~/.dsh/.agent-presets/
然后在 preset 选择器里选 Anchored Standard,或在 ~/.dsh/settings.yaml 里设为默认:
agent-presets:
default: anchored-standard
卸载:./uninstall.sh(或 dsh plugin remove 后自行删除 preset 目录)。
配置项
都在 presets/anchored-standard/agent.cordis.yml 的 tool-bootstrap 行里:
| 键 | 默认值 | 含义 |
|---|---|---|
bootstrapTools |
[bash, str_replace_editor] |
request #1 暴露的工具目录。 |
promoteOn |
either |
晋升信号:tool-call、assistant-message 或 either。 |
suppressedContextSources |
[agent-instructions, skill-catalog] |
bootstrap 期间剥离的自动注入上下文([] 关闭过滤器)。 |
bootstrapMaxTokens |
不设置 | 可选的 request #1 输出上限;晋升后显式移除。 |
promotionNotice |
内置文案 | 晋升步的一次性提示:可换自定义字符串,false 关闭。 |
兼容性
基于 dsh 0.1.0-rc.5 开发与测试。preset 仅组合官方 @deepseek-ai/dsh-* 插件和自带的 tool-bootstrap.mjs,无第三方依赖。
开发
node tests/bootstrap-notice.test.mjs # 针对晋升通知逻辑的 mock waterfall 测试
许可证
MIT