智能体循环 (Agentic Loop)
这是 Agent 的核心逻辑,涵盖了输入接收、上下文组装、模型推理、工具执行、流式回复和状态持久化的全生命周期
OpenClaw 重用了 pi-mono 代码库中的部分代码 (models/tools), 但会话管理, 发现, 和工具连接则由 OpenClaw 自主掌控。
- nanobot 是使用 python 独立实现的
- picoclaw 是使用 go 独立实现的. 一开始通过 AI 从 nanobot 的 python 代码转换而来, 而后进行独立演进.
- zeroclaw 是使用 rust 独立实现的.
流式预览与块流式传输 (Streaming)
- 实时流式输出: 支持实时预览 LLM 的思考过程(Reasoning)和回复文本
- 块流式输出(Block Streaming)可以在长回复完成特定段落后分段发送
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| 思考过程输出 | ✅ | ❌ | ✅ | ✅ |
| 实时流式输出 | ✅ | ❌ | ❌ | ✅ |
| 块流式输出 | ✅ | ❌ | ✅ | ✅ |
注:这里只是考虑 Agent 是否提供了接口,具体实现取决于消息渠道的适配程度
斜杠命令
命令由 Gateway 网关处理。大多数命令必须作为以 / 开头的独立消息发送。
opencalw 提供了大量的斜杠命令, 比如下列的常用命令:
/new: 开启一个新的会话(清空上下文)/model: 切换模型/context: 查看上下文占用情况
nanobot 在 AgentLoop._process_message 中定义了下列命令:
- /new — 清除对话记录并开始新的会话
- /stop — 停止当前任务和子代理
- /help — 显示帮助信息
picoclaw 在 AgentLoop.handleCommand 中定义了下列命令:
- /show [model|channel|agents] — 显示当前模型|渠道|智能体列表
- /list [models|channels|agents] — 列出可用的模型|渠道|智能体列表
- /switch [model|channel] to _
— 切换到指定的模型|渠道
zeroclaw 在 in-chat-runtime-commands 中列出了下列命令:
- /new 清除对话记录并开始新的会话
- /models — 显示可用的模型供应商和当前选择的供应商
- /models — _
: 为当前会话切换模型供应商 - /model — 显示当前模型和缓存模型的 ID (如果可用)
- /model — _
— 为会话切换模型
| 功能 | OpenClaw | nanobo | picoclaw | zeroclaw |
|---|---|---|---|---|
| 斜杠命令 | ✅ | ⚠️缺少 /model |
⚠️缺少 /new |
✅ |
技能
技能是一个包含 SKILL.md 文件(该文件为 LLM 提供指令和工具定义)的目录,还可以选择性地包含一些脚本或资源。
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| 本地路径加载 | ✅ | ✅ | ✅ | ✅ |
| 压缩包安装 | ❌ | ❌ | ❌ | ✅ |
| Git 仓库安装 | ❌ | ❌ | ✅ | ✅ |
| clawhub 安装 | ✅ | ⚠️ | ✅ | ✅ |
插件
插件只是一个小型代码模块,用额外功能(命令、工具和 Gateway 网关 RPC)扩展 OpenClaw。 大多数时候,当你想要一个尚未内置到核心 OpenClaw 的功能(或你想将可选功能排除在主安装之外)时,你会使用插件。
- 消息渠道: 只需实现相应的适配器,即可处理消息接收、发送及媒体流。
- 智能体工具 (Agent Tools):扩展 LLM 可以调用的功能。
- 网关 RPC 方法与 HTTP 处理程序:增加远程调用接口或 Web 处理逻辑
- CLI 命令:为 openclaw 命令行工具添加自定义指令
- 后台服务:在网关运行时持续执行的异步任务
- 自动回复指令:无需调用 LLM 即可直接执行并回复的斜杠命令(如状态检查或开关切换)
- 技能: 插件可以包含 Skills
- 钩子函数(hooks): 插件可以包含 Hooks
- 模型供应商与认证: 插件可以注册模型提供程序的身份验证流程,这样用户就可以在 OpenClaw 内部运行 OAuth 或 API 密钥设置(无需外部脚本)。
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| 插件 | ✅ | ❌ | ❌ | ✅ |
MCP
MCP(模型上下文协议)是一种用于将 AI 应用连接到外部系统的开源标准。
借助 MCP,像 Claude 或 ChatGPT 这样的 AI 应用能够连接到数据源(例如本地文件,数据库), 使用其他工具(例如搜索引擎,计算器). 从而能够获取关键信息并执行任务。
简单来说, 智能体除了使用内置的 工具(agnet tool) 外,还可以通过 MCP 来添加外部的工具
openclaw 并不原生支持 mcp,而是通过内置的 mcporter 技能来进行 mcp 调用
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| MCP | ✅ | ✅ | ✅ | ✅ |
会话管理
- 支持私聊,群聊,频道
- 多代理路由 (Multi-Agent Routing):允许在一个网关内运行多个完全隔离的代理,每个代理拥有独立的身份、工作区、会话存储和身份验证配置文件
- 会话修剪: LLM 调用之前从内存上下文中修剪旧的工具结果 (目前支持 Anthropic, ZAI, Moonshot)
- 会话自动压缩: 当会话接近或超过模型的上下文窗口时,OpenClaw 会触发自动压缩,并可能使用压缩后的上下文重试原始请求。
- 自动记忆刷新: 当会话接近自动压缩时,OpenClaw 会触发一个静默的智能体回合,提醒模型在上下文被压缩之前写入持久记忆。
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| 私聊、群聊、频道 | ✅ | ✅ | ✅ | ✅ |
| 多代理路由 | ✅ | ❌ | ✅ | ✅ |
| 会话修剪 | ✅ | ❌ | ✅ | ✅ |
| 会话自动压缩 | ✅ | ✅ | ✅ | ✅ |
| 自动记忆刷新 | ✅ | ✅ | ⚠️ | ✅ |
智能体协作
- 子智能体: 在隔离会话中生成子智能体运行,并将结果通告回请求者聊天渠道。
- 智能体协作: 多个智能体之间可以交换信息
- 多智能体沙箱与工具: 多智能体设置中的每个智能体都可以拥有自己的沙箱配置和工具限制
- 智能体通信协议(ACP): ACP 会话允许 OpenClaw 通过 ACP 后端插件运行外部编码工具(例如 Claude Code、Codex)。
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| 子智能体 | ✅ | ⚠️ | ✅ | ✅ |
| 智能体协作 | ✅ | ❌ | ❌ | ✅ |
| 多智能体沙箱与工具 | ✅ | ❌ | ✅ | ✅ |
| ACP 协议 | ✅ | ❌ | ❌ | ✅ |
长期记忆的检索与召回
OpenClaw 可以在 MEMORY.md 和 memory/*.md(以及你选择加入的任何额外目录或文件)上构建小型向量索引,以便语义查询可以找到相关笔记,即使措辞不同。
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| 语义搜索 | ✅ | ❌ | ❌ | ✅ |
| 混合搜索 | ✅ | ❌ | ❌ | ✅ |
自动化
- Hooks: 提供了一个可扩展的事件驱动系统,用于响应智能体命令和事件自动执行操作。
- 定时任务: 定时任务是 Gateway网关内置的调度器。它持久化任务、在合适的时间唤醒智能体,并可选择将输出发送回聊天。
- 心跳: 心跳在主会话中以固定间隔运行(默认:30 分钟)。它的设计目的是让智能体检查各种事项并呈现重要信息。
- Webhooks: Gateway 网关可以暴露一个小型 HTTP webhook 端点用于外部触发。
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| Hooks | ✅ | ❌ | ❌ | ✅ |
| 定时任务 | ✅ | ✅ | ✅ | ✅ |
| 心跳 | ✅ | ✅ | ✅ | ✅ |
| Webhooks | ✅ | ❌ | ⚠️ | ✅ |
浏览器
提供受控的 Chromium 浏览器实例,代理可以执行打开标签页、点击、输入、截屏、下载文件以及生成 PDF 等操作
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| 浏览器控制 | ✅ | ❌ | ❌ | ✅ |
多媒体支持
- 图片
- 文件
- 音频
- 视频
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| 多媒体支持 | ✅ | ✅ | ✅ | ✅ |
注:这里只是考虑 Agent 是否提供了接口,具体实现取决于消息渠道的适配程度
节点
节点 (Nodes) 是指连接到中央网关(Gateway)的专用设备或客户端(如 macOS 电脑、iOS 或 Android 手机),它们充当智能体的“身体”,扩展了智能体感知物理世界和执行本地操作的能力。
- 执行 shell 命令的 exec 工具通常在网关主机上运行,而涉及特定硬件的操作则在节点上执行
- 节点可以是 macOS、iOS、Android 设备,也可以是无界面的脱机 (headless) 设备
- 节点允许智能体调用硬件摄像头进行拍照(camera.snap)或视频剪辑,以及进行屏幕录制
- 节点支持显示交互式界面 (Canvas/A2UI),这是一个由智能体驱动的可视化工作区,可以渲染实时 HTML/CSS/JS 内容
- 节点支持 语音唤醒 (Voice Wake) 和 对话模式 (Talk Mode)
- 可以获取节点的实时地理位置信息
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| 节点 | ✅ | ❌ | ❌ | ✅ |
界面
- Control UI: 控制 UI 是一个由 Gateway 网关提供服务的小型单页 WEB 应用
- WebChat: UI 连接到 Gateway 网关 WebSocket 与智能体聊天
- TUI: 通过终端 UI 与智能体聊天
| 功能 | OpenClaw | nanobot | picoclaw | zeroclaw |
|---|---|---|---|---|
| Control UI | ✅ | ❌ | ❌ | ✅ |
| WebChat: UI | ✅ | ❌ | ❌ | ✅ |
| TUI | ✅ | ⚠️ | ⚠️ | ⚠️ |