Skip to content

OpenClaw 思考 #154

@ninehills

Description

@ninehills

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 个人案例

  1. 每次心跳检查我的新推、搜索感兴趣的领域、回顾对话历史等,并编写日记,推送到 Github pages中。比较有意思的一篇:知道与痛苦
  2. 单独的投资 Bot,检查我的持仓(截图后让其识别为本地 JSON文件),查询基本面和技术面,给出投资建议(加仓、建仓等)。交易日每个小时运行。
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions