用OpenClaw帮孩子成为真学霸—带你拆解AI Agent执行Skill+MCP的原理

0 阅读12分钟

你真的理解AI Skill吗?下载一个Skill,放进目录,AI就能用了,看起来很简单,对吧?

但当你真正动手时,却发现事情没那么简单:为什么同样的Skill在不同工具里表现各异?为什么有的能跑脚本、有的只能聊?网上到处是“渐进式披露”“与Prompt对比”“与MCP关系”的理论分析,读完依然一头雾水。

其实,大多数人都忽略了一个关键前提:Skill本身不能独立运行,它必须依附于一个AI Agent载体——比如OpenClaw、CodeBuddy、Hermes Agent、LangChain的Deep Agent等等。脱离这些载体,Skill只是一堆静态配置。

那么,Skill到底是什么形态?它如何被加载、检索、执行?它是怎么运行脚本、怎么调MCP?

本文选择OpenClaw作为载体,搭建一个智能错题本的应用案例,以拆解一个Skill的完整构成:描述与触发条件、Workflow处理步骤、MCP调用、脚本执行、SubAgent触发,让你直观理解:Skill ≈ Prompt + Workflow + MCP + Script。

紧接着,我们会深入OpenClaw架构与源码,还原Skill的运行时真相。无论你是技术选型还是自建系统,这篇文章都将给你一份可参考的实践地图。

一、案例业务背景

Image

1.1 痛点场景

对于中小学生家长而言,错题管理一直是学习辅导中的难题:

  • 📷 错题收集难:孩子做题出错后,拍照、整理、归类耗时耗力
  • 📅 复习规划难:不知道如何科学安排复习时间,经常是"想起来才看"
  • 📊 掌握度跟踪难:不清楚哪些知识点真正掌握了,哪些还在反复出错
  • ⏰ 主动提醒缺位:家长忙于工作,容易错过孩子的复习时间节点

1.2 智能错题本

为了解决上述痛点,我计划实现一个智能错题本,让AI 成为学生 全天候的"智能学习管家",学生能通过不断复习巩固错题来查漏补缺、提升成绩;家长能从繁琐的错题整理工作中解放出来,并能及时了解孩子的薄弱环节与进步情况,查看学习报告,监督复习进度。

系统面向两类角色:

角色说明主要功能
学生主要使用者上传试卷、答题复习、查看批改报告
家长监督辅助者查看学习报告、监督复习进度、接收周报

系统应包含以下核心功能:

  • 📷 试卷图片批改:上传试卷自动批改打分,记录错题

  • 📅 艾宾浩斯复习规划:根据掌握度自动安排复习

  • 📚 智能试卷生成推送:每日自动推送复习卷

  • 📊 学习效果分析:知识点掌握度可视化、错因分析

1.3 业务方案

现在人工智能浪潮如火如荼,各种各样的 AI 智能体纷纷涌现。如果我能够利用 AI 智能体实现这一方案,更能帮助我了解大模型、智能体、Skill、MCP 服务这些组件是如何协同工作的,它们的内部实现原理到底是怎样的。

为此,本方案采用多角色协作模式,将传统需要一个团队才能完成的学习辅导工作,拆解并分配给多个专职 AI Agent,通过聊天消息作为统一交互入口,实现端到端的自动化服务。

方案包含三大核心业务流程,具体流程如下:

方案采用多角色协作模式——将传统需要一个团队才能完成的学习辅导工作,拆解并分配给多个专职 AI Agent,每个 Agent 只负责一件事。角色分工如下:

AI Agent 角色角色分工
系统协调员流程编排与用户交互,不承担具体业务逻辑
学业评估师专注试卷批改,完成 OCR文字识别 + 评分 + 错误分析
复习规划师专注复习规划,基于艾宾浩斯算法安排复习节奏、生成试卷并推送

1.4 核心价值

基于大模型构建的智能错题本系统,通过 AI Agent + Skill + MCP 服务实现端到端自动化:

功能传统方式智能错题本
错题录入手动抄写/拍照存档📷 图片上传 → 一站式错题批改
批改评分家长逐题检查✍️ AI 自动批改(OCR + 切题 + 评分 + 分析)
复习规划凭感觉安排🧠 艾宾浩斯遗忘曲线自动生成
试卷推送手动出题📚 每日自动推送个性化复习卷
学习报告期末总结📈 实时知识点掌握度可视化

