上下文包准备清单
一句话定义
上下文包(context pack)是为单个任务打包的最小充分材料集合——任务一句话、相关代码与行号、接口约定、验收样例、约束禁区——用 5 分钟准备换掉数十分钟往返。
为什么重要
AI 产出的方差主要来自输入方差。同一个人、同一个模型,材料选得好坏可以让结果差一个数量级。上下文包把「选材料」变成 checklist:既防漏(该给的没给,模型只能猜出幻觉),也防滥(全文件倾倒挤占注意力预算)。它是 kp-004 预算思想在单任务粒度的落地物。
前置知识
kp-004(上下文窗口与注意力预算)。
核心概念
六件套清单(按序检查):
- 任务一句话:目标 + 为什么(三元组的意图)。
- 相关代码:涉及的函数/类,带文件路径与行号;调用方签名;不要整文件。
- 接口约定:现有类型定义、数据结构样例、API 请求响应示例。
- 验收样例:测试名或「输入→期望输出」至少一组,含一个边界情况。
- 约束与禁区:技术栈版本、不许动的路径、依赖政策。
- 已排除项:你已经试过/排除的假设,防止模型绕回原点。
反模式:整文件倾倒(违反最小充分集);贴截图不贴文本(模型读图低效且易错);贴三个月前的旧版本代码(让模型对着不存在的代码设计修复);报错日志只贴最后一行。
原理与机制
上下文包作用于窗口的会话层(kp-004 的 60% 主预算)。它同时压缩两类不确定性:任务不确定性(该做什么)与环境不确定性(代码现状如何)。经验规律:模型对「给了什么」负责而非「缺了什么」负责——你没给的接口约定,它会按最常见的形态编造。因此六件套的价值不在「礼貌齐全」,而在封堵每类编造入口。
实例或案例
操作步骤(5 分钟打包流程):
- 用一句话写下任务与动机(60 秒)。
- 打开涉及文件,摘出函数段落并标注
文件:行号(120 秒)。 - 从测试目录复制最接近的现有用例当验收底稿(60 秒)。
- 写约束两行 + 已排除一条(60 秒)。
- 通读一遍自检:模型拿到这份材料还会问什么?会问就补(60 秒)。
Before:贴 1200 行 service 整文件 + 「加个导出功能」。模型输出一个泛泛的 CSV 函数,字段全靠猜。
After:任务一句话 + export.py:40-75 现有导出函数 + Order 字段定义 + 一组输入输出 + 「禁新依赖」。模型复用现有函数扩展,一轮可用。
排错清单:
- AI 引用不存在的字段/函数 → 检查是否贴了旧版本,用当前 HEAD 重新摘取。
- 输出风格与项目不符 → 六件套第 3 项缺失,补接口约定。
- 实现方向离谱 → 第 1 项动机没写清,补「为什么」。
- 反复在已排除的思路上打转 → 第 6 项缺失,明确列出已试方案。
公式或模型
本节不适用:打包收益体现为往返轮次下降,用 kp-026 的返工率间接观测。
图示
[任务一句话] + [相关代码+行号] + [接口约定] + [验收样例] + [约束禁区] + [已排除项]
└────────────── 一个任务一个包,随 diff 过期即弃 ──────────────┘直观类比
上下文包是外科手术的器械台:术前把要用的器械按顺序摆好,台上就不必中途喊「再给我一把」——每喊一次,感染风险(幻觉)就高一分。
常见误区
- 把「多给」当保险:无关材料稀释注意力,保险变风险。
- 用截图代替代码文本:可复制文本永远优先。
- 一个包反复用三天:代码已变,包已过期,每任务重打。
与其他知识点的关系
kp-010 探索策略回答「不知道该打包什么」时怎么办;kp-009 决定长会话中包的更换节奏。
自测题
要点:任务/代码/接口/验收/约束/已排除;最常漏的是「已排除项」与「接口约定」。
要点:模型会对不存在的现状设计修复,产出系统性错误且表面自洽。
- 六件套是什么?哪件最常被漏?
- 为什么贴旧版本代码特别有害?
延伸阅读
本节不适用:上下文包是本库归纳的实践清单,无对应经典文献。