当前位置: 首页 > news >正文

OpenClaw学习总结_I.核心架构_2.AgentLoop详解

I. 核心架构 - 2. Agent Loop

📍 课程位置

阶段:I. 核心架构
课序:第 2 课
前置知识:I-1. Gateway 架构
后续课程:I-3. Context 管理


🎯 本课核心问题

如果你问我:“OpenClaw 的 Agent 是怎么工作的?一条消息进来后,它是怎么处理的?”

我会这样回答:Agent 有一个完整的工作循环,叫Agent Loop,像工厂的流水线,一条消息进来后,会经过 6 个阶段的处理。


📚 你需要理解的六个阶段

阶段 1:Message(消息接收)

发生了什么

  • Gateway 收到一条消息
  • 转发给 Agent
  • Agent 开始处理

类比

  • 工厂门口收到了一个订单
  • 订单被放到传送带上

关键点

  • 消息来源:可以是 WhatsApp、Telegram、Discord 等
  • 消息格式:被 Gateway 标准化后发送
  • 消息内容:文本、图片、文件等都行

阶段 2:Context Assembly(上下文组装)

发生了什么

  • Agent 把"需要知道的信息"组装起来
  • 包括:系统提示词、对话历史、可用工具

类比

  • 工厂里,工人开始准备
  • 查看订单要求(系统提示词)
  • 翻看之前的加工记录(对话历史)
  • 看看手边有哪些工具(可用工具)

关键点

  • 这个阶段决定 Agent “知道什么”
  • 上下文太长会有成本问题
  • 可以通过 Compaction 优化(后面会讲)

阶段 3:Model Inference(模型推理)

发生了什么

  • 把组装好的上下文发给 AI 模型
  • 模型思考并决定:回复什么?用什么工具?

类比

  • 工人根据订单要求、历史记录、工具清单
  • 思考:“我应该怎么做?”
  • 决定:“我需要查一下库存,然后用原材料加工”

关键点

  • 这个阶段调用外部 AI 服务(如 Claude)
  • 模型可以调用工具(Tool Calling)
  • 可以设置多个模型作为备份(Model Failover)

阶段 4:Tool Execution(工具执行)

发生了什么

  • 如果模型决定需要调用工具,就执行
  • 工具可以是:发消息、读文件、执行命令、浏览器操作等

类比

  • 工人去仓库查库存
  • 或者操作机器加工产品
  • 或者叫其他工人帮忙

关键点

  • 工具执行后,结果返回给模型
  • 模型根据结果继续推理
  • 可以多次执行工具(循环)

阶段 5:Streaming(流式输出)

发生了什么

  • 把回复内容实时显示给用户
  • 不是等全部生成完再显示,而是一个字一个字地显示

类比

  • 工厂流水线上的产品
  • 完成后不是一次性交付
  • 而是在生产过程中就展示给客户看

关键点

  • 用户体验更好(更快看到回复)
  • 可以显示"正在输入"状态
  • 有两种模式:Block(等全部)和 Preview(实时)

阶段 6:Persistence(持久化)

发生了什么

  • 把对话内容保存到磁盘
  • 这样下次对话时,Agent 知道"之前聊过什么"

类比

  • 工厂把这次的加工记录存档
  • 下次有类似订单,可以参考之前的做法

关键点

  • 保存位置:~/.openclaw/agents//sessions/
  • 格式:JSONL(每行一个 JSON)
  • Session 会被定期压缩(Compaction)来节省空间

🔄 完整的 Agent Loop 流程图

Message(消息进来) ↓ Context Assembly(组装上下文) ↓ Model Inference(AI 思考) ↓ ├─ 需要工具? → Tool Execution(执行工具) │ ↓ │ 回到 Model Inference(继续思考) │ ↓ └─ 不需要工具? ↓ Streaming(流式输出给用户) ↓ Persistence(保存到磁盘) ↓ 结束,等待下一条消息

💡 这个设计的关键点

1. 可扩展性

  • 每个阶段都可以干预定制
  • 就像工厂流水线的每个环节都可以调整
  • 通过Hooks可以在关键点插入自定义逻辑

2. 上下文成本

  • 上下文不是免费的
  • token 需要花钱
  • 所以需要** Compaction** 来压缩(后面会讲)

3. 工具调用

  • Agent 不是只"说话",还能"做事"
  • 可以执行命令、读写文件、控制浏览器
  • 通过 Tool Calling 实现

4. 会话管理

  • 每次对话都会被保存
  • 下次继续时可以"记得"
  • 但如果太长,会压缩(Compaction)

🔧 实战:看看 Agent Loop 在做什么

查看当前会话

# 查看 Agent 的会话列表openclaw sessions list# 查看某个会话的详情openclaw sessions show<sessionId># 查看对话历史cat~/.openclaw/agents/main/sessions/*.jsonl

查看日志

# 实时查看 Agent 处理的日志openclaw logs--follow|grep"agent"# 会显示每个阶段的详细信息

调试工具调用

# 如果你想看 Agent 调用了什么工具# 查看日志中的 tool_call 相关内容openclaw logs|grep-itool

⚠️ 常见陷阱

陷阱表现原因解决
上下文太长“Token limit exceeded”对话历史太长使用 Compaction
工具执行失败“Tool execution failed”工具参数错误或权限问题检查工具配置
模型超时“Request timeout”模型响应太慢设置更长的超时时间
死循环Agent 不停调用同一个工具工具逻辑问题检查工具设计

