OpenClaw 思考
Author: ninehills
Labels: blog
Created: 2026-02-05T07:03:29Z
Link and comments: https://github.com/ninehills/blog/issues/154
OpenClaw 产品形态:贾维斯(J.A.R.V.I.S.)
OpenClaw 和 Claude Code/Cowork 等 Agent 产品的核心区别有四:
| |
Manus/Claude Code/Claude Cowork 等通用 Agent 产品 |
OpenClaw |
| 交互入口 |
以CLI、Web、桌面App 作为入口 |
以IM作为核心入口,主要在手机上使用。 |
| 交互方式 |
用户->Agent 的单向交互(用户下发任务,Agent 完成任务) |
双向交互,Agent 可以根据 Cron、Heartbeat 机制主动执行任务和联系用户 |
| Agent 生命周期 |
按需启动 |
7x24h 全天在线 |
| Agent 运行环境 |
分散的或一次性的 |
持久的工作区和运行环境 |
OpenClaw 是完整的个人助理产品形态,7x24h 运行在个人电脑上,可响应指令也可主动发起任务。其产品形态意义等同于 Manus 之于通用智能体。
OpenClaw 技术实现:简单的通用 Agent 实现
核心概念和实现方式(部分概念虽好但实现欠佳,如 Node,此处不做展开)如下:
- Gateway:统一的后台服务进程
- Agent:Gateway 启动后可注册多个 Agent(智能体),每个 Agent 拥有独立的 Workspace(工作区)。
- 实现:基于 Pi 极简 Agent 框架,核心采用 ReACT(System Prompt + 工具使用)范式。
- SubAgent:子 Agent,允许在会话中启动子 Agent(子 Agent 仅共享工作区,不共享上下文),任务完成后向主 Agent 发送摘要。
- Workspace:每个 Agent 独立的工作区,核心文件如下(均支持对话式隐式修改,例如用户说”从现在起你叫 Jack”,会自动更新 IDENTITY.md)
AGENTS.md:相当于 CLAUDE.md,附加到 system prompt 中,定义 Agent 核心行为。
IDENTITY.md:Agent 身份定义(名称、头像等)
SOUL.md:Agent 核心人设或性格特征
USER.md:用户偏好设置(称呼、习惯、地点等)
MEMORY.md:每次会话前必读的核心记忆,例如默认语言等。
memory/:记忆目录,除 Agent 自主生成外,按时间组织(2026-02-03-2134.md 或 2026-02-05.md),保存 Session 摘要。
HEARTBEAT.md:定义心跳任务,每 30 分钟执行一次。
TOOLS.md:工具使用指引,定义工具调用场景和条件。
- Session:会话,每个 Agent 支持多个会话(如不同 IM 账号、群组、主题等),会话间上下文独立,但共享同一 Workspace。
- 会话上下文默认累积,除非达到上限触发压缩,或手动使用
/new 清空。
- 同一 Session 内,Agent 交互串行处理,新消息进入队列等待。
- Channel:频道(通常为 IM),Agent 与用户交互的主要载体,支持常见聊天应用。
- 以 Telegram 为例:可配置多个 Bot,每个 Bot 可加入不同群组,每个群组可配置不同主题。
- 用户向 Bot 发起聊天后,会创建或复用已有 Session。
- Cron and Heartbeat:定时任务和心跳机制。
- Heartbeat:每 30 分钟(可配置)在指定 Session 中(默认为主 Session)执行 HEARTBEAT.md 中的任务并发送消息。无需发送时返回 HEARTBEAT_OK。
- Cron:定时任务,指定特定 Agent,可选择新建 Session 或在特定 Session 中执行。
- Tools & Skills:工具和技能体系
- 内置工具:Bash、文件编辑、Web Reader/Searcher、浏览器等。
- Skills:OpenClaw 通过 Skills 扩展能力,支持官方 Skill 和外部 Skill 目录。
- MCP vs Skill:
- OpenClaw 默认不支持 MCP,这是很正确的实现。
- 如确需调用已有 MCP Server,可以用 mcporter 命令行工具调用(封装为单独的 skill)
- Skill 实现上优先使用 CLI 调用外部工具,而非 API 调用。
- 当前 LLM 对 CLI 工具调用有较好理解,例如 qmd(文件搜索)、gogs(Gmail 控制)、agent-browser(浏览器控制)。
抛开那些不稳定的特性和兼容代码,OpenClaw 的核心功能很容易实现。
OpenClaw 个人案例
- 每次心跳检查我的新推、搜索感兴趣的领域、回顾对话历史等,并编写日记,推送到 Github pages中。比较有意思的一篇:知道与痛苦
- 单独的投资 Bot,检查我的持仓(截图后让其识别为本地 JSON文件),查询基本面和技术面,给出投资建议(加仓、建仓等)。交易日每个小时运行。
