agent开发之一(skill,tool,mcp相互关联)

2026-5-21 / 0 评论 / 5 阅读

四者之间的关系可以这样理解:

Agent 是最顶层的"大脑",负责规划目标、拆分任务、决定下一步做什么。它不亲自执行,而是调用下层能力。
Skill 是对"怎么做某件事"的高层封装。它通常包含提示模板、推理链、或一段固定的执行逻辑,让 Agent 复用经验而不必每次从头构建。Skill 本身可以在内部编排多个 Tool 的调用顺序。
Tool 是最基础的原子接口——一个可调用的函数,有明确的输入输出。Agent 可以直接调用 Tool,Skill 也可以在内部组合调用多个 Tool。
MCP(Model Context Protocol) 是连接 AI 层与外部世界的协议标准。它把外部能力规范地暴露为三类端点:

Resources — 提供文件、数据库记录等上下文内容
Tools — 注册可被调用的函数(这是 MCP 的 Tool,与上面 Tool 层对应)
Prompts — 管理可复用的提示模板

一句话总结关系链:Agent 通过 Skill(策略层)和 Tool(执行层)发出意图,Tool 通过 MCP 协议与外部 API、数据库、文件系统交互,完成真实世界的操作。

Skill 是对"如何完成某类任务"的高层封装——它不是一个函数,而是一段经验。

最直观的区分方式:Tool 回答"能做什么",Skill 回答"怎么做好"。

Tool 是什么?它如何与外部系统交互?


Tool 的三个核心属性,缺一不可:
name 是 Tool 的唯一标识,Agent 靠它选择工具,比如 search_web、read_file、send_email。
schema 定义了入参的结构和类型(通常是 JSON Schema),调用前会对参数做验证,防止无效请求打到外部系统。
handler 是实际执行体,里面写着如何发 HTTP 请求、如何查询数据库、如何读写文件。
这层对 Agent 完全透明——Agent 只看到 schema,不知道 handler 怎么实现的。
与外部系统的交互方式本质上没有限制,常见的有:

REST/GraphQL API — 通过 HTTP 调用第三方服务
数据库 — 执行 SQL 或 NoSQL 查询
文件系统 — 读取、写入、列举本地或远程文件
subprocess / shell — 执行系统命令
其他 Tool / MCP 服务 — Tool 也可以嵌套调用

最关键的设计原则:Tool 是原子的、无状态的(理想情况下),每次调用都是独立的输入→执行→输出,这让 Agent 可以安全地组合、重试、并行调用多个 Tool,而不用担心副作用叠加。

    评论一下?

    OωO
    取消