🦐 模块 2:创建一只能干活的虾(~40分钟)
2-1 理解 Agent 概念
⏱️ 预计时间:10分钟
OpenClaw Agent = 你的 AI 助手,我们亲切地叫它"虾"🦐。在深入动手之前,先理解 Agent 的技术架构。
Agent 核心组成
每个 Agent 由以下部分构成:
- SOUL.md(灵魂文件) — 定义 Agent 的身份、性格、职责和工作方式。这是 Agent 的"系统提示词",Agent 每次对话都会先读取它
- Workspace(工作空间) — Agent 的专属目录(~/.openclaw/workspace-<id>/),存放 SOUL.md、记忆文件、配置等
- Model(大语言模型) — Agent 背后的 LLM(如 GPT-5.4、Claude Opus 等),决定 Agent 的"智力水平"
- Tools(工具) — Agent 可以调用的能力接口,如搜索网页、读写文件、发消息、控制浏览器等
- Skills(技能包) — 预打包的高层知识模块,告诉 Agent"怎么做"某类任务
- Memory(记忆) — MEMORY.md + memory/*.md 文件,让 Agent 能记住过往对话和偏好
Gateway 架构
OpenClaw 的核心是 Gateway(网关),它是所有 Agent 的运行时:
- 消息路由 — Gateway 接收来自 QQ、微信、Discord 等渠道的消息,根据 binding 配置路由到对应的 Agent
- Session 管理 — 每个对话是一个 Session,Gateway 管理 Session 的生命周期、上下文窗口、历史记录
- Tool 调度 — Agent 需要调用工具时,Gateway 负责执行并返回结果(如运行 shell 命令、搜索网页、发消息等)
- 多 Agent 协作 — 通过 sessions_spawn,一个 Agent 可以创建子 Agent 会话,实现任务分发和并行处理
Tools vs Skills
Tools 和 Skills 是 Agent 能力的两层:
- Tools(底层原语) — exec、read/write/edit、web_search、web_fetch、browser、message、cron 等。Agent 自动调用,你不需要手动触发
- Skills(高层知识) — 预打包的 SKILL.md 文件,包含特定任务的指导。Agent 匹配任务后自动加载对应 Skill
ℹ️
提示
Tools 给 Agent "能力",Skills 给 Agent "知识"。比如 web_search 是工具(能搜索),而 github Skill 是知识(告诉 Agent 如何用 gh CLI 操作 GitHub)。
Tool 可用性控制
Agent 默认可以使用所有内置工具。你可以通过配置精确控制:
- tools.allow / tools.deny — 全局或 per-agent 的工具白名单/黑名单
- tools.profile — 预设工具集(minimal / coding / messaging / full)
- Tool Groups — 分组快捷控制,如 group:web(web_search + web_fetch)、group:fs(read/write/edit)等
Binding 机制(消息路由)
一个 Agent 通过 binding 绑定到特定的消息渠道:
text
消息渠道(QQ/微信/Discord)
↓ 消息到达
Gateway 消息路由
↓ 匹配 binding 规则
Agent Session
↓ 读取 SOUL.md + 加载 Skills
LLM(GPT-5.4/Claude 等)
↓ 决定调用哪些 Tools
Tool 执行(搜索/文件/浏览器...)
↓ 返回结果
Agent 组织回复
↓
消息渠道(回复用户)ℹ️
提示
一个 Agent 可以绑定多个频道,一个频道也可以绑定多个 Agent(按优先级匹配)。未绑定的 Agent 只能在 Control UI 的 webchat 中使用。
Sub-Agent 协作机制
多 Agent 协作是 OpenClaw 的核心能力:
- sessions_spawn — 父 Agent 创建子 Agent 会话,分发子任务
- subagents.allowAgents — 控制一个 Agent 能调用哪些其他 Agent
- one-shot(run 模式) — 子 Agent 完成任务后自动结束
- persistent(session 模式) — 子 Agent 持续运行,绑定到聊天线程
✅
成功
理解了这些概念,你就能设计出强大的多 Agent 协作系统。接下来我们动手创建第一只虾!