我们做企业Agent落地已经踩了快两年的坑,有一句话想先说在前面:大部分项目失败,真不是模型选得不够强,而是Context这层没做好。陈宇森那篇分享里把这件事说得挺透——Agent落地企业的核心不是模型,是Context。当时看完就有种“被点名”的感觉,因为这正是我们团队在用真金白银换回来的教训。
这个观点放到现在的行业语境里其实很有冲击力。2026年大家都在卷模型参数、卷长上下文、卷agent框架,好像只要模型够聪明,企业里的活儿它就能自己干。但现实是,模型在企业里的表现,很大程度上不取决于“脑子里装了多少知识”,而取决于“干活的时候你给了它多少靠谱的上下文”。模型再强,也猜不到你们公司的审批流、软件系统截图里的字段含义、老员工口头禅里的业务黑话。Context才是那座连接通用大模型和企业真实场景的桥。
这篇文章我想把这块掰开揉碎了讲清楚。主要围绕三个问题:为什么说模型不是核心?Context在企业Agent里到底承担什么角色?以及我们是怎么把Context工程化落地的,中间踩过哪些坑,怎么一步步趟过来的。无论你是在企业里推AI落地,还是在做Agent类产品的研发,或者单纯好奇为什么自家模型老“答非所问”,这篇都能给你一些可复用的思路。
1. 为什么“再强的模型也扛不住企业里的穷上下文”
先讲个我们刚做Agent时遇到的典型场景。客户是一家做设备运维的公司,想用Agent处理售后工单。我们最开始觉得这不简单嘛——让大模型读工单、分类、推维修方案,模型能力完全够。结果上线测试跑了一周,客户天天来投诉:Agent老是分不清“停机”和“停机检修”的区别、维修方案里推荐错润滑油型号、甚至把“客户已骂街”识别成“客户情绪稳定”。明明用的还是当时公认的旗舰模型,怎么结果这么拉胯?
后来一复盘,发现根因根本不是模型笨。是我们的接入方式太“裸”了——我们把工单原文直接丢给模型,其他什么都没有。工单里的“停机”,在客户内部语境里可能特指“非计划停机”,和检修停机在流程上完全不同;润滑油型号在维修手册里是按设备编号关联的,但工单里根本不写设备编号;至于情绪识别,纯属想当然,模型压根没见过他们客服系统的情绪打标规则。
这就是陈宇森说的那个意思:模型是个通用引擎,但企业环境里到处是隐含信息、专有名词、业务规则和历史惯例。这些信息不喂给模型,模型就只能靠“猜”。你再怎么提升模型参数量,它也没法凭空知道你们公司的润滑油号是哪个。与其迷信更强的模型,不如先把Context补足。
1.1 模型的边际能力提升,在企业场景里往往趋近于零
我见过不少团队,上来就纠结“我们要不要用那个新出的2B/32B/200B模型”“是不是换更强的模型Agent就能少出错”。这种思路在一个场景里可能是有效的——那就是通用知识问答、写作、翻译这类任务。
但企业Agent处理的典型任务,几乎都是“带着企业私有语境的任务”:查库存、审合同、回工单、导数据、生成报表。这些任务里,模型底子当然重要,但决定成败的是你喂给他的数据库结构、字段含义、规则约束、历史样例。用个比喻,模型像是刚毕业的高材生,脑子够用,但他对你公司的了解基本为零。你让他上场干活,却不给他看公司制度、历史档案、操作手册,他能干好才怪。
我们后来做了一次对照测试:同一套任务,用轻量模型配上完整详细的上下文,效果反而超过用旗舰模型但只给干巴巴几句话的做法。这个对照结果我们内部讲过很多次——别再单维度追模型了,在Agent落地的语境里,边际提升最大的杠杆是Context的组织方式。
1.2 Context不是“多塞几段话”那么简单
顺着上面往下说,很多人一听“Context重要”就觉得:那我把所有文档一股脑塞给模型不就行了?这正是第二个大坑。
早期我们有个客户做合同审核Agent,为了“显得背景充分”,一次性把企业过去五年的合同模板、法律意见书、业务规则手册全部拼进提示词。结果模型回答得特别“正确”但极其空泛,真正的风险条款一个没指出。为什么?因为模型被海量无关上下文干扰了判断。你给的信息太多、太杂,模型反而不知道该focus在哪。
所以陈宇森强调的Context,其实是一个动态的、经过挑选和组织的“任务现场信息包”,而不是静态文档堆。它至少包含几个层面:
- 企业静态知识:制度、规范、产品手册、数据库字典;
- 业务动态信息:当前单据数据、关联订单、客户历史、系统状态;
- 流程规则:审批路径、异常处理机制、权限边界;
- 交互历史:之前和这个用户/客户聊过什么,做过什么承诺。
这四层组合在一起,才叫“一个完整的工作上下文”。缺任何一层,Agent都像在一个黑盒里瞎摸。这也是为什么我们后来干脆把手套上的“提示词编写”整个升级成了“上下文工程”。
2. 企业Agent落地,拼的是“语境还原度”
如果把Agent比作企业的一个新员工,Context就是新员工的“上岗培训材料+实时工作台+公司内部情报网络”。你会发现,公司不会给新员工一本五年政策汇编就让他直接去见客户,而是会安排老员工带教、提供客户背景、告知近期项目进展。Agent其实也需要同样的待遇。
2.1 从“模型问答”到“任务执行”,Context的含义完全不同
在企业里,Agent和普通的聊天机器人最大的区别是——它要干活,要做事,要对结果负责。聊天机器人答错了,人还能自己判断;Agent一旦接了任务,可能就直接改动系统里的数据了。这时候Context就不仅是“参考资料”,而是Agent做决策、走流程、操作动作的依据。
举一个我们做过的采购审批Agent案例。
- 普通统计:模型的能力是看一张报销单,判断是否合规;
- 带Context的执行:模型需要知道这张报销单归属哪个部门、部门预算还剩多少、申请人有没有历史违规记录、单据金额对应哪个审批层级、如果超标要触发什么补充流程。
这些信息散落在四五个系统里——OA审批流、财务系统、人事档案、预算系统。你要做的工作,就是把它们实时汇拢到一个上下文包里,按时按需交给模型。模型在其中只做最后一步判断,前后端所有“情报汇集”的工作都是我们做的。
这可能就是陈宇森那句“Context是核心”的真正含义:在落地企业场景时,Agent的能力上限很大程度上由“上下文还原度”决定。你有多接近业务现场,Agent就有多靠谱。
2.2 企业语境里的“隐性知识”,是Context最难补的一块
显性知识好办,写进文档、配进知识库就行。隐性知识才是真麻烦。比如客户内部那句“这个客户要重点照顾”,背后可能意味着价格弹性高、账期可以放宽、投诉要优先处理。这类东西通常不在任何正式文档里,只存在于销售团队的习惯中、邮件签名里、CRM的备注字段中。
我们做法是给Agent加一层“业务行为惯例”的上下文配置。每次任务触发时,除了拉取显性数据,还会根据客户标签、历史往来记录,动态生成一段“该客户的关系简报”。虽然这段简报的数据来源还是那些字段,但它把隐性关系翻译成了模型能理解的语言。实践证明,这类动态生成的“惯例上下文”对Agent行为合规率和客户满意度提升非常明显。
所以做Agent落地的人,别再只盯模型卡脖子了。多花时间盘一盘“我们公司有哪些话不会写在书面材料里”,那里面有价值,也是别人抄不走的部分。
3. 我们实践出来的Context工程化四步法
理论讲完了,聊点实的:Context工程该怎么做。我们团队摸索出一套流程,不算什么标准答案,但至少被三个行业的项目验证过,分享出来供参考。
3.1 第一步:盘点企业“语境资产”,建一份Context地图
这步不一定写代码,但特别重要。先别急着搭Agent框架,先回答几个问题:
- 业务数据都在哪:CRM、ERP、工单系统、本地Excel、纸质流程?
- 哪些数据是任务必需的“主数据”?哪些只是辅助参考?
- 哪些业务规则还没有结构化?藏在谁的脑子里?
- 历史对话记录有没有留存?客户偏好有没有字段来沉淀?
把这些答案整理成一张“Context地图”,最好按任务类型来划分。比如我们给零售客户做项目,就分成了新品上市、促销活动、售后维权、采购对账等几条任务线。每条任务线单独列一个“所需上下文清单”。这一步做完,整个项目的数据接入顺序和接口设计就清晰了。
3.2 第二步:把静态知识变成“结构化提示资产”
企业文档五花八门,直接丢给模型当上下文绝对是灾难。我们一般会把文档转成三层结构:
- 第一层:速查表——每个业务规则一行话,方便模型快速理解;
- 第二层:知识卡片——针对常见问题给出精准解释,附上参考原文链接;
- 第三层:原文库——留给需要深读的场景,但在调用时控制优先级。
举个例子,做物流调度Agent的时候,我们并没有把数百页司机管理规定喂给模型。我们先把“工作时段定义、疲劳驾驶阈值、异常签收流程、不同货物类型的优先级”这四条规则做成了速查表,然后把详细处罚细则留在知识卡片层。模型拿到的上下文又精准又轻,调用成本还低。
这步有个关键技巧:给每条规则加一个置信度或生效范围。比如“周六不安排配送(特殊情况需报备)”,模型就不会把例外情况当普通情况处理。这类细节,不做过真实项目的人基本不会想到。
3.3 第三步:搭一条“实时上下文管线”,而非临时拼凑
静态资产准备好之后,真正的核心工程来了:怎么在每个任务触发瞬间,自动抓到当前任务需要的实时数据,组装成“上下文包”?
我们目前的架构大概是这样的:
- 任务触发源头(用户对话、工单创建、定时任务)先进一个路由层;
- 路由层根据任务类型,去查询Context地图里预定义的“上下文获取清单”;
- 数据从各个业务系统、数据库、知识库拉取后,过一层清洗/截断/脱敏;
- 清洗后的数据被组装成一个格式化的上下文块(通常包括任务目标、约束条件、参考资料、历史记录、权限声明);
- 最终,这个上下文块和用户最新输入,一起交给模型。
这里面有个容易被忽视的环节:数据清洗和脱敏。我们第一次做生产级Agent时,差点把客户的内部员工手机号直接发给模型当上下文,后面在做合规审查的时候吓出一身冷汗。事后我们给管线加了一个强制脱敏步骤,所有涉及个人信息和敏感数据的字段一律替换成脱敏占位符。
整个管线做下来,你会更深刻地理解陈宇森那句“核心是Context”的份量。模型只是像一个执行引擎被调用而已,真正决定任务质量的,是这堆上下文有没有被及时、准确、合规地送到它面前。
3.4 第四步:给Context加“反馈闭环”,越用越准
最后一步最容易被大家遗忘,但它其实是Context工程能持续变好的关键——记录每次任务里模型用了哪些上下文,以及任务结果的好坏,然后反馈到数据层去调整上下文配置。
我们的操作方式:
- 每次Agent执行任务,我们都会记录“本次用到的上下文ID清单”;
- 任务结束后的结果(客户反馈、人工复核结论、自动化评估得分)回写到上下文使用日志;
- 每周做一次复盘:某个任务频繁出错,是不是漏了一个关键数据源?某个上下文块一直没被使用,是不是干脆精简掉?
这个反馈闭环跑起来之后,上下文包会越来越精简、越来越贴合真实业务。我在不少交流场合说过,Agent的优化重点会从“怎么调模型”慢慢转向“怎么迭代上下文配方”,早明白这个道理的团队,后面走得都更顺。
4. 三份真实案例:Context对了,项目就成了
理论说得再多,不如看看真实项目怎么靠Context翻盘的。这里挑三个我们经历过的有代表性的例子,每个都足够说明问题。
4.1 售后工单Agent:一句业务黑话引发的重构
开头提到的那家设备运维客户,当时我们重构方案时只做了一个关键调整:为所有工单任务增加“客户设备档案+维修历史摘要+备件型号映射表”这三类上下文。其中备件型号映射表,是我们花了三天时间,把客户Excel里的旧型号和新型号对照关系整理出来的。
调完这版,工单分类准确率从78%直接升到94%,维修方案被客户打回的比例也降了一大截。最直观的反馈是,客户运营团队跟领导汇报说“这工具总算开始像在咱们公司干过活的老人了”。这比往模型参数上砸钱来得快多了。
4.2 合同审查Agent:从“教科书式回复”到“真能抠条款”
当时有个客户的合同审查Agent一直不温不火,业务部门反馈“讲得都对,但跟没说一样”。我们进去排查,发现模型拿到的上下文只有一份合同原文和一个“审核合同”的指令。
后来我们在上下文里接入了三样东西:客户的合同风险偏好表(哪些条款必须改、哪些可以谈)、历史合同审核批注集(尤其是法务驳回过的条款案例)、以及结构化后的合同关键字段抽取结果。效果立竿见影——模型开始用公司的语言说“本版本与历史版本相比,付款条件从月结改为周结,存在现金流风险”,而不是泛泛讲“需注意付款条件”。
这案例给我最深的触动是:同一份合同、同一个模型,Context配好前后,Agent的水平简直是两个物种。
4.3 供应链异常处理Agent:动态上下文比“永远正确”更重要
另一个制造业客户,想用Agent做供应链异常处理。我们一开始把供应商目录、历史订单、物流规则全初始化进静态库,以为妥了。结果遇到缺料异常要处理时,Agent给出的建议“切换备用供应商”,被业务骂得狗血淋头——备用供应商虽然资质合格,但上个月刚出现大批量质量问题,正在观察期。
问题就出在“动态风险信号”没有进入上下文。后来我们在上下文管线里加了一个实时风险订阅模块:供应商观察期状态、最近30天质量扣分数据、在途订单延迟率,全部实时汇总进异常处理任务的上下午文。模型调整建议后就靠谱多了:它会说“当前供应商在观察期,切换风险高,建议优先联系另一家已过验证的备选供应商”。
做企业Agent就是这样,静态知识容易搞定,动态信号能不能跟得上,才是Context工程功力的试金石。
5. 绕不开的避坑清单:Context工程里的五道坎
最后结合我们团队被坑过的经历,给正在做企业Agent落地的人提个醒。
5.1 上下文轰炸:塞给模型的东西,不是越多越好
上下文“太多”和“太少”一样危险。模型注意力是有限的,无关信息多了会稀释关键信号。我们的经验是,不同任务分别实验并记录“最佳上下文长度区间”,少于一文档能说完的,绝不放进去两篇。
5.2 权限边界:Context一旦越界,可能就是安全事故
接入企业和员工敏感数据时,权限校验一定不能省。我们曾经因为漏了一个字段过滤,导致Agent在生成周报时把另一位员工的绩效数据带进了共享文档,被客户安全团队点名。后来我们在所有上下文调用入口统一加了一层权限矩阵校验。
具体做法是:Context管线拉取数据时,同时附带“当前调用者身份ID”,所有查询都走统一的数据访问中间层,由它判断这个ID是否有权限读取对应字段。这一层千万别为了性能跳过去,安全翻车一次,前面所有努力归零。
5.3 上下文新鲜度:过期信息会让模型一本正经地错
企业数据时变性强,库存、价格、审批状态分秒都在变。我们用过缓存策略,图省事,结果Agent拿了一个小时前的库存数据指导客户下单,客户付款时才发现没货。后来所有“状态类”上下文一律走实时查询,只有静态知识(手册、制度)才允许配置缓存时间。
5.4 依赖链监控:Context管线挂一个点,Agent就哑一半
当Agent依赖多个系统上下文时,任何数据源抖动都会让Agent“失灵”。我们现在给所有上下文调用加了可观测性埋点:每个任务都记录各数据源响应时间、成功/失败率。一旦某个数据源连续失败,Agent会自动降低任务执行权,转为“仅咨询模式”而不是“自动操作模式”。这套风控救了我们好几次。
5.5 别忽略人机衔接:Context工程链路里必须有“人来复核”的一环
哪怕Context做到90分,Agent仍然会有需要人来兜底的时刻。我们的做法是:所有涉及审批、资金操作、对外承诺的任务,Agent只能生成建议稿,必须有人工复核后才能执行。这不是退步,而是Agent落地企业时必要的信任护栏。有了这道闸门,业务部门才敢真正把Agent放进日常流程,越用越放开,越放开数据越多,反馈闭环也就越跑越顺。
6. 最后想叮嘱的几点
聊了这么多,其实我最想传达的核心就一条:Agent要在企业里真正落地,请把一半以上的精力从“选模型、调参数”转移到“做Context工程”上来。模型能力的天花板固然重要,但在绝大多数企业场景里,你根本还没触到那个天花板——你卡在了上下文不够用、不够准、不够实时、不够安全。
我个人在实际操作中的体会是,做Context工程比调模型更琐碎、更不性感,它需要跟业务部门反复开会、需要钻到Excel和旧系统里挖数据、需要跟合规团队抠权限细节。但恰恰是这些“脏活累活”,才是Agent能否从Demo走向生产环境的关键分水岭。谁先把这套基本功打扎实,谁就能在下一轮Agent落地竞赛里跑在前面。