二、系统设计与实现

2.1 系统架构图

2.2 关键组件列表

组件职责位置/配置
OpenClaw Gateway消息处理、Skill 匹配、MCP 调用OpenClaw 智能体
wrong-question-notebook智能错题本主Skillwrong-question-notebook/SKILL.md
academic-evaluator学业评估师Skillacademic-evaluator/SKILL.md
review-planner复习规划师Skillreview-planner/SKILL.md
system-coordinator系统协调员Skillsystem-coordinator/SKILL.md
mcporterMCP 客户端工具OpenClaw 调用MCP CLI 工具
tencent-ocr-correction试题批改MCP服务tencent-ocr-correction-mcp/

2.3 目录结构

智能错题本采用多 Agent 协作架构,每个子代理有独立的 SKILL.md:

wrong-question-notebook/              # 智能错题本(主Skill)  
├── SKILL.md                          # 主 Skill 描述  
├── core/                             # 核心逻辑  
│   └── engine.py                     # 核心引擎  
├── subagents/                        # 子代理  
│   ├── academic-evaluator/  
│   │   ├── SKILL.md                  # 学业评估师  
│   │   └── references/  
│   │       └── mcp_reference.md      # MCP 调用参考文档  
│   ├── review-planner/  
│   │   └── SKILL.md                  # 复习规划师  
│   ├── system-coordinator/  
│   │   └── SKILL.md                  # 系统协调员  
└── cron/  
    └── review_cron.py                # 定时任务

2.4 主 Skill 示例形态

智能错题本 wrong-question-notebook/SKILL.md 如下:

# 智能错题本  
  
智能错题管理助手,通过对话完成错题录入、批改、复习规划。  
  
## 触发条件  
- 用户上传试卷/错题图片  
- 消息包含:录入错题、添加错题、今日复习、复习计划、查看错题、开始答题、学习报告、帮助  
  
## 架构  
  
### 子代理  
  
| 子代理 | 职责 |  
|--------|------|  
| **学业评估师** | 接收试卷图片,调用试题批改 MCP 服务,输出批改结果 |  
| **复习规划师** | 根据批改结果安排艾宾浩斯复习,生成试卷并推送 |  
| **系统协调员** | 流程编排、用户交互 |  
  
### 调用流程  
  
```  
用户上传图片  
    ↓  
学业评估师─调用─>tencent-ocr-correction MCP服务  
    │               │  
    │               └── 腾讯云API处理:  
    │                   • OCR 识别  
    │                   • 切题定位  
    │                   • 批改评分  
    │                   • 错误分析  
    │                   • 知识点识别  
    │  
    ↓  
输出:单题结果 + 批改报告  
    ↓  
复习规划师 ──设置──> 艾宾浩斯复习节点  
```  
  
### 外部服务依赖  
  
| MCP 服务 | 调用方式 | 说明 |  
|----------|----------|------|  
| `tencent-ocr-correction` | `mcporter call` | 试题批改MCP服务,学业评估师调用 |  
  
## 使用方式  
  
直接在对话中发送命令或上传图片即可。

2.5 学业评估师 Skill 示例形态

学业评估师是本案例中唯一调用 MCP 服务的子代理,它的目录结构如下:

academic-evaluator/  
├── SKILL.md                  # 学业评估师  
└── references/  
    └── mcp_reference.md      # MCP 调用参考文档

学业评估师 academic-evaluator/SKILL.md 如下:

# 学业评估师 (Academic Evaluator)  
  
## 技能概述  
  
本技能通过调用 **试题批改 MCP Server**,实现试卷图片的端到端批改处理(OCR + 切题 + 评分 + 分析)。  
  
| MCP Server | 职责  | 本技能使用的工具 |  
|------------|------|----------------|  
| **试题批改** (tencent-ocr-correction) | 试卷图片 OCR 识别、切题、批改、错误分析 | `correct_paper_sync` · `submit_paper_correction` · `get_correction_result` |  
  
**适用场景**- 用户上传试卷/错题图片  
- 复习卷答题图片批改  
- "帮我批改这张试卷"  
- "批改答题图片"  
  
---  
  
## 工作流程  
  
### Step 1:接收试卷图片  
  
