OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  社区  ›  OpenClaw

OpenClaw 是如何工作的:一条消息在 AI 智能体(Agent) 系统里的完整旅程

 
  shadow ·  2026-03-06 11:12:49 · 9 次点击  · 0 条评论  

引言:难点不在 AI 会不会回答,而在系统能否可控、可预期地运行

很多人把 AI Agent 当成「会执行任务的聊天机器人」。一旦把它接到 Telegram、Discord、WhatsApp 或 WebChat,问题很快暴露:

  • 多条消息同时进入系统
  • 不同用户、不同会话的上下文互相干扰
  • 工具执行带来副作用(写文件、跑命令)
  • API 限速或模型故障导致任务中断

处理不好这些,Agent 很容易从智能助手变成不可控的自动化脚本。

开源项目 OpenClaw 的定位很清晰:

不把 Agent 当聊天应用,而是当作一套工程化基础设施

它通过消息队列、会话隔离、工具权限控制和持久化,为 Agent 提供稳定的运行底座。从架构上看,核心问题只有一个:

一条用户消息,在系统里究竟经历了什么?


一、整体架构:四层解耦

OpenClaw 可拆成四个核心模块:

层级 模块 职责
接入 Channels Telegram / Discord / WebChat 等
调度 Gateway 鉴权、路由、队列、状态持久化
推理与执行 Agent Runtime Agent Loop、工具调用
模型 Model Provider OpenAI、Anthropic、Gemini 或本地模型

消息路径:

用户消息 → Channel → Gateway(鉴权、队列调度)→ Agent Runtime(Agent Loop)→ LLM → 工具执行 → 生成回复 → 返回渠道

设计原则:接入层、调度层、推理层、执行层完全解耦。新增渠道、换模型、扩展工具,都不必动整体架构。


二、Gateway:系统的控制中心

Gateway 不是简单 API 中转,而是控制中心,负责:

  • 消息接入与身份鉴权
  • 会话识别与路由
  • 队列调度与并发控制
  • 事件流管理
  • 会话状态持久化

默认以守护进程形式监听 127.0.0.1:18789,所有客户端(含 WebChat)通过 WebSocket 与 Gateway 通信。

重要原则:所有会话状态由 Gateway 持有。客户端不直接读会话日志,而是向 Gateway 查询。带来的好处:

  • 状态一致、多端同步
  • 可追溯的执行记录
  • 更清晰的权限边界

可以说,Gateway 是 Agent 的调度中心事实源(Source of Truth)


三、一条消息进入系统后发生了什么

每条消息进入时,系统要回答四件事:

  1. 这条消息属于哪个会话?
  2. 本次执行要读哪些上下文?
  3. 要不要调用工具?
  4. 结果如何保存与返回?

流程可拆成三步。

3.1 第一步:会话识别

系统根据消息来源生成 Session Key,支持私聊、群组、论坛线程、跨渠道等。OpenClaw 提供多种 DM 隔离策略,例如:

  • 所有私聊共用一个会话
  • 按用户隔离
  • 按渠道 + 用户隔离
  • 按账户 + 渠道 + 用户隔离

Session Key 既划定上下文边界,也划定权限边界;不隔离时,多用户 DM 容易发生对话泄露。

3.2 第二步:进入命令队列

确认会话后,消息进入命令队列(Command Queue)

并发策略偏保守:同一会话默认串行执行,避免多 Agent 同时改同一上下文或执行工具导致冲突。

队列支持多种模式:

  • collect(默认):短时间内的多条消息可合并处理
  • followup:当前任务结束后再处理下一条
  • steer:新消息可打断当前执行,在下一轮推理中插入

适合群聊和连续提问场景。

3.3 第三步:Agent Loop 执行

队列开始执行时,会启动一次 Agent Loop,核心步骤:

  1. 组装上下文
  2. 调用大模型
  3. 解析模型输出
  4. 执行工具调用(若有)
  5. 生成最终回复

在 OpenClaw 中由内部函数 runEmbeddedPiAgent 完成。每次执行有唯一 runId,并记录完整事件流,事件类型包括:

  • assistant:模型回复
  • tool:工具执行
  • lifecycle:生命周期事件

便于调试和完整还原一次 Agent 执行过程。


四、上下文管理:防止「记忆爆炸」

长对话会让上下文不断膨胀,最终超出模型窗口。OpenClaw 用三种方式控制规模:

  • 压缩(Compaction):较早对话自动总结成摘要
  • 修剪(Pruning):旧工具执行结果删除或替换为占位符
  • 向量记忆检索:用向量搜索 + BM25 检索历史,需要时再塞进上下文

这样既保留长期记忆,又不占满上下文窗口。


五、工具安全:执行能力的边界

Agent 一旦能调工具,就具备「现实世界」的执行能力(改文件、跑脚本、调 API)。OpenClaw 对工具做了三层控制:

  • Sandbox(沙箱):限制工具运行环境
  • Tool Policy:按会话/场景允许或禁止某些工具
  • 审批机制:高风险操作需人工确认

并记录完整审计日志:工具调用、工具结果、审批请求、安全违规,便于生产环境可追溯、可审计。


六、模型故障与自动回退

API 限速、密钥失效、服务商宕机都很常见。OpenClaw 的应对包括:

  • 认证配置轮换:某个 API Key 失败时自动切换
  • 模型回退链:主模型不可用时自动切备用模型
  • 指数退避:失败后逐步延长重试间隔

保证在模型服务异常时,Agent 仍能尽量继续运行。


七、为什么 OpenClaw 不容易失控

可以归纳为三个原则:

  1. 可控并发:每会话默认串行,避免交叉修改
  2. 明确边界:Session Key 同时是上下文边界和权限边界
  3. 完整审计:每次执行有 runId 和事件流,可复盘、可排查

相比主要靠提示词控制行为的 Agent 框架,这种方式更接近传统软件工程的可靠性思路。


八、结语:Agent 正在变成基础设施

随着 Agent 普及,系统普遍要面对:

  • 多用户、多会话输入
  • 多工具、多步骤执行
  • 长期会话与记忆
  • 多模型、多供应商

这些已经超出「聊天机器人」的范畴。像 OpenClaw 这样的项目,本质是在构建一种新的软件基础设施:Agent Runtime——让 AI 不仅在单次对话里「会回答」,更能在复杂、多用户、多工具场景下稳定、可控地运行

在未来的 AI 应用生态里,这类「Agent 操作系统」很可能成为连接模型、工具和用户的关键一层。

9 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor