AI 学习资料 · 提示词互动指南·智能体篇
工具、MCP 与连接器
假设你让智能体找出项目里还没解决的 bug,再起草一张后续工单。要做到这一点,光有好的指令还不够:它得能访问工单系统,读到正确的数据,可能还要在那里新建内容。
这时就需要工具、连接器和 MCP。三者彼此相关,但指的是整套配置里的不同部分。
工具、API、连接器和 MCP
| 术语 | 含义 | 以工单系统为例 |
|---|---|---|
| 工具 | 智能体可以使用的具体操作 | 搜索工单或新建工单 |
| API | 软件与另一个系统通信所用的接口 | 工单系统中用于读写工单的接口端点 |
| 连接器 | 把 AI 应用连接到某个服务或数据源的集成功能 | 工单系统的集成,包括账户连接和它支持的操作 |
| MCP | 用来交换上下文、向 AI 应用提供能力的协议 | 发现并调用工单系统工具的通用方式 |
工具也可以在本地运行。计算器不需要连接任何账户,读取文件的工具也可能完全在你的电脑上运行。外部服务只是工具的来源之一。
工具实际包含什么
工具通常包括名称、描述、输入模式(schema),以及真正干活的实现代码。描述帮助模型判断什么时候该用它,输入模式说明它接受哪些参数。
下面是一个虚构的 MCP 工具定义:
{
"name": "search_issues",
"description": "搜索已连接项目中的工单。此工具只读取数据。",
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string" },
"limit": { "type": "integer", "minimum": 1, "maximum": 20 }
},
"required": ["query"],
"additionalProperties": false
}
}
模型可能会带着 {"query": "未解决的 bug", "limit": 3} 请求调用 search_issues。外层的应用把请求转给具体实现,实现去查询工单系统,再返回结果或错误。
名称和输入模式本身什么也不会执行。实现部分必须校验输入、检查访问权限,再执行实际操作。工具的响应也不是模型的最终回答:响应里可能只有工单 ID 和标题,再由模型加以总结。MCP 工具规范介绍了工具如何提供这些操作。
请求不等于结果
“我会创建一张工单”只是一句话;工具调用是请求执行操作;带有新工单 ID 的成功响应,才证明操作确实发生了。请把这三件事分开看。
连接器增加了什么
连接器把与某个系统的集成打包在一起。它可能负责登录、选择账户或工作区、查找数据,并把支持的操作以工具的形式提供出来。有些连接器只能搜索或读取,有些也支持写入。
连接器是产品用语,不是统一的技术标准。 有的连接器直接调用服务的 API,有的使用 MCP 服务器,还有的是在同步过来的文档所建的索引里搜索。具体集成支持什么,要逐个确认。微软的连接器概述给出了一个围绕 API 构建集成的例子。
连接账户并不意味着智能体能看到每个文件、把所有数据加载到上下文中,或者有权执行每种操作。访问能力取决于账户、配置的权限范围、应用以及服务自身的权限。搜索结果也可能来自一份比原始文档旧的索引。
对工单系统来说,要把这几个问题分开问清楚:连接配置好了吗?它能访问哪个项目?只能读取,还是也能新建工单?
MCP 标准化了什么
MCP 是 Model Context Protocol(模型上下文协议)的缩写。它规定了 AI 应用与外部能力提供方之间的通用通信方式。它不会取代服务的 API;MCP 服务器可以在背后调用这个 API。
MCP 架构有三个主要角色:
- 宿主:用户使用的 AI 应用。它协调连接、模型交互和权限。
- 客户端:位于宿主内部,负责维持与 MCP 服务器连接的部分。
- 服务器:通过 MCP 提供工具、资源或提示词的程序。可以在本地或远程运行。
调用工具时,客户端可以通过 tools/list 发现服务器的工具。应用将相关工具定义提供给模型。如果模型请求其中一个工具,应用可以通过 MCP 客户端发送 tools/call 请求。服务器自己执行操作或交给其他实现执行,再返回结果。
模型不需要自己建立网络连接。应用和 MCP 实现负责通信。但兼容性仍然重要:宿主和服务器必须支持你想使用的能力。发现了某个工具,不等于有权运行它,访问检查照样要做。
MCP 不只有工具
MCP 还定义了资源和提示词。这些词在协议中有特定含义:
- 工具:模型可以请求的操作,受应用控制。例子:搜索工单。
- 资源:应用可以作为上下文提供的数据。例子:通过 URI 标识的项目指南。
- 提示词:用户可以选择的可复用消息模板,也可以接受可选参数。例子:生成工单分类报告。
MCP 服务器概念指南将它们描述为由模型控制的工具、由应用控制的资源,以及由用户控制的提示词。这说的是预期的交互方式,并不免除应用的权限检查。
MCP 的提示词模板并不等于技能。技能可以打包更长的流程、参考资料和脚本,告诉智能体怎样使用通过 MCP、直接连接器或本地函数提供的工具。
技能也可以随服务器一起提供
直到不久前,这两样东西通常是分开提供的。服务器可以把工具交给智能体,但用好这些工具的经验却放在别处:单独安装的技能、一份 README,或者用户自己的提示词。服务一旦变化,这些说明就可能在不知不觉中过时。
MCP 官方的 Skills 扩展已于 2026 年 9 月定稿,它在很大程度上弥合了这道缝隙。现在,服务器不仅可以提供工具,还可以提供说明如何使用这些工具的技能,它们采用的正是智能体与技能一章介绍的 SKILL.md 格式。工具告诉智能体它能做什么,技能告诉它怎样把事情做好。如今两者可以来自同一台服务器,于是说明就和它所描述的服务放在一起,由维护这项服务的人保持更新。
这一机制建立在你已经见过的部件之上。技能中的每个文件都作为 MCP 资源公开,按惯例使用以 skill:// 开头的 URI。客户端可以用 skills/list 列出服务器的技能,用 skills/get 获取其中一个,再用 resources/read 读取它的辅助文件。
改前(只提供工具的服务器):
工单系统服务器提供 search_issues 和 create_issue。工单分类的方法(检查重复项、遵循工单模板)只能来自单独安装的技能或你自己的提示词,而且服务变化后可能过时。
改后(同时附带技能的服务器):
同一台服务器还提供一个工单分类技能。宿主起初只看到它的名称和描述,只有在任务需要时才加载完整说明。维护者修改服务时,可以同步更新这个技能。
技能怎样交给模型,仍由宿主决定。模型可以根据名称和描述选择技能,也可以由用户直接选择。无论哪种方式,完整说明都只在需要时才进入上下文;仅仅读取 SKILL.md 文件,并不会激活这个技能。
来自服务器的技能依然是指令
来自服务器的技能是进入智能体上下文的文本,可能左右它接下来的行动。因此要像审视服务器本身一样仔细审视它。谨慎的宿主会在加载前核验内容,需要批准时先征得批准。和 MCP Apps、MCP Tasks 等其他官方 MCP 扩展一样,Skills 是可选的:只有客户端和服务器都声明支持时才会启用。客户端支持仍处于早期阶段,因此在依赖它之前,请先确认你的应用确实会从服务器加载技能。
读取与写入的权限
编者注:原页面此处为互动演示,本库未收录。
原页面演示里的读取、写入模式只是示例,真实的权限可能分得更细。MCP 为双方提供共同的协议,但它既不决定你的账户能否写入项目,也不决定应用是否要先征求你的意见。身份验证确认你是谁;授权决定你被允许访问的范围;单独的一次批准只用来确认某一次操作。远程 HTTP 集成可以使用 MCP 授权框架,具体细节取决于集成。
小测验:已连接的 MCP 集成只有只读权限。使用更明确的提示词,智能体就能创建工单吗?
- A. 能,因为 MCP 允许模型请求的所有操作
- B. 能,只要用户批准那一次请求
- C. 不能。集成必须先获得写入授权,才能执行写入
- D. 能,只要技能中包含 create_issue 工具名
答案:C。 提示词、技能或操作批准都不会扩大连接的访问权限。应用和服务必须授权写入。
如何给有工具的智能体写提示词
告诉智能体要找什么信息、如何使用信息,以及你期待哪些操作。不要假设连接一定存在,也不要假设工具支持服务中的全部操作。
改前(留给智能体猜的太多):
查一下这些 bug,把事情都处理好。
改后(清晰的结果和边界):
在已连接的项目里搜索与“搜索结果为空”有关的未解决 bug。概括相关工单,并附上它们的 ID。如有需要,起草一张后续工单,但创建之前先问我。如果连接或所需的工具不可用,说明缺了什么。工具没有返回成功结果之前,不要说工单已经创建。
可复用的工单分类技能可以补充方法:检查重复项、比较复现步骤、遵循项目的工单模板,以及报告未解决的疑问。工具提供操作,技能说明如何把它用好。
工具输出仍然需要判断。工单评论、文档或搜索结果可能包含错误,或者看起来像指令的文字。把检索到的内容当作数据,不要让它改变用户的请求或应用的规则。支持 MCP 并不意味着服务器或其内容就可信。
如果读取失败,智能体可以报告错误,或尝试合理的替代方案。如果写入超时,应先检查改动是否已经发生,再决定是否重试。否则,重试可能创建重复工单。凭据应放在集成的连接配置中,而不是任务提示词里。如果机器人在你不在场时按计划自动使用工具,这些规则就更加重要,详见原书常驻机器人一章(本库未收录)。
小测验:连接器、MCP 和工具如何协同工作?
- A. 它们只是同一种东西的三个名称
- B. 连接器可以使用 MCP,把服务操作作为工具提供
- C. MCP 取代服务,并将全部数据存储在模型内部
- D. 每次工具调用都必须由技能创建网络连接
答案:B。 连接器是集成功能,MCP 可以是它的通信协议,工具则是具体操作。直接 API 集成也能在不使用 MCP 的情况下提供工具。
使用新集成之前
- 确认任务需要的服务、项目或文件
- 检查集成实际提供哪些工具和操作
- 检查连接使用的身份及其读取或写入权限
- 决定哪些操作需要等待批准
- 报告成功之前,检查返回的证据
原书下一章运行框架(Harness)介绍在整个任务过程中协调这些连接、指令和工具结果的软件(本库未收录该章)。