找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3458

积分

0

好友

471

主题
发表于 昨天 06:29 | 查看: 3| 回复: 0

当AI说“这个我不会”时,是该训练它还是给它个工具?

昨天深夜,我的日程AI助手突然罢工了。我问:“明早我需要带伞吗?”它回复:“抱歉,我不会查天气预报。”那一刻,我面临两个选择:花一周时间教它看天气(加Skill),或者五分钟给它接个天气API(连MCP)。这种困境每天都在AI开发中上演。

一、从一场真实的团队争论说起

周一的技术评审会上,产品总监指着原型图说:“这里,AI要能自动预订会议室。”话音刚落,会议室就炸了。

算法小王主张:“简单!给Agent加个会议室预订Skill,让它学会公司预定系统的所有规则。”
后端老张则反对:“别!用MCP连上会议室管理系统,AI调用就行,改规则时不用重新训练。”

两人对视一眼,空气中闪过火花。这种争论的核心在于:你希望AI如何获得新能力?

思考角度 加Skill(教它) 连MCP(给它工具)
类比 教会保姆做川菜 给保姆外卖APP
本质 改变AI的“大脑” 扩展AI的“手脚”
成本 训练成本高 集成成本低
灵活度 学会就固定了 工具可随时换

二、加Skill:让AI“真正学会”一项本领

什么是Skill?AI的内在能力提升

Skill的本质是改变模型的权重或知识库,使其掌握新的内在能力。

# Skill的本质:改变模型权重,让它掌握新知识
class AgentWithSkill:
    def __init__(self, base_model):
        self.model = base_model  # 基础模型
        self.skills = {}  # 学会的技能

    def add_skill(self, skill_name, training_data):
        """教AI一个新技能的过程"""
        # 1. 准备“教材”(训练数据)
        examples = self.prepare_examples(training_data)

        # 2. “上课学习”(模型训练)
        # 方式A:微调 - 调整模型参数
        if self.budget > 5000:  # 钱够
            self.fine_tune_model(examples)

        # 方式B:提示工程 - 写详细说明书
        elif self.budget > 500:  # 有点钱
            self.craft_prompt_template(skill_name)

        # 方式C:RAG增强 - 给参考书
        else:  # 预算紧张
            self.add_reference_docs(examples)

        # 3. “考试验收”(测试验证)
        test_results = self.evaluate_skill()

        # 技能学会,存储在模型内部
        self.skills[skill_name] = {
            "type": "learned",
            "performance": test_results
        }

    def use_skill(self, skill_name, input_data):
        """使用已学会的技能"""
        # 完全在模型内部处理
        # 没有外部依赖,没有网络调用
        return self.model.inference(input_data, skill=skill_name)

加Skill的实际案例:教AI写周报

这个过程通常是漫长且细致的。

# 技能名称:技术团队周报生成
skill_development_timeline = {
    "第一周(数据收集)": {
        "任务": "收集100份真实的工程师周报",
        "难点": "脱敏处理(去掉项目代号、人名)",
        "成本": "2人×3天 标注工时"
    },
    "第二周(训练实验)": {
        "任务": "尝试三种训练方法",
        "方法对比": {
            "微调Llama2": "效果好,但需要A100训练3天",
            "GPT提示工程": "效果还行,但格式控制不稳",
            "RAG+模板": "效果稳定,但创造力不足"
        },
        "选择": "最终选了RAG+模板,平衡成本与效果"
    },
    "第三周(测试优化)": {
        "任务": "人工评估200份生成结果",
        "问题发现": [
            "把‘修复bug’写成‘创造了新的调试机会’(太文艺)",
            "总是忘记写下周计划(学习样本问题)",
            "技术术语偶尔用错(模型不理解专业知识)"
        ],
        "迭代": "补充了500条术语对照表,人工纠正了100条坏样本"
    },
    "第四周(上线部署)": {
        "状态": "技能学会,集成到Agent",
        "效果": "生成速度<2秒,满意度85%",
        "限制": "只能按学会的模板写,公司改周报格式需要重新训练"
    }
}

Skill的优势与代价

✅ 优势:
1. 速度快:学会后,推理完全在本地,毫秒级响应
2. 隐私好:敏感数据不出公司内网
3. 独立性强:不依赖外部服务,不怕断网

