⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 苏三说技术 「苏三」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

前言

昨天,一个刚入行的小伙伴在群里问我:苏三哥,我看了两天OpenClaw的资料,什么Skills、MCP、RAG、Agent,这些词看得我头都大了。

它们到底啥关系?

OpenClaw又是干啥的?”

我回了他一句:“你见过小龙虾吗?OpenClaw就是那只‘龙虾’,其他都是它的‘钳子’、‘脑子’和‘食谱’。”

最近OpenClaw在GitHub上狂揽近30万星标,成为2026年开年最火的开源项目。但很多小伙伴和我那位同事一样,被一堆新概念绕晕了。

今天,我准备用一张图、一个故事,把这几个概念彻底讲清楚。

希望对你会有所帮助。

01 一个故事讲清所有概念

在讲技术之前,我先讲个故事。

假设你是一个古代的皇帝(用户),你有一个军师(AI模型),军师很聪明,但他不能离开军师府(云端),也不知道外面发生了什么。

你想知道边疆的战况(实时信息),军师说:“我不知道,我没去过边疆。”——这就是知识截止问题。

你让人把边疆的地图、情报都搬进军师府,军师看了之后告诉你战况。——这就是RAG(检索增强生成)。

你觉得不够,想让军师直接指挥边疆的士兵。你说:“让张三将军出兵!”军师说:“我不认识张三,也不知道怎么调兵。”——这就是行动能力缺失问题。

你告诉军师:“你要调兵,就写一道圣旨,格式是:‘调兵:将军=张三,数量=1000’。”然后你安排一个传令官,拿着圣旨去调兵。——这就是Function Calling(函数调用)。

后来,你需要调兵、调粮草、调民夫,每个都有自己的格式和流程。你给每个将军都配了一个传令官,还定了一套规矩:传令官用什么格式,在哪等命令。——这就是MCP(模型上下文协议)。

但你发现,军师虽然会调兵,但不知道什么时候该调、调多少、和谁配合。于是你给军师配了一本《用兵手册》,里面写着:遇到敌军攻城,先调兵,再调粮草,最后调民夫。——这就是Skills(技能)。

最后,这个军师既能思考(模型),又有记忆(Memory),还能查资料(RAG),还能动手做事(MCP),还能按流程办事(Skills)。他就是一个完整的Agent(智能体)。

而OpenClaw,就是一个把所有这些能力打包、开源、能跑在你电脑上的“皇帝身边的传令中枢”——你只需要在微信上给它发句话,它就能调兵遣将、管理文件、操作电脑。

02 概念全景图:一张图看懂所有关系

这张图清晰地展示了各层之间的关系。

下面我们一层一层拆解。

03 第一层:核心大脑——Agent

Agent(智能体) 是一个能够感知环境、做出决策并执行动作的自主系统。

OpenClaw的核心架构中,Agent采用经典的“观察-计划-行动”(Observe-Plan-Act)循环范式。当用户发来消息:

  1. 观察:理解用户意图,查看当前状态
  2. 计划:拆解任务,决定需要调用哪些工具
  3. 行动:执行具体操作,获取结果
  4. 循环:直到任务完成

在OpenClaw中,每个Agent都有自己的工作区(workspace),包含一系列配置文件:

AGENTS.md   # Agent职责声明,决定工具权限
SOUL.md # 个性化提示词,注入system prompt
TOOLS.md # 工具白名单/黑名单,安全边界
IDENTITY.md # 身份标识,用于不同聊天渠道展示
USER.md # 用户偏好,上下文先验
MEMORY.md # 用户记忆文档(RAG源)

这种设计让Agent不再是黑盒,而是完全可配置、可审计的。

04 第二层:记忆层——Memory系统

Memory(记忆) 是让AI具备持久化记忆能力的机制。

大模型的推理服务本身是无状态的HTTP服务,每次请求处理完成后不会保留任何数据。OpenClaw通过分层记忆机制解决这个问题:

  • 短期记忆:原封不动地保留最近几轮的对话原文
  • 长期记忆:后台触发小模型压缩历史对话成摘要,提取“实体特征”(如“用户是上海的程序员”)存入数据库

