Tyan66666/billion-context-dsh ↗★ 123

billion-context-dsh

提供模型驱动的ACP主动上下文裁剪与管理引擎。 适合超长上下文对话,需要由模型智能修剪历史以维持窗口效率的任务。

包名
billion-context-dsh
兼容性
待验证
Harness 依赖范围
>=0.1.5-alpha.1 <0.1.6-0
Cordis 依赖范围
^4.0.1
版本
0.2.26
许可证
MIT
最近更新
2026年10月1日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Tyan66666/billion-context-dsh

配置

键默认值含义
modelContextLimit自动探测(回退 128000)用于内核压力决策的上下文窗口;显式配置时优先且跳过探测。省略时优先读宿主会话投影 contextPressure.contextWindow(按当前真实路由披露的新窗口,切模型会话自动跟随,无需重启),无投影时再从模型 API 探测;显式配置同样跳过输出预留扣减(分母完全由操作者定义)(运行时热调:/acp-prune config)
autoModelContextLimittrue从模型 API 自动探测真实窗口(agent.ctx.llm.resolveModelInfo);探测失败回退默认值,/acp-prune 命令展示窗口来源(模型工具 acp_status 不含窗口信息)。省略时窗口先读宿主投影(windowFor → projectedContextWindow,src/window.ts)再走探测;投影与探测在 autoModelContextLimit: false 时均跳过。探测失败会在宿主日志与 /acp-prune 面板提示(restart to re-probe)——失败结果同样被缓存,修复网关后需重启或显式设置 modelContextLimit 才会重新探测。探测成功后还会扣减 adapter 的每请求输出上限(defaultMaxTokens,窗口末端每请求保证的输出预留):所有下游压力决策(nudge 档位、truncate、growth)以「可持续输入预算」(窗口 − 输出预留)为分母——96K 窗口 + 16K 上限实际最多承载 80K 输入,原裸窗口分母会把用量低估 cap/window(此处 ≈17%;小上下文窗口模型比例更高);上限未披露、显式配置或探测失败时保持裸窗口行为,/acp-prune status 展示扣减明细(raw − reservation)。经 /acp-prune config 改动 modelContextLimit/autoModelContextLimit 会清空窗口缓存,改完即重探
nudgeMinContextLimitPct内核默认 0.45Nudge 窗口下界(用量占比)——仅作配置校验,增长路径的触发没有百分比下限——与 billion-context-pi 相同的默认值(运行时热调:/acp-prune config)
nudgeMaxContextLimitPctengine 默认 0.70(内核/pi 默认 0.75)过限线:超过此值则无论增长与否都触发 nudge——刻意低于宿主 compaction-basic 的 80% 自动压缩线,保证强制 nudge 先触发;显式配置优先(coreOverrides.nudge 同名键优先级更高,见下)(运行时热调:/acp-prune config)
nudgeEmergencyThresholdPctengine 默认 0.85(内核/pi 默认 0.95)紧急 nudge(绕过每轮去重,但每个 user turn 最多注入 3 次——issue #108)——从 0.95 下调:95% 时模型已无操作空间且会被 80% 自动压缩线遮蔽;显式配置优先(coreOverrides.nudge 同名键优先级更高,见下)(运行时热调:/acp-prune config)
preset—(可选)一句话选择 nudge 的激进程度:preserve / relaxed / balanced / efficient / aggressive(详见下文「预设」)。只填充你未显式设置的三个 nudge 阈值,优先级 显式值 > preset > engine 默认;未知名称在构造期报错,与显式阈值合并后若窗口反向(min / max / emergency 顺序错误)同样在构造期报错。不影响其他键(modelContextLimit / autoNudge / prompts / coreOverrides) (组合行专用:preset 尚未接入 /acp-prune config,见 issue #75 后续)
coreOverrides—任何其他 acp-kernel Config 覆盖(billion-context-pi 的 coreOverrides 逃生口)。合并顺序:内核默认 → 顶层 pct 配置 → coreOverrides.nudge 最后落地——同名键以它为准(只读:组合行专用,不经 settings 层)
autoToolstrue在 ctx.tools 注册四个模型工具
autoCommandtrue在 ctx.commands 注册 /acp-prune 命令
autoNudgetrue当内核建议时向 agent/pre-step 注入 nudge(运行时热调:/acp-prune config)
maxOverflowRetries1宿主确认的上下文超窗(CONTEXT_WINDOW_EXCEEDED)自动抢救预算:超窗时引擎挑一段最大且合规的范围做一次紧急压缩(摘要是引擎自己写的标记,不调模型——请求刚被拒,本就没有模型回合可写摘要;原文都留在日志里,search_context/decompress 找得回来),然后应答宿主的 agent/request-error 让该请求重试。预算按请求计数,模型有进展(落一条 assistant 消息)或 agent 回到 idle 即重置;0 关闭这个自动动作(错误原样抛给用户)。这是 ACP 唯一的自动压缩动作——压力侧始终只 nudge、由模型决定(组合行专用,不进 settings 层;原理与取舍见 docs/overflow-recovery-design.md)
settingsEnabledtrue(未配置即启用)(可选)整体关闭运行时设置集成(组合行专用,不进 settings 层——开关不能关掉自己;关闭后组合行 config: 仍是唯一生效通道)
prompts—(可选)自定义提示词文案:nudge / 范围表 / system prompt / 工具描述按槽位覆盖(模板 + 命名占位符,构造期校验;见上文「自定义提示词文案」与 docs/configurable-prompts-design.md)