ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Tool、Skill、MCP、Plugin 到底什么关系?用 TaoToken 统一 Key 跑通四类扩展的对照实验

Tool、Skill、MCP、Plugin 到底什么关系?用 TaoToken 统一 Key 跑通四类扩展的对照实验 1. 先把四个概念放进同一个任务里看Tool、Skill、MCP、Plugin 这四个词经常被混着用原因很简单它们都出现在“让 AI 干活”这条链路上但负责的环节完全不同。我习惯用一个具体任务把它们串起来——整理今天收到的邮件找出重要邮件、把广告归档、最后给一份总结。这个任务足够日常又能覆盖“读信息、做判断、改状态、出结果”四类动作。先给一句最短的定义方便你建立坐标Tool 是 Agent 能直接调用的一个动作比如search_email(query)、read_email(id)、archive_email(id)。Skill 是一套可复用的做事方法通常是一个包含SKILL.md的文件夹告诉 Agent 先做什么、什么条件下归档、输出成什么样。MCP 是 Model Context Protocol一套连接 AI Client 和外部工具/数据的开放协议按协议提供能力的程序叫 MCP Server。Plugin 是把相关能力打包成一个可安装、可分发的整体里面可以只放 Skill也可以带 MCP 连接或者两者都有。关键区别在于Tool 和 Skill 属于“任务运行时”这一侧MCP 是“能力怎么接进来”的协议层Plugin 属于“能力怎么装进来”的安装时。把它们画在同一条线上就会越看越乱拆成运行时和安装时两棵树立刻清楚。这篇要做的不是背定义而是一组可复现的对照实验用同一个邮件整理任务分别走 Tool、Skill、MCP、Plugin 四条路径观察调用链路和配置差异。所有请求统一走 TaoToken 的 Key 和 API 通道这样你只需要维护一份凭证就能把四类扩展的差异看清楚。适合谁看正在给 Agent 接工具、被 MCP 和 Plugin 的边界绕晕、想用一套 Key 跑通多种扩展形态的开发者。2. 用 TaoToken 统一 Key 作为接入底座做对照实验最怕变量太多。如果四条路径各自用不同的账号、不同的 endpoint、不同的鉴权方式最后观察到的差异可能来自凭证而不是扩展本身。所以这一步先把底座固定下来所有模型请求都走 TaoToken 的 API 通道用同一个 Key。TaoToken 在这里的角色是统一的模型接入层。你拿到一个 Key配好 Base URL就能在 Tool、Skill、MCP、Plugin 四种形态里复用同一套凭证。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 这个不加 UTM。注意 API 地址后面通常要补/v1之类的版本路径具体以你所用客户端的文档为准。拿 Key 的流程不复杂但有几个坑值得提前说。第一Key 只在创建时完整显示一次复制后立刻存进环境变量别写死在代码里。第二不同客户端对 Base URL 的写法要求不一样有的要带/v1有的只填到域名配错了会直接 404 或 401。第三模型 ID 要和你实际开通的通道对上写错模型名会报model not found。我建议统一用环境变量管理这样四类扩展共享同一份配置export TAOTOKEN_API_KEYsk-你的Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api/v1 export TAOTOKEN_MODEL你的模型ID把这三个变量固定下来之后后面无论写 Tool 的调用、Skill 的脚本、MCP Server 的配置还是 Plugin 的清单都引用同一组值。这样对照实验里唯一的变量就只剩“扩展形态”本身。如果你更习惯在图形界面里操作模型对话入口可以快速验证 Key 是否可用https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。先在对话里发一句简单请求确认通道通了再去折腾扩展配置能省掉很多“到底是 Key 错还是配置错”的排查时间。需要长期跑编码或 Agent 任务的话Coding Plan 入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 适合把这类对照实验做成常态化脚本。Key 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。先把这几个地址记下来后面每一步都会用到。3. 四类扩展的最小可复制配置这一节是全文的核心给出四类扩展各自的最小配置片段。路径和字段名尽量贴近真实客户端的写法你复制后改 Key 和模型 ID 就能跑。统一前提Base URL 用https://taotoken.net/api/v1Key 用环境变量TAOTOKEN_API_KEY。3.1 Tool最小函数定义Tool 的本质是给 Agent 一个可调用的动作。最小形态就是一个带 schema 的函数声明。以邮件整理为例定义一个搜索工具{ name: search_email, description: 按关键词搜索邮箱返回匹配的邮件列表, parameters: { type: object, properties: { query: { type: string, description: 搜索关键词 }, limit: { type: integer, default: 20 } }, required: [query] } }Agent 决定调用哪个 Tool、传什么参数Tool 负责执行并返回结果。搜索和读取只获取信息归档、发送、删除会改变外部状态真实产品要检查权限必要时等用户确认。Tool 可以直接注册给 Agent不一定经过 MCP。3.2 SkillSKILL.md 最小结构Skill 保存的是“这件事应该怎么做”。在 OpenAI 和 Codex 当前的实现里它通常是一个包含SKILL.md的文件夹还可以附带脚本、参考资料和模板。最小结构--- name: organize-inbox description: 整理收件箱找出重要邮件归档广告输出总结 --- ## 工作流 1. 调用 search_email 搜索最近 24 小时邮件 2. 逐封 read_email判断重要程度 3. 广告类调用 archive_email 归档 4. 重要邮件汇总成摘要标注发件人和待办 ## 完成标准 - 广告已归档 - 重要邮件列表非空时给出摘要 - 摘要包含发件人、主题、建议动作Skill 会告诉 Agent 先搜索、再阅读、何时归档、最后怎样总结但真正调用 Tool 的还是 Agent。一份 Skill 可以指导多个 Tool也可以只靠说明和模板完成任务。3.3 MCPServer 配置片段MCP 是协议MCP Server 是能力提供者。一个 Server 可以一次提供多个 Tool。以接入一个邮件类 MCP Server 为例客户端配置通常长这样{ mcpServers: { mail-server: { command: npx, args: [-y, your-mail-mcp-server], env: { API_KEY: ${TAOTOKEN_API_KEY}, BASE_URL: https://taotoken.net/api/v1, MODEL_ID: ${TAOTOKEN_MODEL} } } } }这里三件套要写全Base URL、Key、Model ID。少任何一个Server 启动后调用模型都会失败。MCP Server 还可以暴露 Resource、Prompt 和 Instructions本文只讨论最常见的 Tool。3.4 Pluginplugin.json 清单Plugin 把相关能力组织成一个可安装、可分发的包。以 OpenAI 当前体系为例每个 Plugin 有.codex-plugin/plugin.jsonSkill、MCP 连接、Hooks 和素材按需加入{ name: inbox-organizer, version: 0.1.0, description: 邮件整理插件含 Skill 与 MCP 连接, skills: [skills/organize-inbox], mcpServers: [mcp/mail-server.json], hooks: [] }Plugin 可以只带 Skill也可以带 MCP Server或者同时包含两者官方架构没有规定固定组合。Plugin 负责把能力装进来任务开始后Agent 直接使用已经可见的 Skill 和 Tool不需要先“调用 Plugin”。四类配置放在一起对照差异一目了然Tool 是单个动作声明Skill 是方法文档MCP 是连接配置Plugin 是打包清单。它们不是互斥选项同一个项目里可以同时出现。4. 逐项验证请求与结果对照配置写完必须验证否则你不知道是通道问题还是扩展问题。这一节给出四类扩展各自的验证动作和预期结果全部走同一个 TaoToken Key。先做一次基础连通性验证确认 Key 和 Base URL 没问题curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: $TAOTOKEN_MODEL, messages: [{role: user, content: 回复 ok}] }返回里能看到choices数组且内容正常说明通道通了。这一步过了再往下走。Tool 验证把search_email的 schema 注册给 Agent发一句“搜索最近邮件”观察返回里是否出现tool_calls字段且function.name是search_email。出现即说明 Agent 正确选择了 Tool。Skill 验证把organize-inbox放进 skills 目录发同一句邮件整理指令观察 Agent 是否按 SKILL.md 里的步骤先搜索、再阅读、再归档。如果它跳步或输出格式不符说明 Skill 没被加载或描述不够明确。MCP 验证启动 MCP Server 后在客户端里查看工具列表确认search_email、read_email、archive_email都出现在 MCP 提供的工具里。然后发指令观察请求是否经过 MCP Server 转发。换成本地 Tool 时请求不会经过 MCP Server这是最直观的差异。Plugin 验证安装 Plugin 后检查 Skill 和 MCP 连接是否都已就位。Plugin 不在调用链里因为它的工作已经在安装阶段完成。如果安装后工具列表为空多半是plugin.json里的路径写错了。结果对照表扩展类型验证动作预期结果调用链位置Tool注册 schema 后发指令返回 tool_calls运行时Agent 直接调用Skill放入 skills 目录后发指令按步骤执行运行时指导 AgentMCP启动 Server 后查工具列表工具出现在列表中运行时经协议转发Plugin安装后检查能力Skill 与 MCP 就位安装时不参与调用实测下来最容易出问题的是 MCP 和 Plugin 的路径配置。MCP 的command和args写错Server 根本起不来Plugin 的skills和mcpServers路径写错安装后能力为空。这两处建议先用绝对路径验证跑通再改相对路径。5. 常见报错逐项排查这一节按真实报错来遇到哪个查哪个。401 UnauthorizedKey 无效或没带上。检查Authorization头是不是Bearer加 Key中间有空格。环境变量没导出也会导致空 Key。用echo $TAOTOKEN_API_KEY确认变量有值。local proxy failed / connection refused客户端把请求发到了本地代理地址但代理没启动。检查 Base URL 是不是被写成了http://localhost:xxxx。统一改成https://taotoken.net/api/v1再试。reading choices 报错 / choices 为空响应结构和你解析的字段对不上。先打印完整响应体确认choices[0].message.content存在。如果返回的是错误对象里面通常有error.message按提示改模型 ID 或参数。OAuth 相关报错某些 MCP Server 或客户端走 OAuth 流程回调地址或 token 过期会报错。检查客户端里的 OAuth 配置重新授权一次。如果 Server 支持 API Key 模式优先用 Key 模式绕开 OAuth。model not found模型 ID 写错或该模型没在你开通的通道里。对照 TaoToken 文档里的模型列表确认 ID 拼写。Base URL 少了/v1也可能导致路由不到。MCP Server 启动失败command不存在或args里的包名写错。先在终端手动执行一遍command args看能否启动。npx类命令首次运行要下载包网络慢会超时可以加长超时或预装。Plugin 安装后能力为空plugin.json里的skills和mcpServers路径是相对路径基准目录不对。改成绝对路径验证或确认相对路径是相对于plugin.json所在目录。CC Switch / Cline MCP / Codex auth.json 三件套缺失这三类客户端都要求写全 Base URL、Key、Model ID。以 Codex 的auth.json为例{ base_url: https://taotoken.net/api/v1, api_key: sk-你的Key, model: 你的模型ID }少任何一项都会在启动或首次请求时报错。Cline 的 MCP 配置同理env里三个变量都要有。CC Switch 切换配置时确认切换后的 profile 里三件套完整。排查顺序建议先验通道curl 基础请求再验扩展Tool/Skill/MCP/Plugin 各自的最小验证最后验组合Plugin 装完后整体跑一遍。这样能把问题定位到具体环节而不是在四类扩展之间来回猜。6. 把四类扩展用对地方回到最开始的邮件任务Tool 负责搜索、读取和归档Skill 保存整理方法MCP Server 把邮件能力接进来Plugin 把相关能力整套安装Host / Runtime 让它们跑起来。四者是分工不是互斥选项。判断一个新东西属于哪类先问它的主要职责能直接执行动作的是 Tool保存做事方法的是 Skill提供连接协议的是 MCP负责打包分发的是 Plugin。同一个项目里可以同时出现四种Plugin 里放着 Skill 和 MCP 连接MCP Server 再提供多个 Tool。如果你只想快速验证模型通道用模型对话入口发一句请求就行https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。要长期跑编码或 Agent 任务Coding Plan 更适合https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。Key 管理和接入文档分别在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 和 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。最后留一个实用技巧做这类对照实验时把四类扩展的配置放在同一个仓库的不同目录里共用一份.env。这样切换实验对象只需要改一行加载路径Key 和 Base URL 始终一致观察到的差异才真正来自扩展形态本身。
返回列表