OpenClaw的记忆系统非常独特——它完全基于SQLite构建。源码分析显示,它采用“向量+关键词”混合检索策略:

// OpenClaw记忆检索的核心逻辑(伪代码)
asyncfunctionsearchMemory(queryVector, limit = 5) {
try {
// 1. 快速路径:使用sqlite-vec扩展进行原生向量检索
returnawait db.all(`
SELECT c.text, vec_distance_cosine(v.embedding, ?) AS dist
FROM chunks_vec v
JOIN chunks c ON c.id = v.id
ORDER BY dist ASC LIMIT ?
`, [queryVector, limit]);
} catch (err) {
// 2. 安全路径:扩展不可用,退回到JS计算
const allChunks = await db.all("SELECT text, embedding FROM chunks");
return allChunks
.map(chunk => ({
...chunk,
dist: cosineSimilarity(queryVector, JSON.parse(chunk.embedding))
}))
.sort((a, b) => a.dist - b.dist)
.slice(0, limit);
}
}

这种设计的精妙之处在于:优先使用原生扩展追求性能,扩展不可用时优雅降级,保证功能始终可用。

05 第三层:知识层——RAG是什么?

RAG(检索增强生成) 解决的是大模型知识“冻结”的问题——模型训练完成后就无法更新,不知道实时新闻和企业内部文档。

RAG的核心流程是“先查资料,再作答”:

  1. 用户提问
  2. 系统在知识库中检索相关内容
  3. 将检索结果和原始问题一起发给模型
  4. 模型基于这些资料生成答案

在OpenClaw中,RAG的实现同样基于SQLite。它可以将你的本地Markdown文件、文档库向量化后存入本地向量库,每次提问时先检索相关片段,再让模型回答。

06 第四层:工具层——Function Call和MCP

Function Call:让AI能“动手”

Function Call(函数调用) 是大模型的一项核心能力。开发者告诉模型“你有这些工具可以用”,模型在需要时输出结构化的调用请求,由开发者执行真实的函数。

// Function Call的典型流程
// 用户问:“北京天气怎么样?”
// 模型输出:
{
"function": "get_weather",
"parameters": {"city": "北京"}
}
// 开发者调用真实API,获取天气数据
// 模型基于数据生成最终回答:“北京当前25℃,晴”

MCP:标准化的工具调用协议

MCP(Model Context Protocol) 是Anthropic提出的标准化协议,统一了工具调用的接口规范。它让开发者按照统一标准写工具,让模型按照统一格式调用,实现工具复用。

但OpenClaw有个有趣的设计选择:它故意不支持MCP。为什么?

根据官方解释,主要原因有三:

  1. 安全与隐私:MCP涉及多模型协作,数据共享可能带来泄露风险
  2. 技术灵活性:不想被固定协议束缚,保持快速迭代能力
  3. 资源优化:减少依赖,降低系统复杂度,提供更快的响应时间

OpenClaw采用更轻量的Skills机制替代MCP,后面会详细讲。

07 第五层:流程层——Skills是什么?

Skills(技能) 是OpenClaw最核心的创新。如果说MCP是“单个工具”,Skills就是“封装好的完整流程”。

Skills要解决的是这个问题:有了工具,模型不知道“何时用、按什么顺序用、如何组合工具”。就像一个人有了锤子、锯子、钉子,但不知道怎么做一把椅子——他需要的是《木工手册》。

在OpenClaw中,Skills就是这套“操作手册”:

  • memory:记忆能力,保存用户偏好和历史信息
  • web_search:互联网搜索,获取实时信息
  • browser:网页浏览,打开网页提取内容
  • file:文件操作,创建、读取、修改文件

安装Skills非常简单:

clawhub install memory   # 安装记忆技能
clawhub install browser # 安装浏览器控制技能

OpenClaw官方ClawHub技能注册中心拥有超千款技能插件,覆盖办公自动化、代码管理、数据处理等多个领域。

08 OpenClaw:集大成者的智能体平台

现在,我们把所有概念串起来,看看OpenClaw到底是怎么运作的。

