惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
F
Full Disclosure
Cloudbric
Cloudbric
Blog — PlanetScale
Blog — PlanetScale
W
WeLiveSecurity
N
News and Events Feed by Topic
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
GbyAI
GbyAI
C
Check Point Blog
B
Blog RSS Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Recorded Future
Recorded Future
The Last Watchdog
The Last Watchdog
N
News and Events Feed by Topic
T
The Blog of Author Tim Ferriss
O
OpenAI News
V
V2EX
人人都是产品经理
人人都是产品经理
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
WordPress大学
WordPress大学
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Security @ Cisco Blogs
C
Cisco Blogs
Security Latest
Security Latest
S
Security Affairs
V
Visual Studio Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
Last Week in AI
Last Week in AI
AWS News Blog
AWS News Blog
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
博客园_首页
U
Unit 42
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
N
Netflix TechBlog - Medium
L
LINUX DO - 热门话题
H
Hacker News: Front Page

后端技术杂谈

从管人到管系统行为:AI时代技术管理者的全新认知框架 - 后端技术杂谈 一句话直出5分钟AI漫剧:OiiOii + Seedance2.0 如何打破视频工作流的瓶颈 - 后端技术杂谈 SOUL.md 和 AGENTS.md 到底有什么区别?Agent 配置别再混着写了 AI Agent 正在进入工程化深水区:从代码模型、生产框架到多智能体协作协议 - 后端技术杂谈 OpenClaw Gateway 三种对外接口怎么选? - 后端技术杂谈 Agent 落地不靠更强模型:后端团队先补这 4 个治理动作 - 后端技术杂谈 OpenClaw多Agent方案 - 后端技术杂谈 OpenClaw 是什么 - 后端技术杂谈 2026 年 AI 最新进展 - 后端技术杂谈 AI大事记@2025 - 后端技术杂谈 《太白金星有点烦》读后感 - 后端技术杂谈 DeepSeek简单分享 - 后端技术杂谈 美国AI之旅 - 后端技术杂谈 CTO都必须是程序员出身吗?为什么架构师做不了CTO? - 后端技术杂谈 不同的CTO角色 by Werner Vogels (Amazon CTO) 如何使用AI生成长视频? - 后端技术杂谈 AI技术概览(PPT版) - 后端技术杂谈 这三年的一些感悟 - 后端技术杂谈 Langchain代理和OpenAI函数调用的区别 - 后端技术杂谈 【译】如何基于开源技术构建类似ChatGPT的聊天机器人 - 后端技术杂谈 Web3学习笔记-Web3是什么? - 后端技术杂谈
OpenClaw 架构剖析 - 后端技术杂谈
HJ · 2026-03-03 · via 后端技术杂谈

上一篇聊了「OpenClaw 是什么」。这一篇更偏工程视角:OpenClaw 到底怎么实现一个可长期运行的 Agent 系统?消息是怎么进来的?怎么路由到 Agent?工具调用与定时任务如何编排?

如果你做过 Agent 落地,会很熟悉这些关键词:channel、tool、session、cron、memory、安全边界、幂等、观测……OpenClaw 的价值在于把这些抽象成一套可部署的 runtime。

1. OpenClaw 由哪些模块组成?

你可以把 OpenClaw 想成三层:

1) 接入层(Channels):连接外部世界(Telegram/钉钉/QQ/…),负责收消息、发消息。

2) 编排层(Gateway + Routing + Sessions):决定“这条消息交给哪个 Agent/哪个会话”,并维护状态与生命周期。

3) 执行层(Agents + Tools/Skills + Jobs):Agent 负责决策,Tools 负责执行,Jobs(cron 等)负责触发。

对应到工程实体,大致是:

关键约束(和官方架构一致):一台主机一个 Gateway连接首帧必须是 connect 握手事件流默认不回放(客户端需自行补拉状态)

  • Gateway(守护进程):常驻运行,连接多个 channel provider,维护连接与重连。
  • Channel Plugin:每个渠道一个适配器,实现 inbound/outbound。
  • WebChat/UI 客户端:本质是通过 WebSocket 连接 Gateway 的控制平面客户端。
  • Agent:可配置多个(不同模型/不同工作空间/不同权限),按路由绑定到渠道。
  • Session:把对话与任务上下文组织起来(类似“对话线程 + 状态机”)。
  • Skills:可复用的工具说明与脚本集合,给 Agent 一个“可靠使用工具”的方法。
  • Cron/Jobs:把定时触发变成一等公民,支持隔离执行、送达与可配置去重策略。
  • Memory:长期/短期记忆(以文件记忆为主 + 语义检索),为跨会话连续性服务。

2. 核心流程 1:一条消息从“外部”到“Agent”的路径

把它拆成 8 步,你会发现它是一条典型的事件驱动流水线:

1) Channel 收到事件

  • 可能是文本、图片、语音、文件、按钮回调等。

2) 插件标准化(Normalize)

  • 把不同平台的 message schema 归一:from/to/messageId/timestamp/chatType/attachments…

3) 封装输入(Envelope)

  • 给 Agent 一个稳定的“输入格式”,避免每个渠道都写一套提示词。

4) 路由(Routing/Binding)

  • 根据规则把消息交给指定 agent(例如 QQ 走 hang-ai,Telegram 走 main)。

5) 会话选择(Session Key)

  • 同一用户/群聊映射到固定 session,确保上下文连续。

6) Agent 推理(Decide)

  • Agent 选择:直接回复,还是调用工具(搜索/执行/写文件/定时任务)。

7) 工具执行(Tools/Skills)

  • 工具是“副作用层”:读写文件、访问网络、调用 API、跑命令。

8) 回传与发送(Outbound Deliver)

  • 将 Agent 结果交给 channel 插件发送,处理分段、markdown、富媒体等。

这条链路里,最容易做坏的其实是第 2~5 步:输入不干净、路由不清晰、session 混乱,都会让 Agent “聪明但不稳定”。OpenClaw 的设计重点正是在这里。

3. 核心流程 2:工具调用如何“可靠地执行”?

一个可落地的 Agent 系统,工具调用必须具备三种属性:

3.1 可控(Controllable)

  • 工具入口有限且明确(不是什么都能 exec)。
  • 敏感能力要有策略(allowlist/denylist/人工确认)。

3.2 可观测(Observable)

  • 能看到:调用了什么工具、参数是什么、耗时多久、失败原因。
  • 能复盘:某次输出是怎么来的。

3.3 可恢复(Recoverable)

  • 失败要能重试/降级(例如 web fetch 失败就换来源)。
  • 长链路要能分段(先产出,再补充)。

OpenClaw 的 skill 机制,本质是在做“把提示词工程变成可维护的工程资产”。你不希望每次靠大模型临场发挥写一堆 shell;你希望它遵循一个稳定的脚本与约定。

4. 核心流程 3:Cron/Jobs(定时任务)为什么是 Agent 生产化的关键?

很多 Agent 项目死在“能对话,但不能跑”。原因是:

  • 任务不能准点触发
  • 不能隔离执行(被主会话上下文污染)
  • 失败后没有送达保障
  • 会重复发送(没有幂等)

OpenClaw 的 cron 设计可以抽象成:

  • 触发器(schedule):cron / every / at
  • 执行体(payload):systemEvent 或 agentTurn(隔离会话跑)
  • 投递(delivery):把结果发到指定 channel/target
  • 幂等/去重:通常用 state 文件(last_date/last_hash)或业务键

一个很实用的经验:凡是“每天推送/定时汇总/提醒”的任务,都要把幂等写成硬性要求。这比“写得更聪明”重要得多。

5. 语音/图片等多媒体:为什么“把内容注入正文”很关键?

以语音为例,很多系统会把语音转写结果作为“附件描述”塞进消息里,但 Agent 可能把它当噪声过滤掉,最后表现为“不回复”。

