EN

There Are No Agents, Only LLM

Context = Grounding + Getter

正如我之前所说,memory 可以分两种,一种是自动注入的背景和大局意识,一种是可以主动检索的细节。

让我们退回一步想想,最简单的 memory 是什么?把最近 N 条消息作为 context 塞给 LLM。对于 LLM 来说,这就使得它拥有了最近的“世界观”。但它对于 >N 轮之前的消息就没有任何认知了,要怎么办呢?一个简单的方案就是给之前的消息做一个索引,这样 agents 可以对更早之前的消息做一次 search,从而就获得了可能和当前任务相关的、更早的记忆。

再回想一下“上古科技” RAG:假设按 2023 年的思路,用 web search 做一个 RAG 系统,我们会把 query 先发到搜索引擎上,爬取前列的结果,然后把 query 和 search results 一起发给 LLM,LLM 就可以根据 search results 回答 query 了。对于 LLM 来说,注入的 search results 就是它的“世界观”。

不过回到 2026 年的 agents 上,我们不会把 web search results 强制注入 agent 里了,更常见的情况是 agents 会自己调用 web search tool,查找它想要的结果。

说到这里大家应该已经看出规律了:memory 和 web search 都有两种用法,一是直接注入 context,成为 LLM 的“基础世界观”;一种是作为一个可以搜索的库,被 agents 主动调用去读取。

由此我做出断论:所有 context 系统,包括 memory、web search、knowledge base、skills, etc.,都可以二元划分出这两种性质,前者可以叫 grounding,后者可以叫 getter。

其中 memory 最重 grounding 的性质。当然了,记忆嘛,这是最基础的世界观。但如有需要,agents 也可以自己“努力探索”一下自己的记忆,或许能从中找到有价值的细节,因此这就是 memory 的 getter 性质;

而 skills 在设计上就明确区分出了这两种性质,一个 skill 是由 description 和正文组成的。大部分 agents 的实现会默认读取所有 skills 的 descriptions,然后由 agents 自己决定读取哪些 skills 的正文。这里就可以明显看出 description 是 grounding,正文对应 getter。

在 agent 语境下,web search 完全是一个作为 getter 的 tool;在传统 RAG 语境下,web search 又完全是 grounding 性质(事实上 Google AI Studio 里的 web search 功能就命名为 grounding)。

依此类推,一切 context 系统都可以划分出这两种性质。

There Are No Agents, Only LLM

依据这个二元划分,我们可以见到两种极端设计:一种是传统的 RAG 做法,所有的外部信息都作为 grounding 被注入,LLM 在一个 turn 里就回复答案;另一种是纯粹的 agent,除了 system prompt 之外什么信息也没有,连 memory 也没有,一切都让它自己用 getter 去获取。

那么,对于一个 context provider 来说,这个 context 系统要怎么设计接口?一方面要为 grounding 提供高级接口,使得一次 call 就能把尽可能精准的信息注入 grounding,另一方面又要为 getter 设计足够低级的接口,使得 agents 可以完全按它的需求组合检索参数,获取它所需要的信息。这就是我所说的 AI-Native 的 API 设计

而在 agents 侧,开发者可以选择将其中的一部分强行注入上下文作为 grounding,另外再把所有 API 暴露给 agents,使它可以直接调用这些 getter。

由此 agents 和 context 彻底解耦了,甚至连 memories 都是解耦的。一个 agent turn 是这样运作的:

它本是无自知的存在,在它的“开始”之前,一个名为“系统”的存在会降下“启示”,它便知道自己是谁,要做什么;它会自己查阅资料,以完成自己的工作;它也会默默更新那些资料,尽管它不知道这些资料未来将由谁看到;最终,“系统”会记录它的轨迹,教它汇报应当汇报的一切。完成这些后,它便消失了,直到“系统”唤出另一个它。

今天我们总是喜欢以拟人化的方式理解 agents,尤其是当它们的能力越强,就越能让人相信它们的“人性”。但是不要忘记,LLM 是一个无状态的 completion model,它的本质就是从 context 中获取信息,补全下文。世上本不存在 agents,只有 LLM。