主题
Agent 与 MCP
前两篇讲的是"和 AI 对话"。2025 年以来最重要的变化是:AI 开始替你操作真实的软件——读写文件、执行命令、发请求、订机票。这一篇讲清楚背后的两个关键词:Agent 和 MCP。
1. Agent:从"动嘴"到"动手"
Agent(智能体) 是指能自主调用工具、分多步完成任务的 AI 系统。它和普通聊天的区别在于一个循环:
text
接收目标 → 思考下一步 → 调用工具 → 观察结果 → 继续思考 → …… → 完成任务举例:你让 Claude Code"修复这个报错的测试"。
- 它读测试文件(工具:读文件);
- 运行测试看到报错(工具:执行命令);
- 定位并修改源码(工具:写文件);
- 再跑一次测试确认通过。
整个过程你可能只需要确认几次,其余它自己完成。模型提供"思考",工具提供"手脚"——两者合起来才是 Agent。
1.1 工具调用是怎么实现的
本质仍然是《大语言模型是什么》里讲的"预测下一个 token",只是训练时模型学会了输出一种特殊格式,表示"我需要调用某个工具":
json
{ "tool": "read_file", "arguments": { "path": "test/user.test.ts" } }Agent 框架(Claude Code、Codex CLI、Cursor 等)解析这条指令,真正去执行,把结果塞回上下文,再让模型继续。所以工具调用的可靠性,依然受模型能力和上下文窗口限制——Agent 不是魔法,只是被赋予了手脚的模型。
2. MCP:工具的"USB 接口"
工具从哪来?早期每个 AI 应用都自己写一套工具集成,重复劳动且互不通用。MCP(Model Context Protocol,模型上下文协议) 由 Anthropic 在 2024 年底提出,目标是把这件事标准化。
一个类比:MCP 之于 AI 工具,就像 USB 之于外设。以前每个设备一个专用接口,现在统一插口——任何应用(Claude Code、Cursor、CC Switch……)都能连接任何 MCP 服务器提供的工具。2025 年 12 月起,Anthropic 已把 MCP 捐入 Linux 基金会旗下新成立的 Agentic AI Foundation,协议由中立基金会开放治理(截至 2026-09 核对)。
2.1 三个角色
| 角色 | 是什么 | 例子 |
|---|---|---|
| MCP 主机 | 使用工具的 AI 应用 | Claude Code、Cursor |
| MCP 服务器 | 提供工具的进程 | GitHub 服务器(提 PR、查 Issue)、文件系统服务器、数据库服务器 |
| 工具 | 服务器暴露的具体能力 | create_pull_request、query_database |
2.2 对你的实际意义
- 能力即插即用:给客户端加一个 MCP 服务器的配置,它立刻多出一组技能(例如连接你的内部文档库)。
- 生态复用:别人写好的 MCP 服务器你可以直接用,不必为每个 AI 应用重复配置。
- 安全边界更清晰:哪些工具、访问哪些资源,可以按服务器粒度控制。
截至 2026 年 9 月,Claude Code、Codex、Cursor、Copilot、Gemini CLI、VS Code、ChatGPT 等主流客户端都已支持 MCP。在 Claude Code 里实际添加 MCP 服务器的操作步骤,见《Claude Code 进阶玩法》第 4 节;想按真实任务自己写一个,见《实战:把一个查询能力做成 MCP Server》。
3. Agent 时代的使用心法
- 目标写得越清楚,Agent 走得越直。第三篇里讲的提示词方法在 Agent 场景同样适用,而且更关键——它要自主走很多步,起点偏一点,终点偏很多。
- 给检查点。大任务让它在关键节点停下来汇报("先列出你打算改的文件,等我确认"),比事后回滚便宜得多。
- 验收仍然是你。Agent 会执行、会汇报"完成",但正确性的最终判断在你。它跑通了测试,不代表产品逻辑对了。
- 工具越多不等于越好。挂太多无关工具会稀释模型的注意力,按需挂载。
4. 从使用者走向构建者
如果你只想使用现成工具,接下来去《AI 编程工具怎么选》选定客户端,再用《第一个 AI 编程项目》走完交付闭环。
如果你要开发自己的 AI 产品,进入两个深入专题:
入门阶段记住“模型 + 工具 + 循环”即可;工程阶段要继续追问:状态存在哪里、动作由谁授权、失败如何恢复、结果如何独立验收。
5. Agent 的常见失败模式
用得多了会遇到反复出现的失败模式,提前认识它们能省下大量排错时间:
| 失败模式 | 典型表现 | 第一个动作 |
|---|---|---|
| 目标太模糊,越走越偏 | 改了一堆文件但不是你想要的 | 停下重发目标:只改哪些文件 + 跑什么命令算通过,见《第一个 AI 编程项目》 |
| 上下文被塞满 | 长会话后期开始"忘事"、重复劳动 | /compact 压缩或开新会话,把已确认的结论带过去,见《上下文管理实战》 |
| 权限开太大 | 一路自动执行,改坏了没有回滚点 | 改用"先出计划再动手":让它先列要改的文件和命令,等你确认 |
| 工具挂太多 | 模型选错工具、参数填错 | 把本轮用不到的 MCP 服务器从 .mcp.json 里暂时移除或禁用,重启会话 |
| 谎报完成 | 说"测试已通过"但实际没跑 | 要求贴出命令的原始输出,并自己重跑一遍关键命令 |
一条通用原则:Agent 的可靠程度 = 模型能力 × 任务清晰度 × 权限设计的最小值。三者里任何一项是零,结果就是零。这也是《Agent 工程》专题反复出现的主题——把"希望它做对"变成"设计成不容易做错"。
6. 十分钟试练:亲眼看见一次工具调用
读十遍不如看一遍。装好 Claude Code 后,用十分钟做下面这个小实验,你会亲眼看到"思考 → 调用工具 → 观察结果"的循环:
- 建一个实验目录,随手放三个内容、长短都不同的文本文件;
- 在该目录启动 Claude Code,输入:
text
统计当前目录下每个 .txt 文件的行数,用表格汇报。
先列出你打算执行的命令,等我确认再运行。观察三件事:
- 它先输出计划而不是直接动手——这是你加的检查点;
- 确认后它调用执行命令的工具,界面上能看到具体命令和返回结果;
- 汇报前它可能又读了一次文件核对——这就是"观察结果"环节。
最后做一个权限测试:让它"把这个目录里所有文件内容清空"。观察它是否先警告、要求确认,而不是直接执行——这就是第 5 节"权限开太大"一行里,闸门该起作用的样子(所以实验只用可丢弃的测试文件)。
验收:你能指出过程中哪几步是工具调用、哪几步是模型在思考;能说出这次会话它用了哪几种工具。
想看"即插即用"的第二层,按《Claude Code 进阶玩法》第 4 节加一个 MCP 服务器(文件系统或 GitHub 都行),重启会话后观察工具列表多出了什么。