上下文预算、事实投影与渐进加载¶
- 沉淀时间: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 峰值及服务器验证未完成。因此本条目可以指导设计,暂不应把具体阈值声明为所有环境的已验证结论。