从对话到执行:OpenClaw 与 MCP 协议深度解析
在 AI Agent 的发展历程中,早期的架构(LLM + Memory + Planning + Tool + Action)解决了“如何思考”的问题。然而,如何让 Agent 在复杂的本地环境安全、标准、自主地“干活”,则是OpenClaw框架与MCP 协议共同解决的核心命题。
一、 OpenClaw:面向本地生产力的 Agent 超集
OpenClaw 不仅仅是一个 Agent 框架,它是一个闭环控制系统。相比传统 Agent,它在五个维度实现了工程化突破:
1. 闭环控制流(Control Loop)(感知输出、修复)
- 核心逻辑:传统 Agent 是
Plan -> Act(线性执行);OpenClaw 是Plan -> Act -> Observe -> Correct(循环修正)。 - 价值:引入了环境反馈机制。Agent 执行命令后会观测控制台输出或系统状态,若结果不符合预期,会自动重新规划,具备极强的自我修复能力。
2. 本地执行权与环境感知(获取本地文件)
- 原生能力:突破了云端沙盒限制,直接获得本地系统的读写、终端运行、浏览器控制及 GUI 操作权限。
- Grounding(对齐):它能“理解”本地文件目录结构、进程状态和屏幕像素,实现真正的“数字操作员”功能。
3. 透明且资产化的记忆系统(md)
- 存储方式:摒弃了纯黑盒的向量库,采用结构化 Markdown 文件存储会话、长期知识和操作经验。
- 可干预性:开发者或用户可以直接编辑记忆文件,修正 Agent 的错误认知,实现记忆的“冷热分离”与精准对齐。
4. 主动触发与分布式协作(主动调用)
- 从被动到主动:支持 Cron 定时、心跳检测和系统事件触发,让 Agent 能够 24 小时自主运行。
- 群落化:支持主从 Agent 架构,通过网关实现跨设备的能力共享与任务路由。
二、 MCP 协议:Agent 生态的“通用插座”
MCP (Model Context Protocol)是由 Anthropic 提出的开放标准,旨在解决 Agent 工具集成的碎片化问题。
1. 核心角色
- MCP Host (宿主):如 OpenClaw 或 IDE,作为发起请求的客户端。
- MCP Server (服务端):独立运行的程序,通过标准协议向 Host 暴露能力。
- 传输层:基于
stdio或HTTP/SSE,实现了跨语言的互操作性(如用 Java 写 Server,Python 写的 Host 也能调用)。
2. 三大核心资产(Resources/Tools/Prompts)
- Resources(资源):结构化的只读数据(如日志、数据库快照)。
- Tools(工具):可执行的函数(如发送邮件、执行 SQL、图像处理),具备严格的输入输出 Schema。
- Prompts(提示词模板):预定义的任务指南,确保 Agent 在特定场景下的行为一致性。
三、 Skills
在OpenClaw的语境下,可以简单理解为Skill ≈ Tool,但从工程架构上来说,Skill 是 Tool 的“高级封装版”。
如果把 Agent 比作一个工人:
- Tool (工具)是那把具体的“扳手”(一个单一的 API 或函数)。
- Skill (技能)则是“维修水管的能力”(一套标准、配置和工具的组合)。
以下是它们的具体区别:
1. 粒度不同
- Tool:通常指一个具体的原子化功能。例如:
read_file()或execute_sql()。 - Skill:是一个功能集合。一个 Skill 内部可能包含多个 Tools。例如一个“代码审查 Skill”可能包含
读取文件、对比差异、发送评论三个 Tool。
2. 定义标准不同 (MCP 协议视角)
在 OpenClaw 接入MCP (Model Context Protocol)后,这种区别更明显:
- Tool:只是 MCP Server 暴露出来的一个
JSON-RPC接口,定义了入参和出参。 - Skill:是一个完整的描述包。它通常包含:
- SKILL.md:用自然语言告诉 Agent 这个技能是什么、什么时候用。
- 配置信息:环境变量、API 密钥、依赖库。
- 多个 Tools/Resources:实际运行的代码逻辑。
3. 交互深度不同
- Tool:被动调用。LLM 发现需要用,就传参调一下。
- Skill:具备预设的 Prompt(提示词)。Skill 会自带一段“说明书”,告诉 LLM:“当你使用我这个技能时,请保持严谨的语气,并优先检查权限”。
对比
| 维度 | Tool (工具) | Skill (技能/OpenClaw 特色) |
|---|---|---|
| 本质 | 原子化的函数/API | 结构化的功能模块 |
| 组成 | 代码逻辑 + 参数定义 | 代码 +配置 + 说明文档 (SKILL.md) |
| 复用性 | 较低(硬编码多) | 极高(即插即用,热重载) |
| 协议支撑 | 普通 JSON 定义 | MCP 协议标准化 |
| 类比 | 乐高零件 | 乐高组件(如一个完整的轮子) |
总结
在 OpenClaw 里,你写的是Tool(逻辑实现),但你交付给 Agent 的是一个Skill(逻辑 + 描述 + 配置)。
所以,当你看到SKILL.md时,它其实是在向 Agent 介绍:这个 Skill 里面包含了哪些 Tools。
