上下文与 Artifact 治理开发 SOP
1. 明确数据分类
先列出稳定指令、动态消息、工具预览、完整输出、凭据和外部业务数据。稳定指令可进入前缀;动态消息参与压缩;完整输出进入 Artifact;凭据不得进入模型或 Artifact。
2. 固定上下文前缀
- 使用固定分区:核心规则、项目指令、工具契约、稳定事实、专业 Skill。
- 对工具名和事实键稳定排序,禁止加入时间戳、随机数或运行密钥。
- 对相同输入执行两次,确认文本和 SHA-256 指纹完全相同。
3. 设定压缩不变量
- 在每次 Provider 请求前检查
contextWindow - reserveTokens。 - 默认使用本地确定性摘要,不额外发送模型请求。
- 保留最近完整 user 起始轮次,不能产生孤立工具结果。
- 摘要至少保留目标、约束、权限、文件、测试、未完成事项、下一步与不确定副作用。
- 压缩失败时返回原消息并发出
context_compaction_failed。
4. 治理大输出
- 使用
ArtifactStore流式导入,禁止一次性读取完整大文件。 - 验证受控根目录的真实路径仍位于工作区内。
- 仅接收受信任工具生成的临时输出引用。
- 扫描疑似凭据;命中后删除暂存文件并返回阻断说明。
- 模型只接收有界头尾、总字节数、哈希、媒体类型和工作区相对路径。
- 使用
cleanup()按项目策略清理过期 Artifact;清理前保留需要审计的证据。
5. 记录真实指标
分别记录 input、output、cacheRead、cacheWrite、压缩次数、摘要指纹、稳定前缀指纹、Artifact 数量和字节数。模型目录未声明缓存计费能力时标为 unavailable;不得根据“可能支持”虚构命中。
6. 比较策略
用同一消息集运行 compareContextStrategies(),比较无压缩、当前确定性策略和保留更多近期消息的候选策略。默认值只能根据恢复正确性、任务成功率、token 和延迟共同决定,不能只追求更小上下文。
7. 验证与停止条件
运行模块清单中的测试,再运行 npm run check:modules、npm run docs:audit 和仓库完整门禁。出现工作区逃逸、秘密进入预览、关键错误结尾丢失、摘要缺少未完成任务或缓存虚报时,立即停止交付。