摘要:当 AI 从"问答工具"进化为"自主代理",开发者需要掌握哪些新范式?本文深度解析 Agent Skills、MCP(Model Context Protocol)与 Prompt Engineering 的核心差异、适用场景与实战案例,带你构建真正能干活儿的智能体。
2024 年,很多开发者还在用这样的方式调用大模型:
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "帮我写个 Python 脚本"}]
)
问题在于:每次对话都是"失忆"的。模型不知道你的项目结构、没有文件访问权限、无法执行代码。用户不得不反复粘贴上下文,AI 输出的代码可能根本跑不起来。
这就是传统 Prompt 模式的天花板——它把 AI 当成一个"聪明的实习生",每次布置任务都要重新介绍背景。
而 Agent(智能体)范式 的核心突破在于:让 AI 拥有"手脚"和"记忆"。
二、三种范式的本质区别
2.1 Prompt Engineering:对话的艺术
定义:通过精心设计的提示词,引导模型输出符合预期的内容。
核心能力:
-
• 角色扮演("你是一位资深 Python 工程师") -
• 思维链("请逐步推理") -
• 示例学习(Few-shot Learning)
适用场景:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
局限:
-
• ❌ 无法访问外部系统(文件、数据库、API) -
• ❌ 没有持久记忆(每次对话从零开始) -
• ❌ 无法执行动作(只能"说",不能"做")
案例:用 Prompt 让 AI 写一个爬虫
你是一位 Python 专家。请写一个爬取知乎热榜的脚本,
要求:1) 使用 requests 库 2) 解析 HTML 3) 保存为 CSV
输出:一段代码。但可能缺少异常处理、没有考虑反爬、无法直接运行。
2.2 Agent Skills:给 AI 装上"工具箱"
定义:为智能体预定义可执行的功能模块,AI 可以自主决定何时调用哪个技能。
核心突破:
-
• ✅ 工具调用:AI 可以执行搜索、读写文件、调用 API -
• ✅ 状态保持:会话期间记住上下文和中间结果 -
• ✅ 自主决策:根据任务拆解,选择调用哪些技能
OpenClaw Agent Skills 架构:
┌─────────────────────────────────────────┐
│ 用户消息 │
│ "帮我分析这个项目的代码结构" │
└─────────────────┬───────────────────────┘
│
┌─────────────────▼───────────────────────┐
│ Agent 路由层 │
│ - 理解意图 │
│ - 规划任务步骤 │
│ - 选择技能 │
└─────────────────┬───────────────────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌───▼───┐ ┌────▼────┐ ┌───▼───┐
│文件读取│ │代码分析 │ │ 生成 │
│ 技能 │ │ 技能 │ │ 报告 │
└───┬───┘ └────┬────┘ └───┬───┘
│ │ │
└─────────────┼─────────────┘
│
┌─────────────────▼───────────────────────┐
│ 最终响应 │
│ "项目共 128 个文件,核心模块在 src/..." │
└─────────────────────────────────────────┘
适用场景:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
实战案例:OpenClaw 的 feishu-bitable 技能
用户说:"把上周的会议纪要整理成多维表格"
Agent 自主执行:
-
1. 调用 feishu_im_user_search_messages搜索上周消息 -
2. 调用 feishu_bitable_app_table_record创建表格记录 -
3. 调用 feishu_task_task为每个待办创建任务
关键代码结构(SKILL.md 定义):
## feishu-bitable
**当以下情况时使用此 Skill**:
(1) 需要创建或管理飞书多维表格 App
(2) 需要在多维表格中新增、查询、修改、删除记录
(3) 需要批量导入数据或批量更新多维表格
Agent 根据这个描述,自主判断何时调用该技能,无需用户显式指定。
2.3 MCP(Model Context Protocol):AI 的"通用接口"
定义:Anthropic 提出的开放协议,标准化 AI 与外部数据源/工具的连接方式。
为什么需要 MCP?
在 MCP 之前,每个 AI 应用都要自己实现:
-
• 文件读取 → 自己写文件系统 API -
• 数据库查询 → 自己实现 SQL 连接 -
• Git 操作 → 自己封装 Git 命令
MCP 的统一抽象:
┌──────────────┐ MCP Protocol ┌──────────────┐
│ AI 模型 │ ◄──────────────────► │ MCP Server │
│ (Claude 等) │ │ (文件系统) │
└──────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ 实际资源 │
│ (磁盘文件) │
└──────────────┘
MCP 的三种资源类型:
-
1. Prompts:预定义的提示词模板 {
"name": "code-review",
"arguments": ["file_path", "language"],
"template": "请审查 {file_path} 的 {language} 代码..."
} -
2. Resources:可读的数据源 {
"uri": "file:///project/src/main.py",
"mimeType": "text/x-python",
"description": "项目主入口文件"
} -
3. Tools:可执行的操作 {
"name": "execute_command",
"inputSchema": {"command": {"type": "string"}},
"description": "在终端执行命令"
}
适用场景:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
实战案例:用 MCP 连接本地数据库
// mcp-config.json
{
"servers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
}
}
}
}
AI 可以自然地说:"查询上个月订单总额",MCP Server 自动转换为 SQL 并返回结果。
三、三种技术的选型决策树
┌─────────────────┐
│ 用户需求是什么? │
└────────┬────────┘
│
┌──────────────┼──────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 只需生成 │ │ 需要执行 │ │ 需要连接 │
│ 文本内容 │ │ 具体动作 │ │ 外部系统 │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Prompt │ │ Agent │ │ MCP │
│ │ │ Skills │ │ │
└──────────┘ └──────────┘ └──────────┘
快速决策表:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
四、综合实战:构建一个"技术博主助手"
场景描述
你是一位技术博主,需要:
-
1. 监控 GitHub Trending 获取灵感 -
2. 搜索最新技术文档 -
3. 生成文章草稿 -
4. 配图并发布到微信公众号
方案对比
纯 Prompt 方案:
你是一个技术博主。请根据今天的 GitHub Trending 写一篇关于 Rust 异步编程的文章,
要求 3000 字,包含代码示例。然后帮我生成一个封面图,最后发布到微信公众号。
结果:AI 会告诉你它做不到——无法访问实时数据、无法调用 API、无法发布。
Agent Skills 方案(基于 OpenClaw):
任务:技术文章全流程自动化
技能组合:
- web_search: 搜索 GitHub Trending
- web_fetch: 抓取技术文档
- baoyu-image-gen: 生成封面图
- baoyu-post-to-wechat: 发布到公众号
执行流程:
1. 搜索 "GitHub Trending Rust"
2. 抓取 top3 项目的 README
3. 分析技术亮点,生成大纲
4. 撰写正文(3000 字)
5. 生成封面图(Rust 主题)
6. 调用微信 API 发布
实际执行日志:
[Agent] 收到任务:写一篇 Rust 异步编程文章
[Agent] 规划步骤:搜索 → 抓取 → 分析 → 写作 → 配图 → 发布
[Step 1] 调用 web_search
Query: "GitHub Trending Rust async"
结果:tokio、async-std、embassy 进入趋势榜
[Step 2] 调用 web_fetch
URL: https://github.com/tokio-rs/tokio
提取:README 中的核心特性、使用示例
[Step 3] 撰写文章
标题:《2026 Rust 异步编程:tokio 1.40 新特性深度解析》
字数:3247 字
结构:引言 → 核心概念 → 实战案例 → 性能对比 → 总结
[Step 4] 调用 baoyu-image-gen
Prompt: "Rust 编程语言封面图,螃蟹 logo,赛博朋克风格"
输出:cover-20260317.png
[Step 5] 调用 baoyu-post-to-wechat
状态:发布成功
链接:https://mp.weixin.qq.com/s/xxxxx
代码实现(OpenClaw 配置)
// ~/.openclaw/config.json
{
"agents": {
"tech-writer": {
"skills": [
"web_search",
"web_fetch",
"baoyu-image-gen",
"baoyu-post-to-wechat"
],
"model": "qwen3.5-plus",
"workspace": "~/blog-drafts"
}
},
"channels": {
"wechat": {
"apiToken": "your-wechat-api-token",
"autoPublish": false // 发布前需人工确认
}
}
}
触发方式(微信消息):
你:写一篇关于 Rust 异步编程的文章
Agent: 收到!正在搜索最新资料...
(3 分钟后)
Agent: 文章已完成,共 3247 字,封面图已生成。
是否现在发布到公众号?[确认] [取消]
五、避坑指南:常见误区与解决方案
误区 1:过度依赖 Prompt,忽视工具建设
症状:
-
• 每次都要在 Prompt 里粘贴大量上下文 -
• AI 经常"幻觉"出不存在的 API -
• 复杂任务需要反复纠正
解决:将高频操作封装为 Agent Skills
// 错误做法
Prompt: "请读取 /project/src/main.py 文件,分析代码结构..."
// 正确做法
Skill: file-read
描述:读取指定路径的文件内容
参数:path (string)
Agent 自主调用:file-read("/project/src/main.py")
误区 2:技能粒度过细,Agent 调度开销大
症状:
-
• 一个简单任务调用几十次技能 -
• 响应速度慢(>30 秒) -
• Token 消耗巨大
解决:合并高频技能,增加批量操作
// 过细的技能
- feishu-bitable-create-app
- feishu-bitable-create-table
- feishu-bitable-create-field
- feishu-bitable-create-record
// 推荐的粒度
- feishu-bitable(支持批量创建表、字段、记录)
误区 3:MCP 配置复杂,忽视安全边界
症状:
-
• MCP Server 暴露了不该访问的文件 -
• AI 可以执行任意系统命令 -
• 生产环境出现数据泄露
解决:最小权限原则 + 审计日志
// mcp-config.json
{
"servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem"],
"env": {
"ALLOWED_PATHS": "/project,/docs" // 限制访问范围
}
}
}
}
六、未来展望:Agent 的下一个演进方向
6.1 多 Agent 协作
单个 Agent 能力有限,但多个 Agent 可以分工:
┌─────────────┐
│ 用户请求 │
└──────┬──────┘
│
┌──────▼──────┐
│ Planner │ ← 任务拆解
└──────┬──────┘
│
┌────┴────┬──────────┐
│ │ │
┌─▼─┐ ┌──▼──┐ ┌──▼──┐
│研究│ │ 写作 │ │ 审核 │
│Agent│ │Agent│ │Agent│
└───┘ └─────┘ └─────┘
OpenClaw 已支持多 Agent 路由,可为不同任务分配不同 Agent。
6.2 长期记忆与个性化
当前 Agent 的记忆局限于单次会话。未来方向:
-
• 向量数据库:存储历史对话、用户偏好 -
• 个性化技能:根据用户习惯自动调整 -
• 跨会话学习:从错误中持续改进
6.3 端侧 Agent
随着模型小型化,Agent 将运行在本地设备:
-
• 手机上的个人助理(访问相册、日历、位置) -
• 浏览器扩展(自动填写表单、比价、总结网页) -
• IDE 插件(实时代码审查、自动重构)
七、总结
|
|
|
|
|
|---|---|---|---|
| 核心能力 |
|
|
|
| 学习成本 |
|
|
|
| 灵活性 |
|
|
|
| 可扩展性 |
|
|
|
| 适用阶段 |
|
|
|
最佳实践:
-
1. 从 Prompt 开始:快速验证想法 -
2. 用 Agent Skills 固化:将高频操作封装为技能 -
3. 用 MCP 扩展边界:连接私有数据和内部系统 -
4. 保持人工审核:关键操作(发布、删除、支付)需确认


