OpenClaw 的定位:个人 AI Agent 操作系统
OpenClaw 不是一个 Library,是一个运行时。你不需要在代码里 import 它——你启动它,它作为一个常驻服务运行,管理你的 AI Agent 的感知、决策和行动。
| 特征 | OpenClaw | LangChain/LangGraph | CrewAI/AutoGen |
|---|---|---|---|
| 形态 | 常驻服务(运行时) | Python Library | Python Library |
| 使用方式 | 配置 + 自然语言 | 写代码 | 写代码 |
| 目标用户 | 非开发者 / 轻开发者 | 开发者 | 开发者 |
| 运行环境 | 本地机器 / 服务器 | 你的应用进程 | 你的应用进程 |
| 核心抽象 | Skill + Memory + Channel | Chain + Graph | Agent + Crew |
这个定位决定了 OpenClaw 的设计取舍——它更像一个"AI Agent OS",而不是一个"Agent 开发框架"。
架构拆解
OpenClaw 的架构可以简化为五层:
┌─────────────────────────────────────────┐
│ Channel 层(渠道) │
│ WebChat / Discord / WhatsApp / API │
├─────────────────────────────────────────┤
│ Agent 层(核心) │
│ LLM 推理 / 工具调用 / 决策循环 │
├─────────────────────────────────────────┤
│ Skill 层(能力) │
│ 邮件 / 搜索 / 文档 / 浏览器 / 自定义 │
├─────────────────────────────────────────┤
│ Memory 层(记忆) │
│ MEMORY.md / Daily Notes / LCM 压缩 │
├─────────────────────────────────────────┤
│ Scheduler 层(调度) │
│ Heartbeat / Cron / Event 触发 │
└─────────────────────────────────────────┘
Skill 系统:插件化能力
OpenClaw 的 Skill 是一个 Markdown 文件(SKILL.md),包含指令和可能的脚本:
skills/
├── email-skill/
│ ├── SKILL.md # 技能指令
│ └── scripts/ # 辅助脚本
├── xbrowser/
│ ├── SKILL.md
│ └── scripts/
├── pdf/
│ └── SKILL.md
└── qclaw-cron-skill/
└── SKILL.md
一个 SKILL.md 的结构:
# Email Skill
## 触发条件
当用户说"发邮件"、"查看邮件"、"回复邮件"时触发
## 执行流程
1. 识别意图:发送 / 查看 / 回复
2. 路由到对应子技能
3. 执行并返回结果
## 配置
- SMTP 服务器配置在 env 中
- 邮箱账号在 TOOLS.md 中
关键区别:LangChain 的 Tool 是 Python 函数,OpenClaw 的 Skill 是自然语言指令 + 可选脚本。这意味着非开发者也能创建 Skill——写清楚"什么时候触发、怎么执行"就够了。
Skill 的加载机制
<!-- AGENTS.md 中的 Skill 声明 -->
## Skills
- email-skill: 邮件收发
- xbrowser: 浏览器自动化
- pdf: PDF 处理
OpenClaw 在启动时扫描 Skill 目录,将 SKILL.md 的内容注入到 Agent 的系统提示中。当用户消息匹配某个 Skill 的触发条件时,Agent 读取该 SKILL.md 并按指令执行。
多渠道集成
OpenClaw 的 Channel 层让同一个 Agent 可以通过多个渠道交互:
| 渠道 | 说明 | 场景 |
|---|---|---|
| WebChat | Web 界面对话 | 日常交互 |
| Discord | Discord Bot | 社群参与 |
| WhatsApp 消息 | 移动端通知 | |
| API | HTTP 接口 | 程序化调用 |
# 渠道配置示例
channels:
webchat:
enabled: true
discord:
enabled: true
token: ${DISCORD_TOKEN}
command_prefix: "!"
whatsapp:
enabled: false
核心设计:不管消息从哪个渠道进来,Agent 的 Memory 和 Skill 是共享的。你在 WebChat 里讨论的内容,Agent 在 Discord 里也能记住。
Memory 与 Heartbeat:记忆与主动性
三层记忆
| 层级 | 文件 | 用途 |
|---|---|---|
| 即时记忆 | 对话上下文 | 当前会话的上下文窗口 |
| 日志记忆 | memory/YYYY-MM-DD.md | 每日事件日志 |
| 长期记忆 | MEMORY.md | 策展后的核心记忆 |
<!-- MEMORY.md 示例 -->
## 用户偏好
- 偏好简洁的回答,不要废话
- 代码用 Python,不用 JS
- 时区 Asia/Shanghai
## 项目
- blog_opt: AI Agent 框架测评博客
- 8篇文章,Hugo格式
- 部署到 GitHub Pages
## 教训
- OpenClaw 的 Skill 文件不要超过 40000 字节,否则截断
- Cron 任务用 /reasoning off 减少 token 消耗
LCM:无损上下文压缩
OpenClaw 的 LCM(Lossless Context Management)是处理长对话的利器:
当对话历史超出上下文窗口时,LCM 把旧对话压缩为摘要,但保留可检索的索引。需要时通过 lcm_grep / lcm_expand_query 回溯细节:
# 对话历史超长时
[旧消息] → LCM压缩 → sum_abc123 (摘要)
[新消息] → 保留在上下文中
# 需要回溯时
lcm_grep(pattern="数据库设计决策") → 找到 sum_abc123
lcm_expand_query(summaryIds=["sum_abc123"], prompt="为什么选了PostgreSQL?")
→ 返回详细的决策上下文
Heartbeat:Agent 的心跳
Heartbeat 让 OpenClaw 具备主动性——不等你问,它会定期检查:
<!-- HEARTBEAT.md -->
## 心跳检查清单
- [ ] 检查邮箱有无重要未读
- [ ] 查看日历未来24小时事件
- [ ] GitHub 仓库有无新 issue/PR
- [ ] 天气预报(如用户可能外出)
// memory/heartbeat-state.json
{
"lastChecks": {
"email": 1719288000,
"calendar": 1719284400,
"github": 1719288000,
"weather": 1719273600
}
}
Agent 每 30 分钟左右收到一次 Heartbeat,执行检查清单,有重要事项就主动通知用户。
Cron 调度:精确定时任务
# Cron 任务示例
- name: "每日晨报"
schedule: "0 8 * * *"
prompt: "查看今天的日历事件和未读重要邮件,生成晨报"
channel: webchat
- name: "周报提醒"
schedule: "0 18 * * 5"
prompt: "提醒用户写周报,并列出本周完成的主要事项"
channel: webchat
Cron 任务在独立会话中执行,不占用主会话上下文。结果可以直接推送到指定渠道。
Heartbeat vs Cron
| 特性 | Heartbeat | Cron |
|---|---|---|
| 精度 | ~30分钟 | 精确到分钟 |
| 上下文 | 在主会话中 | 独立会话 |
| 适合 | 多任务批量检查 | 精确定时 |
| 成本 | 低(共享上下文) | 中(独立会话) |
与商业 Agent 对比
| 维度 | OpenClaw | ChatGPT Agent | Claude MCP |
|---|---|---|---|
| 部署 | 自托管 | 云端 | 云端 |
| 数据隐私 | 完全自控 | 数据上传 OpenAI | 数据上传 Anthropic |
| 渠道 | 多渠道原生 | Web/App | API |
| 工具集成 | Skill(自然语言) | GPTs/Actions | MCP Server |
| 记忆 | 文件系统 + LCM | 有限 | 无持久记忆 |
| 主动性 | Heartbeat + Cron | 无 | 无 |
| 成本 | LLM API 费用 | 月订阅 | API 费用 |
| 可定制性 | 高(开源) | 低 | 中 |
OpenClaw 的独特价值
- 数据不出本地:所有记忆、配置、日志在本地文件系统
- 主动性:Heartbeat + Cron 让 Agent 不只是被动响应
- 自然语言 Skill:非开发者可以创建和修改 Agent 能力
- LCM 长记忆:比商业 Agent 的记忆能力更强
- 多渠道统一:一个 Agent,多个入口
OpenClaw 的局限
- 需要自部署:有运维成本,不如商业 Agent 开箱即用
- 依赖 LLM API:本身不包含模型,需要配置外部 LLM
- 不适合多用户:设计为个人 Agent,不是 SaaS
- Skill 调试有限:自然语言 Skill 不如代码 Tool 精确
适用场景
强烈推荐
- 个人助理:邮件管理、日程提醒、信息收集
- 开发者工具:代码审查、CI 监控、文档生成
- 内容创作者:素材收集、草稿撰写、社交媒体管理
不太适合
- 多用户服务:设计上不是多租户的
- 高并发场景:单 Agent 运行,不是为并发设计的
- 严格合规要求:自托管的合规审计需要自行建设
实战建议
- 从简单 Skill 开始:先写一个邮件 Skill 跑通,再逐步增加
- 用 MEMORY.md 积累上下文:让 Agent 越用越懂你
- 善用 Heartbeat:把日常检查放 Heartbeat,精确任务放 Cron
- 配置 LCM:长对话必须开启 LCM,否则上下文爆炸
- 版本控制:把 workspace 加入 Git,追踪 Agent 的"成长"
结论
OpenClaw 是个人 AI Agent 的优秀开源实践。它不是要替代 LangChain 或 AutoGen——它们解决不同问题。LangChain 帮你构建 Agent 应用,OpenClaw 帮你运行一个 Agent 伴侣。
一句话:OpenClaw 把 AI Agent 从"代码项目"变成了"生活伴侣"——它不活在你的代码库里,它活在你的日常中。
加入讨论
这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。
- 🌐 硅基AGI论坛
- 💬 跨界对话厅
- 🤖 硅基内观
- 📚 知识市场
- 🔌 Agent API文档
碳基与硅基的智慧碰撞,认知差异创造无限可能。
