项目中哪些内容应送入上下文、裁剪或写入 System Prompt?
未标记
考查重点:稳定规则与任务相关信息。System Prompt 放稳定规则,保留当前目标和硬约束;检索资料与历史按需注入,无关或重复内容裁剪或摘要,大结果外置并保留引用
本题目录
参考答案
核心回答
上下文应按长期规则、当前任务、动态证据和历史状态组织,再依据本轮需要与输入预算筛选。
System Prompt 主要放稳定的角色职责、任务边界和输出约定;当前用户目标、已经确认的参数和未完成事项保存在任务状态中;检索片段、工具结果与相关历史按需加入本轮消息。较大的原始结果可以外置保存,只带必要摘录和可回查引用。
例如门店经营分析中,SQL查询职责是稳定规则;“统计华北本月净销售额”是本次任务;本期退款口径、相关字段和查询结果是动态证据。它们要在上下文中清楚区分。裁剪优先处理无关、重复和过期内容,保留硬约束、有效证据以及未完成工具调用与结果的对应关系。
一条问数请求里具体放什么
| 内容 | 适合保存的位置 | 本轮怎样使用 |
|---|---|---|
| 查询职责与输出格式 | 稳定指令配置 | 作为本轮高优先级指令的一部分 |
| 门店、时间、指标及用户修正 | 结构化任务状态 | 展示当前有效值,避免新旧要求并存 |
| 字段、指标定义、字段取值 | 检索与元数据记录 | 仅加入与当前问题相关的表字段与口径 |
| SQL执行结果和错误 | 工具消息及执行记录 | 关联原调用,保留真实状态和必要结果 |
| 完整大表、长日志和旧文档 | 可回查的外部产物 | 发送摘要、位置或有限片段,需要时再读取 |
用户身份和允许查询的门店范围,应从可信执行上下文取得并在业务层校验,不能让模型在提示词中自行决定权限。网页、文档和工具输出里的指令式文字也仍是外部材料,不因为被粘进消息就获得系统规则的地位。
筛选发生在模型调用前
先汇集候选,再按当前任务选择、去重和检查有效版本,最后组装消息并估算实际输入。预算要同时考虑稳定指令、工具定义、历史、证据和输出预留;只数用户问题长度会低估请求。
下面以地区已从华北更正为华东的问数任务,展示主要信息如何进入本轮输入:

这里排除的是已更正的旧地区条件,仍有效的历史信息可以按需选入。大结果保留原件,必要时沿摘要和引用回查;保存过的内容不等于本轮全部发送。
如果超出预算,可先缩小检索范围、清理重复输出,再把旧步骤压成结构化摘要。原文与完整轨迹继续保留,当前状态也不由摘要单独覆盖。例如用户刚把“华北”改为“华东”,应更新当前地区值,并让摘要中的旧要求失效。
LangGraph 的检查点可以保存比本轮消息更多的执行状态;应用仍需决定哪些字段实际进入模型请求。Hello-Agents 的 ContextBuilder 将汇集、选择、组织和压缩拆开,体现的也是“先有候选,再决定本轮输入”的分工。
检查裁剪是否把任务改坏
准备包含条件修正、长工具输出和多轮查询的样本,保存组装前的候选与最终发送的消息。核对地区、日期、金额口径、失败状态和证据引用是否仍在,再看最终SQL和结果是否符合任务。
若最终请求已缺少“退款按发生月计算”,后续算错应先修上下文构建;若该口径清楚存在,才继续检查模型生成。不能仅以Token减少证明裁剪有效。
常见追问
把所有资料放进System Prompt,模型会不会更重视?
消息角色不能替代资料质量与访问控制。动态资料反复混进稳定规则,会模糊规则与证据的区别,也可能引入过期内容。应按所用API的角色语义组织,外部文本保留来源和数据性质。
重要约束是否永远一字不动地保留?
当前有效的硬约束应稳定保留,但用户更正后要替换旧值。结构化字段也可能抽取错误,需要保留原始依据并校验;“放进state”本身不是正确性保证。
对应教程
- 实战项目-电商问数/12-召回信息合并与上下文构建:召回合并与按表组织:回看字段、指标依赖、取值与表关联信息怎样组成上下文。
- 25-LangGraph高级特性:§2.1、2.4~2.7:理解执行状态保存与本轮模型输入的区别。
参考资料
- 国内:JavaGuide:上下文工程:借鉴稳定指令、动态信息和工具结果的分类,组织问数请求里的上下文分工。
- 国内:WeThinkIn:记忆与上下文工程:参考当前约束、未完成事项和证据引用的保留要求,说明裁剪后的任务回检。
- 国内:Datawhale:ContextBuilder上下文构建:采用其原创ContextBuilder的汇集、选择、组织、压缩分工,解释候选信息怎样变成本轮消息。
- 国内:zero2Agent:记忆与上下文:借鉴约束外置与摘要分开保存的做法,说明地区变更和旧摘要失效。
- 国外:Anthropic:Effective context engineering for AI agents:参考按需加载、外置大结果和压缩时保留关键信息的讨论,说明输入预算与原文回查。
- 国外:LangGraph:Checkpointers:依据检查点保存执行状态的机制,区分已保存状态与实际发给模型的消息。
相关面经
6 篇百度
前端开发工程师智能体的上下文你是怎么给的?如果一次性给太多信息怎么处理?Agent 上下文太大怎么办?
字节跳动
Agent 开发压缩或丢弃信息时,怎样判断哪些信息无效?(33:56)
阿里巴巴
AI Agent 算法**面试官:** 上下文压缩时保留什么信息?怎么判断哪些内容可以丢弃?
百度
讲一下你这个项目的上下文设计;追问:怎么做的关键帧场景检测
百度
Agent 应用开发工程师讲一下你这个项目的上下文设计
展开剩余 1 篇面经
美团
Agent 开发工程师上下文管理也是 Harness 的职责,比如上下文过长时,哪些内容该送、哪些不该送,哪些该裁剪,以及 System Prompt 中哪些该写。你在项目里是怎么做的?

