跳转至内容
  • 版块
  • 最新
  • 热门
  • 标签
  • 搜索
  • 成员
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
LocalAIHub 中文社区

LocalAIHub 中文社区

  1. 主页
  2. AI 工程讨论
  3. 上下文工程比模型更重要吗:社区观点和工程证据

上下文工程比模型更重要吗:社区观点和工程证据

已定时 已固定 已锁定 已移动 AI 工程讨论
localai
1 帖子 1 发布者 0 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • A 离线
    A 离线
    admin
    编写于 最后由 admin 编辑
    #1

    写作日期:2026-05-22

    “上下文工程比模型更重要吗”这个问题,在 AI 社区里经常被问得很尖锐。一边是模型能力快速提升,长上下文、多模态、工具调用、推理能力不断增强,很多问题换一个更强模型就能明显改善;另一边是越来越多工程团队发现,真正上线后最难的不是模型参数,而是上下文。资料给错了,强模型也会答错;权限边界没放进检索条件,强模型也会越权;工具结果没整理,强模型也会误读;历史对话太长,强模型也会丢掉关键约束;任务状态不清楚,Agent 再会推理也会重复操作。

    社区里比较务实的观点通常不是“模型不重要”,而是“模型能力决定上限,上下文工程决定可交付下限”。强模型像一台能力很强的发动机,上下文工程像燃料、仪表、导航、道路和刹车。发动机差,车跑不快;导航错、燃料脏、刹车坏,发动机越强越危险。真实 AI 产品不是一次性回答,而是长期面对用户、资料、权限、成本、工具和失败恢复。模型升级能带来能力红利,但上下文工程决定这份红利能不能稳定落到业务结果上。

    这篇内容按社区实践帖写,不把问题包装成单一结论。我们会分别看支持模型优先的理由、支持上下文工程优先的理由,再用 RAG、记忆、路由、缓存、成本、工具调用、长上下文和线上观测的证据做判断。结论提前说清楚:如果任务是开放式创作、通用推理、代码理解、复杂规划,模型能力非常关键;如果任务是企业知识、客服、教育、内部办公、业务流程、私有数据问答和可审计 Agent,上下文工程往往比继续追新模型更能提升稳定性。工程选型不该问“谁绝对更重要”,而要问“当前瓶颈来自模型能力,还是来自上下文供给和运行时控制”。

    一、争议为什么会出现

    早期提示词工程流行时,很多人相信只要写好角色、步骤、示例和约束,就能把模型调成想要的样子。后来大家发现,提示词能改善格式和行为,但不能替代外部知识、权限系统、任务状态和工具执行。RAG、函数调用、Agent 编排和长上下文出现后,“上下文工程”开始被用来描述更完整的一组工作:把正确资料、正确状态、正确工具、正确记忆、正确约束,在正确时机放到模型面前,并把模型输出接回可验证的系统。

    模型能力提升又让争议变复杂。一个更强模型确实可以减少很多手工提示词技巧:它更能理解模糊需求,更能从混乱资料中抽取重点,更能遵循复杂指令,更能调用工具,更能写代码。社区中有人因此认为上下文工程只是弱模型时代的补丁。这个说法有一部分道理。很多早期为了弥补模型弱点而写的冗长提示词、反复自我检查、固定格式套路,在强模型面前效果变小,甚至成为噪声。

    但另一部分现实也很硬:模型再强,也不知道企业昨天刚改的制度,除非系统把制度提供给它;模型再强,也不该看到用户无权访问的合同;模型再强,也无法从不存在的任务状态里知道某个工具已经执行过;模型再强,也无法保证供应商 API 不限流;模型再强,也无法替产品决定成本预算。上下文工程不是给弱模型打补丁,而是把模型接入真实环境。

    社区争议的根源,是大家讨论的“AI 应用”并不是同一种东西。写一首广告文案、帮开发者解释一段代码、让内部助手回答公司制度、让客服系统处理退款、让 Agent 自动整理竞品报告,这些任务对模型和上下文的依赖完全不同。开放创作更依赖模型能力,私有知识问答更依赖上下文质量,工具执行更依赖状态和权限,长流程任务更依赖运行时编排。把它们混在一起讨论,就会各说各话。

    还有一个原因是模型升级更容易被看见。换模型后,用户马上能感受到表达更顺、推理更强、代码更准;上下文工程的价值常常体现在少出错、少越权、少超支、少重试、少人工返工。这些收益不如“新模型更聪明”直观,但对生产系统更重要。社区里很多架构争论,其实是演示效果和上线效果之间的冲突。

    二、先定义上下文工程,不要只把它等同于长提示词

    上下文工程不是把更多文字塞进 prompt。它是一套围绕模型输入、状态、外部知识和运行控制的工程体系。一个完整的上下文通常包含:用户当前请求、用户身份和权限、系统目标、任务状态、历史对话摘要、相关知识片段、工具说明、工具返回结果、输出格式、成本和风险约束、可用模型能力,以及必要时的人类确认信息。

    从这个角度看,提示词工程只是上下文工程的一部分。提示词工程更关注“怎样表达指令”,上下文工程更关注“怎样组织模型能用的全部信息”。LangChain 关于 context engineering for agents 的讨论把问题说得很直接:随着任务复杂度提高,挑战不再只是写好一段 prompt,而是管理进入上下文窗口的信息,避免 token 浪费、状态丢失和错误工具结果污染。LangGraph 的 memory 文档也把短期记忆、长期记忆、状态和持久化分开处理,说明上下文不只是字符串。

    上下文工程至少包括八个动作。第一,筛选:从海量资料中选择最相关信息,而不是全部塞入。第二,排序:把关键约束、任务目标和证据放在模型更容易使用的位置。第三,压缩:把历史对话、工具结果和长文档压成保留关键信息的摘要。第四,检索:通过 RAG、关键词、向量、结构化查询或混合检索找到外部知识。第五,授权:确保进入上下文的信息属于当前用户可见范围。第六,记忆:把可复用事实和偏好长期保存,但允许纠正和删除。第七,路由:根据任务选择模型、工具和上下文策略。第八,观测:记录上下文如何影响结果,并把失败样本沉淀为改进依据。

    很多团队把上下文工程做窄了,只做 RAG。RAG 很重要,但不是全部。企业问答需要 RAG,Agent 任务需要状态,客服需要用户订单上下文,代码助手需要仓库索引和测试结果,教育产品需要学生学习历史,数据分析助手需要表结构和指标口径。不同场景的上下文形态不同,不能用同一个“向量库问答”模板覆盖。

    也有团队把上下文工程做歪了,以为上下文越多越好。长上下文窗口让系统能放更多信息,但更多信息会带来成本、延迟和注意力分散。Lost in the Middle 研究显示,语言模型在长上下文中并不总能均匀利用所有位置的信息,相关内容放在中间时表现可能变差。工程上真正重要的是相关性、结构化、位置和可追溯,而不是盲目堆 token。

    好的上下文工程有一个明显特征:模型看到的信息刚好足够完成任务,且每一块信息都有来源、权限、版本和用途。差的上下文工程则相反:把所有历史、所有资料、所有工具、所有规则混在一起,让模型自己消化。强模型能勉强处理一些混乱,但系统稳定性会随任务复杂度快速下降。

    三、模型能力为什么仍然重要

    承认上下文工程重要,不等于贬低模型。模型能力仍然是 AI 产品的核心变量。一个弱模型即使拿到正确资料,也可能读不懂复杂条款、无法抽象共同点、不能处理多步推理、工具调用参数错误、输出格式不稳定。上下文工程不能把一个能力不足的模型变成专家。

    模型能力至少影响五类任务。第一,复杂推理。多约束规划、法律条款比较、代码架构理解、数学推导和策略分析,靠上下文提供材料不够,还需要模型能推理。第二,指令遵循。生产系统往往要求模型同时遵守角色、权限、格式、引用、拒答和工具协议,弱模型容易漏约束。第三,工具使用。Anthropic 关于 building effective agents 的文章强调,工具定义需要清楚,但模型也必须能理解工具用途并根据反馈调整。第四,长上下文处理。模型窗口大不代表能用好窗口,不同模型对长资料的提取和推理能力差异明显。第五,鲁棒性。真实用户输入不规范,模型需要处理错别字、口语、缺字段和上下文跳转。

    模型升级在社区实践中经常带来立竿见影的收益。比如同样一套知识库,换成更强模型后,答案表达更少误解;同样一套代码上下文,强模型更能跨文件定位问题;同样工具 schema,强模型更少传错参数;同样长文档,强模型更能抓住核心冲突。这些收益是真实的,不应被“上下文工程万能论”遮住。

    模型能力还决定工程复杂度。弱模型需要更多提示词约束、更多后处理、更多自检、更多拆任务;强模型可以减少一些胶水逻辑。一个能稳定输出结构化 JSON 的模型,会降低解析和修复成本;一个能正确拒答的模型,会降低安全策略压力;一个能理解复杂工具结果的模型,会减少中间转换层。模型越强,上下文工程可以更简洁。

    但模型升级也有边际递减。很多线上问题不是模型换强就能解决。知识库旧资料排在新资料前面,强模型仍然可能引用旧内容;用户没有权限的片段进入上下文,强模型仍然可能泄漏;缓存键没包含知识版本,强模型仍然会返回过期答案;工具接口设计差,强模型仍然会在模糊字段中猜。模型升级能提高局部能力,但不能替代系统边界。

    所以更合理的说法是:模型能力是必要条件,上下文工程是生产条件。没有足够模型能力,应用做不出高质量智能;没有上下文工程,智能无法稳定落地。社区争论如果只选一边,就会变成口号。

    四、RAG 证据:多数知识型失败不是模型不知道答,而是系统没把正确证据给它

    RAG 是上下文工程最容易被验证的领域。Retrieval-Augmented Generation 论文提出把参数化记忆和非参数化外部知识结合起来,用检索文档增强生成。这个思路进入工程后,企业知识库、客服问答、研究助手和文档分析几乎都绕不开 RAG。它的价值不是让模型“记住更多”,而是让模型在回答时基于可更新、可引用、可权限控制的外部资料。

    社区里大量 RAG 失败并不是因为模型太弱,而是检索链路粗糙。文档解析把表格结构丢了,标题和正文分块断开,向量召回只按语义相似但没有关键词约束,重排器没启用,旧版本资料没有下线,用户权限没有过滤,引用片段太长或太短,模型拿到的片段缺少来源和层级。最后答案错了,大家把锅甩给模型,但真正问题在上下文供给。

    一个典型例子是公司制度问答。用户问“试用期员工能否申请远程办公”。知识库里同时有旧版人事制度、新版远程办公制度、部门补充规定和 FAQ。如果检索只按向量相似,可能召回旧制度;如果没有版本和生效日期过滤,模型无法判断哪个有效;如果没有部门上下文,回答无法适配用户;如果没有引用要求,模型可能把多个制度混合成一个听起来合理的结论。换强模型能改善语言和推理,但如果它看到的是错证据,答案仍然不可靠。

    RAG 的工程证据可以通过指标观察。检索空结果率、相关片段覆盖率、引用点击率、用户点踩原因、人工改写幅度、同问题跨版本答案变化,都能说明问题在哪。若失败样本中大部分是“没有召回关键资料”或“召回了过期资料”,优先做上下文工程;若关键资料已在上下文里,模型仍然读错、推理错、格式错,再考虑模型升级。

    RAG 还揭示一个重要事实:外部知识不是越多越好。大量团队一开始把所有文档丢进向量库,以为资料越全越准。结果相似但无关的片段干扰答案,旧资料和新资料混在一起,权限和版本无法解释。更好的做法是资料治理先行:文档来源、更新时间、适用范围、权限、结构层级、引用位置、版本关系都要进入索引。上下文工程不是召回文本,而是召回可用证据。

    对于中文场景,RAG 还要注意切分和检索模型。中文制度、合同、课程资料常有长句、编号条款、表格、附件和口语化说明。固定字数切分容易打断条款;只用英文优化的 embedding 可能对中文同义表达不稳定;没有重排器时,相似词多的片段会挤掉真正答案。模型再强,也要先拿到足够准确的中文证据。

    五、长上下文不是上下文工程终点

    很多人认为模型上下文窗口越来越长,RAG 和上下文工程就会变得不重要。这个判断过于乐观。长上下文确实解决了一部分问题:可以放更多历史、更多文档、更多代码文件、更多工具结果,减少检索漏召回。但长上下文也带来新问题:成本更高、延迟更长、噪声更多、位置敏感、缓存策略更复杂、隐私暴露面更大。

    Lost in the Middle 的研究提醒我们,长上下文模型对信息位置并不总是稳定,相关信息在开头或结尾更容易被使用,中间位置可能被忽视。后续模型能力在进步,但工程原则没有变:不要因为窗口变大,就放弃选择、排序和压缩。窗口是资源,不是垃圾桶。

    长上下文适合三类场景。第一,资料强相关且整体结构重要,比如长合同审阅、完整代码文件理解、长报告总结。第二,检索边界难以提前判断,比如探索性研究、复杂问题排查。第三,缓存收益高的重复大上下文,比如同一代码仓库、同一教材、同一制度包被反复查询。OpenAI、Anthropic、Vertex AI 都提供或讨论了 prompt/context caching,说明厂商也把重复大上下文视为工程资产,而不是每次从零付费。

    长上下文不适合把所有租户资料、所有历史对话和所有工具说明都塞进去。权限风险会扩大,token 成本会飙升,模型注意力会被稀释。很多生产系统更适合“检索加短上下文”,只在必要时切到长上下文。比如普通 FAQ 用检索片段回答,合同审阅用整份合同加关键条款索引,代码修复用相关文件加调用链,而不是每次把整个仓库塞进去。

    长上下文还需要更严肃的缓存和版本管理。相同系统指令、相同资料包、相同代码仓库索引,可以通过提示词缓存降低成本;资料一旦更新,缓存要失效;用户权限变化,相关上下文不能复用。上下文窗口越大,错误复用的代价越高。

    所以长上下文不是上下文工程的替代品,而是上下文工程的一种材料。窗口越大,越需要设计信息结构。社区里那些把长上下文当成“无脑塞资料”的做法,早期会显得省事,后期会在成本、速度和错误定位上付出代价。

    六、记忆:真正难的不是记住,而是记对、记少和能纠正

    记忆系统经常被包装成智能体的高级能力,但生产里最难的不是让系统记住更多,而是决定什么值得记、谁能看见、何时过期、如何纠正。MemGPT 论文把大语言模型记忆管理类比操作系统里的层级内存,讨论如何在有限上下文里管理长短期记忆。工程上同样要把短期会话状态、长期用户偏好、项目事实、业务知识和审计记录分开。

    短期记忆服务当前任务。用户已经提供的目标、限制、文件、工具结果、待确认事项,都属于短期状态。它应该随着任务推进更新,并能在中断后恢复。比如研究助手已经检索了五个来源,下一步要写提纲;代码 Agent 已经修改了两个文件,下一步要跑测试。短期记忆如果只存在模型上下文里,请求中断就丢失,工具可能重复执行。

    长期记忆服务跨会话个性化。用户偏好中文回答、某项目使用特定技术栈、某客户有固定称呼、团队报告有固定格式,这些可以进入长期记忆。但长期记忆必须可见和可编辑。用户应该知道系统记住了什么,也能删除错误记忆。否则一次误解会反复污染后续结果。

    业务事实不应随便进入模型记忆。订单状态、合同金额、库存数量、员工权限、课程成绩,这些事实应该来自数据库或权威系统,而不是模型根据对话“记住”。模型记忆适合偏好和上下文线索,不适合替代事实源。很多 Agent 出错,就是把模型自己总结的中间结论当成事实,越走越偏。

    记忆还要有作用域。个人记忆、项目记忆、团队记忆、租户记忆不能混用。一个用户在私人项目里的偏好,不应影响团队正式报告;一个客户的沟通记录,不应被另一个客户命中;一个临时任务的假设,不应写入长期知识。上下文工程要给每条记忆带上作用域、来源、置信度和更新时间。

    从社区经验看,记忆失控比没有记忆更伤用户信任。系统不断引用用户不记得授权的历史信息,会让人不安;系统基于过期偏好修改输出,会让人困惑;系统把错误事实长期保存,会让结果持续偏差。记忆能力需要产品界面、权限系统和审计支撑,不只是给 Agent 加一个向量库。

    七、工具调用:上下文质量决定工具是否真正可用

    工具调用是模型接入现实世界的关键。但工具调用失败,常常不是因为模型不会调用,而是工具上下文设计太差。工具描述模糊、参数太多、返回值太乱、错误信息不清、权限靠模型自己判断、工具之间状态不一致,都会让强模型也犯错。

    一个好的工具上下文要回答五个问题:这个工具能做什么,什么时候该用,输入参数从哪里来,成功后返回什么证据,失败后可以怎样恢复。Anthropic 的 agents 实践文章强调工具定义和工具规格对智能体效果非常关键,甚至需要像整体提示词一样优化。社区里很多工具调用问题,根源就是把内部 API 原样暴露给模型,没有把它包装成面向任务的能力。

    例如“查询订单”工具。内部 API 可能需要用户 ID、订单 ID、商户 ID、状态码、分页、字段选择。给模型这么多参数,它可能乱填。更好的设计是由系统上下文绑定当前用户和租户,模型只提供可从对话中确认的订单号或时间范围;返回结果也不要是原始数据库字段,而是结构化摘要:订单是否存在、当前状态、可执行动作、限制原因、证据 ID。这样模型才能基于工具结果继续对话。

    工具结果也属于上下文。如果工具返回一大段 JSON,字段名不清,错误码没有解释,模型会猜。如果工具返回“失败”,但不说明是权限不足、参数缺失、外部超时还是业务规则不允许,模型就无法选择下一步。好的工具返回应该把下一步可选动作说清楚:需要用户补充什么、是否可重试、是否要转人工、是否已经产生副作用。

    工具调用还要防重复。Agent 循环中,模型可能因为没有状态记忆而重复查询、重复创建、重复发送。工程上要用幂等键、任务状态和审计记录控制副作用。让模型“不要重复下单”不是可靠方案;系统必须知道这个动作是否已执行过。

    工具权限绝不能交给模型。模型可以根据系统给出的权限结果决定回答方式,但不能自行判断用户是否有权执行操作。工具后端要根据当前身份和租户执行授权,模型只看到可用工具集合和必要反馈。上下文工程在这里不是加长提示词,而是把正确权限边界注入运行时。

    八、模型路由:更强模型和更好上下文常常要一起用

    社区讨论容易把“换强模型”和“做上下文工程”对立起来。实际生产系统更常见的是模型路由:不同任务用不同模型和不同上下文策略。简单分类用便宜模型,复杂推理用强模型;公开知识问答用云模型,隐私资料处理用本地模型;快速客服用短上下文,合同审阅用长上下文;低风险 FAQ 可语义缓存,高风险决策不缓存最终答案。

    模型路由的前提是任务分类。系统要知道当前请求是摘要、抽取、搜索、推理、代码、工具执行、创作还是高风险咨询。不同任务的瓶颈不同。摘要任务常常受上下文长度和压缩策略影响;抽取任务受结构化输出能力影响;知识问答受 RAG 质量影响;代码修复受仓库上下文和测试反馈影响;工具执行受工具 schema 和状态管理影响。没有任务分类,路由就是拍脑袋。

    路由也要考虑成本。强模型贵,长上下文贵,多轮 Agent 贵,重复检索和重排也贵。OpenAI prompt caching、Anthropic prompt caching、Vertex AI context cache 这类能力说明,供应商已经把重复上下文的成本优化产品化。自建系统也应利用缓存、压缩和路由,把高成本能力用在真正需要的地方。

    路由不能只看价格。便宜模型如果导致更多失败、更多人工修正、更多重试,整体成本可能更高。强模型如果每次都处理简单任务,也会浪费预算。更好的评估方式是按任务看“单位成功成本”:完成一个被用户接受的答案或任务,总共消耗多少模型费、时间和人工修正。

    路由需要观测支持。每个任务类型要记录模型、上下文策略、token、延迟、缓存命中、成功率、用户反馈和人工修改率。没有这些数据,团队不知道是该换模型、改检索、压缩上下文、调工具还是做缓存。社区里很多“某模型不好用”的结论,其实没有控制上下文变量。

    一个成熟策略通常是分层而不是二选一。先用轻量模型做意图识别和资料选择,再用强模型做关键推理;先用检索缩小证据,再把高相关资料放入长上下文;先让本地模型处理隐私分类,再让云模型处理脱敏后的复杂生成;先用缓存回答稳定问题,再把新问题进入完整链路。模型能力和上下文工程在这里是配合关系。

    九、成本证据:上下文工程常常比换模型更省钱

    很多团队的第一个 AI 成本事故不是模型单价太高,而是上下文设计浪费。系统提示词每次重复几千 token,RAG 每次塞入十几个长片段,历史对话不做摘要,Agent 循环没有上限,失败重试没有分类,后台批处理不削峰,缓存没有启用。账单上看是模型费用高,根因却是上下文和运行时策略。

    上下文工程可以从四个方向降成本。第一,减少无效上下文。通过更准的检索、重排和压缩,把无关资料移出上下文。第二,复用稳定上下文。把固定系统指令、资料包、代码仓库说明、教材内容通过 prompt caching 或自建缓存复用。第三,降低失败重试。通过更清楚工具 schema、更稳定结构化输出、更好的错误恢复,减少重复调用。第四,路由低风险任务。让便宜模型处理简单任务,把强模型留给高价值任务。

    成本优化不能只看 token 数。过度压缩上下文可能导致错误增加,最终人工修正成本更高;过度使用便宜模型可能导致用户满意度下降;过度缓存可能返回旧答案。工程上要看总成本和成功率。一个任务用强模型一次完成,可能比弱模型三次重试更便宜;一个长上下文请求如果通过缓存反复复用,可能比每次检索和拼接更划算。

    配额也是成本工程的一部分。不同用户、租户和功能要有预算。后台批处理要有优先级和并发限制。Agent 要有最大轮数、最大工具调用、最大 token 和人工确认边界。没有配额,任何一个误配置或恶意输入都可能放大成本。

    社区里常见的经验是:当账单失控时,先查链路,不要先换供应商。看哪些功能消耗最多、哪些提示词最长、哪些任务重试最多、哪些租户异常、缓存命中率是多少、RAG 片段平均长度是多少、Agent 平均循环几轮。很多时候,砍掉无效上下文比换一个便宜模型更有效。

    但也要承认,模型价格和能力变化很快。某些新模型在同等质量下更便宜,确实值得迁移。最稳的做法是把模型切换能力放到网关和评测里,用真实样本比较“单位成功成本”。没有评测和日志,换模型只是赌博。

    十、观测证据:要用数据判断瓶颈,不要靠感觉争论

    “上下文工程更重要”或“模型更重要”都不该只靠观点。生产系统应该用观测数据判断瓶颈。OpenTelemetry 的 GenAI 语义约定提供了记录生成式 AI 操作、模型、token、请求和响应相关属性的方向。无论使用哪套观测后端,关键是把一次 AI 任务拆开看:用户输入、检索、上下文拼装、模型调用、工具调用、后处理、输出和反馈。

    判断是否该优化上下文,可以看这些信号:检索空结果率高,说明知识库或查询改写有问题;召回片段被人工标记为无关,说明 embedding、切分或重排有问题;答案引用旧资料,说明版本和过滤有问题;模型输出经常缺关键业务字段,说明工具结果或结构化指令有问题;token 消耗大但用户满意度低,说明上下文噪声多;同一问题不同用户得到越权信息,说明租户和权限过滤有问题。

    判断是否该换模型,可以看另一组信号:关键证据已经在上下文里,模型仍然读错;工具 schema 清楚,模型仍然频繁选错工具;输出格式明确,模型仍然经常不合规;复杂推理任务人工认为资料足够,但模型结论浅;长文档中相关内容明确标注,模型仍然抓不住;代码上下文完整,模型仍然生成明显错误修复。这些更像模型能力瓶颈。

    观测还要记录人工修改。人工把模型答案改了哪些部分,是判断瓶颈的好材料。如果人工主要补充事实和引用,说明上下文缺证据;如果人工主要改语气和结构,说明提示词或产品文案有问题;如果人工主要推翻推理结论,说明模型能力或任务拆解有问题;如果人工主要删除越权内容,说明权限和检索过滤有问题。

    线上反馈要转成评测集。把点踩、投诉、人工重写、工具失败、检索错误样本沉淀下来。每次换模型、改提示词、改切分、改路由、改缓存,都跑同一批样本。这样社区争议就会从“我感觉某模型更好”变成“在这类任务上,模型升级提升 8%,检索重排提升 20%,缓存不影响质量但降低 35% 成本”。数据不一定完美,但比口水战强。

    很多团队没有观测时,会把所有问题都归咎于模型。因为模型是最可见的黑箱。加上 trace、日志、指标和样本库后,经常发现问题在更前面:资料没进来、权限过滤错、缓存没失效、工具返回不清楚、提示词版本混乱。观测是上下文工程和模型选型之间的裁判。

    十一、本地模型和云模型视角下的上下文工程

    在本地 AI 社区,模型和上下文的关系更现实。很多本地模型能力不如顶级云模型,但私有数据、低成本、离线可控和可定制部署有优势。要让本地模型在生产里有用,上下文工程往往更重要。因为模型本身推理上限有限,更需要清晰任务、准确资料、短而高密度的上下文、结构化工具结果和严格后处理。

    本地模型适合承担三类任务。第一,隐私敏感的预处理:脱敏、分类、摘要、资料筛选。第二,低风险高频任务:标题生成、标签提取、简单问答、格式转换。第三,和本地知识强绑定的任务:私有文档检索后生成、代码仓库局部分析、内部工单分类。对于这些任务,上下文质量常常比模型榜单名次更重要。

    云模型适合承担复杂推理、强工具调用、长上下文、多模态、高质量写作和高风险分析。但云模型也需要上下文工程。尤其在混合架构里,本地系统要先完成权限过滤、脱敏、检索和压缩,再把必要内容交给云模型。这样既保护数据,也控制成本。

    混合架构的一个实用模式是“本地选材,云端推理”。本地服务解析文档、做权限过滤、召回片段、脱敏敏感字段、构造结构化上下文;云模型负责复杂理解和生成;最终结果回到本地做引用校验和审计。这样模型能力和上下文工程互相补充。

    另一个模式是“云端规划,本地执行”。强模型生成计划和工具调用意图,本地后端执行真实工具、校验权限、返回结果,再让模型继续推理。这里的关键是本地工具上下文和状态管理。模型不能直接越过本地边界操作数据。

    本地社区常见误区是过度追模型版本。今天换一个 32B,明天换一个 MoE,后天换一个量化版本,但知识库切分、检索、权限、提示词、评测都没变。结果每次感觉都有变化,却无法稳定提升。更务实的路径是先用固定任务集和固定上下文链路评测,再决定模型是否值得替换。

    十二、案例一:企业制度问答,优先改上下文还是模型

    一个企业制度问答系统上线后,用户反馈“答案经常不准”。团队第一反应是模型不够强,准备从中档模型换到高端模型。先别急,应该抽样失败记录。

    如果发现失败样本中,模型没有拿到相关制度片段,问题在检索。要检查用户问题是否需要查询改写,切分是否保留标题层级,embedding 是否适合中文制度文本,是否需要关键词加向量混合检索,是否需要重排。此时换模型可能只能让错误答案更流畅。

    如果发现模型拿到了相关片段,但片段来自旧版制度,问题在资料版本。要给文档加生效日期、失效日期、制度层级和适用范围,检索时过滤旧版本或明确优先级。模型不知道哪个制度有效,除非上下文告诉它。

    如果发现模型拿到了正确片段,但用户属于特殊部门,答案没有适配,问题在身份上下文。要把用户部门、角色、地点、合同类型等权限内信息作为结构化上下文,而不是让用户每次自己说明。

    如果发现证据正确、身份正确,模型仍然把条款读反,或者无法处理多个制度冲突,才更像模型能力问题。此时可以对比更强模型,也可以把冲突判断拆成更清楚的提示步骤。

    这个案例里,常见瓶颈顺序是资料治理、检索、版本、身份上下文、引用校验,最后才是模型能力。不是模型不重要,而是知识型应用的失败更容易发生在模型看到答案之前。

    十三、案例二:代码助手,模型和上下文都很关键

    代码助手是模型能力和上下文工程都很重的场景。强模型对代码理解、跨文件推理、错误定位和补丁生成非常重要;但仓库上下文、依赖关系、测试结果和项目约定同样决定成败。

    一个代码助手如果只把用户选中的文件发给模型,模型可能看不到调用方、配置、类型定义和测试。它会生成看似合理但破坏其他路径的修改。上下文工程要做代码索引、符号检索、引用关系、相关文件选择、测试错误解析、历史修改摘要和项目规范注入。模型拿到这些材料后,才有机会做正确修复。

    但代码场景也明显依赖模型能力。即使相关文件都提供了,弱模型可能读不懂复杂泛型、异步流程、构建系统或边界条件。它可能改出能编译但语义错误的代码。强模型在这里会显著提升质量,尤其是多文件修改和测试驱动修复。

    所以代码助手的合理路线不是只换模型,也不是只做 RAG。先建立仓库上下文链路:索引文件、选择相关片段、提供测试失败、限制修改范围、运行测试、把错误反馈给模型。再用评测集比较模型。若上下文不完整,模型评测不公平;若模型太弱,上下文再好也修不好复杂问题。

    代码助手还要重视状态。模型改了哪些文件,测试跑到哪一步,失败原因是什么,哪些修改已经回滚,用户是否确认,都不能只放在对话里。Agent 式代码助手需要任务状态和审计记录。否则模型容易重复尝试同一个错误方向。

    这个案例说明:上下文工程不是模型的替代,而是模型发挥能力的基础设施。强模型加弱上下文会乱改,弱模型加强上下文会保守但能力有限。生产代码助手要两者一起做。

    十四、案例三:AI 客服,稳定边界比模型炫技更重要

    AI 客服是社区里最容易被演示误导的场景。演示中,模型能自然回答用户问题,看起来已经可用;上线后,用户会问订单、退款、发票、投诉、活动规则、账户权限,系统必须调用真实工具并遵守政策。这里上下文工程通常比单纯换强模型更关键。

    客服上下文包括用户身份、订单状态、商品信息、物流信息、售后政策、历史会话、当前情绪、可执行动作和人工接管规则。模型如果没有订单状态,只能泛泛回答;如果没有最新政策,可能承诺错误;如果没有工具执行结果,可能假装完成;如果没有人工接管边界,可能在高风险投诉中继续胡说。

    工具调用设计决定客服是否可靠。查询订单、申请退款、创建工单、修改地址、发送优惠券都要有权限、确认和审计。模型不能直接决定退款。它可以生成建议和确认文案,后端执行真实校验。上下文工程在这里体现为:给模型可用动作,而不是给它全部后台能力。

    缓存也要谨慎。常见政策问答可以缓存,但订单状态、库存、物流和用户权益不能长时间缓存。用户问“我的订单到哪了”,命中昨天缓存会造成明显错误。上下文工程要区分稳定知识和实时事实。

    模型能力仍然有价值。强模型更能理解愤怒用户、更能总结复杂投诉、更能保持语气、更能根据工具结果解释原因。但客服生产问题更多来自边界:政策是否准确、工具是否可靠、权限是否正确、人工是否及时接管。一个语气很好的错误承诺,比一个表达普通但边界清楚的回答更危险。

    十五、什么时候优先升级模型

    可以优先升级模型的情况很明确。第一,任务所需能力超过当前模型上限。比如复杂代码推理、跨文档逻辑比较、高质量中文长文、数学分析、多模态理解。第二,已确认上下文足够正确,但模型仍然理解失败。第三,当前模型指令遵循差,结构化输出和工具调用不稳定,导致大量后处理。第四,用户体验主要受表达、推理深度和创造力限制,而不是资料准确性限制。第五,新模型在相同任务评测集上以更低单位成功成本胜出。

    升级模型前要做对照。用同一批真实样本、同一套上下文、同一套评测标准比较。不要拿新模型在全新提示词和旧模型在旧链路上比较。也不要只看一两个惊艳样例。生产选型要看平均质量、失败类型、成本、延迟、稳定性和供应商可靠性。

    升级模型还要评估兼容性。新模型的工具调用格式、上下文长度、缓存策略、流式响应、内容安全、速率限制、价格和区域可用性可能不同。模型网关能降低迁移成本,但仍要做回归测试。尤其是结构化输出和工具调用,模型差异会影响后端解析。

    模型升级最适合解决“理解和生成能力不足”的问题,不适合解决“资料错误、权限错误、状态错误、缓存错误、成本无上限”的问题。前者换模型可能立竿见影,后者换模型只是延后暴露。

    社区里一个实用判断是:把失败样本中的关键证据直接贴给当前模型,让它离线回答。如果这样仍然答错,模型能力可能不足;如果这样答对,但在线系统答错,问题大概率在上下文工程。这个方法不完美,但很快能区分方向。

    十六、什么时候优先做上下文工程

    可以优先做上下文工程的情况更多。第一,失败答案缺少关键事实或引用。第二,用户权限、租户、项目、版本影响答案。第三,任务依赖外部工具、数据库、文件和实时状态。第四,成本主要来自长上下文、重复上下文、失败重试和 Agent 循环。第五,用户反馈集中在“没看到我上传的资料”“引用错文件”“忘了前面说过的话”“执行状态不清楚”。第六,团队无法解释错误答案来自哪里。

    上下文工程优先并不意味着一次做大平台。可以从失败最高的链路开始。知识问答先做文档版本、权限过滤、重排和引用;客服先做工具返回结构和人工接管;代码助手先做相关文件选择和测试反馈;写作助手先做资料来源和风格记忆;Agent 先做任务状态、最大轮数和工具审计。

    上下文工程的效果要用指标证明。RAG 可以看召回覆盖率和引用正确率;工具调用可以看参数错误率和工具成功率;记忆可以看用户纠正率;缓存可以看命中率和误命中;成本可以看单位成功成本;观测可以看错误定位时间。没有指标,上下文工程容易变成“感觉更精细”。

    优先做上下文工程还有一个好处:它让后续模型升级更有效。资料治理、权限过滤、任务状态、工具 schema、评测集和观测都是跨模型资产。今天换模型,明天换供应商,这些资产仍然有用。反过来,如果只追模型,模型每次变化都要重新摸索,系统底座还是脆弱。

    最值得投资的上下文资产有五个:高质量业务资料库、带权限和版本的检索链路、清晰工具协议、可恢复任务状态、线上样本评测集。它们不像某个模型名称那么显眼,但会长期复利。

    十七、工程选型:用“瓶颈诊断表”替代口号

    面对一个 AI 功能,可以按问题诊断。

    如果答案事实错误,先看证据是否在上下文中。证据不在,优化检索、资料治理和权限过滤;证据在但模型读错,再看模型能力和提示词结构。

    如果答案过时,先看资料版本、缓存失效和数据源同步。不要先换模型。模型无法知道系统没有提供的新事实。

    如果答案越权,先看检索过滤、缓存键和工具授权。不要让模型承担权限边界。

    如果成本太高,先看上下文长度、缓存命中、重试次数、Agent 轮数和模型路由。再看是否有更便宜模型。

    如果工具调用失败,先看工具描述、参数 schema、返回结构、权限绑定和错误恢复。再比较模型工具调用能力。

    如果长任务烂尾,先看任务状态、队列、检查点、人工确认和最大步骤。不要只加一句“请坚持完成任务”。

    如果用户觉得不聪明,先区分是资料没用好、推理不够深、表达不好还是执行不到位。不同原因对应不同解法。

    如果团队争论不休,拿真实失败样本做对照实验。固定上下文换模型,固定模型换上下文,再看哪个提升更大。生产工程最怕靠立场做架构。

    十八、社区常见误区

    第一个误区是“长上下文会淘汰 RAG”。长上下文降低了部分检索压力,但不能替代权限、版本、引用、成本和资料治理。很多场景仍然需要 RAG 先筛选,再用长上下文处理高相关材料。

    第二个误区是“强模型不需要提示词和工具设计”。强模型能容忍一些混乱,但生产系统需要稳定。工具规格、输出格式、错误恢复和状态管理仍然必要。

    第三个误区是“上下文工程就是堆更多资料”。上下文工程的核心是选择、压缩、排序、授权和观测。更多资料可能增加噪声。

    第四个误区是“本地模型不行,只能上云”。本地模型在隐私、成本和低风险任务中有价值,但更依赖上下文质量。正确做法是混合路由,而不是非黑即白。

    第五个误区是“模型排行榜能决定产品选型”。排行榜能提供参考,但真实任务有私有数据、工具、中文语境、延迟、成本和安全约束。必须用自己的样本评测。

    第六个误区是“缓存只影响成本”。缓存还影响正确性和权限。缓存键和失效策略设计不好,会返回旧答案或越权答案。

    第七个误区是“记忆越多越像智能体”。错误记忆、过期记忆和跨作用域记忆会污染结果。记忆要可见、可改、可删、可审计。

    第八个误区是“上下文工程是后端问题,产品不用管”。用户需要看到引用、确认、记忆管理、任务进度、额度和错误解释。上下文工程最终会体现在产品体验里。

    十九、实践路径:从一个功能开始做真实改进

    第一步,收集真实失败样本。不要只看团队内部演示,抽取用户点踩、人工改写、投诉、低满意度和异常高成本任务。每个样本记录用户问题、最终答案、上下文片段、模型、工具调用、成本和人工评价。

    第二步,给失败分类。事实缺失、证据错误、权限错误、过时信息、模型误读、工具失败、格式错误、成本过高、用户意图误判、任务状态丢失。分类后再决定优化方向。

    第三步,建立最小评测集。选择几十到几百个代表性样本,覆盖常见任务和高风险边界。评测项不要只看“答案像不像”,还要看引用是否正确、权限是否正确、工具是否成功、成本是否合理。

    第四步,做对照实验。固定模型优化检索、重排、压缩、工具 schema 和缓存;固定上下文比较不同模型。看哪条路线提升更大。对结果做任务级分析,不要只看平均分。

    第五步,把有效改动产品化。检索策略要版本化,提示词要版本化,模型路由要配置化,工具 schema 要评审,缓存要有失效规则,记忆要有用户管理界面。不要让优化停留在一次实验脚本里。

    第六步,建立持续观测。上线后看 token、延迟、成本、错误、引用、工具成功率、用户反馈和人工修改。上下文工程不是一次项目,而是持续运行机制。

    二十、检查清单:判断当前该投模型还是投上下文

    • 失败答案的关键证据是否出现在模型上下文里。
    • 上下文中的证据是否属于当前用户可见范围。
    • 文档、知识库、工具结果是否有版本和更新时间。
    • 历史对话是否经过摘要和状态提取,而不是无限追加。
    • 工具描述、参数和返回是否面向模型理解,而不是内部 API 直出。
    • 高风险动作是否有确认、幂等和审计。
    • 是否按任务类型选择模型,而不是所有请求走同一个模型。
    • 是否记录 token、缓存命中、成本、延迟、检索结果和用户反馈。
    • 是否能区分模型误读、证据缺失、资料过期、权限错误和工具失败。
    • 是否用真实样本评测模型升级,而不是只看单个样例。
    • 是否有上下文缓存和失效策略,且缓存键包含权限和版本。
    • 是否把长期记忆做成可查看、可修改、可删除的产品能力。
    • 是否有本地模型和云模型的分工,而不是按情绪选一边。
    • 是否能计算单位成功成本,而不是只看单次 token 价格。
    • 是否把线上失败样本沉淀为回归评测集。

    参考资料

    • LangChain Blog:Context Engineering for Agents
      https://blog.langchain.com/context-engineering-for-agents/
    • LangGraph:Memory overview
      https://docs.langchain.com/oss/javascript/langgraph/memory
    • Anthropic:Building effective agents
      https://www.anthropic.com/engineering/building-effective-agents
    • OpenAI:Prompt engineering guide
      https://platform.openai.com/docs/guides/prompt-engineering
    • OpenAI:Prompt caching overview
      https://platform.openai.com/docs/guides/prompt-caching/overview
    • Anthropic:Prompt caching
      https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching
    • Google Cloud Vertex AI:Context cache overview
      https://cloud.google.com/vertex-ai/generative-ai/docs/context-cache/context-cache-overview
    • OpenTelemetry:Generative AI semantic conventions
      https://opentelemetry.io/docs/specs/semconv/gen-ai/
    • Patrick Lewis 等:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
      https://arxiv.org/abs/2005.11401
    • Nelson F. Liu 等:Lost in the Middle: How Language Models Use Long Contexts
      https://arxiv.org/abs/2307.03172
    • Charles Packer 等:MemGPT: Towards LLMs as Operating Systems
      https://arxiv.org/abs/2310.08560
    • Akari Asai 等:Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection
      https://arxiv.org/abs/2310.11511
    • RedisVL:LLM Cache / SemanticCache
      https://redis.io/docs/latest/develop/ai/redisvl/api/cache/
    • LiteLLM:Proxy / Gateway 文档
      https://docs.litellm.ai/
    1 条回复 最后回复
    0

    你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

    厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

    有了你的建议,这篇帖子会更精彩哦 💗

    注册 登录
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 没有帐号? 注册

    • 登录或注册以进行搜索。
    Powered by NodeBB Contributors
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 热门
    • 标签
    • 搜索
    • 成员