团队调Prompt调到怀疑人生,问题往往不在提示词,而在喂给模型的上下文。上下文工程是比Prompt工程更底层的功夫,也是AI产品能力上限的真正决定者。
模型每次生成,输入=系统指令+上下文+用户输入。上下文是你决定给模型看什么:检索到的资料、用户的历史行为、工具的返回结果。给错上下文,模型再强也输出错误答案——垃圾进,垃圾出。
用户数据:画像、历史行为、偏好设置。让回答「懂你」的原料。
检索内容:RAG召回的文档。召回质量直接决定回答质量——检索差一点,回答错一片。
工具返回:实时查询的结果(天气、库存、订单状态)。时效性问题的生命线。
会话状态:多轮对话积累的中间结论。丢一句中间结论,后面的推理就断链。
要点一:质量控制。检索召回的内容要过滤、排序、去重。别把全库搜索结果直接塞给模型——无关信息会稀释注意力,还会诱导编造。
要点二:长度预算。上下文窗口有限,信息要按重要性分配空间。不是越多越好:塞满窗口的效果常常不如精选三分之一的篇幅。
要点三:动态组装。不同场景组装不同的上下文模板(客服场景带工单历史,创作场景带风格样本)。把上下文组装做成可配置、可评测的模块,而不是散落在代码各处的字符串拼接。
Prompt是「怎么问」,上下文是「让模型知道什么」。两者是乘法关系:任何一项为零,结果为零。上下文错了,Prompt调得再精巧也是在错误的输入上雕花。
写在最后
遇到AI输出不稳定,先查上下文,再调Prompt。上下文工程做对之后,很多「模型不行」的结论会被推翻——大部分时候不是模型笨,是它没看到该看的东西。