File size: 31,985 Bytes
798e2e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3ea45d2
798e2e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3ea45d2
798e2e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3ea45d2
798e2e6
 
 
 
3ea45d2
798e2e6
 
 
 
 
 
 
3ea45d2
798e2e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3ea45d2
798e2e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Agent 框架选型的九次推翻 — 从 EvoAgentX 到 scaffolding 本身 | Ehco's Blog</title>
<meta name="description" content="用九轮对话寻找一个理论扎实、能自进化、能沉淀知识的 agent 框架,最后发现被推翻的不是某个框架,是把这个问题问成&quot;哪个框架&quot;本身">
<meta property="og:title" content="Agent 框架选型的九次推翻 — 从 EvoAgentX 到 scaffolding 本身">
<meta property="og:description" content="用九轮对话寻找一个理论扎实、能自进化、能沉淀知识的 agent 框架,最后发现被推翻的不是某个框架,是把这个问题问成&quot;哪个框架&quot;本身">
<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-框架选型的九次推翻-从-evoagentx-到-scaffolding-本身">Agent 框架选型的九次推翻 — 从 EvoAgentX 到 scaffolding 本身</h1>
<blockquote>
<p>用九轮对话寻找一个"理论扎实 + 自进化 + 能沉淀知识"的 agent 框架。每一轮都给出最佳推荐,每一轮都被下一轮推翻。最后我意识到:被推翻的不是某个框架,是这个问题本身。</p>
<p><strong>Ehco</strong> · 2026 年 5 月 · 阅读时间约 18 分钟</p>
</blockquote>
<hr />
<h2 id="摘要">摘要</h2>
<p>我和 AI 来回了九轮,试图选一个 agent 框架。九轮之后我得到的不是答案,是一张领域地图:五种本体论假设、六个未来趋势、一条研究增量。这篇博客记录这次认知迭代的痕迹,最终落到 agent 框架的真正核心理念——<strong>scaffolding over modification</strong>——再往前推到一个具体的、可证伪的研究方向:用 agent + tool 任务作为"小模型 + 知识外置"的实验台。</p>
<p>如果你也在选 agent 框架,希望这篇能帮你跳过中间七轮。</p>
<hr />
<h2 id="1-起点一个看起来简单的问题">1. 起点:一个看起来简单的问题</h2>
<p>研究者面对 agent 框架时,常见的三条硬性要求:</p>
<ol>
<li><strong>理论扎实</strong> —— 有 paper、有理论框架,不是纯工程 demo</li>
<li><strong>自进化</strong> —— scaffolding 层(prompt / workflow / skill / 架构)随使用变好</li>
<li><strong>沉淀知识</strong> —— 经验跨 session 累积、可检索、可演化</li>
</ol>
<p>听起来简单吧。"市面上现在哪个 agent 框架同时满足这三条?"</p>
<p>九轮之后才明白——<strong>这个问题问错了</strong></p>
<hr />
<h2 id="2-九轮推荐的痕迹">2. 九轮推荐的痕迹</h2>
<p>为了让你看到迭代过程本身,把九轮推荐压成一张表:</p>
<table>
<thead>
<tr>
<th>轮次</th>
<th>当时的"最佳推荐"</th>
<th>当时的理由</th>
<th>后来发现</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>CoALA + Voyager + Letta</td>
<td>经典组合</td>
<td>偏旧。Voyager 是 2023 年的工作</td>
</tr>
<tr>
<td>2</td>
<td>EvoAgentX</td>
<td>名字里就有 self-evolving,2.5k stars,配套综述</td>
<td>v0.1 demo 停在 2025-09,本质是 AutoML-for-prompts,不是 lifelong learning</td>
</tr>
<tr>
<td>3</td>
<td>DSPy + Letta + HippoRAG 2</td>
<td>Stanford 视角,DSPy 是 ICLR Spotlight</td>
<td>完全没看到中国生态。AgentScope 团队已经把整套东西做出来了</td>
</tr>
<tr>
<td>4</td>
<td>AgentScope + ReMe + Trinity-RFT</td>
<td>撞上正解</td>
<td>把"集成"误说成 monorepo——三者其实是同团队的独立项目</td>
</tr>
<tr>
<td>5</td>
<td>砍掉 Trinity-RFT</td>
<td>加上 "API 模型、不能训权重" 约束后 RFT 路径不可行</td>
<td>修正方向但没扩展候选</td>
</tr>
<tr>
<td>6</td>
<td>单推 ReMe</td>
<td>"三条全中、且代码可用"</td>
<td>数据没核实——ReMe 在 BFCL 上提升只有 +2-15%,是温和改进不是革命</td>
</tr>
<tr>
<td>7</td>
<td>A-MEM 平推</td>
<td>NeurIPS 2025,自动进化</td>
<td>A-MEM 已经被 D-MEM/Mem0 在 LoCoMo 超越 25+ 分</td>
</tr>
<tr>
<td>8</td>
<td>引入 D-MEM、Quality Gating dual-process</td>
<td>2026-03 神经科学新工作</td>
<td>都是研究代码,没有产品形态</td>
</tr>
<tr>
<td>9</td>
<td>三层架构(不再单推)</td>
<td>没有单点最优,分层 bet</td>
<td>这一轮的结论看起来终于站得住</td>
</tr>
</tbody>
</table>
<p>每一轮的方法论错误是同一个:<strong>在上一轮答案的基础上做局部优化,没有定期回到完整的 SOTA 检索</strong>。结果就是每一轮的推荐都比真实 SOTA 落后 6-12 个月。对研究者来说,这是致命的——你拿一个去年的 paper 当起点,中间错过了 3-4 篇关键工作。</p>
<p>如果可以重来,第一轮我应该说:"这个领域 2025-2026 没有稳定的最佳框架,在足够 search 之前不要用'唯一''最佳'这种词,告诉我你的具体场景再来定。"</p>
<hr />
<h2 id="3-当框架塌陷后剩下什么五种本体论假设">3. 当框架塌陷后剩下什么:五种本体论假设</h2>
<p>九轮推荐都被推翻之后,留下的不是空白——是一张更深的地图。把所有讨论过的框架归约到底,其实是<strong>五种不同的本体论假设</strong>——对"agent 该如何记忆和进化"的根本回答不一样。</p>
<h3 id="一认知架构派记忆是分层模块">一、认知架构派:记忆是分层模块</h3>
<ul>
<li><strong>代表</strong>:CoALA (Princeton, arXiv:2309.02427) → Letta (UC Berkeley)</li>
<li><strong>祖宗</strong>:Soar、ACT-R、Newell(1980 年代论证人类心智需要 working / episodic / semantic / procedural 四类记忆协同)</li>
<li><strong>核心 claim</strong>:把这套分类直接搬到 LLM agent 上。Letta 把 LLM 当 OS,记忆是 RAM 加 disk</li>
<li><strong>软肋</strong>:这套分类是"人类心智的对吗",但 LLM 心智未必如此。强行四分类可能反而限制表达</li>
</ul>
<h3 id="二知识网络派记忆是动态图">二、知识网络派:记忆是动态图</h3>
<ul>
<li><strong>代表</strong>:A-MEM (Rutgers, NeurIPS 2025) → HippoRAG 2 (OSU, ICML 2025) → D-MEM (UCSD/CMU, 2026-03)</li>
<li><strong>祖宗</strong>:Zettelkasten(Niklas Luhmann 用 9 万张卡片建立思想网络)+ 海马体记忆巩固理论</li>
<li><strong>核心 claim</strong>:知识不是分类存的,是通过链接形成网络。新记忆触发旧记忆的元数据更新,整个图随经验自适应</li>
<li><strong>软肋</strong>:A-MEM 已经被 D-MEM 用 RPE(Reward Prediction Error)门控批了——每次写入都全图更新是 O(N²),规模一上来就崩。理论漂亮但工程上有明显瓶颈</li>
</ul>
<h3 id="三生产记忆派记忆是一个服务">三、生产记忆派:记忆是一个服务</h3>
<ul>
<li><strong>代表</strong>:Mem0 (ECAI 2025, arXiv:2504.19413) → ReMe (阿里 Tongyi, arXiv:2512.10696)</li>
<li><strong>祖宗</strong>:分布式系统的 conflict-free replicated data types、CDC 数据库、缓存</li>
<li><strong>核心 claim</strong>:记忆和理论无关,是个有 API、有 SLA、有冲突解决策略的存储服务。重点是 latency、cost、framework 集成数量</li>
<li><strong>软肋</strong>:理论上没什么新东西,本质是 RAG 加结构化更新。但工程上——它是<strong>唯一能现在直接拿来用的</strong></li>
</ul>
<h3 id="四编译优化派agent-是可优化的程序">四、编译优化派:agent 是可优化的程序</h3>
<ul>
<li><strong>代表</strong>:DSPy (Stanford, ICLR 2024 Spotlight) → TextGrad → AFlow → EvoAgentX</li>
<li><strong>祖宗</strong>:可微编程、PyTorch autograd、神经架构搜索</li>
<li><strong>核心 claim</strong>:agent pipeline 是 program,用数据驱动优化方法找最优 prompt / workflow 拓扑。把 SGD 思想搬到 LLM scaffolding 层</li>
<li><strong>软肋</strong>:思想优雅但<strong>和"沉淀知识"正交</strong>。它解决"如何一次性把 pipeline 调到最优",不解决"如何随时间累积经验"。是编译期一次性产物,不持久</li>
</ul>
<h3 id="五自演化派agent-重写自己">五、自演化派:agent 重写自己</h3>
<ul>
<li><strong>代表</strong>:ADAS (Hu/Lu/Clune, ICLR 2025) → Darwin Gödel Machine (Sakana AI, 2025) → AlphaEvolve (DeepMind, 2025)</li>
<li><strong>祖宗</strong>:Gödel machine(Schmidhuber)+ open-endedness(Stanley/Clune AI-GAs)+ quality-diversity 算法</li>
<li><strong>核心 claim</strong>:agent 应该有能力修改自己的源代码。meta-agent 用 archive-based exploration 生成更好的 agent 变体,archive 维护"踏脚石"而不是单一最优</li>
<li><strong>软肋</strong>:DGM 在 SWE-bench 上把成绩从 20% 推到 50%,但靠很多算力。<strong>理论最爽,烧 token 最多</strong></li>
</ul>
<h3 id="横向矩阵">横向矩阵</h3>
<table>
<thead>
<tr>
<th>流派</th>
<th>代表</th>
<th>理论扎实</th>
<th>自进化</th>
<th>沉淀知识</th>
<th>API 友好</th>
<th>当前可用</th>
</tr>
</thead>
<tbody>
<tr>
<td>认知架构派</td>
<td>Letta</td>
<td>✅✅</td>
<td>⚠️</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>知识网络派</td>
<td>A-MEM / D-MEM</td>
<td>✅✅</td>
<td>✅✅</td>
<td>✅✅</td>
<td></td>
<td>⚠️ 研究代码</td>
</tr>
<tr>
<td>生产记忆派</td>
<td>Mem0 / ReMe</td>
<td>⚠️</td>
<td>⚠️</td>
<td>✅✅</td>
<td>✅✅</td>
<td>✅✅</td>
</tr>
<tr>
<td>编译优化派</td>
<td>DSPy</td>
<td>✅✅</td>
<td>⚠️ 编译期</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>自演化派</td>
<td>ADAS / DGM</td>
<td>✅✅</td>
<td>✅✅</td>
<td>⚠️</td>
<td></td>
<td>⚠️ 研究代码</td>
</tr>
</tbody>
</table>
<p><strong>没有任何一派单独同时拿满所有维度</strong>。这才是 2026 年这个领域的真实状态——五个传统还在分裂,没有合一的赢家。</p>
<hr />
<h2 id="4-agent-的真正核心scaffolding-over-modification">4. Agent 的真正核心:scaffolding over modification</h2>
<p>九轮聊完,我才有底气回答一个看起来更基础的问题:<strong>agent 框架到底是为什么存在的?</strong></p>
<p>一个常见误区是把 agent 框架的目标说成"提升模型的准确性和效率"。这个表述错在哪里?</p>
<h3 id="把因果方向搞反">把因果方向搞反</h3>
<p>LLM 是一个<strong>无状态函数</strong>——给它输入返回输出,本身不变。Agent 框架做的不是"提升模型",而是<strong>在冻结的 LLM 之外构建一个有状态的、能与世界交互的系统</strong></p>
<p>打个比方:你不会说"汽车的目标是提升发动机的性能"。汽车需要发动机,但汽车存在的意义是把人从 A 运到 B。发动机性能在出厂前就定了。<strong>LLM 是发动机,agent 框架是汽车</strong></p>
<p>如果只是为了"提升准确性",最直接的方法是换更大的模型——根本不需要 agent 框架。Agent 框架要解决的是<strong>单纯换大模型解决不了的问题</strong></p>
<h3 id="llm-的六个本质局限">LLM 的六个本质局限</h3>
<table>
<thead>
<tr>
<th>LLM 局限</th>
<th>Agent 框架的对应解法</th>
</tr>
</thead>
<tbody>
<tr>
<td>无状态</td>
<td>Memory 系统</td>
</tr>
<tr>
<td>无法行动</td>
<td>Tool calling</td>
</tr>
<tr>
<td>上下文有限</td>
<td>Context management / RAG</td>
</tr>
<tr>
<td>单步推理</td>
<td>ReAct / 多轮规划</td>
</tr>
<tr>
<td>静态知识</td>
<td>检索增强 / 网络搜索</td>
</tr>
<tr>
<td>不可信验证</td>
<td>Verifier / 多 agent 辩论</td>
</tr>
</tbody>
</table>
<p>把五派重新放在这张表前面看,你会发现每一派其实是<strong>对"哪个 LLM 局限最该补"的不同回答</strong>。这不是哲学分歧,是工程优先级分歧。</p>
<h3 id="核心理念scaffolding不是-modification">核心理念:scaffolding,不是 modification</h3>
<p>Agent 框架的真正核心可以浓缩成一个英文词:<strong>scaffolding</strong>——脚手架。</p>
<blockquote>
<p>不要试图改进 LLM 本身。把 LLM 当成一个固定能力的"思考函数",在它周围搭建脚手架,让这个固定能力涌现出超出单次调用的复杂行为。</p>
</blockquote>
<p>支撑这个立场的三个根本判断:</p>
<ol>
<li>
<p><strong>模型能力短期内不会通过 agent 工程"提升"</strong>。GPT-4 就是 GPT-4,单次调用的能力上限不会因为你换框架而改变。Agent 框架能做的是让多次调用的总产出比单次调用大——<strong>这是涌现,不是提升</strong></p>
</li>
<li>
<p><strong>智能不只在大脑里,也在大脑和环境的交互中</strong>。这是 Andy Clark 的 extended mind hypothesis——一个数学家用纸和笔解题,"智能"不是只在大脑里,纸笔扩展了工作记忆。Agent 框架就是给 LLM 一套"纸和笔"</p>
</li>
<li>
<p><strong>可靠性来自约束,不来自能力</strong>。让 LLM 自己写一段复杂代码可能 70% 正确率。但如果你加上"先写测试,再写代码,跑测试,根据失败修代码"——可靠性能上 90%+。多出来的 20% 不是因为 LLM 变聪明了,是因为流程把它的不可靠性约束在了一个可恢复的循环里</p>
</li>
</ol>
<h3 id="一句话定义">一句话定义</h3>
<p>把闭环和 scaffolding 合起来,agent 框架的精确定义可以写成:</p>
<blockquote>
<p><strong>Agent 框架的核心理念是:把不变的 LLM 嵌入一个有状态、能行动、能反思、能积累的工程系统中,让模型的固定能力涌现出超出单次调用的复杂行为。</strong></p>
</blockquote>
<p>LLM 是大脑,agent 框架是身体。你不会问"汽车的目的是不是让发动机更准确",同样你也不该问"agent 框架的目的是不是让模型更准确"。</p>
<p>agent 框架的真正问题是:<strong>给定一颗已经定型的大脑,如何造一具身体让它走出实验室,做点真正的事</strong></p>
<hr />
<h2 id="5-未来三年的六个方向">5. 未来三年的六个方向</h2>
<p>讲未来必须诚实——没人真的知道未来会怎样。能做的是把当前已经显现出方向性的信号列出来,让你自己判断。</p>
<p><strong>趋势一:从"对话型 agent"转向"行动型 agent"</strong></p>
<p>2023-2024 年的 agent 主要还是"和 agent 对话"。2025-2026 年明显的转向是长时间无人监督的自主任务执行——Claude Code、Cursor、Replit Agent、Devin、SWE-Agent。核心转变:从"agent 是个智能助手"到"agent 是个能独立完成任务的数字员工"。</p>
<p><strong>趋势二:multi-agent 成为默认架构</strong></p>
<p>Anthropic 公开他们内部用 multi-agent 做研究(research agent 调用多个子 agent 并行 search)。AgentScope、MetaGPT、AutoGen 都把 multi-agent orchestration 作为核心。未来 agent 的能力不只看单 agent 强不强,看 agent 之间的协议、协作模式、责任划分。</p>
<p><strong>趋势三:memory 从可选变成必备</strong></p>
<p>2024 年大多数 agent 系统没有真正的长期记忆。2026 年开始改变——LoCoMo benchmark、Mem0/A-MEM/D-MEM 这一系列工作的出现,标志着 memory 正在从"加分项"变成"基础设施"。Claude、ChatGPT、Gemini 都上线了原生 memory 功能。这会让 agent 真正具备"个性":同一个框架跑 6 个月之后,因为积累的经验不同,行为会显著分化。</p>
<p><strong>趋势四:从 prompt engineering 转向 system engineering</strong></p>
<p>2023 年大家比谁的 prompt 写得好。2026 年的关注点已经移到<strong>整个 agent 系统的工程质量</strong>:可观测性、错误恢复、成本控制、多租户隔离、安全沙箱、审计日志。LangSmith、Arize、Helicone 这些 LLM observability 工具的崛起;Anthropic Agent Skills(agentskills.io)成为开放标准;"Eval-driven development" 取代 prompt-driven。</p>
<p><strong>趋势五:垂直化和具身化分流</strong></p>
<p>通用 agent(OpenAI Operator)和垂直专用 agent(医疗、法律、coding、机器人)会越来越分化。Coding agent 已经单独成产业(Cursor、Devin、Cognition、Claude Code)。VLA(Vision-Language-Action)把 agent 推向物理世界。</p>
<p><strong>趋势六:自进化的真正实现还很远</strong></p>
<p>ADAS、DGM 这些工作有 promising signs,但都是研究 demo,没有产品形态。真正的自进化还有三个未解问题:</p>
<ol>
<li><strong>奖励信号问题</strong>:现实任务大多没有明确 reward</li>
<li><strong>稳定性问题</strong>:自修改的系统很容易越修改越烂(catastrophic drift)</li>
<li><strong>算力问题</strong>:让 meta-agent 探索 agent 空间需要大量 LLM 调用,成本不可控</li>
</ol>
<p>这个方向是研究的金矿,但<strong>不是产品的金矿</strong>。如果做研究是正确方向;如果做工程,未来 2-3 年的主流仍然是"人类设计 agent + memory 累积经验"。</p>
<h3 id="一句话押注">一句话押注</h3>
<p>把六个趋势串起来,我自己的押注是:</p>
<blockquote>
<p><strong>未来三年,agent 不会变得更"聪明",会变得更"靠谱"。</strong></p>
</blockquote>
<p>这个 distinction 比任何具体技术都重要。</p>
<hr />
<h2 id="6-从bet-哪个框架到bet-研究增量">6. 从"bet 哪个框架"到"bet 研究增量"</h2>
<p>九轮之后,如果你逼我给一个具体推荐,我会说:</p>
<p><strong>三层架构 bet</strong></p>
<div class="codehilite"><pre><span></span><code>┌────────────────────────────────────────────┐
│  研究增量层(你的工作)                    │
└────────────────────┬───────────────────────┘
                     ↓
