Skip to content

第一章 核心定位与设计理念

在第一部分,你已经和 OpenClaw 打过交道——让它帮你查资料、整理文件、接入聊天渠道。作为"驾驶员",你知道踩油门车会动、打方向会转弯。

现在,我们要打开引擎盖,看看这些功能是如何被设计出来的。

1. Agent Runtime:不是聊天,是协作

让我们先回到那个经典的比喻:

Chatbot 是远程顾问——你提问,它回答,然后消失。它不了解你的上下文,不能操作你的环境,输出的终点是一段文字。

Agent Runtime 是坐在你旁边的实习生——它有记忆、有权限、有主动性。你让它"每周一整理周报",它会记住这个任务,到时候主动执行。

这个区别看似简单,但背后的架构差异是巨大的:

维度ChatbotAgent Runtime
状态无状态,每次从零开始有状态,持续维护记忆
交互一问一答多轮协作,可中断可干预
能力边界输出文本操作文件、执行代码、调用API
时间感知即时响应可规划、可定时、可异步

OpenClaw 的核心目标,是把 LLM 从"语言生成器"变成"任务执行器"。这要求系统解决三个根本问题:

  1. 如何安全地让 AI 操作真实环境?
  2. 如何在长期运行中保持一致性和可靠性?
  3. 如何在多平台、多场景中保持统一体验?

OpenClaw 的设计回答了这些问题。接下来的三个小节,我们会逐层拆解。

2. 自托管:掌控权与信任

OpenClaw 最显著的设计选择是自托管——它运行在你控制的设备上,可以是本地机器,也可以是远程服务器。

2.1 为什么是自托管

市面上大多数 AI 助手选择云端托管,理由很充分:部署简单、随时随地访问、便于统一更新。但 OpenClaw 选择了自托管,这个选择基于以下考量:

数据主权

你的聊天记录、文件内容、API Key、使用习惯——这些数据的默认归属应该是你,而不是服务提供商。自托管意味着:

  • 除了调用 LLM 时必须发送的内容,没有任何数据离开你的设备
  • 你可以决定保留多久、备份到哪里、何时彻底删除
  • 没有"隐私政策变更"的风险,没有"账号被封"的焦虑

离线能力

本地部署让 OpenClaw 具备了离线生存的能力。拔掉网线,它依然可以:

  • 整理本地文件、分析本地代码
  • 执行预设的定时任务(如本地备份)
  • 维护长期记忆和任务队列

当网络恢复时,它会自动同步需要联网的操作。

可修改性

云端的黑盒产品只能按设计者的意图使用。本地运行的开源软件则可以被理解、被修改、被扩展。这是从"消费者"变成"创造者"的前提。

2.2 本地优先的代价

这个选择并非没有代价:

部署复杂度

你需要自己安装 Node.js、配置模型提供商、处理依赖问题。第一部分的内容量已经说明了这一点。

硬件要求

你的设备需要有足够的资源来运行 Agent。虽然 OpenClaw 已经相当轻量,但终究比打开一个网页要重。

网络配置

如果你想从外部访问(比如用手机连接家里的 OpenClaw),需要自己去做一些网络上的配置,这比云服务的"开箱即用"要麻烦得多。

更新维护

你需要自己决定什么时候升级,自己处理可能的 breaking changes。没有自动更新帮你保持最新。

2.3 权衡之后的定位

OpenClaw 的答案是:支持本地和远程部署,核心原则是"个人控制"

对于个人用户,本地运行是最佳选择——你的数据你做主。对于有进阶需求的用户,OpenClaw 同样支持部署到服务器,这时候"本地"就变成了"你控制的服务器",核心原则依然是"数据归你",只是物理位置变了。

这种设计让 OpenClaw 成为了一个可以被信任的基础设施,而不是一个你必须依赖的外部服务。

3. 核心基础工具:精简的能力边界

为了让 Agent 能够"做事",OpenClaw 设计了一套极简的工具集。不是几十上百个专用 API,而是四个核心基础工具

