如何将OpenClaw的AgentLoop为支持的?
摘要:【OpenClaw】通过Nanobot源码学习架构 (3)AgentLoop 目录【OpenClaw】通过Nanobot源码学习架构 (3)AgentLoop0x00 概要0x01 原理1.1 Agent:负责“执行”1.2 Pi-Agen
【OpenClaw】通过Nanobot源码学习架构---(3)AgentLoop
目录【OpenClaw】通过Nanobot源码学习架构---(3)AgentLoop0x00 概要0x01 原理1.1 Agent:负责“执行”1.2 Pi-Agent框架0x02 AgentLoop2.1 架构2.2 流程2.3 定义和初始化2.4 run2.5 _dispatch2.6 _process_message()2.7 _run_agent_loop()0xFF 参考
0x00 概要
OpenClaw 应该有40万行代码,阅读理解起来难度过大,因此,本系列通过Nanobot来学习 OpenClaw 的特色。
Nanobot是由香港大学数据科学实验室(HKUDS)开源的超轻量级个人 AI 助手框架,定位为"Ultra-Lightweight OpenClaw"。非常适合学习Agent架构。
Agent 是“业务执行者”,解决“消息怎样变成模型调用、工具执行和最终回复”。它们具备独立的上下文(与主对话隔离)和可使用的特定工具,并且具备定义明确的角色和方法论。每次 Agent 收到消息时运行的核心推理周期如下:
从总线接收消息
组装上下文
推理该做什么(这是 LLM 调用)
根据决定行动(调用工具、执行命令)
观察结果,保存状态
判断:我完成了吗?还是再循环一次?
完成后回复
注:本系列借鉴的文章过多,可能在参考文献中有遗漏的文章,如果有,还请大家指出。
0x01 原理
1.1 Agent:负责“执行”
一个 Agent = 一个完整的 AI “大脑实例”,每个 Agent 都拥有独立资源。Agent 是“执行平面”,解决“消息怎样变成模型调用、工具执行和最终回复”。具体如下图(来自MiniClaw)。
Feishu Cloud
|
| HTTP POST /feishu/events
| (im.message.receive_v1)
v
[ESP32 Webhook Server :18790]
|
| message_bus_push_inbound()
v
[Message Bus] ──> [Agent Loop] ──> [Message Bus]
(Claude/GPT) |
| outbound dispatch
v
[feishu_send_message()]
|
| POST /im/v1/messages
v
Feishu API
下图是Agent 的最小循环。每个 AI Agent 都需要这个循环。模型决定何时调用工具、何时停止。代码只是执行模型的要求。