❌ 代价:
1. 训练贵:每个技能都要数据、算力、人工
2. 周期长:从立项到可用至少1-4周
3. 难更新:业务规则变了,得重新训练
4. 有冲突:学太多技能可能互相干扰(灾难性遗忘)

三、连MCP:给AI“装备”专业工具

什么是MCP?AI的标准工具接口

MCP(Model Context Protocol),你可以理解为:AI界的USB标准接口。它让AI能通过一套标准化协议调用外部工具,而无需理解工具内部如何工作。

# MCP架构:一套标准化的工具调用协议
class MCPSystem:
    """MCP的核心思想:AI不一定要‘会’,但要‘会用’"""

    def __init__(self):
        # MCP服务器:各种工具的后台服务
        self.tool_servers = {
            "calendar": GoogleCalendarMCP(),
            "email": OutlookMCP(),
            "database": CompanyDBMCP(),
            "weather": WeatherAPIMCP(),
            "jira": JiraMCP()  # 项目管理工具
        }
        # 标准化描述文件:每个工具的使用说明书
        self.tool_schemas = self.load_schemas()

    def connect_tool(self, agent, tool_name):
        """给AI连接一个工具"""
        # 1. 告诉AI这个工具能干什么
        tool_schema = self.tool_schemas[tool_name]
        agent.learn_tool_description(tool_schema)

        # 关键:AI只学“什么时候用这个工具”
        # 而不学“工具内部怎么工作”

        # 2. 建立连接通道
        connection = MPCToolConnection(
            tool_name=tool_name,
            server=self.tool_servers[tool_name],
            auth_token="***"# 认证信息
        )
        return connection

class AgentWithMCP:
    """装备了MCP工具的AI"""

    def handle_request(self, user_request):
        # AI的大脑分析用户意图
        intent = self.understand_intent(user_request)

        # 决策:这个任务我是自己处理,还是用工具?
        if intent in self.internal_skills:
            # 用自己学会的技能
            return self.use_skill(intent, user_request)
        else:
            # 用MCP工具
            return self.use_mcp_tool(intent, user_request)

    def use_mcp_tool(self, tool_name, request):
        # AI的任务:
        # 1. 理解用户需求
        # 2. 提取关键参数
        # 3. 调用合适的工具
        # 4. 把工具返回结果“翻译”成自然语言

        params = self.extract_parameters(request)

        # 关键步骤:通过MCP标准协议调用
        tool_response = self.mcp_client.call(
            tool=tool_name,
            action="execute",
            parameters=params
        )

        # AI不需要懂工具的内部逻辑
        # 只需要会“使用”它

        return self.format_response(tool_response)

连MCP的实战:五分钟搞定天气查询

还记得我那个不会查天气的AI助手吗?用MCP解决方案非常快捷。

# 解决方案:连一个天气MCP服务
def mcp_weather_solution():
    # 第一步:找一个现成的天气API服务
    # 比如和风天气、OpenWeatherMap等

    # 第二步:包装成MCP服务(如果还没有现成的)
    # 这通常只需要:
    # 1. 定义工具schema(说明书)
    # 2. 实现一个简单的HTTP端点
    # 3. 处理认证和错误

    weather_mcp_schema = {
        "name": "weather_query",
        "description": "查询城市天气预报",
        "parameters": {
            "city": {"type": "string", "required": True},
            "days": {"type": "integer", "default": 1}
        },
        "returns": {
            "temperature": "float",
            "condition": "string",
            "humidity": "float",
            "advice": "string"# 比如“建议带伞”
        }
    }

    # 第三步:给AI助手连上这个MCP服务
    # 在你的AI平台配置中添加:
    mcp_config = {
        "tools": ["weather_query"],
        "endpoint": "https://weather-mcp.your-company.com",
        "api_key": "***"
    }

    # 第四步:测试
    # 用户问:“明天北京天气如何?”
    # AI助手:
    # 1. 识别意图:需要天气信息
    # 2. 提取参数:city=北京,days=1
    #. 调用MCP工具
    # 4. 返回:“明天北京晴,25℃,湿度40%,建议涂防晒”

    return "搞定!总耗时:1人×0.5小时"

MCP的核心价值是标准化