从系统协调员获取试卷图片(URL 或 Base64)。  
  
### Step 2:调用试题批改 MCP  
  
```json  
{  
  "tool": "correct_paper_sync",  
  "arguments": {  
    "image_url": "<试卷图片URL>",  
    "question_config_map": {"KnowledgePoints": true, "TrueAnswer": true}  
  }  
}  
```  
  
### Step 3:处理批改结果  
  
- 将返回的批改结果转换为错题本标准格式  
- 映射错误类型(分析关键词 → 标准错误类型)  
- 输出两份数据:  
  -**单题结果列表** → 给复习规划师  
  -**批改报告** → 给用户  
  
> 详细的 MCP 调用参数和返回值说明见 `references/mcp_reference.md`。  
> **为什么分离?**  
> SKILL.md 会被注入到 LLM 的 System Prompt 中,过长会导致 token 浪费。  
> 将详细的调用参数文档放在 reference 中,LLM 只在需要时才读取,既节省 token 又保证完整性。

2.6 试题批改 MCP 服务

试题批改 MCP 服务是一个独立开发的 Python 项目,提供MCP服务接口,供学业评估师调用,它内部实现逻辑是调用腾讯云OCR接口,其源码结构如下:

tencent-ocr-correction-mcp/  
├── mcp_server.py           # MCP Server 主代码  
├── requirements.txt        # 依赖  
└── README.md               # 部署文档

它对外暴露三个 MCP 工具:

工具名说明使用场景
submit_paper_correction提交批改任务(异步)大试卷/需要并发处理
get_correction_result查询批改结果异步模式轮询
correct_paper_sync同步批改(一步到位)便捷调用,推荐使用

三、OpenClaw 的 Skill 发现和匹配机制

3.1 Skill 发现机制

OpenClaw 的Skill发现过程如下图所示:

Image

启动时扫描 skills/ 目录加载所有 SKILL.md,使用渐进式披露机制,解析每个Skill的元数据,提取name、description、location等信息,构建可用技能列表,注入 System Prompt。

3.2 LLM 自主决策匹配

OpenClaw 将 Skill 信息注入到 System Prompt 中,由 LLM 根据用户输入自主判断需要使用哪个Skill:

用户输入LLM 决策调用
"帮我批改这张试卷"匹配 上传试卷 触发条件✅ 激活 主Skill 
"上传错题图片"匹配 上传错题 触发条件✅ 激活 主Skill  
"你好"无匹配❌ 通用回复

"上传试卷图片" → LLM 匹配 wrong-question-notebook 触发条件 → 激活主 Skill → 调度学业评估师。

四、Skill 如何调用 MCP 服务

上一章介绍了 OpenClaw 如何发现和匹配 Skill。那么,Skill 内部又是如何调用外部 MCP 服务的呢?本章以学业评估师调用试题批改MCP服务为例,拆解完整链路。

4.1 OpenClaw MCP 全局配置

┌─────────────────────────────────────────────────────────────────┐  
│               试题批改 MCP 配置 (当前实际使用)                 │  
│                                                                 │  
│  1. ~/.openclaw/mcp-config.json (核心 MCP 配置)                  │  
│  2. ~/.openclaw/openclaw.json (Gateway 配置,含 Skills 入口)      │  
│  3. mcporter.json (MCP 客户端配置)                                │  
└─────────────────────────────────────────────────────────────────┘  
  
# 1. 核心 MCP 配置  
# 位置: ~/.openclaw/mcp-config.json  
{  
"mcp":{  
    "servers":[  
      {  
        "name":"tencent-ocr-correction",  
        "command":"python",  
        "args":["mcp_server.py","--mode","stdio"],  
        "cwd":"/root/.openclaw/workspace/tencent-ocr-correction-mcp",  
        "env":{  
          "TENCENT_SECRET_ID":"your_secret_id",  
          "TENCENT_SECRET_KEY":"your_secret_key"  
        }  
      }  
    ]  
}  
}  
  
# 2. OpenClaw Gateway 配置,含 Skills 入口  
# 位置: ~/.openclaw/openclaw.json  
{  
"skills":{  
    "entries":{  
      "mcporter":{  
        "enabled":true,  
        "env":{  
          "MCPORTER_CONFIG":"/root/.openclaw/workspace/node_modules/mcporter/config/mcporter.json"  
        }  
      },  
      "qveris-coding":{"enabled":true,"apiKey":"sk-..."},  
      "baidu-search":{"enabled":true,"apiKey":"bce-v3/..."}  
    }  
}  
}  
  
