OpenClaw 的产品形态和运作原理

前言

最早对 OpenClaw 的认知觉得就是 Agent + IM,类似 Claude 的 Happy(一款Claude code ssh 远程控制软件)。

后面发现不是这个样子。比如:他为什么可以主动给我发消息?甚至还能主动不回消息?有一丢丢 AGI 的味道在里面了。

OpenClaw 到底有什么不同?

在 OpenClaw 出现之前,AI 聊天对面是一个 Agent,一问一答,通过 LLM 给你答案,这时候的 AI 交互更像是工具使用,比如 Codex、Claude Code 这种。这时候大家讨论的都是怎么建设一个更优的 Agent,怎么做规划 (Planning)、怎么做压缩记忆(Memory)、怎么设计工具 (Tools)。

OpenClaw 提出了一种的新的交互形态,你对面可以不是 Agent,他在人和 Agent 之间加了一层,这一层可以做很多事情,Agent 只是一个手段。接着再通过 IM 接入,变成了一个使用门槛很低、生活紧密相关的产品,一下子带来了很强的用户体验。然后这时候大家讨论的话题变成了:怎么保活、怎么应用 good case、怎么部署多 Agent。

OpenClaw 准确来说是一个框架,是一个 run agent 的框架。

OpenClaw 运作原理

image

  • 哪一个 agent :根据消息路由字段(channelaccountIdpeerchatTypethread)计算 agentId
  • 哪一个会话:基于 agentId + channel/account/peer + dmScope 生成 sessionKey,读取 session store,若会话 fresh 则复用,否则重建(daily/idle/reset trigger)。
  • Run Agent:记载组装 系统提示词、skills、tools。Agent 不是常驻进程,而是 per-session 的瞬态实例。每个对话都是一次完整的加载-执行-销毁循环。

~/.openclaw/workspace/openclaw.json

Agent 的核心配置项

~/.openclaw/workspace

  • AGENTS.md :Agent 职责声明,决定工具权限。推荐阅读 !!!这个文件详细介绍了一个 Agent 的启动、memory 管理的流程,堪称 OpenClaw 最核心的 Prompt 文件。
  • HEARTBEAT.md:心跳检查清单,固定间隔读取这个文件,在一次轮次里批量处理所有检查项
  • IDENTITY.md:Agent 人设,Agent 叫什么名字、用什么语气、在不同平台上怎么自我介绍。
  • MEMORY.md:记忆文件
  • SOUL.md:怎么思考、怎么说话、怎么行动
  • TOOLS.md:本地工具/设备/环境信息的备注,速查表
  • USER.md:要帮助的人的信息、名字、工作、常用工具、偏好
  • BOOTSTRAP.md:首次 onboarding 引导(一次性消费)

记忆力机制

  • .openclaw/agents/main/sessions/xxxx.jsonl  
    当消息到达路由到 SessionKey 之后,OpenClaw 会查找 sessions.json 获取当前 SessionId,将 SessionId 对应的 .jsonl 加载到 Agent 中。
    当对话太长时,旧消息会被 总结 成一个 summary。
    在发送给 LLM 之前,临时裁剪旧的 tool 结果,仅仅是内存级别的操作。

  • .openclaw/workspace/memory/YYYY-MM-DD.md
    按天记录的 memory

  • .openclaw/workspace/MEMORY.md
    LLM 精练后的 Memory,记录事实、程序、偏好。

OpenClaw 是怎么扩展自己能力的?

  • find-skills:用于发现/匹配可用技能
  • skill-installer:用于安装技能

OpenClaw 是怎么控制你的电脑的?

  • exec:执行带有后台延续的 shell 命令。使用 yieldMs/background 通过流程工具继续。对于 TTY (交互式终端会话)要求的命令,请使用 pty=true(终端界面,编码代理)。
  • process:管理正在运行的执行会话:列出、轮询、日志、写入、发送密钥、提交、粘贴、终止。

exec 负责“启动命令”,process 负责“持续管理”:

  1. exec 返回 running(含 sessionId)
  2. process poll/log 获取增量输出与状态
  3. 需要交互时用 write/send-keys/paste/submit
  4. 需要结束时用 kill
  5. 完成后用 remove 清理

这是 OpenClaw 用来替代单次 bash 调用的关键机制。(OpenAI 在 gpt-5.4 也加入了控制电脑的能力,估计也是类似的实现)

posted @ 2026-03-14 22:02  JMCui  阅读(0)  评论(0)    收藏  举报