Agent决定做什么,Skill定义怎么做,MCP让它能调用外部能力

Agent决定做什么,Skill定义怎么做,MCP让它能调用外部能力

在MCP架构中,Agent负责任务决策,Skill定义执行流程,MCP提供外部工具调用能力。以"Hello,World!"为例:Agent识别需求后调用hello-world Skill,该Skill通过MCP调用say_hello工具,返回结果。三者协同实现能力复用与解耦。虽非强制组合,但典型企业场景中,Agent通过Skill编排MCP工具,连接GitLab、Jira等系统,实现自动化工作流。

不同平台对 Skill 的命名与实现会不同;它不是 MCP 官方协议中的固定核心对象。

Hello World 示例

目标:用户对 Agent 说:

复制代码
请输出 Hello, World!

1. Agent

Agent 收到请求后,判断:

复制代码
这是"打招呼/文本输出"任务,
我可以使用 hello-world Skill。

它负责选择和编排,而不一定亲自实现具体能力。

2. Skill:hello-world

一个最简单的 Skill 可以定义成:

复制代码
name: hello-world
description: 当用户要求简单问候或输出 Hello World 时使用
steps:
  - 调用 say_hello 工具
  - 将工具结果回复给用户

它的本质是可复用流程:

复制代码
识别需求 → 调用工具 → 返回结果

3. MCP:暴露 say_hello 工具

MCP Server 可以向 Agent 暴露一个工具:

复制代码
{
  "name": "say_hello",
  "description": "生成一条 Hello World 问候语",
  "inputSchema": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string"
      }
    }
  }
}

工具的实现可能很简单:

复制代码
fun sayHello(name: String?): String {
    return if (name.isNullOrBlank()) {
        "Hello, World!"
    } else {
        "Hello, $name!"
    }
}

三者协作过程

复制代码
用户
  │ "请输出 Hello, World!"
  ▼
Agent
  │ 判断:匹配 hello-world Skill
  ▼
Skill
  │ 规定:调用 say_hello 工具
  ▼
MCP Client ───────────────► MCP Server
                                │
                                ▼
                         say_hello(name = null)
                                │
                                ▼
                         返回 Hello, World!
  ◄─────────────────────────────┘
  │
  ▼
Agent 回复用户:Hello, World!

极简伪代码

复制代码
class HelloWorldAgent(
    private val mcpClient: McpClient
) {
    suspend fun handle(userInput: String): String {
        // Agent:理解与决策
        if (userInput.contains("Hello") || userInput.contains("你好")) {

            // Skill:hello-world 的既定流程
            val result = mcpClient.callTool(
                name = "say_hello",
                arguments = emptyMap()
            )

            return result.text
        }

        return "暂不支持该请求"
    }
}

其中:

复制代码
HelloWorldAgent     = Agent
if + 调用工具流程      = Skill 的简化实现
mcpClient.callTool() = MCP 通信
say_hello            = MCP Server 提供的 Tool

它们并非必须同时存在

不使用 MCP

Agent 可以直接输出:

复制代码
Hello, World!

或直接调用本地 Kotlin 方法。此时:

复制代码
有 Agent
可有 Skill
没有 MCP

不使用 Agent

普通程序直接调用接口:

复制代码
sayHello(null)

此时:

复制代码
有 MCP Tool(或普通 API)
没有 Agent 的规划与决策

最常见的企业组合

复制代码
Agent
  ├─ Skill:代码审查
  ├─ Skill:查询构建日志
  ├─ Skill:创建缺陷单
  └─ 通过 MCP 连接:
       ├─ GitLab
       ├─ Jira / 飞书
       ├─ 内部代码库
       ├─ 性能 Trace 分析服务
       └─ 数据库、监控平台
相关推荐
玫瑰互动GEO7 小时前
GEM优化广告六要素: 从命名一致到落地页双对齐的工程化落地
人工智能·ai·chatgpt·gem优化
Luhui Dev7 小时前
几何画板工程持久化与版本管理方案:变更监听、自动保存与版本恢复
人工智能·数学·ai·agent·luhuidev
强哥聊算力7 小时前
《算力江湖·Intel帝国往事》第三集:安迪·格鲁夫的铁血时代:Intel为什么能把对手逼到墙角?
运维·人工智能·科技·算法·ai·gpu算力
海宇数据8 小时前
零信任架构实战:基于海宇双人婚姻评估查询构建自动化配偶签约一致性审查网关
人工智能·ai·工具分享
我才是银古9 小时前
把 666 个会话摊开看:一份 DSH 使用经验与教训的复盘
ai·deepseek·dsh
空堂与归9 小时前
国产开源登顶全球第一,1.3B OXR 登顶三榜:RSI 闭环重塑文档解析
人工智能·ai·agent
搭贝11 小时前
【无标题】
人工智能·低代码·ai·1024程序员节·搭贝
mudtools11 小时前
在飞书 SDK 上用 Microsoft Agent Framework 搭一个能干活的工作搭子
人工智能·ai·.net·飞书·agent
发量惊人的中年网工11 小时前
做 AI 应用怎么选大模型 API?选项应该看哪几点?
人工智能·ai·大模型