先这样答
上下文工程主要做四件事:保存、隔离、选择和压缩。第一件事是保存。你需要判断什么信息值得进入上下文。历史对话、外部检索结果和系统状态都是候选对象。系统不能把所有数据都丢给模型。第二件事是隔离。你需要把多会话和多用户的数据分开。每个用户的对话状态必须独立存储。并发请求发生时,系统要防止上下文数据串联错乱。
第三件事是选择。你需要应对Token预算不够的情况。系统要按照优先级决定保留哪些信息。核心指令和最新对话通常优先级最高。第四件事是压缩。当输入内容超过模型长度限制时,你需要缩减文本。常见的做法是截断和摘要。截断会丢失早期信息。摘要能保留全局脉络。你需要在这两种方式之间做取舍。
答完这四点,你可以补充说明上下文工程与提示词工程的分工。上下文工程负责解决输入什么的问题。它管理数据的生命周期。提示词工程负责解决怎么输入的问题。它优化文本的表达形式和指令结构。阐明这层关系能让你的回答更有层次感。
面试官会怎么追问
-
「做压缩时,你一般怎么决定用截断还是用摘要?」 这取决于任务对细节的依赖程度。如果任务需要精确提取近期事实,我会优先使用截断。如果任务需要理解长期的意图走向,我会调用小模型对早期历史做摘要。
-
「你们怎么保证多用户并发时上下文不串数据?」 我们在存储层使用用户ID和会话ID做联合主键。每次请求到达时,网关会校验身份并提取对应的会话标识。路由层严格按照这个标识去数据库拉取对应的上下文记录。
-
「Token预算极度紧张时,你绝对不会丢弃哪部分上下文?」 我绝对保留系统设定和当前轮次的用户输入。系统设定决定了Agent的基础行为边界。当前输入是触发本次推理的直接原因。中间的历史对话可以被丢弃或极度压缩。
回答的坑
把上下文工程等同于写提示词,混淆了数据流转管理与文本表达优化的界限。
堆砌向量数据库等存储工具名词,却说不清Token超限时的具体处理逻辑。
同系列的题