3.1 为什么是这四个

OpenClaw 在文件操作方面的核心基础工具是:

  • read:读取文件内容
  • write:写入文件内容
  • edit:编辑文件内容
  • exec:执行命令、运行脚本、与系统交互

这四个工具的选择体现了深刻的设计哲学:通用性优于专用性

想象一下,如果 OpenClaw 提供的是专用工具——一个"读取邮件"工具、一个"查询天气"工具、一个"部署网站"工具——会发生什么?

  • 工具数量会爆炸,LLM 的选择会变得困难
  • 每个新场景都需要开发新工具,扩展成本高
  • 工具之间的组合性受限

而核心基础工具是组合性的。它们像乐高积木,通过组合可以完成复杂任务:

查找所有 .md 文件 → 读取内容 → 搜索关键词 → 生成报告
   exec(find)        read      exec(grep)       exec(调用LLM)

3.2 每个基础工具的设计意图

exec:与世界的通用接口

exec 是最通用的工具。它可以调用系统命令、运行脚本、启动其他程序。通过 exec,Agent 可以:

  • 编译代码、运行测试
  • 调用其他 CLI 工具(如 git、docker、aws)
  • 执行复杂的管道操作(包括 find、grep 等)

exec 也是最危险的工具,因为它几乎没有限制。这就是为什么 OpenClaw 设计了权限系统,让你可以控制哪些命令可以执行、哪些目录可以访问。

read:信息获取的基础

read 看起来最简单,但设计上有讲究:

  • 自动检测编码,处理各种文本文件
  • 支持行范围读取(只读前 50 行或特定区间)
  • 对大文件自动截断,避免超出上下文限制

这些细节让 LLM 能够高效地处理真实世界中的文件。

write:内容创建的能力

write 让 Agent 能够创建新文件或覆盖现有文件:

  • 支持多种编码和格式
  • 自动创建不存在的目录结构
  • 与 read 配合,实现完整的文件操作流程

edit:精确修改的利器

edit 提供了对现有文件的精确修改能力:

  • 基于字符串匹配的安全替换
  • 支持多行内容的编辑
  • 避免误修改,提供变更控制

这四个工具构成了文件操作和命令执行的完整闭环,足以应对绝大多数自动化任务。

3.3 工具的扩展:内置工具与 Skills 系统

除了基础工具,OpenClaw 还包含多个内置工具:

  • Browser:网页浏览、数据抓取
  • Canvas:可视化展示、交互界面
  • Cron:定时任务调度
  • Web Search:网络搜索
  • Image:图像处理
  • TTS:文本转语音
  • 等等

此外,OpenClaw 通过 Skills 系统支持第三方扩展。Skills 用于管理外部技能(如 1password、apple-notes 等),与基础工具是并行关系而非分层关系。

这种设计的好处是:底层稳定,上层灵活。核心工具构成了不变的基础能力,内置工具和 Skills 则可以随着需求不断演进。

4. 统一的消息入口:松耦合的设计哲学

OpenClaw 的另一个核心设计是统一的消息入口架构。用户和 Agent 的交互通过一个中央入口完成,系统组件之间通过这个入口进行通信。

4.1 架构组件与消息流

OpenClaw 的核心架构可以简化为:

统一入口(消息控制中心)
    ├── 客户端(桌面应用 / 命令行 / 网页管理)
    └── 节点(手机 / 平板 / 无界面设备)

统一入口是所有消息的控制中心:

  • 维护与外部渠道的连接(WhatsApp、Telegram、Slack、Discord 等)
  • 提供标准化的通信接口
  • 验证传入消息的格式
  • 协调各个组件之间的事件传递

客户端(桌面应用 / 命令行 / 网页管理):

  • 每个客户端建立一个连接
  • 发送各种请求(健康检查、状态查询、发送消息、执行任务等)
  • 订阅系统事件(定时触发、任务完成、状态变化等)