📝 学习心得

我学这一课时的体会

我之前以为 Agent 就是"收到消息 → 回复消息"的简单过程。

学完后才发现,中间有这么多复杂的阶段!尤其是:

  1. Tool Execution 循环- 模型可以多次调用工具,这让我想到"如果工具设计不好,可能会陷入死循环"

  2. Context 成本- 之前没意识到,每次对话都在"累积成本",Compaction 是必须的

  3. Hooks 的强大- 原来可以在每个阶段插入自定义逻辑,这为自动化提供了无限可能

与其他课程的关联

  • 前置课程:Gateway 架构 - 消息从 Gateway 来到 Agent
  • 后续课程:Context 管理 - 详细讲阶段 2
  • 配合课程:Session 管理 - 阶段 6 的持久化
  • 配合课程:Compaction - 优化阶段 2 和 6

✅ 你现在应该理解的

  • 说出 Agent Loop 的 6 个阶段
  • 解释每个阶段在做什么
  • 画出完整的流程图
  • 知道 Context 成本是什么
  • 理解工具调用和循环

📚 快速参考表

阶段名称做什么
1Message接收消息
2Context Assembly组装上下文(系统提示词+历史+工具)
3Model InferenceAI 模型思考
4Tool Execution执行工具(如需要)
5Streaming流式输出回复
6Persistence保存对话到磁盘

🔗 相关资源

官方文档

  • Agent Loop:https://docs.openclaw.ai/concepts/agent-loop
  • Hooks:https://docs.openclaw.ai/automation/hooks
  • Session:https://docs.openclaw.ai/concepts/session

相关课程

  • 上一课:I-1. Gateway 架构
  • 下一课:I-3. Context 管理

📊 本课总结

最关键的 3 点

  1. 6 阶段流水线

    • Message → Context → Model → Tool → Stream → Persist
    • 每个阶段都可以定制和干预
  2. 工具调用的循环

    • 模型可以多次调用工具
    • 需要注意不要陷入死循环
  3. 为后续课程打基础

    • Context 管理(阶段 2)
    • Session 管理(阶段 6)
    • Compaction(优化 2 和 6)

现在你应该理解了 Agent 是怎么"思考"的。下一课会讲它"思考时需要什么"(Context 管理)。

http://www.jsqmd.com/news/509916/

相关文章:

  • 2026年热门的不锈钢离心泵品牌推荐:不锈钢离心泵公司推荐 - 品牌宣传支持者
  • 2026年泵站公司权威推荐:冷却塔维修/化粪池改造/圆形冷却塔/地埋式一体化泵站/地埋式水箱/封闭冷却塔/选择指南 - 优质品牌商家
  • 别再只pip install了!PySerial模块在Windows/Linux/macOS上的完整安装与验证指南
  • AI 时代,应用入口正在消失
  • 2026京津冀工业网格桥架优质厂家推荐榜:托盘式电缆桥架/梯式电缆桥架/槽式电缆桥架/网格电缆桥架/选择指南 - 优质品牌商家
  • 基于YALMIP 的微网优化调度模型探索
  • 技术人员最重要的沟通能力有几种境界?
  • 使用Git进行版本控制:管理M2LOrder模型微调与部署代码
  • reCAPTCHA v3反爬新机制?3个Python技巧让你的自动化脚本更像人类操作
  • 国际知名半导体行业论坛哪家比较好,解锁全球产业核心资源 - 品牌2026
  • PWM原理与工程实现:从伏秒积到电机调速全解析
  • 【2024年实战指南】jadx反编译工具从下载到优化配置全解析
  • 数仓分层实战:从ODS到ADS,如何设计一个高效的数据仓库架构?
  • YOLOv10在工业质检中的应用:快速部署与模型调优指南
  • 从iPhone面捕到3D动画:手把手教你用ARKit 52个标准BlendShapes驱动DAZ/Blender角色表情
  • 鸿蒙WebView实战:从基础配置到高级交互
  • 图像鉴伪新突破:拆解PSCC-Net双路径结构与SCCM模块设计原理
  • 利用 HTML5 WebGL 实现风力发电机 3D 可视化监控系统
  • 【Dify混合RAG召回率优化实战手册】:20年AI架构师亲授3大召回瓶颈诊断法+5个插件安装避坑指南
  • Qwen3.5-9B部署教程:支持API调用的Gradio后端封装与Swagger文档
  • 多模态向量数据库选型:通义千问3-VL-Reranker-8B最佳搭档
  • 从mot与hex文件到纯数据:C语言解析在汽车FOTA中的实战应用
  • 自动驾驶路径跟踪实战:用Python手把手实现Stanley算法(附ROS仿真代码)
  • 【Dify运维黄金标准】:2024最新Token计量插件v2.3.1正式发布——支持按模型/用户/应用三级分摊,附生产环境强制校验安装清单
  • GetQzonehistory数据备份完整指南:轻松保存QQ空间珍贵回忆
  • 泛微OA Ecology安全补丁账号忘了怎么办?手把手教你修改weaver_security_config.xml找回权限
  • C#实战:从零构建支持中文的RSA加密工具
  • HTTPS流式响应卡顿?Nginx缓冲机制与SSL/TLS加密的协同影响剖析
  • 终极米家游戏启动器:Starward的完整使用指南与技巧分享
  • 2026京津冀梯式桥架优质厂家推荐指南 - 优质品牌商家