更可靠的做法是:

  • 语音 → 转写
  • 把转写文本当作用户输入正文(例如前缀“(语音转写)xxx”)
  • 同时保留附件元信息(可选):文件路径、时长、来源

这其实是一条通用原则:

Agent 真正在乎的是“它以为用户说了什么”。 所以多模态处理的结果要进入“正文层”,而不是“旁注层”。

6. 可复用的方法论:如何用 OpenClaw(或任何 Agent Runtime)做出稳定的系统?

下面这套方法论与 OpenClaw 强相关,但本质上是通用的 Agent 工程原则。

方法论 1:把 Agent 系统拆成“决策层 vs 执行层”

  • 决策层:LLM/Agent(可变、概率性)
  • 执行层:脚本/工具/skill(确定性、可测试)

越早把副作用收敛到执行层,你的系统越稳。

方法论 1.5:模块化优先——Plugin 与 Skill 是“可加载的工程单元”

很多 Agent 项目后期会失控,本质原因是:所有能力都堆在一个巨大的代码/提示词里,无法升级、无法替换、也无法复用。

OpenClaw 的架构里有两个非常值得复用的抽象:

  • Plugin(插件):面向“渠道/外部系统”的适配层。它把不稳定、强耦合的外部差异隔离掉(消息格式、鉴权、富媒体、限流、重连…)。
  • Skill(技能):面向“工具使用”的可维护模块。它把“如何调用某个工具”沉淀成文档/脚本/约定,让 Agent 可靠执行。

你在研发其他项目时可以照搬这套思想:

  • 把所有 I/O 做成插件接口(inbound/outbound 都走统一协议)
  • 把执行能力做成可装卸的模块(每个模块有清晰的输入输出契约)
  • 把运行时策略配置化(允许按项目/按环境切换能力组合)

这样系统才具备“长期演进能力”:

  • 想换搜索引擎/供应商?替换 skill 即可。
  • 想多接一个渠道?加一个 plugin,不影响核心。
  • 想做权限收敛?在 runtime/策略层统一控制。

方法论 2:事件驱动 + 明确的状态机

你会发现 OpenClaw 的心智模型很像: - event in → route → session → agent → tools → deliver

这其实就是一个状态机。把“会话键/幂等键/任务键”定义清楚,系统就会稳定。

方法论 2.5:把“配置”当成系统契约(Contract),而不是参数堆

OpenClaw 里很多稳定性来自于“约束前置”:

  • 绑定规则(哪个 channel → 哪个 agent)
  • 工具权限(哪些 tool 可用/哪些 elevated 禁止)
  • 推送策略(cron 的去重文件、重试退避)

工程上你可以把它抽象成:

  • 配置即策略:把可变决策(谁能做什么、什么时候做)从代码里拿出来。
  • 配置可审计:出现事故时能追溯“当时允许了什么”。
  • 配置可迁移:换环境/换机器/换团队时,复制配置即可复现能力。

方法论 3:任何自动推送都必须幂等

推荐最低配:

  • last_date(今天发过就退出)
  • last_hash(内容一致就退出)

把它当成产品级需求,而不是“优化项”。

方法论 4:先做可观测,再做智能

一个很反直觉的点:

  • 你以为“让模型更聪明”能解决问题
  • 实际上,80% 的线上问题来自:超时、失败重试、权限、消息格式、平台限制

所以先把日志、运行记录、失败原因打通,后面再谈“更聪明”。

方法论 5:安全边界要前置

建议至少做到:

  • 渠道 allowlist / groupPolicy
  • 敏感工具禁用或需要确认
  • 不信任外部内容(把网页/邮件当不可信输入)

Agent 的安全不是模型能解决的,是架构要解决的。

7. 总结

OpenClaw 的架构并不神秘:它把 Agent 的生产化问题拆解为一组工程模块(channel、session、tool、cron、memory、安全策略),并把“核心流程”做成可运行、可观测、可扩展的系统。

如果你要复用它的方法论,记住一句话就够:

让 LLM 做决策,让系统做约束,让工具做执行。

这就是把 Agent 从 demo 推向长期运行系统的关键。