Open Craw架构学习


很好,这个问题比“怎么装插件”有价值得多。

你是做 Agent 开发的,那么看 OpenClaw 不应该停留在:

  • CLI 怎么用
  • 插件怎么装
  • HTTP step 怎么写

而应该看它在 Agent Runtime 设计层面 有什么“结构性优势”。

下面给你一个系统性的学习路径。


一、不要从功能看,要从架构看

学习一个 Agent 框架,要拆成 5 层:

  1. Prompt 层
  2. Memory 层
  3. Tool 调度层
  4. Workflow 编排层
  5. 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 模型

你更想往哪个方向深挖?

  1. 架构分析
  2. 实战 demo
  3. 和其他 Agent 框架对比
  4. 企业级设计思路

源码细节

很好,这个问题问对方向了。

如果从“架构亮点 → 代码落点”的角度拆 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

九、你如果要深入源码,建议阅读顺序

  1. BaseStep
  2. BaseDevice
  3. RuntimeEngine
  4. Workspace
  5. Agent Loader
  6. Cron

这个顺序可以让你看到:

从最底层能力抽象 → 到调度 → 到状态 → 到 agent 资源化


十、如果你是 Agent 开发者,真正值得思考的是

OpenClaw 其实在做的是:

把 Agent 变成“可部署单元”

而不是:

LLM + Tool 的对话系统

这意味着它更接近:

  • Temporal
  • Prefect
  • Airflow

而不是:

  • LangChain

如果你愿意,我可以:

  • 帮你画一个类图(逻辑层面)
  • 或帮你对比 OpenClaw vs AgentScope 的 runtime 差异
  • 或拆一个真实 workflow 源码执行路径
posted @ 2026-02-19 20:50  向着朝阳  阅读(9)  评论(0)    收藏  举报