dsh-micro-inversion-standard
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 24, 2026
- Updated
- Aug 24, 2026
Introduction
dsh-micro-inversion-standard(微逆标准模式)
一个可复用的 DSH Agent Preset:双阶段、Token 精益的编码智能体模式。
核心目标:把模型思维链的起手习惯从 "let me" 翻转为 "we need",同时把上下文占用与 Token 消耗压到最低,并保持供应商 KV Cache 对未变前缀持续命中。
这是 DSH Agent Preset(预设),不是 web profile 插件。DSH 通过扫描
<dshHome>/.agent-presets/<id>/目录来发现预设(dsh-agent-presets的includeUserRoot默认开启),因此"安装"就是把本仓库的preset/目录原样 放进该位置,然后重启dsh web。
四项核心能力
- 首轮锚定(Bootstrap) — 第一条请求只暴露 Minimal 双工具
(持久 shell
bash/pwsh+str_replace_editor),系统提示词只留 persona 与 "we need" 推理协议,输出预算钳制在 1024 token,强制第一条推理块以 "we need …" 起手。 - 动态晋升(Dynamic Promotion) — 同一 Session 内,首次工具调用或首次 实质性回复后立即解锁完整标准工具目录(fs / 检索 / jobs / skills / goals / plan / subagents / workflows / ask-user / todo / web …),恢复全部提示词 sections 与运行时上下文;compaction 后重置回受控阶段,等新的晋升信号。
- 上下文瘦身(Context Slimming) —
tools/post-execute把超过 8192 字符 的工具结果裁剪为 头4096 + 标记 + 尾1024,全文落盘为会话作用域 spill artifact 并在标记中给出真实路径;agent/pre-step在 token 压力达到路由模型窗口 80% 时把请求面中段消息替换为一条恒定标记(持久日志保留全文,/compact负责持久摘要)。 - Token / KV Cache 优化 — 两个阶段的系统提示词与工具目录各自字节级稳定, 新内容只追加在尾部,裁剪只替换连续中段,未变前缀始终可被供应商缓存命中。
目录结构
micro-inversion-standard/
├── preset/ ← 直接安装的预设目录(整体复制)
│ ├── preset.yml ← 选择器元数据(name / description)
│ ├── agent.cordis.yml ← Agent 平面组合(persona + 双钩子 + 标准目录)
│ ├── tool-bootstrap.mjs ← 阶段一锚定 + 动态晋升状态机
│ ├── context-slimmer.mjs ← 结果裁剪/落盘 + 80% 压力中段压缩
│ ├── NOTICE.md ← 实现说明(四项需求如何落地)
│ └── TEST.md ← 验收测试脚本
├── install.ps1 ← Windows 安装脚本
├── install.sh ← POSIX 安装脚本
├── README.md
├── LICENSE ← MIT(含 dsh-anchored-standard 归属)
├── CHANGELOG.md
└── package.json ← npm 发布元数据(默认 private)
agent.cordis.yml 里的两个钩子行名是 ./tool-bootstrap.mjs?v=N、
./context-slimmer.mjs?v=N(相对路径 + 缓存戳),所以 preset/ 必须整目录
原样复制,不能只拷组合文件。
安装
方式 A:克隆仓库后运行安装脚本
git clone https://github.com/Shizuku-keop/dsh-micro-inversion-standard.git
cd dsh-micro-inversion-standard
Windows(PowerShell):
powershell -ExecutionPolicy Bypass -File .\install.ps1
POSIX(bash):
sh ./install.sh
脚本会把 preset/ 复制到 %USERPROFILE%\.dsh\.agent-presets\micro-inversion-standard
(POSIX 为 $HOME/.dsh/.agent-presets/micro-inversion-standard)。
方式 B:手动复制
把本仓库 preset/ 目录整体复制为:
<dshHome>/.agent-presets/micro-inversion-standard/
Windows 默认 dshHome = %USERPROFILE%\.dsh,POSIX 默认 = $HOME/.dsh。
(若部署配置了其它 preset root,以 dsh-agent-presets roster 报告的路径为准。)
安装后
- 重启
dsh web(roster 按需扫描用户根目录,新预设需要重启才可见); - 新建会话,在预设选择器里选 「微逆标准模式 (Micro-Inversion Standard)」;
- 第一条请求应只看到
bash/pwsh+str_replace_editor两个工具,推理以 "we need" 起手;首次工具调用或首次回复后工具目录立即变为完整标准目录。
快速验收(30 秒版)
- 新会话发送
请用 pwsh 运行 Get-Location(POSIX 平台把 pwsh 换成 bash); - 看第一条请求的工具清单是否为 2 个、推理是否以 "we need" 开头;
- 工具调用之后,下一条回复的工具目录应立即变为完整目录;
- 再发一个输出 >8192 字符的命令(如
1..3000 | ForEach-Object { "Line $_" }), 应看到[... micro-inversion: … trimmed …]裁剪标记 +Full result:真实路径。
完整验收脚本见 preset/TEST.md(含会话日志 request/header 线缆级验证方法)。
配置旋钮
在 preset/agent.cordis.yml 中修改:
- tool-bootstrap:
shellTools/commonTools/messageSources/anchorGate(默认关,开则要求首个推理块含 "we" 且无 "let me" 才晋升)/maxBootstrapSteps/promoteAfterFirstResponse/bootstrapMaxTokens/compactionTools/deferredSources/deferredGraceSteps/instructionHint。 - context-slimmer:
resultTrimThresholdChars(8192)/resultHeadChars(4096)/resultTailChars(1024)/pressureRatio(0.8)/surfaceHeadChars/surfaceTailChars/spillResults(默认开)/spillTrimmedSurface(默认关)/skipTools。
改完 .mjs 后,把组合文件里对应行的 ?v=N 缓存戳加 1(破 Node ESM 模块缓存),
再重启 dsh web。详见 preset/NOTICE.md。
卸载
Remove-Item -Recurse -Force "$env:USERPROFILE\.dsh\.agent-presets\micro-inversion-standard"
(POSIX:rm -rf "$HOME/.dsh/.agent-presets/micro-inversion-standard")然后重启
dsh web。删除不影响任何已运行会话;新会话不再出现该预设。
兼容性
- 面向 dsh
0.1.1-rc.x(web profile);依赖dsh-agent-presets默认的includeUserRoot(未改配置即可)。 - 钩子消费的事件/服务:
system-prompt/assemble、agent/pre-step、agent/request、tools/post-execute、session/event(均为 prepend 监听);tools/systemPrompt注入,spillStore/tokenMeter/llm走ctx.get(缺失即降级,绝不阻塞请求)。 - 阈值与压力口径与
dsh-compaction-basic一致(0.8 /totalTokens/contextWindow)。
许可与归属
MIT。tool-bootstrap.mjs 改编自 liangshen preset 的
tool-bootstrap.mjs(其本身衍生自 xiaobright/dsh-anchored-standard,
MIT),去掉了 PTC-Mode 代码呈现机制,保留并改写了锚定/晋升状态机。