Skip to content

Commit 84158b5

Browse files
committed
整个系列改名为AI Agent,充实第一篇内容
1 parent 27f3de0 commit 84158b5

5 files changed

Lines changed: 14 additions & 22 deletions

File tree

content/posts/agents-arch-1/index.md

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
+++
2-
title = "Agent实现原理与实践(一):Agent Loop"
2+
title = "AI Agent实现原理与实践(一):Agent Loop"
33
date = 2026-04-25T16:00:00+08:00
44
author = "Skyan"
55
tags = ["framework", "programming", "agents", "ai","llm"]
66
ShowToc = true
77
ShowBreadCrumbs = true
88
+++
99

10+
## 导言
11+
自2025年下半年以来,AI大模型的应用热点从chatbot转变到了智能体Agent。以Claude Code,Codex,OpenClaw等为代表的Agent风靡一时,成为业界热点话题。对于开发者而言,一旦习惯使用Agent来开发代码,就不会再回到过去那种、code completion或者chatbot的开发模式了。随之而来的一个疑问就是,Agent和AI chatbot这样的软件有什么本质区别?事实上,主要经过深入学习和研究Agent原理之后,每个人都会发现一个现象:那就是Agent的开发原理和过去所有的软件都不相同,它是一种**AI时代、新的、纯新、毫无争议的新**软件架构范式。每一个希望深入应用Agent架构的开发者、希望深入了解Agent的学习者、希望深入优化Agent的高级架构师,都必须先了解Agent的实现原理和最佳实践,才能深刻体会到这种崭新的思想,才能在AI时代快速变化的迷雾中,找到一丝微弱的亮光,指引开发者们前行。
12+
13+
本系列文章以著名的四个Agent项目:Claude Code,OpenAI Codex,Pi,Nanobot作为基础案例,分别介绍Agent的主要机制的设计原理和最佳实践。共分为六章:「Agent Loop」,「Tool System」,「Context Management」,「SubAgent System」,「Permission, Approval & Sandbox」以及「Observability & Operations」,这六章可以从机制上剖析Agent的基本架构。但实际Agent应用的内涵远不止这些内容,Agent的工业级落地还会面临更为复杂的情况,这可能是另外一个话题了。
14+
1015
## 1. 前言
1116

1217
随着2022年底以ChatGPT为代表的LLM(大语言模型)爆发式发展,AI Agent(智能体)迅速从概念走向工程实践。从早期简单的单轮对话工具,到如今能够自主规划、调用工具、持续迭代的编程Agent(如Cursor、Claude Code、Codex CLI),Agent已经成为大模型应用落地的核心形态。正如OpenAI在其官方博客中所说,Agent Loop是连接用户、模型和工具的枢纽。
@@ -70,9 +75,9 @@ flowchart TD
7075

7176
## 3. 主流项目的Agent Loop设计
7277

73-
### 3.1 Codex CLI[^1]:平台型Runtime
78+
### 3.1 Codex[^1]:平台型Runtime
7479

75-
Codex CLI是OpenAI发布的官方编程Agent工具,其Agent Loop设计最像完整的平台级Runtime。它的核心特点是**分层调度**:外层负责会话级任务调度,内层负责单轮Turn执行,最内层处理模型采样。
80+
Codex是OpenAI发布的官方编程Agent工具,其Agent Loop设计最像完整的平台级Runtime。它的核心特点是**分层调度**:外层负责会话级任务调度,内层负责单轮Turn执行,最内层处理模型采样。
7681

7782
Codex的Loop可以概括为:
7883

@@ -232,8 +237,6 @@ pi还创新性地把运行中插入的新消息分成两类:
232237
| nanobot | 一条消息处理闭环 | 轻量,但turn语义相对弱 |
233238
| pi | Assistant回复 + 整批tool call/result | 最符合tool-using agent的真实运行语义 |
234239

235-
pi的定义最值得借鉴:把turn边界定为"assistant + tool batch",比"每次模型请求就是一轮"更符合实际。因为用户和UI关心的是"Agent做完了一件事",而不是"模型被调了一次"。
236-
237240
### 4.2 并发与插队输入
238241

239242
| 项目 | 并发模型 | 插队机制 |
@@ -243,7 +246,6 @@ pi的定义最值得借鉴:把turn边界定为"assistant + tool batch",比"
243246
| nanobot | per-session lock + global gate | 命令在编排层前面处理,不交给模型 |
244247
| pi | 单agent单活动loop,其余排队 | steering/follow-up在turn边界注入 |
245248

246-
这里的关键权衡是:**即时性 vs 完整性**。Codex和Claude偏向更强的交互控制能力,nanobot和pi偏向更清晰的边界和可恢复性。
247249

248250
### 4.3 工具执行模型
249251

@@ -254,7 +256,6 @@ pi的定义最值得借鉴:把turn边界定为"assistant + tool batch",比"
254256
| nanobot | 标准LLM->tool calls->execute->results->LLM闭环 |
255257
| pi | 三阶段生命周期(prepare/execute/finalize),事件驱动 |
256258

