夜雨聆风学习资料网

ARTICLE · 1093340

[OpenClaw的基本原理]

[OpenClaw的基本原理]

OpenClaw(开源 AI Agent,龙虾)

    定位:本地运行的开源个人智能体,不是单纯聊天机器人,而是“LLM 大脑 + 本地执行手脚 + 持久记忆”,一个完全开源、自己运行在你电脑上的 AI 助手。接收指令,接管相关执行权限,真正为你做事!

  1. 整体架构(Gateway 中心)

单进程 Node.js Gateway 常驻,负责所有进出:

  • Ingress/Channels:WhatsApp、Telegram、Discord、Slack、飞书/微信插件、CLI、Web、Cron/Webhook

  • Gateway 控制面:WebSocket/HTTP 服务、认证配对、会话路由、并发队列、工具审批

  • Agent/Brain:拼上下文 → 调 LLM(Claude/GPT/Gemini/DeepSeek/Ollama 本地都行)→ 产出文本或 tool call

  • Hands/Tools:shell、文件系统、浏览器(CDP)、HTTP API、邮件、日历、移动节点

  • Memory:本地 Markdown(SOUL.md/AGENTS.md/USER.md/MEMORY.md/HEARTBEAT.md),可混合检索

  • Skills:ClawHub 装技能,YAML+Markdown 定义,按需加载。

各部分再简单解释:

  • Channel Bridge(通道桥接器):负责跟 WhatsApp、Telegram 等聊天软件"握手"。比如用 Baileys 库连接 WhatsApp。

  • Gateway:唯一运行的进程(占用一个端口,默认 18789),像总机接线员,把消息转发给 AI。

  • AI 大脑:真正思考的是外部大模型(你提供 API Key),Gateway 只负责"叫它来干活"。

  • 工具 & 技能:AI 的手脚,比如打开浏览器、读写文件、发邮件。

  • 记忆系统:像笔记本,AI 不会忘掉你上次说的话。

  1. 一次消息的工作流

  1. 渠道来消息(或 Cron/Heartbeat 触发)

  2. Gateway 按 channel/account/group 生成 sessionKey,进 lane/queue(同 session 串行,跨 session 并行)

  3. 组装 prompt:系统身份 SOUL + 代理规则 AGENTS/TOOLS + 记忆检索结果 + 匹配 SKILL + 最近对话 + 原始消息(外部内容打 EXTERNAL_UNTRUSTED 标记)

  4. 送 LLM 推理:只回复 / 或多个 tool call

  5. 工具调用回 Gateway→Hands 执行(shell/browser/file/api),走沙箱与人工审批;结果再喂回 LLM

  6. 多轮 tool loop 直到最终回复,原渠道回发;重要结论写记忆

  7. 主动任务:Heartbeat 定时跑、Cron 触发、Webhook 事件触发,不等人问 ;

概念
类比
作用
Gateway(网关)
大楼的前台接待
接收所有外部消息,分发到正确的工作空间
Workspace(工作空间)
你的私人办公室
处理具体任务,管理对话历史和技能
LLM(大语言模型)
AI顾问大脑
理解你的意图,生成回复
Skills(技能)
工具箱里的工具
执行特定功能(查天气、写代码、管理日程等)
Channels(渠道)
通信设备
连接不同的消息平台
  1. 关键机制

  • 模型无关:配置换 provider,简单任务走廉价模型、复杂走 Opus/DeepSeek,支持 failover

  • 本地优先:记忆是 Markdown、配置 JSON、凭证放 ~/.openclaw/credentials;用 Ollama/vLLM 可完全离线

  • 安全边界:Gateway 默认 localhost、配对认证;工具分普通/提权/沙箱;危险命令走 approval;外部输入标不受信任

  • 多 agent:按 workspace/渠道/发送人路由不同 agent,各自独立 session 与记忆

简单类比:ChatGPT 是“嘴”,OpenClaw 是“嘴+手+记事本+定时闹钟”,通过聊天应用接收指令并在你机器上真跑命令。

