apex-standard
DeepSeek V4 系列(Pro / Flash)统一锚定 agent 预设,同时适配 DeepSeek 官方 API 与 opencode-go 订阅接口。
apex-standard 是面向 DeepSeek Harness(dsh)的 agent-plane 预设。其设计目标是:让 V4 Pro 稳定进入训练对齐(RL-aligned)轨迹以发挥能力上限,让 V4 Flash 稳定进入高规划质量的"神模式",同时不牺牲 Standard 预设的完整工具能力,不引入额外模型调用,不注入任何合成消息。
本预设为社区实验项目,与 DeepSeek 官方无关,未获任何官方背书。文中所引实测结论均来自公开仓库的个人测量,不构成跨任务普适性承诺。
1. 项目简介
DeepSeek V4 系列模型对 agent scaffold(系统提示词、API 可见工具目录、上下文注入)高度敏感。公开实测表明:
- V4 Pro 在官方 Minimal 预设(两工具)下可达 99/96(Project2 V4.1b),而在 Standard / PTC 及通用接口下仅 91–93;
- V4 Flash 的能力相对稳健,但默认无引导时陷入"鬼模式"——思考浅、草草动手、交付质量差;补足引导后规划深度可提升一个数量级。
apex-standard 以"两阶段锚定 + 模型感知分流 + epoch 感知管理"为核心机制,在单一预设内同时解决上述两类问题,并兼容 dsh rc.5 / rc.6、Windows / Linux / macOS 三种平台。
2. 功能特性
- 双渠道统一:同一预设覆盖 DeepSeek 官方 API 与 opencode-go 订阅接口,四组模型组合(Pro / Flash × 两渠道)自动适配。
- 模型感知分流:依据路由模型 id 是否含
flash自动选择路径(Pro 路径 / Flash 路径),与 provider 无关,支持手动钉死。 - 两阶段工具锚定:首个请求仅暴露官方 Minimal 预设的真实工具对(
bash+str_replace_editor),首个持久晋升信号后按路径切换目录。 - Pro 常驻目录:晋升后 Pro 保持最小常驻集(锚定对 + 三个发现工具),重型工具经
dev_tool_search按需解锁,避免轨迹回归。 - Flash 神模式 persona:w7 五锚(分类、回顾、反跑题、深度思考、决策闭环)静态挂载,含 P10 收敛绑定,避免"深度思考跑满预算"陷阱。
- rc.6 兼容:不依赖 rc.6 失效的
session/event馈送与agent.inbox;晋升与压缩边界通过 durable 日志增长重扫兜底。 - epoch 感知管理:压缩边界后自动回退受控阶段;解锁集合与一次性提示均按 epoch 重置/重发,长对话轨迹不漂移。
- 零额外调用、零合成消息:无 warmup 轮、无 replay、无注入消息,规避历史上合成消息缺 id 导致的会话历史腐蚀事故。
- 降级纪律:组件缺失、过滤器异常、配置错误均按既定策略降级或快速失败,不使会话瘫痪。
- 全平台:Windows(Git Bash 自动探测)、Linux、macOS;插件零依赖、无网络请求、无遥测。
3. 技术栈
| 组件 | 说明 |
|---|---|
| DeepSeek Harness(dsh) | 0.1.0-rc.5+(rc.6 已适配);agent-plane cordis 组合 |
| 插件实现 | Node.js ESM(.mjs),零第三方依赖 |
| 组合配置 | YAML(agent.cordis.yml / preset.yml) |
| Windows 执行环境 | Git for Windows(custom-bash 自动探测安装位置) |
| 测试 | Node.js 内置模块,node test/smoke.mjs(21 项断言) |
4. 安装
4.1 环境要求
- DeepSeek Harness(dsh)0.1.0-rc.5 及以上(rc.6 已适配);
- Windows 需安装 Git for Windows。
custom-bash自动探测常见安装位置(C:\Program Files\Git、C:\Program Files (x86)\Git、D:\Git、E:\Git、C:\Git、%LOCALAPPDATA%\Programs\Git、scoop),未命中时回退 PATH 中的bash;如需显式指定,取消agent.cordis.yml中custom-bash行的config.bashPath注释; - 以下渠道之一:DeepSeek 官方 API key,或 opencode-go 订阅。
4.2 安装预设
方式一(推荐,直接克隆本仓库):
git clone https://github.com/rinDBeans/dsh-apex-standard.git
# Windows PowerShell: Copy-Item -Recurse .\dsh-apex-standard\preset "$env:USERPROFILE\.dsh\.agent-presets\apex-standard"
# Linux / macOS: cp -r dsh-apex-standard/preset "${DSH_HOME:-$HOME/.dsh}/.agent-presets/apex-standard"
方式二(发布归档):从 zip / tar.gz 解压后,将 preset/ 目录复制到 dsh 用户预设目录:
# Windows PowerShell
Copy-Item -Recurse .\preset "$env:USERPROFILE\.dsh\.agent-presets\apex-standard"
# Linux / macOS
mkdir -p "${DSH_HOME:-$HOME/.dsh}/.agent-presets"
cp -r preset "${DSH_HOME:-$HOME/.dsh}/.agent-presets/apex-standard"
安装后需完全重启 dsh,预设于启动时挂载。
4.3 渠道与模型配置
在 ~/.dsh/settings.yaml 中配置默认模型与预设:
# DeepSeek 官方 API
agent-default-model:
provider: deepseek # 官方渠道,按 dsh 文档配置 API key
model: deepseek-v4-pro # 或 deepseek-v4-flash,自动走对应路径
reasoningEffort: max # 必需:全部上游证据基于 max 档
agent-presets:
default: apex-standard
# opencode-go 订阅
agent-default-model:
provider: opencode-go # endpoint: https://opencode.ai/zen/go/v1
model: deepseek-v4-pro # 或 deepseek-v4-flash,自动走对应路径
reasoningEffort: max
agent-presets:
default: apex-standard
5. 使用方法
5.1 启用
- 完全退出并重启 dsh;
- 创建全新会话,选择预设
Apex Standard (Pro/Flash unified, experimental); - 请勿在活跃会话中切换预设——首请求锚定仅在会话开始时生效。
5.2 验证
导出会话 JSONL,检查 request/header 事件:
- 首请求
tools数组恰好为["bash", "str_replace_editor"]; - 首请求不含 AGENTS.md/CLAUDE.md 摘要与
<available_skills>提醒;Pro 的 system 为 Minimal 原文,Flash 的 system 为神模式五锚; - 首个
tool/call或assistant/message之后:Pro 的下一 header 为常驻集(锚定对 + 三个发现工具),Flash 为完整 Standard 目录; - 若配置了
bootstrapMaxTokens,首请求config.maxTokens记录该值且晋升后被剥离; - 可选:统计 reasoning 词频,锚定生效时
let me趋近于 0、we高频、过程可见回复仅最终一次。
5.3 常见调优
| 场景 | 操作 |
|---|---|
| Flash 连续多轮修改同一文件(相关任务链) | 设 flashGuidance: false |
| Flash 晋升后保持窄目录 | flashPromotedCatalog: resident |
| 渠道模型 id 不含 pro/flash 字样 | forcePath: pro 或 forcePath: flash |
| 首请求锚定不稳的加强手段 | bootstrapMaxTokens: 1024(注意 rc.6 预构建包可能覆盖) |
| 长对话 / 大型工程的 Pro 防偏航 | proDisciplineHint: true |
| 纯 greenfield 创意构建(Pro) | 建议与官方 PTC/code preset 对照使用(见 §9) |
6. 配置说明
配置位于 preset/agent.cordis.yml 首行 apex-bootstrap:
| 键 | 默认值 | 说明 |
|---|---|---|
bootstrapTools |
[bash, str_replace_editor] |
首请求可见工具(Minimal 真实工具对) |
promoteOn |
either |
晋升触发:either / tool-call / assistant-message |
bootstrapMaxTokens |
未设 | 首请求输出上限(opt-in,晋升后显式剥离) |
suppressedContextSources |
[agent-instructions, skill-catalog] |
bootstrap 期剥离的注入源;[] 禁用过滤 |
compactionTools |
[read, edit, glob, grep] |
压缩后、再晋升前的受控工具集 |
forcePath |
auto |
路径钉死:auto / pro / flash |
flashGuidance |
true |
Flash 神模式 persona 开关 |
flashPersona |
内置 w7+deep | 自定义 Flash persona 文本 |
flashPromotedCatalog |
full |
Flash 晋升后目录:full / resident |
includeSubagents |
false |
子代理是否也走 bootstrap 阶段 |
proDisciplineHint |
false |
Pro 晋升后每 epoch 注入一次长任务纪律提示 |
proDisciplineHintText |
内置纪律提示文本 | 自定义提示内容 |
7. 设计原理
7.1 背景问题
综合 xiaobright/modeltest 系列文档与本地触发实验,可归纳为三类问题:
A 类 · 轨迹触发机制:V4 Pro 的首请求工具 schema 决定轨迹——官方 Minimal 工具对(持久 bash + str_replace_editor)在默认 maxTokens 下锚定 5/5,其余 standard 系 schema 全部落入 standard-like 轨迹(11/11);工具提示词语序调整、工具数量增长(+4 起出现、+8 失控)均会触发"Let me"人格;skill 目录与 AGENTS.md 摘要注入会使锚定失效(0/9);压缩重写模型可见面,构成"第二个首请求"。
B 类 · 渠道与运行环境:正式版 Pro 对 scaffold 高度敏感(OpenCode 四跑均值 92.75 vs Minimal 99/96);Windows 无 PTY、rc.6 事件语义变化;Standard 存在 AGENTS.md 重复阅读、工具结果中段截断、搜索失控等部署风险。
C 类 · 模型差异:Flash 由 persona 主导、目录免疫;深度思考指令需绑定收敛指令(否则 0% 收敛);spec 侧 persona 对 greenfield 任务反路由;相关任务链上静态引导为负收益;路由指令本身落入 react 吸引子。
7.2 上游方案对比
| 维度 | anchored-standard | router-standard | v4-flash-godmode | myDshPresets |
|---|---|---|---|---|
| 目标渠道 | DSH 官方 API,Pro | DSH 官方 API,Pro/Flash | opencode-go,Flash | 官方 API + opencode,Pro |
| 核心机制 | 首请求字节级 Minimal 锚定 + 常驻目录 | 任务分类路由 persona + 近距离引导 | w7 persona 静态合并,首调用后全目录 | 首轮 warmup 锚定(生成或重放) |
| 实测成绩 | Project2 98/99 | P1–P23 探针矩阵 | 单任务鬼→神对照 | 单环境观察 |
| 主要短板 | 不处理 Flash;rc.6 晋升可能卡死 | 动态注入 rc.6 失效;greenfield 反路由 | 仅 Flash;全目录倾倒;无 compaction | 零工具锚定不持久;曾发生历史腐蚀事故 |
关键冲突与消解:(1) persona 改与不改——按模型分流:Pro 不改(工具 schema 是其决定变量)、Flash 改(persona 是其决定变量);(2) 晋升后目录规模——Pro 常驻集、Flash 全目录;(3) 零工具 vs 两工具锚定——采用两工具锚定(零成本且轨迹持久);(4) 深度思考锚——绑定收敛指令,并保留 flashGuidance 开关。
7.3 请求生命周期
用户首条消息
│
▼
┌ 请求 #1 ─ bootstrap 阶段 ─────────────────────────────────────┐
│ tools : bash + str_replace_editor(Minimal 真实 schema) │
│ context : 无 AGENTS.md 摘要、无 skill 目录注入 │
│ persona : Pro = Minimal 原文 / Flash = 神模式五锚 │
│ budget : adapter 默认(bootstrapMaxTokens 可选) │
└───────────────────────────────────────────────────────────────┘
│ 首个 durable tool/call 或 assistant/message(promoteOn: either)
▼ 晋升(durable 事件派生,resume/reload 安全,rc.6 重扫兜底)
┌ 请求 #2+ ─ resident 阶段 ─────────────────────────────────────┐
│ Pro : bootstrap 对 + 三个发现工具 + 已解锁工具 │
│ Flash : 完整 Standard 目录(默认;可配 resident) │
│ context : 注入恢复;instruction-hint 提示读取 AGENTS.md │
└───────────────────────────────────────────────────────────────┘
│ compaction/end
▼ 回退受控阶段:bootstrap 对 + compactionTools,直至新晋升信号
7.4 长对话稳定性设计
- 解锁集合 epoch 化:
dev_tool_search解锁仅统计最近一次压缩边界之后的记录,防止常驻目录随多轮压缩单调累积突破工具数阈值。 - 受控目录收紧:压缩后受控工具集为 4 个(
read/edit/glob/grep),锚定对 + 受控集共 6 个,处于实测安全区间。 - 批量解锁引导:
dev_tool_search要求一次调用批量解锁,减少目录变更次数(每次变更都会断开 prompt 前缀缓存)。 - 提示按 epoch 注入:instruction-hint 与 proDisciplineHint 以
会话ID:压缩边界为键,每 epoch 注入一次,避免压缩折叠后静默丢失。 - rc.6 重扫兜底:晋升追踪在 durable 日志增长时自动重扫,晋升与压缩降级在无事件馈送时均正确。
8. 测试
node test/smoke.mjs
test/smoke.mjs 为零依赖冒烟测试,覆盖 21 项断言:双路径锚定、晋升、解锁、压缩回退、解锁不跨 epoch、提示每 epoch 一次、无事件馈送的 rc.6 降级路径、降级目录。全部通过输出 ALL PASS。
9. 已知限制
- 证据边界:98/99 与神模式结论来自单一题面 / 单任务对照(n=2 / n=1),不构成跨任务普适性证明;
- C4 残余风险:Pro 在纯 greenfield 创意构建上存在 spec 侧反路由证据(Mario 6/10 vs PTC 10/10),预设层无代价方案,建议此类任务与官方 PTC/code preset 对照使用;
- C5 相关任务链:Flash 静态引导在紧密相关的任务链上实测为负收益,已提供
flashGuidance: false开关; - 宿主能力边界:compaction 摘要质量、token 计量等属 dsh 宿主能力,agent-plane 无法控制;
- 上游遗留:
custom-bash的timeoutMs配置被声明但未传入 spawn(继承自上游,行为无影响)。
10. 贡献指南
欢迎提交问题(Issue)与改进(Pull Request)。请遵循以下约定:
- 自包含约束:每个预设目录必须自包含;
agent.cordis.yml行仅允许引用./相对路径; - 零依赖与零遥测:插件不得引入第三方运行时依赖,不得发起网络请求或采集遥测;
- 降级纪律:新增过滤器必须提供失败降级路径(保留全部上下文 / 完整目录);
- 测试:修改插件后运行
node test/smoke.mjs,新增行为须补充断言; - 归属:派生自上游 MIT 项目的代码须保留 NOTICE 中的归属声明。
11. 许可证
MIT License。本项目派生自以下 MIT 项目,详见 NOTICE:
- xiaobright/dsh-anchored-standard
- SheberDavid/v4-flash-godmode-opencode-go
- yjh051108/dsh-router-standard
- deepseek-ai/deepseek-harness
12. 致谢
xiaobright/modeltest:Project2 评测方法论与轨迹触发实验;xiaobright/dsh-anchored-standard:两阶段锚定机制;yjh051108/dsh-router-standard:persona 路由研究与 P1–P23 探针;SheberDavid/v4-flash-godmode-opencode-go:Flash 神模式 persona 与 rc.6 适配;0liveiraaa/myDshPresets:warmup 方案及其教训(合成消息 id 事故)。
No comments yet. Be the first to write one.