257-
Claude的"工具调用单位是invocation pipeline而不是简单函数调用"这一思想非常重要。真实场景中,工具调用涉及权限检查、progress事件、错误格式化、context mutation等,远非`tool(input)->output`能概括。新项目实现的时候可以参考,但要避免过度设计。
258259

259260
### 4.4 上下文与历史管理
260261

@@ -265,7 +266,6 @@ Claude的"工具调用单位是invocation pipeline而不是简单函数调用"
265266
| nanobot | 合法历史约束,append-only session,memory consolidation |
266267
| pi | 内部消息模型与provider消息解耦,partial assistant实时写回 |
267268

268-
每个项目在这方面能力都差不多,大同小异。
269269

270270
### 4.5 压缩、恢复与后台机制
271271

@@ -276,7 +276,6 @@ Claude的"工具调用单位是invocation pipeline而不是简单函数调用"
276276
| nanobot | 请求前token预算判断,请求后异步consolidation,子agent复用主内核 |
277277
| pi | Retry/compaction放在session runtime,loop内核保持纯粹 |
278278

279-
Claude的多级压缩策略最完整:先减细碎噪声,再收缩局部结果,再做结构化压缩,最后做失败后恢复。但从另外一个角度来说,我强烈怀疑这是Claude一直不断打补丁之后的结果,缺乏一个顶层设计。
280279

281280
### 4.6 子Agent与递归复用
282281

@@ -287,7 +286,7 @@ Claude的多级压缩策略最完整:先减细碎噪声,再收缩局部结
287286
- **nanobot**:子Agent复用主执行内核但缩小工具集,结果必须回到主loop
288287
- **pi**:通过extension hook和session runtime接入
289288

290-
多Agent设计是未来Agent程序的高级特性,也是能决定能否实现集群作业的关键能力。各个项目实现不同,但Claude Code同一个loop同时服务主会话和子Agent,采用了单循环、多上下文的架构设计,每个 Agent 拥有独立的上下文,但共享一个事件循环。这样的设计也的确是个迷,越来越像是一个原型项目不断打补丁了。
289+
多Agent设计是未来Agent程序的高级特性,也是能决定能否实现集群作业的关键能力。
291290

292291
## 5. 设计共识
293292

@@ -306,14 +305,7 @@ Claude的多级压缩策略最完整:先减细碎噪声,再收缩局部结
306305

307306
Agent Loop是Agent系统的核心机制,它决定了Agent如何思考、行动和与外部世界交互。从朴素的`while(true)`到成熟的Runtime,Agent Loop的演进体现了软件工程的核心思想:**通过清晰的边界和分层,管理复杂度,保证可靠性。**
308307

309-
四个主流项目虽然风格各异,:
310-
311-
- **Codex**设计重心的是:平台型Agent Runtime如何调度和推进Turn
312-
- **Claude**不断打的补丁是:可恢复、可流式、可前后台托管的Query Runtime如何工作
313-
- **nanobot**从学术上定义:消息驱动Agent系统如何用最小内核长期稳定运行
314-
- **pi**从实践的角度实现:交互式Coding Agent Runtime如何保证消息边界、工具和状态收敛
315-
316-
Agent Loop的设计没有银弹,但显而易见的工程原则是:在确定边界上推进状态,在边界之外通过hook和运行时层扩展能力。下一篇,我们将深入探讨Agent的 **工具系统(Tool System)** 设计,分析如何让Agent安全、高效、可扩展地调用外部能力。
308+
Agent Loop的设计工程原则一般是:在确定边界上推进状态,在边界之外通过hook和运行时层扩展能力。下一篇,我们将深入探讨Agent的 **工具系统(Tool System)** 设计,分析如何让Agent安全、高效、可扩展地调用外部能力。
317309

318310
## 参考文献
319311

content/posts/agents-arch-2/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
+++
2-
title = "Agent实现原理与实践(二):Tool System"
2+
title = "AI Agent实现原理与实践(二):Tool System"
33
date = 2026-06-06T16:00:00+08:00
44
author = "Skyan"
55
tags = ["framework", "programming", "agents", "ai", "llm"]

content/posts/agents-arch-4/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
+++
2-
title = "Agent实现原理与实践(四):SubAgent System"
2+
title = "AI Agent实现原理与实践(四):SubAgent System"
33
date = 2026-06-07T10:00:00+08:00
44
author = "Skyan"
55
tags = ["framework", "programming", "agents", "ai", "llm"]

content/posts/agents-arch-5/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
+++
2-
title = "Agent实现原理与实践(五):Permission, Approval & Sandbox"
2+
title = "AI Agent实现原理与实践(五):Permission, Approval & Sandbox"
33
date = 2026-06-07T17:00:00+08:00
44
author = "Skyan"
55
tags = ["framework", "programming", "agents", "ai", "llm", "security"]

content/posts/agents-arch-6/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
+++
2-
title = "Agent实现原理与实践(六):Observability & Operations"
2+
title = "AI Agent实现原理与实践(六):Observability & Operations"
33
date = 2026-06-07T18:00:00+08:00
44
author = "Skyan"
55
tags = ["framework", "programming", "agents", "ai", "llm", "observability", "operations"]

0 commit comments

Comments
 (0)