Prompt 与上下文工程题(P01–P20)
20 道提示词、结构化输出、追问与缓存题。
把 Prompt 当任务合同,把 Context 当运行时信息系统。
建议先口答 60~90 秒,再展开【追问问题】。不要背句子,要说清判断依据和取舍。
P01|什么是 Prompt Engineering 与 Context Engineering?
简明答案: Prompt Engineering 重点写好指令与输出合同;Context Engineering 还负责选择历史、状态、工具、检索证据和信任边界。Agent 中后者范围更大。
【追问问题】
- 两者由哪些系统组件负责?
- 为什么 Prompt 不能解决权限问题?
关联知识: 上下文工程
P02|Zero-shot、Few-shot 什么时候使用?
简明答案: 任务规则简单且模型已熟悉时先 Zero-shot;边界、风格或映射难表达时加入少量代表性示例。示例应覆盖易混淆边界,避免把偶然格式当规则。
【追问问题】
- 示例越多越好吗?
- 如何防止示例污染上下文?
关联知识: Few-shot 与示例设计
P03|CoT 是否应该直接展示给用户?
简明答案: 可以要求模型认真推理,但生产系统通常只展示简洁依据、动作和证据,不依赖或暴露私有思维链。可审计性应来自 Trace、工具结果和验证器。
【追问问题】
- 何为可验证解释?
- Scratchpad 应保存吗?
关联知识: 推理提示与可验证解释
P04|Self-Consistency 的思路是什么?
简明答案: 对同一问题采样多条推理路径,再按答案一致性或验证器选择,适合可明确比较结果的推理题。它用额外成本换稳健性,开放生成未必有效。
【追问问题】
- 多数投票一定正确吗?
- 怎样控制成本?
关联知识: 推理提示与可验证解释
P05|如何让模型稳定输出 JSON?
简明答案: 优先使用严格 Schema 或工具协议,再做解析、语义校验、字段级错误回灌和有限重试。仅在提示词中要求 JSON,容易出现多余文本、缺字段和类型错误。
【追问问题】
- JSON mode 与 Structured Output 有何不同?
- 失败后怎样降级?
关联知识: 提示词与结构化输出
P06|系统提示词应该包含哪些内容?
简明答案: 包含角色与目标、边界、工具策略、成功/失败标准、安全政策和输出合同。业务事实、用户数据和大段文档应动态注入,不要把所有内容写进一个永远增长的系统提示。
【追问问题】
- 工具说明放哪里?
- 如何发现指令冲突?
关联知识: Prompt 设计与版本管理
P07|提示词越长越好吗?
简明答案: 不是。重复、冲突和无关规则会稀释重点、增加成本并降低可维护性。应从最小合同开始,通过评测只增加能修复稳定失败类别的规则。
【追问问题】
- 如何做 Prompt 消融实验?
- 怎样判断规则已经无效?
关联知识: Prompt 设计与版本管理
P08|如何管理多轮对话历史?
简明答案: 近期相关原文保留,已完成阶段压缩成结构化摘要,关键事实进入状态或记忆,原始内容存外部按需回查。不能无脑拼接全部历史。
【追问问题】
- 摘要漂移怎么检测?
- 用户改口如何更新状态?
关联知识: 上下文工程
P09|什么是 Prompt 模板变量注入风险?
简明答案: 未转义的用户内容若被拼进高优先级指令,可能改变语义或结构。应区分指令与数据、类型校验、边界标记,并让权限控制独立于 Prompt。
【追问问题】
- XML/JSON 分隔能彻底防注入吗?
- 模板变量要记录到 Trace 吗?
关联知识: Prompt Injection
P10|如何写工具描述?
简明答案: 说明工具做什么、何时用、何时不用、参数语义、副作用和返回状态;避免多个工具描述高度重叠。最好用真实混淆样本评测工具选择。
【追问问题】
- 描述应放示例吗?
- 工具多时如何压缩?
关联知识: 工具设计
P11|如何设计拒答?
简明答案: 定义证据不足、权限不足、风险过高和能力不支持等原因,返回可行动下一步,而不是统一说不知道。拒答准确率需要和错误回答率一起评测。
【追问问题】
- 过度拒答如何优化?
- 何时应该追问而不是拒答?
关联知识: 拒答、澄清与不确定性
P12|Agent 什么时候应该追问用户?
简明答案: 缺失信息会实质改变结果、权限或成本时追问;低风险且可逆的小缺口可做显式假设继续。问题应短、聚焦,避免把可由工具查到的信息推回用户。
【追问问题】
- 如何控制追问次数?
- 多 Agent 中谁负责追问?
关联知识: 拒答、澄清与不确定性
P13|怎样表达不确定性?
简明答案: 给出结论、证据范围、未知项和下一步验证,不伪造精确概率。若有经过校准的分类器或统计模型,可以展示置信区间;模型自报置信度通常不可靠。
【追问问题】
- 如何校准置信度?
- 引用数量能代表置信度吗?
关联知识: 拒答、澄清与不确定性
P14|如何做 Query Rewrite?
简明答案: 根据当前问题和必要历史补全指代、拆分多意图、保留实体与约束,生成适合目标检索器的查询。原查询与改写结果都应保留,以便融合和排障。
【追问问题】
- HyDE 与普通改写有何区别?
- 改写为什么会损失召回?
关联知识: 查询改写与路由
P15|Prompt Cache 适合缓存什么?
简明答案: 适合稳定且重复的前缀,如系统指令、工具定义和公共上下文;动态用户数据放后面。缓存改善成本和延迟,但不能跨权限复用敏感上下文。
【追问问题】
- 为何顺序影响命中?
- 语义缓存和前缀缓存有何区别?
关联知识: 缓存与请求去重
P16|如何做 Prompt 回归测试?
简明答案: 建立版本化黄金集,覆盖正常、边界、对抗和历史失败;固定模型与工具后比较任务结果、结构、成本和安全,而不是逐字匹配。
【追问问题】
- 哪些字段适合精确断言?
- 模型升级时怎样隔离变量?
关联知识: 测试与发布
P17|如何避免 Prompt 中规则互相冲突?
简明答案: 按优先级与主题拆分规则,删除重复,用决策表表达例外;通过静态检查和冲突样本评测。冲突无法靠模型自行稳定解决。
【追问问题】
- 如何定位是哪条规则导致回归?
- 动态规则放在哪里?
关联知识: Prompt 设计与版本管理
P18|什么是 constrained decoding?
简明答案: 解码时限制模型只能生成满足语法或 Schema 的 Token 路径,比生成后修 JSON 更可靠。它保证结构合法,不保证字段事实和业务语义。
【追问问题】
- 它会影响生成质量吗?
- CFG 适合哪些场景?
关联知识: 提示词与结构化输出
P19|如何设计 Agent 的完成标准提示?
简明答案: 把完成定义为可观察条件,如必须获得哪些字段、哪些验证器通过、哪些动作确认;同时说明失败、部分完成和请求人工的输出格式。
【追问问题】
- 模型自称完成为什么不够?
- 多个验收条件如何表达?
关联知识: 运行循环与状态
P20|如何减少 Prompt 迭代的玄学?
简明答案: 每次只改一个假设,用失败分类选择样本,离线评测并看统计变化;记录版本和 Trace。没有可复现样本的“感觉变好”不应上线。
【追问问题】
- 如何做 A/B?
- 什么时候应改工具而非 Prompt?
关联知识: Prompt 设计与版本管理