| <!DOCTYPE html> |
| <html lang="zh-CN"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Agent 这个词在 2026 年指向两个不同的东西 | Ehco's Blog</title> |
| <meta name="description" content="工业派定义"LLM 控制 control flow"是 agent;经典派要求 runtime reward / 持续学习 / 内部目标。两个共名异义。把它们搁同一张桌子上对质,才知道今天的 LLM agents 站在哪条线之上、哪条线之下"> |
| <meta property="og:title" content="Agent 这个词在 2026 年指向两个不同的东西"> |
| <meta property="og:description" content="工业派定义"LLM 控制 control flow"是 agent;经典派要求 runtime reward / 持续学习 / 内部目标。两个共名异义。把它们搁同一张桌子上对质,才知道今天的 LLM agents 站在哪条线之上、哪条线之下"> |
| <meta property="og:type" content="article"> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css" media="(prefers-color-scheme: light)"> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css" media="(prefers-color-scheme: dark)"> |
| <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css"> |
| <style> |
| :root { |
| --color-bg: #ffffff; |
| --color-fg: #1f2937; |
| --color-fg-muted: #4b5563; |
| --color-fg-faint: #6b7280; |
| --color-link: #2563eb; |
| --color-link-hover: #1d4ed8; |
| --color-border: #e5e7eb; |
| --color-border-strong: #d1d5db; |
| --color-code-bg: #f6f8fa; |
| --color-blockquote-bg: #f9fafb; |
| --color-blockquote-border: #d1d5db; |
| --color-table-stripe: #f9fafb; |
| --color-meta: #6b7280; |
| } |
| @media (prefers-color-scheme: dark) { |
| :root { |
| --color-bg: #0d1117; |
| --color-fg: #c9d1d9; |
| --color-fg-muted: #8b949e; |
| --color-fg-faint: #6e7681; |
| --color-link: #58a6ff; |
| --color-link-hover: #79b8ff; |
| --color-border: #30363d; |
| --color-border-strong: #444c56; |
| --color-code-bg: #161b22; |
| --color-blockquote-bg: #161b22; |
| --color-blockquote-border: #30363d; |
| --color-table-stripe: #161b22; |
| --color-meta: #8b949e; |
| } |
| } |
| * { box-sizing: border-box; } |
| html { scroll-behavior: smooth; } |
| body { |
| margin: 0; |
| background: var(--color-bg); |
| color: var(--color-fg); |
| font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", |
| "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", |
| Helvetica, Arial, sans-serif; |
| font-size: 16px; |
| line-height: 1.75; |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| } |
| .site-footer { |
| max-width: 820px; |
| margin: 0 auto; |
| padding: 24px; |
| text-align: center; |
| font-size: 14px; |
| color: var(--color-meta); |
| border-top: 1px solid var(--color-border); |
| } |
| .site-footer a { |
| color: var(--color-meta); |
| text-decoration: none; |
| } |
| .site-footer a:hover { color: var(--color-link); } |
| |
| article { |
| max-width: 820px; |
| margin: 0 auto; |
| padding: 56px 24px 96px; |
| } |
| article h1 { |
| font-size: 32px; font-weight: 700; line-height: 1.3; |
| margin: 0 0 16px; letter-spacing: -0.02em; |
| } |
| article h2 { |
| font-size: 24px; font-weight: 700; line-height: 1.35; |
| margin: 56px 0 20px; padding-top: 12px; |
| border-top: 1px solid var(--color-border); letter-spacing: -0.01em; |
| } |
| article h3 { font-size: 19px; font-weight: 600; line-height: 1.4; margin: 36px 0 14px; } |
| article h4 { font-size: 17px; font-weight: 600; margin: 28px 0 12px; } |
| article p { margin: 0 0 18px; } |
| article a { |
| color: var(--color-link); text-decoration: none; |
| border-bottom: 1px solid transparent; transition: border-color 0.15s ease; |
| } |
| article a:hover { border-bottom-color: var(--color-link-hover); color: var(--color-link-hover); } |
| article strong { font-weight: 600; color: var(--color-fg); } |
| article ul, article ol { margin: 0 0 18px; padding-left: 28px; } |
| article li { margin-bottom: 6px; } |
| article li > p { margin: 0 0 10px; } |
| article hr { border: 0; border-top: 1px solid var(--color-border); margin: 48px 0; } |
| article blockquote { |
| margin: 0 0 24px; padding: 14px 20px; |
| background: var(--color-blockquote-bg); |
| border-left: 3px solid var(--color-blockquote-border); |
| border-radius: 4px; color: var(--color-fg-muted); |
| } |
| article blockquote p { margin: 0 0 8px; } |
| article blockquote p:last-child { margin-bottom: 0; } |
| article code { |
| background: var(--color-code-bg); border-radius: 4px; |
| padding: 2px 6px; |
| font-family: "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; |
| font-size: 0.88em; color: var(--color-fg); |
| } |
| article pre { |
| background: var(--color-code-bg); border-radius: 8px; |
| padding: 16px 18px; overflow-x: auto; margin: 0 0 22px; |
| font-size: 13.5px; line-height: 1.6; |
| border: 1px solid var(--color-border); |
| } |
| article pre code { background: transparent; padding: 0; border-radius: 0; font-size: inherit; } |
| article table { |
| border-collapse: collapse; margin: 0 0 24px; font-size: 14.5px; |
| width: 100%; display: block; overflow-x: auto; |
| } |
| article table thead { background: var(--color-blockquote-bg); } |
| article th, article td { |
| border: 1px solid var(--color-border); |
| padding: 10px 14px; text-align: left; vertical-align: top; |
| } |
| article th { font-weight: 600; } |
| article tbody tr:nth-child(even) { background: var(--color-table-stripe); } |
| article svg { |
| display: block; max-width: 100%; height: auto; |
| margin: 32px auto; border-radius: 6px; |
| } |
| article img { |
| max-width: 100%; height: auto; display: block; |
| margin: 24px auto; border-radius: 6px; |
| } |
| article > blockquote:first-of-type { margin-top: 0; font-size: 16px; } |
| .post-nav { |
| max-width: 820px; margin: 0 auto; padding: 20px 24px 0; |
| font-size: 14px; |
| } |
| .post-nav a { color: var(--color-meta); text-decoration: none; } |
| .post-nav a:hover { color: var(--color-link); } |
| @media (max-width: 640px) { |
| article { padding: 32px 18px 64px; } |
| article h1 { font-size: 26px; } |
| article h2 { font-size: 21px; } |
| article h3 { font-size: 17px; } |
| } |
| article pre code.hljs { padding: 0; background: transparent; } |
| .katex { font-size: 1.05em; } |
| </style> |
| </head> |
| <body> |
| <nav class="post-nav"><a href="../index.html">← 返回首页</a></nav> |
| <article> |
| <h1 id="agent-这个词在-2026-年指向两个不同的东西">Agent 这个词在 2026 年指向两个不同的东西</h1> |
| <blockquote> |
| <p>工业派把 agent 定义为"一种部署模式:LLM 控制 control flow"。经典派把 agent 定义为"相对于环境与性能度量的实体"。两者共名异义。Anthropic 的 workflow-vs-agent 准则只解决了工业派那半边——经典派的天花板还没动。</p> |
| <p><strong>Ehco</strong> · 2026 年 5 月 · 阅读时间约 16 分钟</p> |
| </blockquote> |
| <hr /> |
| <h2 id="摘要">摘要</h2> |
| <p>最近有朋友问我"agent 的核心是什么"。第一反应我用了一个汽车比喻:LLM 是发动机,agent 是车,用户是驾驶员,环境是世界。</p> |
| <p>这个比喻有个错位——<strong>在汽车里驾驶员决定去哪,但在 agent 里决定去哪的是 LLM 自己</strong>。这一刻我意识到,"agent"这个词在 2026 年的语义已经分裂成两个不同的东西,而我们大部分人——包括写框架的、写 paper 的、写博客的——都在含糊地混用它们。</p> |
| <p>这篇文章把这两个定义拉到同一张桌子上对质:</p> |
| <ol> |
| <li><strong>工业派的答案</strong>——Anthropic 给了 2026 年最清爽的判定:workflow 是代码定义路径,agent 是 LLM 动态决定路径。"控制权归属"是关键,<strong>和工具、记忆、规划都无关</strong></li> |
| <li><strong>经典派的答案</strong>——Russell & Norvig、Sutton & Barto、Wooldridge、Schmidhuber 这四个老定义检视一下,你会发现按经典标准,今天的 LLM agents <strong>没一个算 agent</strong></li> |
| <li><strong>张力</strong>——为什么没法 unify:两边在测量不同的东西</li> |
| <li><strong>比"列组件"更有用的拆解</strong>——不要再问"agent 该有哪些组件",要问"<strong>agency 安放在哪里</strong>"</li> |
| <li><strong>五条核心洞见</strong>——给你拿走</li> |
| </ol> |
| <p>读完之后你不会得到一个"agent 的标准定义",因为它<strong>不存在</strong>。你会得到一张地图:知道哪条边界是工业派的、哪条边界是经典派的、自己在押哪边的注。</p> |
| <hr /> |
| <h2 id="1-起点你有没有想过这个词出了问题">1. 起点:你有没有想过这个词出了问题</h2> |
| <p>让我们做个小实验。下面五个东西,哪些是 agent?</p> |
| <ol> |
| <li>ChatGPT 的 Code Interpreter——LLM 写 Python,沙盒里跑,看结果,再写</li> |
| <li>一个 Zapier 流水线——"收到邮件 → 提取金额 → 录入 Notion"</li> |
| <li>Claude Code——读你的代码库、改文件、跑测试、根据结果修代码</li> |
| <li>AlphaGo——感知棋盘、选动作、得到胜负反馈、改进 policy</li> |
| <li>一个温控器——温度低于 20 度就开热泵</li> |
| </ol> |
| <p>直觉上,3 是 agent,2 不是。但 1 是吗?4 算吗?5 在 1995 年的 AI 教科书里<strong>就是</strong>经典 agent 的入门例子。</p> |
| <p>如果你能给一个把这五个清晰分类的判定准则——你已经领先了行业里 80% 的人。<strong>因为这个准则不存在</strong>。</p> |
| <p>不存在的原因是:"agent"在 2026 年指向两个不同的东西。一个来自 1995 年的多智能体系统传统,一个来自 2023 年的 LLM 工具调用工程。它们碰巧都用了同一个词。</p> |
| <hr /> |
| <h2 id="2-工业派的答案control-flow-归属权">2. 工业派的答案:control flow 归属权</h2> |
| <p>工业界 2024-2026 年最 rigorous 的定义来自 Anthropic 2024 年 12 月的博客 <a href="https://www.anthropic.com/research/building-effective-agents">Building Effective Agents</a>:</p> |
| <blockquote> |
| <p>Workflows are systems where LLMs and tools are orchestrated through <strong>predefined code paths</strong>. Agents are systems where <strong>LLMs dynamically direct their own processes</strong> and tool usage, maintaining control over how they accomplish tasks.</p> |
| </blockquote> |
| <p>翻译成一个判定准则:</p> |
| <blockquote> |
| <p><strong>代码决定下一步 → workflow;LLM 决定下一步 → agent</strong>。</p> |
| </blockquote> |
| <p>这条准则的好处是它<strong>和工具、记忆、规划都无关</strong>。我们扫了一遍 13 个生产框架(Anthropic / OpenAI Swarm / LangGraph / AutoGen / CrewAI / MetaGPT / AgentScope / DSPy / Letta / smolagents / Devin / Pydantic-AI / Manus),抽出每家的核心抽象:</p> |
| <table> |
| <thead> |
| <tr> |
| <th>普适性</th> |
| <th>现象</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>✅ 100% 共识</td> |
| <td><strong>loop</strong>——所有 13 个框架都把迭代作为定义性特征。没有 loop 就不是 agent</td> |
| </tr> |
| <tr> |
| <td>❌ 不普适</td> |
| <td><strong>tool use</strong>——CrewAI / MetaGPT / LangGraph 不需要工具也能称为 agent</td> |
| </tr> |
| <tr> |
| <td>❌ 不普适</td> |
| <td><strong>memory</strong>——只有 Letta 把 memory 当核心,其他 12 家都是"可选的外部状态"</td> |
| </tr> |
| <tr> |
| <td>❌ 不普适</td> |
| <td><strong>多 agent / 反思 / 规划</strong>——都有一些框架不要</td> |
| </tr> |
| </tbody> |
| </table> |
| <p><strong>所以纠正我之前给朋友的那个回答</strong>——我说 agent = LLM + tools + 反馈循环 + 状态。研究下来,<strong>只有 loop 是真核心,其他三个都是 nice-to-have</strong>。</p> |
| <p>更尖锐的判定准则是 Anthropic 那条的逆否——"<strong>LLM 能不能拒绝系统设计者期待的下一步</strong>?" 能 → agent;不能 → workflow。</p> |
| <p>回头看第 1 节的五个例子:</p> |
| <table> |
| <thead> |
| <tr> |
| <th>例子</th> |
| <th>LLM 控制下一步?</th> |
| <th>工业派判定</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>ChatGPT Code Interpreter</td> |
| <td>✅ LLM 决定下一段代码</td> |
| <td>agent</td> |
| </tr> |
| <tr> |
| <td>Zapier 流水线</td> |
| <td>❌ 路径写死</td> |
| <td>workflow</td> |
| </tr> |
| <tr> |
| <td>Claude Code</td> |
| <td>✅ LLM 决定改哪个文件、跑哪个测试</td> |
| <td>agent</td> |
| </tr> |
| <tr> |
| <td>AlphaGo</td> |
| <td>✅(在 RL 意义上)</td> |
| <td>agent</td> |
| </tr> |
| <tr> |
| <td>温控器</td> |
| <td>❌ 阈值规则</td> |
| <td>不是 agent</td> |
| </tr> |
| </tbody> |
| </table> |
| <p>这是工业派的清爽答案。</p> |
| <hr /> |
| <h2 id="3-经典派的答案四个老定义的检视">3. 经典派的答案:四个老定义的检视</h2> |
| <p>但事情没结束。Russell & Norvig、Sutton & Barto、Wooldridge、Schmidhuber 不会同意上面这个判定。</p> |
| <p>他们有四把不同的尺子。我们用 <strong>Claude Code</strong>(工业派眼中无可争议的 agent)去测一下:</p> |
| <h3 id="尺子一russell-norvigaima-1995-2020">尺子一:Russell & Norvig(AIMA, 1995-2020)</h3> |
| <blockquote> |
| <p>An agent is a function that maps percepts to actions, and a rational agent selects an action that is <strong>expected to maximize its performance measure</strong>.</p> |
| </blockquote> |
| <p>经典 AI 教科书的定义。要点:percept→action 函数 + 环境 + <strong>外部 performance measure</strong>。</p> |
| <p>Claude Code 满足吗?percept→action 满足。环境满足(文件系统 + shell + 你的指令)。但 performance measure——<strong>什么在驱动它的下一个 token</strong>?是训练时的 RLHF objective。<strong>推理时没有 performance measure 在评判它</strong>。它执行的是一个固定的 next-token 概率分布。</p> |
| <p>Stuart Russell 自己 2023 年在参议院作证时说:"<strong>With LLMs, we don't even know what their objectives are.</strong>"——这不是修辞,按 AIMA 的定义这就是 agent 资格不全。</p> |
| <h3 id="尺子二sutton-bartorl-2018">尺子二:Sutton & Barto(RL, 2018)</h3> |
| <blockquote> |
| <p>A reward signal defines the goal in a reinforcement learning problem. The agent's sole objective is to maximize the total reward it receives over the long run.</p> |
| </blockquote> |
| <p>RL 教科书。要点:<strong>reward 是 constitutive 的</strong>。没有 reward 就没有 agent。</p> |
| <p>Claude Code 推理时有 reward 吗?<strong>没有</strong>。RLHF 的 reward 只在训练时存在。所以按 Sutton & Barto,Claude Code 在你电脑上跑的时候<strong>是个固定的 policy 在跑</strong>,不是 agent。</p> |
| <p>Sutton 和 David Silver 2025 年在 <a href="https://storage.googleapis.com/deepmind-media/Era-of-Experience%20/The%20Era%20of%20Experience%20Paper.pdf">The Era of Experience</a> 里把这个观点彻底化:人类数据训练的 LLM 是死路一条,真正的 agent 必须在持续经验流中通过 grounded reward 不断改进。LLMs "<strong>lack the essential mechanism — continual learning from experience — that defines flexible, goal-driven intelligence</strong>."</p> |
| <h3 id="尺子三wooldridge多智能体系统经典1995-2002">尺子三:Wooldridge(多智能体系统经典,1995-2002)</h3> |
| <blockquote> |
| <p>An agent is a system situated in some environment that is capable of <strong>autonomous action</strong> in this environment in order to meet its design objectives.</p> |
| </blockquote> |
| <p>四个性质:autonomy + reactivity + pro-activeness + social ability。</p> |
| <p>Claude Code 满足几个?</p> |
| <ul> |
| <li><strong>reactivity</strong>:✅ 响应工具输出</li> |
| <li><strong>pro-activeness</strong>:⚠️ 部分。它的"主动性"是 prompt 注入的目标在驱动;它<strong>没有内部维持的 intention</strong>。你关掉 session 它就忘了想做什么</li> |
| <li><strong>autonomy</strong>:⚠️ 弱。autonomy 在 Wooldridge 那里要求<strong>对内部状态有控制</strong>,能跨 session 维持目标和承诺。LLM-in-ReAct 没有跨 session 状态</li> |
| <li><strong>social ability</strong>:⚠️ 部分。能和人类聊,但<strong>没有形式化的 agent 通信语言</strong>(KQML/FIPA-ACL 那种带 speech-act 语义的)</li> |
| </ul> |
| <p>四个性质,全勤的没有,及格的两个。</p> |
| <h3 id="尺子四schmidhubergödel-machine-2003-2007">尺子四:Schmidhuber(Gödel Machine, 2003-2007)</h3> |
| <blockquote> |
| <p>A self-referential problem solver that <strong>rewrites any part of its own code</strong> as soon as it has found a proof that the rewrite is useful.</p> |
| </blockquote> |
| <p>Schmidhuber 的最强 agent 标准:<strong>可证明的 self-modification</strong>。</p> |
| <p>Claude Code 改自己吗?<strong>不改权重</strong>。它有时候会改自己的 system prompt 或 skills——但那都是 scaffolding 层,不是 agent 本体。Sakana AI 的 <a href="https://arxiv.org/abs/2505.22954">Darwin Gödel Machine</a> 2025 年试着把 Gödel Machine 思想搬到 LLM-stack——但他们也只在 scaffolding 上做演化,<strong>LLM 权重照样冻结</strong>。</p> |
| <h3 id="综合四把尺子下claude-code-全军覆没">综合:四把尺子下,Claude Code 全军覆没</h3> |
| <table> |
| <thead> |
| <tr> |
| <th>尺子</th> |
| <th>核心要求</th> |
| <th>LLM-in-ReAct 满足吗</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>Russell & Norvig</td> |
| <td>外部 performance measure</td> |
| <td>❌ 推理时无</td> |
| </tr> |
| <tr> |
| <td>Sutton & Barto</td> |
| <td>runtime reward</td> |
| <td>❌ 训练时才有</td> |
| </tr> |
| <tr> |
| <td>Wooldridge</td> |
| <td>autonomy + persistent intention</td> |
| <td>⚠️ 弱</td> |
| </tr> |
| <tr> |
| <td>Schmidhuber</td> |
| <td>可证明 self-modification</td> |
| <td>❌ 不改权重</td> |
| </tr> |
| </tbody> |
| </table> |
| <p><strong>这不是字面游戏</strong>。它<strong>预测一个具体的天花板</strong>——靠 scaffolding 永远跨不过 continual experience-driven adaptation 这条线。这条线正是 2026 年三个前沿要打破的位置(第 6 节会讲)。</p> |
| <hr /> |
| <h2 id="4-张力为什么没法-unify">4. 张力:为什么没法 unify</h2> |
| <p>很多人会想——一定有人写了一篇 paper,把经典定义和 LLM 时代定义合并起来吧?</p> |
| <p>我搜过。<strong>没有</strong>。</p> |
| <p>不是没人想干,是<strong>这件事在原则上做不到</strong>。两边在测量不同的东西:</p> |
| <table> |
| <thead> |
| <tr> |
| <th></th> |
| <th>经典派</th> |
| <th>工业派</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>定义类型</td> |
| <td>规范性(normative)</td> |
| <td>操作性(operational)</td> |
| </tr> |
| <tr> |
| <td>定义 anchor</td> |
| <td>环境 + 性能度量</td> |
| <td>部署模式(loop + control flow)</td> |
| </tr> |
| <tr> |
| <td>时间尺度</td> |
| <td>跨 episode、跨生命</td> |
| <td>单次 task、单 session</td> |
| </tr> |
| <tr> |
| <td>学习是否必备</td> |
| <td>是(RL 派、Wooldridge)</td> |
| <td>否</td> |
| </tr> |
| <tr> |
| <td>用途</td> |
| <td>理论范畴</td> |
| <td>工程区分</td> |
| </tr> |
| </tbody> |
| </table> |
| <p>经典派想要一个<strong>理论范畴</strong>,能容纳"会从经验里改进的实体"——所以他们要 reward、要 persistent intention、要 self-modification。</p> |
| <p>工业派想要一个<strong>工程区分</strong>,能告诉团队"这个产品该做成 workflow 还是 agent"——所以他们只关心 LLM 是不是控制了 control flow。</p> |
| <p><strong>Anthropic 的 workflow-vs-agent 准则是工业派最 rigorous 的尝试,但它根本不试图回答经典派的问题</strong>。它是在工业派内部画线,不在经典派的疆域里画线。</p> |
| <p>诚实的姿态:在 2026 年说"agent"的时候,<strong>明确你说的是哪一种</strong>。</p> |
| <blockquote> |
| <ul> |
| <li><strong>LLM agent</strong>(操作派 / Anthropic / 工业)= LLM 在 loop 里控制 control flow</li> |
| <li><strong>agent</strong>(规范派 / R&N / Sutton)= 在环境中追求性能度量、能从经验改进的实体</li> |
| </ul> |
| </blockquote> |
| <p>这两个词将来会分化。我赌<strong>操作派的"LLM agent"会保留这个词</strong>——因为他们在卖产品,市场份额大;规范派最后会用"autonomous learning system"或者别的什么术语区分自己。这是语义经济学的常规结局。</p> |
| <hr /> |
| <h2 id="5-比列组件更有用的拆解agency-安放在哪里">5. 比"列组件"更有用的拆解:agency 安放在哪里</h2> |
| <p>到这里,列组件——loop / tools / memory / planning / reflection——已经解释不了任何流派分歧了。所有人都列得出来。</p> |
| <p>更尖锐的问题是:<strong>你把 agency 安放在哪里</strong>?</p> |
| <p>研究下来 10 个流派,按"agency 的位置"可以归到四个互斥的押注上:</p> |
| <p><svg viewBox="0 0 720 380" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="agency 安放在哪里:四派矩阵"> |
| <defs> |
| <style> |
| .lbl { font: 600 14px -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; fill: #1f2937; } |
| .sub { font: 12px -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; fill: #4b5563; } |
| .axis { font: 11px -apple-system, sans-serif; fill: #6b7280; } |
| .box { fill: #f9fafb; stroke: #d1d5db; stroke-width: 1; } |
| .title-text { font: 700 13px -apple-system, "PingFang SC", sans-serif; fill: #111827; } |
| </style> |
| </defs> |
| |
| <rect class="box" x="40" y="40" width="320" height="150" rx="6"/> |
| <rect class="box" x="380" y="40" width="320" height="150" rx="6"/> |
| <rect class="box" x="40" y="210" width="320" height="150" rx="6"/> |
| <rect class="box" x="380" y="210" width="320" height="150" rx="6"/> |
| |
| <text class="title-text" x="60" y="65">内部派 · agency 在模型里</text> |
| <text class="sub" x="60" y="88">押注:模型本身可以承载 agency</text> |
| <text class="lbl" x="60" y="115">代表</text> |
| <text class="sub" x="60" y="135">• Anthropic / OpenAI / Karpathy(LLM-tool-loop)</text> |
| <text class="sub" x="60" y="153">• DSPy(compiled program)</text> |
| <text class="sub" x="60" y="171">• 怀疑派("agent 是 LLM 加几行循环")</text> |
| |
| <text class="title-text" x="400" y="65">结构派 · agency 在脚手架里</text> |
| <text class="sub" x="400" y="88">押注:agency 是工程结构涌现的</text> |
| <text class="lbl" x="400" y="115">代表</text> |
| <text class="sub" x="400" y="135">• CoALA / Letta(认知架构)</text> |
| <text class="sub" x="400" y="153">• ADAS / Darwin Gödel Machine(自修改)</text> |
| <text class="sub" x="400" y="171">• Agentic Context Engineering(context-as-substrate)</text> |
| |
| <text class="title-text" x="60" y="235">耦合派 · agency 在 agent-环境关系里</text> |
| <text class="sub" x="60" y="258">押注:agency 是关系性的,不属于任何一方</text> |
| <text class="lbl" x="60" y="285">代表</text> |
| <text class="sub" x="60" y="305">• LeCun JEPA(学习世界模型 + 在其中规划)</text> |
| <text class="sub" x="60" y="323">• Andy Clark 扩展心智</text> |
| <text class="sub" x="60" y="341">• Friston 自由能原理(FEP)</text> |
| |
| <text class="title-text" x="400" y="235">信号派 · agency 在优化信号里</text> |
| <text class="sub" x="400" y="258">押注:没有正确的优化信号就没有 agency</text> |
| <text class="lbl" x="400" y="285">代表</text> |
| <text class="sub" x="400" y="305">• BDI / Wooldridge(commitment 是信号)</text> |
| <text class="sub" x="400" y="323">• Sutton & Barto(reward 是信号)</text> |
| <text class="sub" x="400" y="341">• 2026 agentic-RL(多轮 RL 训练 LLM 权重)</text> |
| </svg></p> |
| <p><strong>这四个押注基本不兼容</strong>。每个押注都给你一些东西、放弃另一些:</p> |
| <ul> |
| <li><strong>押内部</strong>:得到工程上简洁、empirical 强;放弃理论扎实、放弃可解释、放弃 continual learning</li> |
| <li><strong>押结构</strong>:得到模块化、可推理、可演化;放弃简洁、容易"把盒子拼起来叫认知"</li> |
| <li><strong>押耦合</strong>:得到深刻的哲学位置;放弃可工程化(FEP 被批不可证伪)</li> |
| <li><strong>押信号</strong>:得到 agency 的硬定义;放弃在没有 reward 的开放任务上做事的可能</li> |
| </ul> |
| <p><strong>研究人员应该明确知道自己在押哪个</strong>,而不是嘴上说"我们综合"——综合通常意味着没押注。</p> |
| <hr /> |
| <h2 id="6-五条核心洞见">6. 五条核心洞见</h2> |
| <p>把上面四节浓缩成五条 takeaway。</p> |
| <h3 id="洞见一loop-是-agent-唯一被普遍同意的本质特征">洞见一:loop 是 agent 唯一被普遍同意的本质特征</h3> |
| <p>跨 13 个生产框架,<strong>只有 loop 是 100% 共识</strong>。tool use 不普适,memory 不普适,planning 不普适。</p> |
| <p>写 agent 的人脑子里应该有一条线:<strong>没有 loop 不是 agent,loop 之外都是装饰</strong>。这意味着如果你在做一个一次性 LLM 调用包了几个工具的东西——它是工具调用,不是 agent。如果你的"agent"实质是个被人类按住每一步决策的助手——它是 chatbot,不是 agent。</p> |
| <h3 id="洞见二anthropic-的判定准则比是否带工具清爽">洞见二:Anthropic 的判定准则比"是否带工具"清爽</h3> |
| <blockquote> |
| <p><strong>代码决定下一步 → workflow;LLM 决定下一步 → agent。</strong></p> |
| </blockquote> |
| <p>这条准则不关心你有没有工具、有没有记忆、是不是多轮。它关心<strong>控制权归属</strong>。</p> |
| <p>实操上还有个更尖锐的逆否:<strong>LLM 能不能拒绝系统设计者期待的下一步</strong>?能 → agent;不能 → workflow。这条比"是否带 tool"少 10 个反例。</p> |
| <h3 id="洞见三经典-ai-不会把今天的-llm-agents-叫做-agent这预测一个硬天花板">洞见三:经典 AI 不会把今天的 LLM agents 叫做 agent——这预测一个硬天花板</h3> |
| <table> |
| <thead> |
| <tr> |
| <th>经典定义</th> |
| <th>LLM agent 缺什么</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>Russell & Norvig</td> |
| <td>推理时无 performance measure 在驱动</td> |
| </tr> |
| <tr> |
| <td>Sutton & Barto</td> |
| <td>推理时无 runtime reward</td> |
| </tr> |
| <tr> |
| <td>Wooldridge</td> |
| <td>autonomy 弱(无跨 session persistent intention)、无形式化 ACL</td> |
| </tr> |
| <tr> |
| <td>Schmidhuber</td> |
| <td>不改自己权重</td> |
| </tr> |
| </tbody> |
| </table> |
| <p>这不是迂腐。<strong>它预测一个具体的硬天花板</strong>:靠 scaffolding 跨不过 continual experience-driven adaptation。</p> |
| <p>如果你的研究问题是"怎么让 agent 跨过这条线"——那你的工作不在 Frame 5(LLM-tool-loop)的内部,<strong>而是在攻击 Frame 5 本身</strong>。</p> |
| <h3 id="洞见四2026-年三个前沿都在攻击-scaffolding-本身">洞见四:2026 年三个前沿都在攻击 scaffolding 本身</h3> |
| <p>我<a href="agent-frameworks-2026.html">上一篇博客</a>主张过"scaffolding over modification"——把 LLM 当固定函数,外面搭脚手架。这是<strong>当前 SOTA 立场</strong>。但 2026 年三个前沿都在踢这条腿:</p> |
| <table> |
| <thead> |
| <tr> |
| <th>前沿</th> |
| <th>攻击的位置</th> |
| <th>代表工作</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td><strong>Self-modification</strong></td> |
| <td>"scaffolding 应该可演化"</td> |
| <td>Sakana DGM(<a href="https://arxiv.org/abs/2505.22954">arXiv:2505.22954</a>),ADAS</td> |
| </tr> |
| <tr> |
| <td><strong>Agentic-RL</strong></td> |
| <td>"LLM 不该是固定函数,权重应端到端训练为多轮 policy"</td> |
| <td><a href="https://arxiv.org/abs/2509.02547">arXiv:2509.02547</a>,<a href="https://arxiv.org/abs/2510.01132">arXiv:2510.01132</a></td> |
| </tr> |
| <tr> |
| <td><strong>Context-as-substrate</strong></td> |
| <td>"loop 才是次要的,context curriculum 才是 agency 所在"</td> |
| <td>Agentic Context Engineering (<a href="https://arxiv.org/abs/2510.04618">arXiv:2510.04618</a>)</td> |
| </tr> |
| </tbody> |
| </table> |
| <p>scaffolding-over-modification 是当下对的——但<strong>不是终点</strong>。如果你做研究,应该想清楚自己押哪个反例。</p> |
| <h3 id="洞见五先选-agency-的位置再选组件">洞见五:先选 agency 的位置,再选组件</h3> |
| <p>不要再问"agent 该有哪些组件"——这个问题不区分流派。</p> |
| <p>要问:<strong>你把 agency 安放在哪里</strong>?</p> |
| <ul> |
| <li>安在模型里 → 你押 LLM-tool-loop / agentic-RL,组件是"更大的模型 + 更好的 RL"</li> |
| <li>安在脚手架里 → 你押 CoALA / DGM / context-engineering,组件是"模块化记忆 + 自修改 + context 演化"</li> |
| <li>安在 agent-环境耦合里 → 你押 JEPA / FEP,组件是"学习世界模型 + 规划"</li> |
| <li>安在优化信号里 → 你押 BDI / RL,组件是"reward 设计 + commitment 机制"</li> |
| </ul> |
| <p>这四个押注的组件清单<strong>完全不同</strong>。先选押注,再选组件。<strong>反过来你永远做不到一致的东西</strong>。</p> |
| <hr /> |
| <h2 id="7-给读者的话">7. 给读者的话</h2> |
| <p>这篇博客没有给你"agent 的标准定义"——因为那个定义不存在,至少 2026 年不存在。</p> |
| <p>它给了你一张更有用的东西:<strong>一张地图</strong>。</p> |
| <p>知道工业派的边界画在哪里(control flow 归属权)、经典派的边界画在哪里(reward / autonomy / self-modification)、以及当前 SOTA 落在两条边界中间的什么位置(满足工业派 ✅、不满足经典派 ❌)。</p> |
| <p>还知道 2026 年的研究前沿正在朝经典派那条边界推进——self-modification 在打 Schmidhuber 那条线、agentic-RL 在打 Sutton 那条线、context-as-substrate 在打 LeCun 那条线。</p> |
| <p>你下一次说"我们要做一个 agent"的时候,<strong>自己心里能区分</strong>:</p> |
| <ul> |
| <li>我说的是工业派 agent(控制 control flow),还是经典派 agent(从经验改进)?</li> |
| <li>我把 agency 安放在哪里——模型里、结构里、耦合里、还是优化信号里?</li> |
| <li>我的研究增量是在 Frame 5 内部做工程,还是在攻击 Frame 5 本身?</li> |
| </ul> |
| <p>回答清楚这三个问题,你已经领先 80% 在用这个词的人。</p> |
| <hr /> |
| <h2 id="附研究方法和限制">附:研究方法和限制</h2> |
| <p>这篇博客的素材来自一次对 18 篇 2024-2026 surveys / position papers + 13 个生产框架文档 + 4 本经典 AI 教材的并行扫描。原始 research 报告存在我的 <code>~/research/2026-05-08-agent-core/</code> 下。</p> |
| <p><strong>诚实的限制</strong>:</p> |
| <ul> |
| <li>AIMA(Russell & Norvig)和 Wooldridge 1995 的引文是从二手 snippet 聚合的,PDF 直接 fetch 在沙箱里被拒。引文表述是学术界共识的标准 rendering,但不是逐字逐页核对的</li> |
| <li>Darwin Gödel Machine 在 SWE-bench 20% → 50% 的数字来自二手报告,<strong>未独立核实原 paper</strong></li> |
| <li>没系统覆盖中文学术圈对 agent 定义的批评(清华 AIR / 上海 AI Lab 等)</li> |
| <li>没读 Searle / Dennett / Brooks 这些更哲学的位置——可能漏了一个"行为派 / 无表征派"的 frame</li> |
| <li>SOTA 截止 2026-05-08,之后的工作不在覆盖范围</li> |
| </ul> |
| <p><strong>会让我推翻这篇主要结论的观察</strong>:</p> |
| <ul> |
| <li>如果 2027 年 Sutton 或 LeCun 公开承认 LLM-tool-loop 是合法 agent——那经典派那条边界就软化了</li> |
| <li>如果 agentic-RL / DGM / context-engineering 三条腿全部停滞,纯 scaffolding 仍然主导——那洞见四错了</li> |
| <li>如果未来的 taxonomy paper 提出比"agency 位置"更好的拆解轴——那洞见五要更新</li> |
| </ul> |
| <hr /> |
| <h2 id="引用">引用</h2> |
| <ul> |
| <li>Anthropic, <em>Building Effective AI Agents</em> (Dec 2024) — <a href="https://www.anthropic.com/research/building-effective-agents">anthropic.com</a></li> |
| <li>Sumers, Yao, Narasimhan, Griffiths, <em>Cognitive Architectures for Language Agents (CoALA)</em> — <a href="https://arxiv.org/abs/2309.02427">arXiv:2309.02427</a></li> |
| <li>Silver & Sutton, <em>Welcome to the Era of Experience</em> (2025) — <a href="https://storage.googleapis.com/deepmind-media/Era-of-Experience%20/The%20Era%20of%20Experience%20Paper.pdf">DeepMind PDF</a></li> |
| <li>Russell & Norvig, <em>Artificial Intelligence: A Modern Approach</em>, 4th ed Ch.2 — <a href="http://aima.cs.berkeley.edu/4th-ed/pdfs/newchap02.pdf">aima.cs.berkeley.edu</a></li> |
| <li>Wooldridge & Jennings, <em>Intelligent Agents: Theory and Practice</em> (1995)</li> |
| <li>Sutton & Barto, <em>Reinforcement Learning: An Introduction</em>, 2nd ed (2018)</li> |
| <li>Schmidhuber, <em>Gödel Machines</em> — <a href="https://sferics.idsia.ch/pub/juergen/gmAGI.pdf">idsia.ch</a></li> |
| <li>LeCun, <em>A Path Towards Autonomous Machine Intelligence</em> (2022) — <a href="https://openreview.net/pdf?id=BZ5a1r-kVsf">OpenReview</a></li> |
| <li>Zhang et al., <em>Darwin Gödel Machine</em> (2025) — <a href="https://arxiv.org/abs/2505.22954">arXiv:2505.22954</a></li> |
| <li><em>Agentic RL Survey</em> — <a href="https://arxiv.org/abs/2509.02547">arXiv:2509.02547</a></li> |
| <li><em>Agentic Context Engineering</em> — <a href="https://arxiv.org/abs/2510.04618">arXiv:2510.04618</a></li> |
| <li>Karpathy, <em>Year in Review 2025</em> — <a href="https://karpathy.bearblog.dev/year-in-review-2025/">karpathy.bearblog.dev</a></li> |
| <li><em>AI Agents vs Agentic AI: A Conceptual Taxonomy</em> — <a href="https://arxiv.org/abs/2505.10468">arXiv:2505.10468</a></li> |
| <li>Sketch.dev, <em>Unreasonable Effectiveness of an LLM Agent Loop</em> — <a href="https://sketch.dev/blog/agent-loop">sketch.dev</a></li> |
| </ul> |
| </article> |
| <footer class="site-footer"> |
| <p>© 2026 Ehco · CC BY 4.0 · 转载请注明出处 · <a href="../index.html">首页</a></p> |
| </footer> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script> |
| <script> |
| document.querySelectorAll("pre code").forEach((el) => { hljs.highlightElement(el); }); |
| </script> |
| <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script> |
| <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js" |
| onload="renderMathInElement(document.body, { |
| delimiters: [ |
| {left: '$$', right: '$$', display: true}, |
| {left: '$', right: '$', display: false}, |
| {left: '\\(', right: '\\)', display: false}, |
| {left: '\\[', right: '\\]', display: true} |
| ], |
| throwOnError: false |
| });"></script> |
| </body> |
| </html> |
|
|