跳转至

上下文预算、事实投影与渐进加载

  • 沉淀时间:2026-09-09
  • 来源:IK6EG0 / PR #8;IK7LI3;feat/evidence-projection、feat/IK7LI3-task-dispatch-poc
  • 成熟度:provisional
  • 适用范围:工具输出较大、模型上下文受限、工作流包含多阶段证据的 Agent

触发证据

一次分布式 SQL 优化中,baseline 和 table context 把完整 JSON 打到 stdout,分别增加约 15K 和 12K token。工作流读取规则前已越过 50K。后续实验又证明,只压缩 stdout 仍不足:总控 Skill、规则库和多个子 Skill 也会常驻上下文。

分层解决

1. 磁盘保留完整证据,stdout 只输出事实投影

完整证据:rows、DDL、分区信息、执行明细 → 文件
事实投影:耗时、行数、列、路由、比较结论 → stdout
                                            ↓
                                   evidence_ref 回指文件

投影由脚本机械映射,不能由 LLM 自由摘要。这样可以减少上下文,同时避免模型把 false 解释成相反事实。

2. 缺口驱动回读

默认使用投影推进。只有投影明确给出证据缺口,当前决策又依赖该字段时,才通过 evidence_ref 回读完整文件。不得因为对话遗忘或摘要丢失就重新执行数据库采集。

3. 规则预筛

用确定性 SQL 指纹先筛候选规则,再让模型做严格判定。规则正文仍是唯一真相源,指纹索引只负责缩小读取面,不能替代规则内容。

4. Skill 渐进加载

总控 Skill 常驻最小状态机。生成、审查和异常处理的详细规则放在 reference 中,走到对应阶段才加载。不要在正常路径预读全部 reference,也不要反复读取自身。

5. 按证据边界拆子 Agent

拆分轴应是“这个角色需要吞多少独立证据并产出什么”,而不是“目录里是否已有子 Skill”。子 Agent 输入使用明确文件路径,输出使用窄 JSON 契约;主 Agent 聚合候选并保持最终决策权。

验收指标

  • 每次模型调用的有效输入加预留输出不超过运行时上限。
  • 完整证据仍可复核,stdout 缩小不造成字段丢失。
  • 不发生 SKILL 重读循环、重复采集或中断后自动重复 dispatch。
  • 子 Agent 产物存在、可解析,并能与输入文件和 case 对齐。
  • 下界 SQL 与压力 SQL 都在全新 session 中完成到合法终态。

反模式

  • 对完整 JSON 做字符截断;截断会破坏结构和审计能力。
  • 用 LLM 摘要代替确定性投影。
  • 把 /compact 当作唯一上下文策略。
  • 子 Agent 自行搜索 Skill 路径或源码来补缺失参数。
  • 只以文件字节数判断 token 是否达标。

限制与待验收

事实投影已有离线回归,任务调度、规则预筛和渐进加载仍有 fresh session、token 峰值及服务器验证未完成。因此本条目可以指导设计,暂不应把具体阈值声明为所有环境的已验证结论。

关联