OpenClaw是什么?

OpenClaw(原名Clawdbot/Moltbot)是由奥地利开发者Peter Steinberger(PSPDFKit创始人)于2025年11月发布的开源AI Agent框架,2026年初完成更名,采用MIT开源协议。目前GitHub星标已超29万,社区贡献者超过1000人。

一句话概括:一个坐在你消息应用和工具链之间的Agent运行时+网关,24/7永远在线。

OpenClaw的四层架构:

层级 组件 作用
控制网关层 Gateway 管理所有入站出站通讯,统一处理Telegram、飞书、钉钉等22+平台消息
推理与认知层 Reasoning Layer 接入大模型,执行“观察-计划-行动”循环
记忆与状态层 Memory System SQLite存储的持久化记忆系统
技能与执行层 Skills & Execution 调用Skills执行具体操作

一个完整的执行流程:

  1. 用户在微信发消息:“帮我整理桌面文件”
  2. 网关层收到消息,转给Agent
  3. Agent分析任务,调用file技能
  4. 技能执行文件操作,返回结果
  5. 记忆层记录这次操作,供后续参考
  6. Agent生成回复:“已整理,将图片移至Pictures文件夹”

09 选择OpenClaw,还是Dify?

理解了这些概念后,最后一个问题:企业在什么场景下选择OpenClaw?

根据行业实践,核心区别在于:

维度 OpenClaw Dify/Workflow
设计理念 Agent分支:相信LLM能自主编排 ChatBot分支:严格控制上下文
流程控制 自主规划,动态决策 固定画布,静态编排
适用场景 高自由度、无法预定义流程的任务 标准流程、需要严格审阅的任务
典型应用 系统运维、文件管理、浏览器自动化 客服流程、审批流程、合规要求

简单说:需要AI自己想办法的,用OpenClaw;需要AI按标准流程走的,用Dify。

两者也可结合:把编排好的Workflow封装成Skills,让OpenClaw按编排好的流程作业。

10 安全提醒:别让你的龙虾失控

最后,一个重要的提醒。

OpenClaw拥有执行shell命令、操作文件系统的能力,这意味着它拥有和你一样的电脑权限。

几个必须遵守的安全准则:

  1. 不要在主用电脑上“裸奔”运行:建议用旧电脑、虚拟机或新建系统账号测试
  2. API Key不要泄露:不要提交到git,不要截图
  3. 长期运行建议用Docker/VPS:实现权限隔离
  4. 永远不要把它当“文件传输助手”:时刻假设数据可能泄露

总结

回到最初的问题:OpenClaw跟Skills、MCP、RAG和Agent有什么关系?

  • Agent是整体概念,OpenClaw是Agent的具体实现
  • RAG是给Agent提供外部知识的方法
  • Memory是让Agent记住历史的方法
  • MCP是标准化工具调用的协议(OpenClaw选择不用)
  • Skills是OpenClaw独创的、封装了执行流程的能力模块
  • OpenClaw是一个把以上所有能力整合在一起、开源免费、能跑在你电脑上的智能体平台

有些小伙伴可能会问:“我该从哪开始学?”我的建议是:先理解Agent是什么,然后动手部署一次OpenClaw。跟着阿里云的教程,15分钟就能跑起来。

开源地址:

文章目录
  1. 1. 前言
  2. 2. 01 一个故事讲清所有概念
  3. 3. 02 概念全景图:一张图看懂所有关系
  4. 4. 03 第一层:核心大脑——Agent
  5. 5. 04 第二层:记忆层——Memory系统
  6. 6. 05 第三层:知识层——RAG是什么?
  7. 7. 06 第四层:工具层——Function Call和MCP
    1. 7.0.1. Function Call:让AI能“动手”
    2. 7.0.2. MCP:标准化的工具调用协议
  • 8. 07 第五层:流程层——Skills是什么?
  • 9. 08 OpenClaw:集大成者的智能体平台
  • 10. 09 选择OpenClaw,还是Dify?
  • 11. 10 安全提醒:别让你的龙虾失控
  • 12. 总结