# MCP标准化协议的好处
standardization_benefits:
1.一次开发,多处使用:
-你的天气MCP服务
-可以同时给:日程Agent、出行Agent、农业Agent使用

2.工具可插拔:
-今天用和风天气API
-明天换成中国气象局数据
-AI助手无需重新训练

3.生态共享:
-公司内部:会议室MCP、报销系统MCP
-公开市场:GitHub有上百个开源MCP工具

4.专业分工:
-工具专家:专注于把专业系统做好
-AI专家:专注于让AI会使用工具
-不用互相等对方

MCP的优势与局限

✅ 优势:
1. 快速集成:有现成工具时,连接只要几小时
2. 能力无限:理论上能连任何系统
3. 实时更新:工具升级,AI立即受益
4. 专注核心:AI专注理解与调度,工具专注专业功能

❌ 局限:
1. 网络依赖:工具服务挂了,功能就失效
2. 隐私顾虑:数据要传到外部工具
3. 延迟较高:网络调用比本地推理慢
4. 集成成本:每个工具都要配MCP服务端

四、决策指南:什么时候选什么?

决策流程图:Skill vs MCP

用户需求 → AI需要新能力
    ↓
问五个关键问题:

1. 【实时性要求】需实时最新信息?
   ├→ 是 → MCP(连实时数据源)
   └→ 否 → 下一题

2. 【敏感性】处理敏感/隐私数据?
   ├→ 是 → Skill(数据不出本地)
   └→ 否 → 下一题

3. 【复杂性】任务需要深度理解推理?
   ├→ 是 → Skill(AI需要“真懂”)
   └→ 否 → 下一题

4. 【稳定性】外部工具是否稳定可靠?
   ├→ 否 → Skill(避免依赖风险)
   └→ 是 → 下一题

5. 【变更频率】业务规则常变吗?
   ├→ 是 → MCP(工具可快速更新)
   └→ 否 → Skill(一次学会长期用)

真实场景对照表

实际需求 推荐方案 理由 实施时间
公司内部会议纪要 Skill 格式固定,数据敏感,需要理解技术讨论 2-3周
查询股价/汇率 MCP 实时数据,外部已有专业API 几小时
代码评审助手 混合 Skill理解代码逻辑+MCP连GitHub 1-2周
智能排班系统 MCP 对接HR系统,规则常变 几天
客服FAQ回答 Skill 公司特有知识,需要自然对话 3-4周
天气预报提醒 MCP 外部专业服务,实时性要求高 几小时

五、行业趋势:为什么MCP越来越火?

大厂的秘密:都在建MCP生态

最近半年,一个明显趋势是:所有人都在推自己的MCP协议

# 2024年各家MCP布局
mcp_landscape_2024:
OpenAI:
-GPTs+Actions(本质是MCP)
-插件市场:日历、邮件、数学工具
-战略:让ChatGPT成为万能入口

Anthropic:
-ClaudeToolUse
-企业级工具集成
-特色:工具调用中的安全控制

国内大厂:
-百度文心插件平台
-阿里通义千问工具调用
-讯飞星火API市场
-共同点:都在快速接入第三方服务

开源社区:
-LangChain工具调用
-LlamaIndex数据连接器
-MCP开源协议标准
-特色:避免被单一厂商锁定

MCP火爆的底层逻辑

为什么MCP突然这么火?三个原因:

1. 经济现实:训练太贵了

企业账本对比:
方案A(加Skill):训练一个客服技能
  - 数据收集:¥20,000
  - 模型微调:¥15,000(GPU费用)
  - 人工标注:¥10,000
  - 总计:¥45,000,耗时4周

方案B(连MCP):接入客服系统
  - MCP服务开发:¥8,000
  - API调用费:¥0.01/次
  - 总计:¥8,000 + 按量付费,耗时3天

2. 技术现实:专业事专业办
天气预报、股票分析、法律咨询...每个领域都是几十年积累的专业系统。让AI从头学?不如让它学会用专业工具。

3. 商业现实:生态大于独占
苹果App Store的成功已经证明:提供一个平台,让别人来开发工具,比自己开发所有应用更强大。

六、混合策略:成熟团队的实用架构

一个真实的混合系统设计

我们团队现在的AI助手架构是这样的:核心通用能力内化为Skill,外部专业功能则通过MCP连接。

