Open Craw架构学习
很好,这个问题比“怎么装插件”有价值得多。
你是做 Agent 开发的,那么看 OpenClaw 不应该停留在:
- CLI 怎么用
- 插件怎么装
- HTTP step 怎么写
而应该看它在 Agent Runtime 设计层面 有什么“结构性优势”。
下面给你一个系统性的学习路径。
一、不要从功能看,要从架构看
学习一个 Agent 框架,要拆成 5 层:
- Prompt 层
- Memory 层
- Tool 调度层
- Workflow 编排层
- Runtime / Execution 层
OpenClaw 的“出彩点”不在 prompt,而在 运行时模型 + 设备抽象 + workspace 机制。
二、OpenClaw 的真正亮点在哪里?
我帮你抽象成 4 个核心思路。
① 设备抽象(Device Abstraction)
OpenClaw 把“能力”抽象成 device:
LLM
Browser
Shell
HTTP
File
Cron
这意味着:
Agent 不是函数调用系统
而是一个“可调度设备的执行系统”
https://www.cnblogs.com/aibi1/p/19625375
这和很多只做 function call 的框架不同。
如果你做复杂 agent orchestration,这是一个非常关键的设计思路。
② Workspace 是状态核心
~/.openclaw/workspace
这是它的真实“状态存储层”。
很多 Agent 框架把状态丢在 memory 里(向量数据库)。
OpenClaw 更接近:
“可重放执行环境”
这更像:
- CI/CD pipeline
- Temporal workflow
- DAG runtime
不是简单的 ReAct。
③ Cron + Canvas
这两个东西非常有意思:
- Cron = 时间触发
- Canvas = 任务状态可视化
这让它从“对话式 agent”进化成:
可长期运行的自动系统
这是和很多 LLM Agent 框架的最大差别。
④ Identity / Agents 目录
https://www.cnblogs.com/aibi1/p/19625416
~/.openclaw/agents
每个 agent 是“可声明实体”,不是临时 prompt。
这接近:
Agent-as-Resource
而不是:
Prompt-as-Call
这对企业级系统设计非常重要。
三、你可以这样系统性学习
第一阶段:理解执行模型
重点研究:
- HTTP step
- device 调度
- agent.json 定义结构
- workspace 文件变化
问题你可以问自己:
OpenClaw 是事件驱动还是对话驱动?
第二阶段:模拟复杂场景
比如你之前提到的:
A、B、C 多 Agent 协作
你可以设计:
- A → LLM 分析
- B → HTTP 查询
- C → Cron 定时执行
- Human loop 介入
用它做一个:
“金融风险预警系统”
你会发现:
它更像一个轻量 orchestration engine。
第三阶段:对比其他框架
对比:
- LangChain
- AutoGen
- CrewAI
- AgentScope
你会发现:
大多数框架专注在“推理链”,
OpenClaw更偏向“执行系统”。
四、如果你想真正玩出彩
不要只做:
“问答机器人”
你可以做:
- 自动投研 Agent
- 自动情绪监控 Agent
- 定时交易信号 Agent
- 企业日报自动生成系统
利用:
- cron
- workspace
- http
- device abstraction
你会发现它是一个“可持续运行 Agent 平台”。
五、从架构角度给你一个总结
OpenClaw 的核心哲学不是:
如何让 LLM 更聪明
而是:
如何让 Agent 可运行、可持续、可管理
这是很多 Agent 框架缺失的。
六、如果你愿意深入
我可以给你:
- 一个“多 Agent + 人类审批 + 定时任务”的完整架构图
- 或者帮你设计一个展示 OpenClaw 优势的 demo 场景
- 或者帮你拆 OpenClaw 的 runtime 模型
你更想往哪个方向深挖?
- 架构分析
- 实战 demo
- 和其他 Agent 框架对比
- 企业级设计思路
源码细节
很好,这个问题问对方向了。
如果从“架构亮点 → 代码落点”的角度拆 OpenClaw(以当前 2026.x 体系为背景),可以把它的核心设计映射到几类关键 Python 结构。
我不按文件名猜,而按 职责边界(responsibility boundary) 来讲,这样你看源码时更容易定位。
一、整体架构分层(对应代码结构)
OpenClaw 的核心可以抽象成 6 层:
CLI Layer
↓
Config / Identity Layer
↓
Agent Definition Layer
↓
Runtime Engine
↓
Device Abstraction Layer
↓
Workspace / State Layer
下面逐一对应关键 Python 类角色。
二、Agent 定义层(Agent-as-Resource)
这是它和很多框架差异最大的地方。
1️⃣ Agent Manifest 类
典型核心类(概念上):
Agent
AgentSpec
AgentCard
职责:
- 描述 agent 的 metadata
- 绑定 devices
- 绑定 workflow
- 绑定 identity
- 定义默认模型
这通常是一个 Pydantic BaseModel 派生类。
架构亮点对应:
Agent 不是函数,而是声明式资源。
2️⃣ Agent Registry / Loader
通常有:
AgentRegistry
AgentLoader
职责:
- 从 ~/.openclaw/agents 加载 agent
- 校验 schema
- 注册进 runtime
这是它实现“持久 Agent”的关键。
三、Runtime 核心
这里是最值得研究的。
3️⃣ Execution Engine
核心执行器类通常类似:
RuntimeEngine
Executor
TaskRunner
WorkflowRunner
职责:
- 解析 step
- 调度 device
- 管理中间状态
- 处理异常
- 支持 resume / retry
架构亮点:
它不是单轮 ReAct,而是一个 DAG/step 驱动执行器。
4️⃣ Step 抽象类
你会看到类似:
BaseStep
HttpStep
LLMStep
ShellStep
CronStep
这体现的是:
行为被抽象为可调度执行单元
典型结构:
class BaseStep(ABC):
async def execute(self, context):
...
四、Device 抽象层(最核心亮点之一)
这是 OpenClaw 和 LangChain 这类“tool function”框架的关键区别。
5️⃣ Device 基类
通常类似:
BaseDevice
LLMDevice
BrowserDevice
ShellDevice
HTTPDevice
职责:
- 封装外部能力
- 统一调用接口
- 标准化返回结构
核心抽象通常是:
class Device(ABC):
async def call(self, input, context):
...
架构亮点:
Device 是能力抽象
Step 是调度抽象
两层分离非常干净。
五、Workspace / State 管理
这是企业级能力的关键。
6️⃣ Workspace 类
典型类:
Workspace
ExecutionContext
RunState
ArtifactStore
职责:
- 保存运行产物
- 存储中间变量
- 记录 step 输出
- 支持可重放
亮点:
它更像 workflow engine 的 state store
而不是简单 memory buffer
六、Identity / Config 层
7️⃣ Identity / Profile 类
可能存在:
IdentityManager
Profile
AuthContext
用于:
- API key 管理
- 多 agent 隔离
- 用户级配置
这是支持多 agent / 多 workspace 的基础。
七、Cron / Scheduler
8️⃣ Scheduler 类
类似:
CronManager
ScheduleRunner
JobRegistry
职责:
- 注册定时任务
- 触发 agent 执行
- 管理 job 生命周期
架构亮点:
Agent 可以长期运行,而不是一次性调用。
八、对应架构亮点 → 关键类映射
| 架构亮点 | 关键类角色 |
|---|---|
| Agent-as-Resource | Agent / AgentSpec |
| 可持久化 | AgentRegistry / Loader |
| 可调度执行 | RuntimeEngine / Executor |
| Device 抽象 | BaseDevice / LLMDevice |
| Step 编排 | BaseStep / HttpStep |
| 可重放状态 | Workspace / RunState |
| 长期运行 | CronManager |
九、你如果要深入源码,建议阅读顺序
- BaseStep
- BaseDevice
- RuntimeEngine
- Workspace
- Agent Loader
- Cron
这个顺序可以让你看到:
从最底层能力抽象 → 到调度 → 到状态 → 到 agent 资源化
十、如果你是 Agent 开发者,真正值得思考的是
OpenClaw 其实在做的是:
把 Agent 变成“可部署单元”
而不是:
LLM + Tool 的对话系统
这意味着它更接近:
- Temporal
- Prefect
- Airflow
而不是:
- LangChain
如果你愿意,我可以:
- 帮你画一个类图(逻辑层面)
- 或帮你对比 OpenClaw vs AgentScope 的 runtime 差异
- 或拆一个真实 workflow 源码执行路径

浙公网安备 33010602011771号