核心组件介绍:

Gateway:统一的门户

    Gateway(网关)是 OpenClaw 的大门,所有外部消息都必须先经过这里。

Workspace:你的私人办公室

Workspace(工作空间)是实际处理任务的地方。你可以有多个工作空间,每个负责不同的事情。

# workspace-personal.yamlname: "个人助理"llm:  provider: "anthropic"  # 使用 Claude  model: "claude-sonnet-4"  apiKey: "sk-ant-xxx"skills:  - weather        # 查天气  - calendar       # 管理日程  - email          # 处理邮件  - web-search     # 网页搜索settings:  language: "zh-CN"  temperature: 0.7  max_tokens: 4000

LLM:AI大脑

    LLM(Large Language Model,大语言模型)是 OpenClaw 的智能大脑,负责理解你的意图和生成回复。

OpenClaw 支持的 LLM:

提供商
模型示例
特点
适用场景
Anthropic
Claude Sonnet 4
平衡、安全、多语言好
日常对话、写作
OpenAI
GPT-4
专业、知识广
专业任务、分析
DeepSeek
DeepSeek-V3
代码能力强、便宜
编程辅助
本地部署
Ollama
完全私有、免费
隐私敏感场景

Channels:连接外部世界

Channels(渠道)是连接各种消息平台的"适配器"。

每个 Channel 的工作:

  1. 接收消息:从平台获取用户消息

  2. 格式转换:统一转换为 OpenClaw 内部格式

  3. 发送回复:把 OpenClaw 的回复发回平台

命令流转过程:

详细步骤解析:

步骤 1-3:消息接收与标准化

用户在 Telegram 发送消息后,Telegram Channel 会将其转换为 OpenClaw 的标准格式:

{  "platform": "telegram",  "channel_id": "telegram_123",  "user": {    "id": "user_456",    "name": "Alice"  },  "message": {    "type": "text",    "content": "上海明天天气?",    "timestamp": "2024-03-09T10:30:00Z"  }}

步骤 4-5:认证与路由

Gateway 检查这个消息:

  • 来源是否已授权?

  • 应该路由到哪个 Workspace?

  • 用户是否有权限?

步骤 6-8:AI 理解与决策

Workspace 准备完整的上下文发送给 LLM:

[系统提示]你是一个个人助理,可以使用以下技能:- weather: 查询天气- calendar: 管理日程- ...[对话历史]用户: 你好助理: 你好!有什么可以帮你的?[当前消息]用户: 上海明天天气?

步骤 9-12:技能执行

LLM 决定调用 weather skill,Workspace 执行并获取结果:

{  "location": "上海",  "date": "2024-03-10",  "weather": "晴转多云",  "temperature": "18-26°C",  "humidity": "60%",  "wind": "东风 3-4级"}

步骤 13-17:生成回复并返回

    LLM 根据天气数据生成自然语言回复,通过原路返回给用户。

完整工作流程:

场景:定时发送每日天气报告:

数据流与状态管理:

数据如何存储?

数据类型及存储方式:

数据类型
存储方式
保留时间
示例
当前会话状态
内存
直到会话结束
正在进行的对话上下文
对话历史
本地数据库
可配置(如30天)
过去的聊天记录
用户配置
配置文件
永久
API密钥、偏好设置
技能数据
技能自己管理
取决于技能
日程、邮件草稿
系统日志
日志文件
可配置
错误、调试信息

技能系统

什么是技能(Skills)?

    技能是 OpenClaw 执行特定任务的"能力模块"。如果把 OpenClaw 比作一个人,技能就是这个人学会的各种本领。

技能的结构:

每个技能包含:

示例:天气技能的定义

技能的调用流程:

技能的安全机制:

扩展性与插件

技能安装流程:

以上是OpenClaw可以接收指令,并进行接管权限的基本原理和数据流。

相关学习资料