class SmartAgentArchitecture:
    """混合架构:基础技能 + MCP工具箱"""

    def __init__(self):
        # 第一部分:核心通用技能(加Skill)
        self.core_skills = {
            "language_understanding": FineTunedSkill(),
            "reasoning": PromptEngineeredSkill(),
            "company_knowledge": RAGSkill()  # 公司文档检索
        }

        # 第二部分:外部工具(连MCP)
        self.mcp_tools = MCPClient({
            "tools": [
                "calendar",     # 日历管理
                "email",        # 邮件发送
                "expense",      # 报销系统
                "meeting_room", # 会议室预定
                "project_mgmt", # 项目管理系统
                ],
            "fallback": "ask_human"# 连工具都不会用?转人工
        })

        # 第三部分:智能路由器
        self.router = SkillOrMCPRouter()

    def handle_query(self, user_query):
        # 第一步:理解用户意图
        intent = self.core_skills["language_understanding"].parse(user_query)

        # 第二步:路由决策
        route = self.router.decide(intent)

        # 第三步:执行
        if route["type"] == "skill":
            # 用内部技能处理
            result = self.use_skill(route["skill_name"], user_query)
        elif route["type"] == "mcp":
            # 用MCP工具处理
            result = self.use_mcp_tool(route["tool_name"], user_query)
        else:
            # 兜底:转人工或委婉拒绝
            result = "这个问题我需要学习一下,或者您可以咨询相关同事"

        return result

    def router_rules(self):
        """路由规则示例"""
        return {
            "写周报": {"type": "skill", "skill_name": "weekly_report"},
            "订会议室": {"type": "mcp", "tool_name": "meeting_room"},
            "查天气": {"type": "mcp", "tool_name": "weather"},
            "技术方案讨论": {"type": "skill", "skill_name": "tech_discussion"},
            "申请报销": {"type": "mcp", "tool_name": "expense"},
            "敏感数据查询": {"type": "skill", "skill_name": "secure_query"}
        }

给你的具体建议

如果你是初创团队

  1. 首选MCP:快速验证想法,最小成本上线。
  2. 核心能力再加Skill:等产品稳定了,把最高频、最核心的功能做成Skill。
  3. 用开源MCP工具:别重复造轮子,可以参考技术文档中的实现。

如果你是企业团队

  1. 分领域决策
    • 通用型、规则常变的功能 → MCP
    • 公司特有、数据敏感的功能 → Skill
  2. 建立内部MCP标准:统一工具对接方式。
  3. 技能资产管理:记录每个Skill的成本和效果,定期评估。

如果你是工具开发者

  1. 提供MCP接口:让你的工具能被更多AI使用。
  2. 文档要详细:AI不会猜,参数说明要清晰。
  3. 考虑认证与安全:企业级工具尤其重要。

七、写在最后:AI开发的范式转移

回到开头那个深夜,我最终的选择是:给AI助手连了一个天气MCP

为什么?

  1. 天气预报是专业领域,有成熟API。
  2. 天气规则会变(暴雨标准、穿衣建议等)。
  3. 需要实时数据。
  4. 这功能不是核心需求,不值得投入大量训练。

5分钟后,我问AI:“明天要带伞吗?” 它回答:“明天北京有雷阵雨,降水概率70%,建议带伞。需要我设置在您的出行提醒中吗?”

这就是现代AI开发的真相

  • 我们不再追求“万能AI”,而是追求“会使用工具的智能体”。
  • 核心技能自己掌握,专业功能连接外部。
  • 重点是让AI正确理解需求、合理选择工具、自然沟通结果。

下一次,当你听到团队讨论“加Skill还是连MCP”时,可以问他们四个问题:

  1. 这功能是通用的还是公司特有的?
  2. 数据能不能出内部网络?
  3. 需求会不会经常变?
  4. 时间预算是多少?

答案,就藏在问题里。在云栈社区,我们持续关注着AI工程化与Agent架构的演进,欢迎交流你的实践与思考。




上一篇:Facebook沦为赛博垃圾场:8年未登录,算法推荐乱象让我震惊
下一篇:Python逆势交易策略:基于SuperTrend回调反转的美股实战解析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-25 09:10 , Processed in 2.312780 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表