节点(手机 / 平板 / 无界面设备):

  • 以特定角色连接到消息中心
  • 提供设备身份进行配对
  • 暴露可视化界面、相机、屏幕、位置等功能

节点功能的安全策略

  • 平台差异:不同平台支持的功能不同。例如,iOS 不支持直接运行系统命令;Linux 和 Windows 节点仅支持系统级命令
  • 敏感操作控制:拍照、录屏等功能被视为敏感操作,默认需要授权才能执行
  • 权限配置:节点功能的执行权限通过配置文件来设置,确保只有授权的设备可以访问敏感功能

Agent 运行在统一入口内部,调用 LLM 进行推理,决定下一步行动,并执行具体的工具调用。

4.2 松耦合的好处

这种设计带来了几个关键优势:

可替换性

不喜欢现在的入口实现?可以写一个自己的,只要遵循相同的通信协议,就能无缝对接其他组件。

可测试性

每个组件都可以独立测试。你可以测试入口的请求处理逻辑,而不需要启动整个系统。你可以模拟 Agent 的行为来测试客户端。

可扩展性

添加新的渠道(如飞书)只需要开发对应的适配器。添加新的工具只需要在 Agent 中注册。这些修改不会影响到其他组件。

远程访问能力

这种架构天然支持远程访问。通过 Tailscale、VPN 或 SSH 隧道,你可以从任何地方安全地连接到你的 OpenClaw 实例。

4.3 统一接口的意义

统一的消息入口还有一个深层含义:它是系统的通用接口

  • 用户和系统交互,通过这个入口
  • 系统和外部服务交互,通过入口转接
  • 系统内部组件交互,也通过同一个入口

这种统一性简化了心智模型。当你理解了通信协议的格式,你就理解了整个系统如何运转。当你需要调试时,只需要观察消息的流向。

5. 设计选择的综合考量

现在,让我们把这三个设计选择放在一起看:

设计选择核心优势主要代价
自托管数据主权、离线能力、可修改部署复杂、维护负担
核心基础工具组合性强、易于扩展、LLM友好学习曲线、某些场景效率较低
统一消息入口松耦合、可测试、可扩展额外开销、调试复杂度

これらの選択が総合的に OpenClaw のアイデンティティを形成します。OpenClaw は製品ではなくインフラストラクチャです。

製品の目標は、多くの人を満足させることであり、通常、それはシンプルでカプセル化され、箱から出してすぐに使用できることを意味します。インフラストラクチャの目標は、権限を与えられたユーザーが必要なものを構築できるようにすることです。これは、透過的で、変更可能で、構成可能であることを意味します。

OpenClaw は後者を選択しました。そのため、市販製品よりも学習曲線が急になりますが、一度使いこなせば、できることは無限に増えます。

6. この章の概要と次の章のプレビュー

この章では、設計哲学の観点から OpenClaw を理解します。

  • エージェント ランタイムとチャットボットの主な違いは、ステータス、コラボレーション機能、アクション機能にあります。
  • セルフホスティング は、データ主権をユーザーに返し、使用量のしきい値が高くなりますが、ローカルおよびリモートの展開をサポートします。
  • コア基本ツール (読み取り、書き込み、編集、実行) は、最小限のツール セットで無限の可能性をサポートします
  • ユニファイド メッセージ ポータル アーキテクチャ により、システムが疎結合され、理解、テスト、拡張が容易になります。

これらのデザインは何も考えずに生まれたわけではありません。それぞれが特定の問題とトレードオフに対応していました。これらのトレードオフを理解することが、OpenClaw の「エンジニア」になるための第一歩です。

次の章では、抽象的な設計から具体的な実装に移ります。以下が表示されます:

  • 統合ポータルがさまざまなチャネルからのメッセージを処理する方法
  • Think-Action Cycle 意思決定と行動の仕方
  • ツール システムが特定の操作を実行する方法

アーキテクチャはもはや抽象的な概念ではなく、読み取り、理解、変更できるコードです。