openClaw 最近爆火。它实现了“无限上下文”,"能接任意工具",“自我迭代”通用智能体。
openClaw 实现以下功能:
- Gateway 统一多渠道接入
- Tools + Skills定义能力边界
- Memory 实现持久化记忆和自我进化
- 定时触发任务执行
github url :github.com/openclaw/op…
项目是纯前端写的,主要用typescript
主要概念:
目录结构:
openclaw/
├── src/ # TypeScript source
│ ├── agents/ # Agent runtime, tools, sandbox
│ ├── gateway/ # Gateway server, protocol
│ ├── config/ # Configuration, sessions
│ ├── cli/ # CLI commands
│ ├── commands/ # Command implementations
│ ├── telegram/ # Telegram channel
│ ├── discord/ # Discord channel
│ ├── slack/ # Slack channel
│ ├── signal/ # Signal channel
│ ├── imessage/ # iMessage channel
│ ├── memory/ # Memory search
│ ├── web/ # Control UI backend
│ └── ...
├── extensions/ # Plugin workspace packages
│ ├── msteams/ # Microsoft Teams plugin
│ ├── matrix/ # Matrix plugin
│ ├── memory-core/ # Core memory plugin
│ └── ...
├── apps/ # Companion apps
│ ├── macos/ # macOS menu bar app (Swift)
│ ├── ios/ # iOS node app (Swift)
│ └── android/ # Android node app (Kotlin)
├── ui/ # Control UI frontend (Lit)
├── docs/ # Documentation (Mintlify)
├── skills/ # Bundled skills
├── dist/ # Build output
├── openclaw.mjs # CLI entry point
├── package.json # npm package manifest
├── tsconfig.json # TypeScript config
└── fly.toml # Fly.io deployment config
其中重要节点: Gateway, Agents, Tools, Skills,Memory, Channels, Nodes.
框架图:(简化)
流程图:
Gateway: The Control Plane
Gateway 是openClaw 系统的核心枢纽——负责长期运行的守护进程,负责管理所有消息通道并作为 WebSocket 控制平面。openClaw 支持多 Agent 创建和运行。一个 Gateway 可以托管多个独立的 Agent。
Gateway 主要做三件事:
- 接收消息:从各个渠道收集用户指令
- 路由分发:决定这条消息应该交给哪个 Agent 处理
- 回复投递:把 Agent 的回复发送回对应的渠道
Agents:AI 执行运行时
Agent是通过集成Pi Agent来支持 AI 助手实例。每个Agent都有自己的工作区、模型配置、工具策略和身份验证配置文件。
Agent在接收到消息与任务后,动用自己的脑袋(LLM/大模型)、手脚(Tools)、专业知识(Skills),尽可能的完成任务,其中可能会访问Web、运行命令、读写文件、编写代码,甚至调用其他Nodes能力(比如摄像头)。
openClaw 的核心运行的核心是Agent Loop。
agent的四个核心阶段
阶段 1:上下文组装
Agent 需要告诉 LLM “你是谁、你能做什么、你有什么工具,用户说了什么”。这包括:
- 系统提示:Agent 的身份、规则、工具列表
- 会话历史:之前的对话记录或者记忆
- Bootstrap 文件:AGENTS.md、SOUL.md、TOOLS.md 等工作区文件
openClaw 会把这些文本内容拼接成一个完整的 Prompt,然后发送给 LLM。
阶段 2:模型推理
LLM 收到 Prompt 后,思考决定下一步行动。它可能:
- 直接回复用户文字
- 生成调用一个工具(Tool Call)的代码
- 其他,如请求更多信息
阶段 3:工具执行
如果 LLM 决定调用工具,Agent 会:
- 解析 Tool Call 参数
- 执行对应的工具(exec、read、write、browser…)
- 把执行结果(状态、内容)返回给 LLM
阶段 4:回复分发
当 LLM 生成最终回复后,Agent 会:
- 格式化回复内容,变成用户语言
- 通过 Gateway 发送回对应的消息渠道
- 支持流式输出(边生成边发送)
Clawdbot支持多Agent模式,可以互不干扰,也可以相互协作。每个Agent有自己的工作区,放置专属配置与记忆,甚至自己的技能。
~/.openclaw/agents/<agentId>/
├── agent/
│ ├── auth-profiles.json # OAuth + API key credentials
│ └── auth.json # Runtime cache (managed by Pi Core)
├── sessions/
│ └── agent-<agentId>.json # Session transcripts
└── workspace/ # Files accessible to the agent
├── AGENTS.md # System prompt bootstrap
├── SOUL.md # Identity/personality
├── TOOLS.md # Tool guidance
└── skills/
其内核Pi Agent 是一个精简高效的编程智能体,核心特点包括:
- Agent Loop(智能体循环):处理用户消息、执行工具调用、将结果反馈给 LLM,循环直到模型生成无工具调用的响应
- 事件驱动架构:循环过程发射生命周期事件,支持响应式 UI
- 消息队列:支持两种模式(逐条处理或批量处理)
- 工具流式传输:支持块流式传输和增量流式传输,实现实时输出
tools:外部函数
tools是agents在执行过程中可以调用的功能。OpenClaw 提供内置工具,用于文件操作、shell 执行、浏览器控制、消息传递和系统集成。
agents通过执行工具createOpenClawCodingTools来完成组装,基础工具有:
- 命令行操作工具
- Python 代码解释器
- Fetch 网络信息获取
- 文件读取工具
- RAG 检索工具
skills 技能
Skills 是 智能体执行任务或者使用工具的指引插件。
Skill 加载优先级(从高到低):
- 工作区 skills:/skills
- 托管/本地 skills:~/.clawdbot/skills
- 内置 skills:随安装包分发
内置 Skills(49+ 个)涵盖:
- Apple 生态:Notes、Reminders、Things 3、Bear Notes
- Google Workspace:Gmail、Calendar、Drive、Docs、Sheets(通过 gog CLI)
- 通信工具:Slack、iMessage、Twitter/X、Discord
- 智能家居:Philips Hue、Sonos、Eight Sleep
- 开发工具:GitHub CLI、Claude Code 子进程、Whisper 转录
目录结构如下:
~/.openclaw/agents/<agentId>/workspace/skills/
├── github/
│ ├── SKILL.md # Skill documentation (injected into prompt)
│ ├── package.json # Metadata (name, description, dependencies)
│ └── bin/ # Optional binaries/scripts
├── slack/
│ ├── SKILL.md
│ └── package.json
└── custom-skill/
├── SKILL.md
└── package.json
Memory 系统:持久化记忆
openClaw 采用 Short-term(工作记忆) + Long-term(向量/图谱记忆) + Archival(归档记忆) 三级存储架构。采用markdown + sqlite 的存储技术。
工作记忆采用了上下文压缩 生成摘要的方式。
文件存储 分为两个物理层级:
- 每日流水账 (Daily Logs) 存储于 ~/clawd/memory/YYYY-MM-DD.md 。
- 长期知识库 (Curated Knowledge) 存储于 ~/clawd/MEMORY.md ,Agent 会通过定期的“记忆刷盘(Flush)” 机制,将 Daily Logs 中的精华提炼并写入此文件。
其它的长期知识库如:
- SKILLS_SNAPSHOT.md 存储skill
- SOUL.md:人格、语气与边界
- IDENTITY.md:名称、风格与表情
- USER.md:用户画像与称呼方式
- AGENTS.md:操作指令、记忆使用规则与优先级
- MEMORY.md:跨线程的长期记忆
OpenClaw 用sqlite 做RAG, 采用加权混合搜索策略,采用 70% 向量语义搜索 + 30% BM25 关键词匹配 的加权策略,解决检索不准确的问题。
channels:消息平台集成
channels是连接 OpenClaw 和消息平台的适配器。每个通道负责处理特定于平台的身份验证、消息格式和传递。如:WhatsApp,telegram,discard,飞书,google chat
nodes:设备功能提供商
Nodes 就是在主机之外的其他“能力”节点,连接到 Gateway 的子设备(iOS、Android、macOS),提供设备本地功能:
旧手机、闲置电脑都可以作为 Node 加入网络,以提供更多的能力,比如摄像头、屏幕录制、系统控制、屏幕共享、显示可交互式的UI界面等。Nodes 需要在远程设备上运行相应的Node 客户端 App。