# 3. MCP 客户端 mcporter扩展配置  
# 位置: ~/.openclaw/workspace/node_modules/mcporter/config/mcporter.json  
{  
"mcpServers":{  
    "tencent-ocr-correction":{"url":"http://127.0.0.1:8000/mcp"}  
},  
"imports":["cursor","claude-code","claude-desktop","codex"]  
}

4.2 OpenClaw 获取 MCP 工具列表

通过以上全局配置,OpenClaw 在运行时会获取可用的 MCP 工具列表。OpenClaw 发现并加载 MCP 工具的核心源码如下:

// 源码位置: src/agents/pi-embedded-runner/run/attempt.ts  
  
// 1. 获取 MCP 运行时  
const bundleMcpSessionRuntime = awaitgetOrCreateSessionMcpRuntime({  
sessionId: params.sessionId,  
sessionKey: params.sessionKey,  
workspaceDir: effectiveWorkspace,  
cfg: params.config,  
});  
  
// 2. 将 MCP 工具物化为 Agent 可执行的工具  
const bundleMcpRuntime = awaitmaterializeBundleMcpToolsForRun({  
runtime: bundleMcpSessionRuntime,  
reservedToolNames: [...tools.map((tool) => tool.name)],  
});  
  
// 3. 合并到 Agent 的有效工具列表  
const effectiveTools = [  
  ...tools,                          // 内置工具  
  ...(bundleMcpRuntime?.tools ?? []), // MCP 工具  
];

4.3 学业评估师 Skill 调用 MCP 的完整流程

Image

总结与回顾

业务逻辑总结

传统学习方法中,错题管理是拉开差距的关键环节——但大多数孩子和家长做不到系统化的错题整理和科学复习。

这篇文章拆解的智能错题本,本质上构建了一套自动化的学霸养成系统:

  • 试卷 OCR + AI 批改:秒级完成错题识别、评分、错误分析,替代家长人工检查
  • 艾宾浩斯遗忘曲线:科学安排复习节奏,在最佳记忆节点推送复习题
  • 多 Agent 协作:学业评估师、复习规划师、系统协调员各司其职,就像一个全天候在线的学习团队
  • 端到端自动化:从拍照上传到生成学习报告,全程无需人工干预

而这些能力,全部由 OpenClaw Skill + MCP 两个核心机制驱动——这正是本文要带你拆解的底层原理。

技术原理回顾

回顾全文,我们可以清晰地看到 AI Agent、Skill 与 MCP 服务三者协同的底层原理:

组件本质作用
Skill能力描述文件(SKILL.md)定义 Agent 能做什么、何时触发、如何执行
MCP外部服务接口协议为 Skill 提供底层能力(OCR、搜索、数据库等)
Agent智能体本身加载 Skill、调度执行、管理上下文

调用链路:用户输入 → LLM 匹配 Skill 触发条件 → 激活对应 Skill → Skill 调用 MCP 工具 → 返回结果给 Agent → 输出给用户。

这种架构的核心优势在于职责分离:Skill 专注业务逻辑描述,MCP 专注外部服务接入,Agent 专注流程编排——三者松耦合,可独立演进。

理解了这个架构,你不仅掌握了错题本的实现方式,更获得了一套可复用的 AI Agent 应用开发范式。无论是教育、办公还是其他业务场景,Skill + MCP 的组合都能帮你快速构建出真正落地的 AI 应用。

在本案例基础上,下篇文章进一步剖析OpenClaw加载和运行Skill的核心代码实现,敬请关注。

上一篇我们介绍了在Code Buddy中的SKill实践案例,有兴趣同学请点击《用一个业务案例,摸透Code Buddy的Skill原理》,了解其运行机制和OpenClaw有什么相似和不同。


本系列说明:在本系列中我们将通过不同 AI Agent(如 Code Buddy、OpenClaw、OpenCode、Hermes Agent 等)作为载体,结合具体业务案例进行实战,以深入剖析 Skill 的实现机制和底层原理。

—End—

本文作者:ysdhb4245

本文原载:公众号“木昆子记录AI”