看到这篇文章在到处转,想快速做个技术拆解:为什么 Salesforce 的 LLM 智能体败得这么有可预测性。
📎 https://www.theregister.com/2025/06/16/salesforce_llm_agents_benchmark/
首先也是最重要的:Salesforce 用的是一个带工具的 RAG 系统,而它自带一些非常具体的架构问题。
💠 系统提示词增补过载
Salesforce 的智能体被逼着每一轮都穿过庞大的系统提示词去推理——角色、安全、工具定义、对齐逻辑,一样不少。
多数模型扛得住长系统提示词。但系统提示占据的是高优先级的推理带宽,它必须结构良好,而且必须压到最小——尤其在基于 GPT 的智能体上。
把系统提示当成数学来想。每次响应你有 X 份推理带宽,并且和之前、之后的每一次响应累总计账。你在系统提示里每添一分圈复杂度,你在会话或流程后半段的摄取里,就少一分圈复杂度。
(快岔一句:我说「推理带宽」,不是在说 token 数。
我说的是,模型每一轮能有意义地推过多少结构化逻辑——能扛多重,才开始掉件。Token 窗口很宽。带宽很窄。)
从建模的角度说,推理带宽像一层有界优化层,嵌在 transformer 的注意力流形里。每一轮都是一次跨越任务的受限穿行:指令消解、记忆调账、工具抽象、输出规划。
内部权重你管不着——但负载你绝对在塑形。添熵,穿行就失败。添清晰,系统就干净地路由。
🪙 上下文过饱和
你会想用 Salesforce Agents 这类系统,原因之一就是它们有多连通。开箱即连你的业务系统、你的流水线,你全部企业级的企业事物。而且你不能不给这些连接记账。它们有价值。
做对了,意味着对文档、CRM 数据和集成做出有价值的综合。做错了,意味着智能体泡在巨大的、与手头任务毫无语境关联的东西池子里,而每一次,每个轮次,它们都被迫对着一整池子推理。
圈复杂度,换句话说……也就是一轮之内能做多少个是/否、开/关式的决定,是用来量它的尺子。智能体不是代码,不该被当代码对待。代码被设计出来,就是要给你复杂、圈复杂度爆表的过程。LLM 被设计出来,是为了分派、执行、和概率性推理。
这里的诀窍,是搞懂这份工作到底是什么、对口的工具是什么。典型情况下,一个智能体既是代码,又是一个可能长跑的 LLM 过程。谁到哪里止,谁从哪里始?界限可以模糊,但必须有。
把所有东西一股脑全倒进上下文窗口,然后祈祷最好的结果——这条路到不了那里。
🥵 角色混乱
好,那么角色到底是个啥,为什么重要?
角色是我们所用协议的一部分。这个协议有几套标准。最常见的是 OpenAI 的,但 Ollama 这类可比的 API 系统也存在。有时你两套都用(那可真热闹!),有时哪套都不用。看项目。
不管你用哪套系统充当你和你的系统之间的胶水,你的角色都定义着谁在对谁说话、正在说什么。用户内容标 user 角色,工具标成工具,自定义角色可以创建,好给用户、系统、LLM 补充语境,告诉它们正在发生什么、怎么发生的。
作为智能体开发者,你原则上懂:角色是神圣的。每一次,你都用正确的角色、正确地标签东西。你把任务分割进专用的角色,每一件都清楚标签,因为你知道不这么做,机器就会幻觉出一些可爱、但没什么用的东西。
想看一个 LLM 幻觉出「我是个会创建文件的终端应用」吗?
简单。把工具输出塞进 assistant 角色,把工具角色搅浑就行。
想看你的 LLM 幻觉出权威吗?对 HTTP 调用干同一件事。
想看你的 LLM 彻底跌出地图吗?每一轮都往 user 提示里增补一些来自对话别处、脱离语境的记忆数据,以一种根本没法被理性地或确定性地跟上的方式——然后管它叫记忆系统!
每个角色都带着自己的推理权重,免费或低价,而它影响你每一轮拿到的结果。
这就把我们带到 RAG 系统。时间不算长,可 RAG 系统真的已经像是另一个时代的遗物了。那是一个工具调用还不存在、你只能往里硬塞语境的时代。往一个 LLM 系统里硬塞记忆,最安全、显然最不安全的办法是什么?在 user 角色后面追加,或者说「增补」,额外的数据。
向量数据库本身不是问题。做对了,极其有用——日常任务甚至不可或缺。事实上,没有任何东西拦着你把向量数据库用对。
可是,当你把工具角色用对了,并且取回同样的向量数据库、却不去搅浑提示词、不破坏基于角色的协议……那它就真的不是 RAG 了,不是吗?
相比之下,Salesforce 的智能体仍然架在 RAG 架构上:把取回的语境数据和其他信息直接追加进 user 提示词,没有结构、没有标签、没有对这份数据本该扮演什么角色的清醒语境意识。就像我说的,一个更简单时代、更弱系统的复古。
幻觉就是这么来的。失手就是这么来的。性能掉档就是这么来的。跨轮抓不住一条连贯线索的智能体,就是这么来的。
就算你清洗检索流水线、或者微调模型让它在这些条件下表现好一点,你仍然站在同一块坏地基上——任务设计的根基被扔在一边,换来的方案实用到失去了意义。提示词污染,成了架构本身的 feature。
结果跟它令人恼火一样可预测:愚蠢的智能体。损坏的记忆。榨干的推理带宽。以及偶尔,一份幻觉出来的艺术宣言。
那怎么解?
造点有意图的东西
第一件事,是搞懂上下文和推理在 LLM 系统里怎么工作。记住:你添进上下文窗口的每一条内容,每一轮,都会从头到尾被重新审一遍。而推理带宽一耗干,参与度就往下溜。
推理带宽不同于经过 token 上下文的注意力,后者才是我们平时说上下文窗口时谈的东西。一个上下文窗口可能装下十万亿 token 才截断、注意力才打滑。但这不一定意味着模型本身能连贯地推过、摄取掉整块东西。
Llama 4 Maverick 和 Gemini Pro 2.5 之间的差异,正因如此才刺眼——尽管它们的上下文窗口上限其实差不多。
换句话说,这里看待 Salesforce 的唯一方式,是当它一面警世钟。与其重蹈他们的覆辙……不如造点有意图的东西。
所谓有意图,我是说:
🔹 低噪声输入,智能体看见的每一样东西,都带着「它为何在此」的理由。
🔹 角色与记忆标签,让语境可读——人和机器都读得懂。
经验法则:如果你——携着比任何 AI 都多得多的推理力——跟不下来,机器多半也跟不下来。
🔹 工具输出被当作工具对待,而不是当成用户的糊话。
🔹 以及,最重要的:别再假设你的模型懂「常识」。
你必须告诉机器,「好」是什么意思。