┌────────────────────────────────────────────┐
│  执行层 (Execution): AgentScope v2         │
│  ReAct 循环、tool calling、HITL、streaming │
└────────────────────┬───────────────────────┘
                     ↓
┌────────────────────────────────────────────┐
│  记忆层 (Memory): Mem0 + ReMe              │
│  Mem0 做 personal/episodic(LoCoMo SOTA) │
│  ReMe 做 procedural(任务执行强)          │
└────────────────────┬───────────────────────┘
                     ↓
┌────────────────────────────────────────────┐
│  模型层 (Model): API 模型组合              │
└────────────────────────────────────────────┘
</code></pre></div>

<p><strong>这个推荐不是终点</strong></p>
<p><strong>真正的终点是:bet 不在框架,在你自己的研究问题</strong>。框架是水电煤,研究问题才是房子。三层架构的价值不在于它最强,而在于<strong>对所有可能赢家的兼容性</strong>——任何一层有更好的替代品出现,你都能换掉那一层而不丢掉整个工作。</p>
<h3 id="一个具体的研究假设">一个具体的研究假设</h3>
<p>举一个具体的研究方向作为例子:</p>
<blockquote>
<p><strong>用 agent + tool 任务作为"小模型 + 知识外置"的可证伪实验台。</strong></p>
</blockquote>
<p>这个假设是这样推出来的——</p>
<p>一个常见的初始想法是做"零知识 reasoning core":一个具零知识但推理能力极强的小模型。但这个命题在自然语言上<strong>无法证伪</strong>:任何 NL 任务都掺世界知识,"零知识"根本无法干净操作,评估永远糊。</p>
<p><strong>agent + tool 这个设定恰好把知识外置成可见、可控的接口</strong></p>
<ul>
<li>工具调用成功率是干净指标</li>
<li>世界知识被搬到 tool 后端</li>
<li>给"小模型靠 test-time compute 强推理"这个假设找到了一个能 falsify 的实验台</li>
</ul>
<h3 id="一个被打掉的细节">一个被打掉的细节</h3>
<p>顺着这条线,自然会想到再配一个 loss 函数"剥离知识,只保留语义理解和推理"。深查之后必须承认:<strong>原理上不存在</strong></p>
<blockquote>
<p>神经网络里"知识"和"推理"用的是同一组权重。不是"难分开"——是它们根本就不是两个东西。</p>
</blockquote>
<p>这是过去 10 年神经科学和深度学习交叉领域的共识。"知识剥离"这个想法和"把蛋糕的甜味剥离出来留下口感"是同构的——你不能 isolate 一个<strong>不作为独立成分存在</strong>的东西。</p>
<p>这个 finding 比"找到对的 loss"更重要——它告诉你这个方向应该绕开。<strong>省掉的六个月比新做的工作更值钱</strong></p>
<h3 id="test-time-compute-那条还活着">test-time compute 那条还活着</h3>
<p>去掉"剥离知识"之后,剩下的研究空间在另一个维度:<strong>test-time compute 的两个独立轴</strong></p>
<ul>
<li><strong>Token 空间</strong>(CoT 系):模型把思考写成可读 token 序列。可解释、可教学、慢</li>
<li><strong>Latent 空间</strong>(递归 / loop / diffusion):思考在隐空间中迭代。快、不可解释、压缩高</li>
</ul>
<p>理论上对小模型来说,<strong>latent space test-time compute 更有意义</strong>——它不靠"记住更多事实"(小模型本来就装不下),靠"用更多算力把同样的能力榨出来"。这才是和"小模型 + tools" 真正搭配的方向:</p>
<ul>
<li>小模型负责语言理解 + tool 调用决策</li>
<li>test-time compute 在 latent space 里做迭代细化</li>
<li>知识外置在 tool 后端</li>
<li>评估指标在 BFCL / AppWorld 这些工具调用 benchmark 上是干净的</li>
</ul>
<h3 id="现实的硬度">现实的硬度</h3>
<p>不要美化这条路:</p>
<ul>
<li><strong>Qwen2.5-0.5B 已经在 BFCL 榜上</strong>(Berkeley 自己提交的)。想拿 ≤ 1B 模型做 agent SOTA,是个公开战场</li>
<li>HRM 27M / TRM 7M 在 ARC 上击败 o3-mini 的"奇迹",ARC Prize 复现报告显示 80% 来自训练范式(数据增广 + 迭代细化),递归模块本身只贡献 5pp</li>
<li>这是研究方向,不是 6 个月能 ship 的产品</li>
</ul>
<p>但作为研究,它满足三个条件:<strong>理论有抓手</strong>(计算放在哪个空间是可论证的)、<strong>可证伪</strong>(BFCL/AppWorld 干净指标)、<strong>资源可控</strong>(消费级显卡 + API 模型即可)。</p>
<p>这就够了。</p>
<hr />
<h2 id="7-结语九轮之后的真信念">7. 结语:九轮之后的真信念</h2>
<p>九轮讨论之后,我学到的不是哪个框架最好,是<strong>问题问得不对</strong></p>
<p>正确的姿态可以归纳为四句话:</p>
<ol>
<li><strong>没有一站式答案</strong>。五派分立,组合使用,自己动手</li>
<li><strong>Agent 的核心是闭环</strong>。趋势是闭环的每一环都在被工程化</li>
<li><strong>真正应该 bet 的是"对所有可能赢家的兼容性"</strong>——分层架构</li>
<li><strong>但分层架构本身只是水电煤</strong>。真正要 bet 的是研究问题</li>
</ol>
<p>未来三年,agent 框架的赢家可能 2027 年才会出现。在那之前,你需要的不是"赌对赢家",是"保持对所有可能赢家的兼容性"。<strong>同时,把研究问题想清楚——比框架重要十倍</strong></p>
<p>九轮之后我对这个领域的态度从"想找一站式答案"变成了"接受没有一站式答案"。这不是失败,是更准的认识。</p>
<hr />
<h2 id="参考资料">参考资料</h2>
<p><strong>理论与综述</strong></p>
<ul>
<li><em>CoALA: Cognitive Architectures for Language Agents</em> — Sumers et al., Princeton, 2023. arXiv:2309.02427</li>
<li><em>A Comprehensive Survey of Self-Evolving AI Agents</em> — Fang et al., 2025. arXiv:2508.07407</li>
</ul>
<p><strong>记忆系统</strong></p>
<ul>
<li><em>Letta / MemGPT</em> — UC Berkeley</li>
<li><em>A-MEM: Agentic Memory</em> — Xu et al., NeurIPS 2025. arXiv:2502.12110</li>
<li><em>HippoRAG 2</em> — ICML 2025. arXiv:2502.14802</li>
<li><em>D-MEM</em>(多巴胺 RPE 门控)— UCSD/CMU, 2026-03. arXiv:2603.14597</li>
<li><em>Mem0</em> — ECAI 2025. arXiv:2504.19413</li>
<li><em>ReMe: Dynamic Procedural Memory Framework</em> — SJTU + 阿里 Tongyi, 2025-12. arXiv:2512.10696</li>
</ul>
<p><strong>框架与编译优化</strong></p>
<ul>
<li><em>DSPy</em> — Stanford, ICLR 2024 Spotlight</li>
<li><em>AgentScope 1.0</em> — 阿里 Tongyi Lab. arXiv:2508.16279</li>
</ul>
<p><strong>自演化</strong></p>
<ul>
<li><em>ADAS: Automated Design of Agentic Systems</em> — Hu, Lu, Clune, ICLR 2025. arXiv:2408.08435</li>
<li><em>Darwin Gödel Machine</em> — Sakana AI, 2025. arXiv:2505.22954</li>
<li><em>AlphaEvolve</em> — DeepMind, 2025. arXiv:2506.13131</li>
</ul>
<p><strong>追踪资源</strong></p>
<ul>
<li><a href="https://github.com/TsinghuaC3I/Awesome-Memory-for-Agents">TsinghuaC3I/Awesome-Memory-for-Agents</a> —— 这才是这个领域真正应该 watch 的 repo</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>