ARTICLE DETAIL

资讯详情

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

MCP 与 Agent Skill 别再搞混了:从 settings.json 到 config.toml 一次理清(保姆级教程)

MCP 与 Agent Skill 别再搞混了:从 settings.json 到 config.toml 一次理清(保姆级教程) 1. 先别急着写配置MCP 和 Agent Skill 到底谁管什么如果你最近在折腾 OpenClaw 这类 Agent 工具大概率会遇到一个很具体的困惑settings.json里填了一堆 MCP serverconfig.toml里又写了一段 skill结果跑起来要么工具调不到要么流程根本不按你想的走。问题往往不在代码而在于一开始就把 MCP 和 Agent Skill 当成了同一层东西。我用一个餐厅的类比帮你先建立直觉。MCP 是厨具刀、锅、铲子每件工具都知道自己怎么用但不知道今天该做什么菜。Agent Skill 是菜谱先切菜、再下锅、最后装盘流程写死了但它本身不会切菜得靠厨具去执行。缺了 MCP菜谱再详细也只能干瞪眼缺了 Skill厨师拿着一堆刀不知道先切哪个。落到配置层面这个分工就非常清晰了。MCP 负责“工具能力”它回答的是“AI 能调用哪些外部能力”配置载体通常是settings.json里的mcpServers段。Agent Skill 负责“做事流程”它回答的是“在什么场景下、按什么顺序调用哪些工具”配置载体通常是config.toml里的 skill 定义。两者是互补关系不是替代关系。这篇教程面向的是已经在用 OpenClaw 或类似 Agent 工具、但被这两类配置搞混的人。我会给你可复制的settings.json和config.toml骨架再带你逐项验证MCP 工具是否真的注册成功Skill 流程是否真的按步骤执行。全程在 TaoToken 统一 Key/API 通道下完成你不需要在多个平台之间来回切换 Key。2. 前置准备在 TaoToken 拿到统一 Key 并确认通道在动配置文件之前先把通道打通。TaoToken 在这里的角色是统一 Key/API 通道你只需要一个 Key就能让 Agent 工具通过同一个入口访问模型能力不用为每个工具单独配一套凭证。这对后面调试 MCP 和 Skill 特别重要因为排障时你希望变量越少越好。第一步打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册并登录。然后在控制台里创建一个 API Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 进去之后找 API Keys 页面点新建复制那串以sk-开头的 Key先存到本地临时文件里。第二步确认你的 API 基地址。TaoToken 的 API 入口是 https://taotoken.net/api 注意这个地址不带任何查询参数配置里直接写它就行。很多人在这一步会多写一个/v1或者少写一个斜杠导致后面请求 404我们后面排障章节会专门讲。第三步如果你打算长期跑编码类或 Agent 类任务建议顺手看一下 Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它针对高频编码场景做了额度优化。短期验证的话用普通 Key 就够了。注意Key 只存在本地配置文件或环境变量里不要提交到 Git 仓库。后面settings.json里我会用环境变量引用的方式避免明文写死。到这里前置就完成了。你手里应该有一个sk-开头的 Key以及 API 基地址https://taotoken.net/api。接下来进入配置环节。3. 可复制配置settings.json 管 MCPconfig.toml 管 Skill这一节是全文的核心。我会先给settings.json的 MCP 骨架再给config.toml的 Skill 骨架每一段都解释清楚它在管什么。3.1 settings.json注册 MCP 工具能力settings.json的职责是告诉 Agent 工具“有哪些外部工具可用”。在 OpenClaw 这类工具里通常放在项目根目录或用户配置目录下。下面是一个最小可用的骨架{ mcpServers: { taotoken-filesystem: { command: npx, args: [-y, modelcontextprotocol/server-filesystem, ./workspace], env: { TAOTOKEN_API_KEY: ${TAOTOKEN_API_KEY}, TAOTOKEN_BASE_URL: https://taotoken.net/api } }, taotoken-fetch: { command: npx, args: [-y, modelcontextprotocol/server-fetch], env: { TAOTOKEN_API_KEY: ${TAOTOKEN_API_KEY}, TAOTOKEN_BASE_URL: https://taotoken.net/api } } } }逐项说明。mcpServers是固定字段下面每个键就是一个 MCP server 的名字你可以自定义但后面 Skill 里引用时要保持一致。command和args决定这个 server 怎么启动这里用的是npx拉起官方 filesystem 和 fetch server。env里通过${TAOTOKEN_API_KEY}引用环境变量这样 Key 不会明文出现在文件里。这里的关键认知是settings.json只负责“把工具挂上去”它不关心你什么时候用、按什么顺序用。你挂十个 MCP serverAgent 也只是知道有这十个工具具体怎么编排是 Skill 的事。3.2 config.toml编排 Agent Skill 做事流程config.toml的职责是告诉 Agent“在什么场景下按什么顺序调用工具”。下面是一个研究型 Skill 的骨架[[skills]] name research_report description 搜索并抓取网页汇总成研究报告 trigger 用户要求调研某个主题时 [[skills.steps]] id search tool taotoken-fetch action search params { query {{user_input}}, limit 5 } [[skills.steps]] id fetch tool taotoken-fetch action fetch params { url {{steps.search.top_url}} } [[skills.steps]] id summarize tool taotoken-filesystem action write params { path ./workspace/report.md, content {{steps.fetch.content}} }逐项说明。[[skills]]定义一个 Skillname是唯一标识description和trigger帮助 Agent 判断什么时候该用这个 Skill。[[skills.steps]]是流程步骤每一步通过tool字段引用settings.json里注册的 MCP server 名字通过action指定具体动作。params里可以用{{user_input}}和{{steps.xxx.yyy}}做变量传递这就是流程编排的价值上一步的输出喂给下一步。对比一下就清楚了。settings.json里taotoken-fetch只是一个工具它不知道自己要搜什么、抓什么。config.toml里的research_report才规定了先搜、再抓、最后写文件。MCP 管能力Skill 管流程两个文件各司其职。3.3 两个文件的引用关系把引用关系画成文字就是config.toml的tool字段 →settings.json的mcpServers键名 → 实际启动的 MCP server 进程。任何一环名字对不上流程就会断。这也是后面排障的重点。4. 验证请求确认 MCP 注册成功、Skill 按序执行配置写完不算完得验证两类配置各自生效。我分两步走先验 MCP再验 Skill。4.1 验证 MCP 工具是否注册成功先设置环境变量把 Key 注入进去export TAOTOKEN_API_KEYsk-你的Key然后启动 Agent 工具进入交互模式输入一条查看工具列表的指令。不同工具命令略有差异OpenClaw 里通常是openclaw tools list如果 MCP 注册成功你会看到类似输出taotoken-filesystem (read, write, list) taotoken-fetch (search, fetch)看到这两个 server 和它们的 action 列表说明settings.json生效了。如果列表为空或者报 server 启动失败先别往下走去第 5 节排障。4.2 验证 Skill 是否按序执行MCP 通了之后触发 Skill。在交互模式里输入一个调研请求比如“帮我调研一下 MCP 协议的基本概念”。如果 Skill 配置正确你会看到执行日志按search → fetch → summarize的顺序打印[skill:research_report] stepsearch tooltaotoken-fetch statusok [skill:research_report] stepfetch tooltaotoken-fetch statusok [skill:research_report] stepsummarize tooltaotoken-filesystem statusok最后检查./workspace/report.md是否生成内容是否是抓取后的汇总。如果三步都 ok 且文件有内容说明 Skill 流程编排生效了。4.3 用模型对话做一次端到端确认如果你想更直观地确认模型侧通道也正常可以打开模型对话页面 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 发一条简单请求确认 Key 和基地址在模型侧也能通。这一步不是必须的但能帮你排除“到底是 MCP 问题还是通道问题”。5. 本篇常见错排查从报错反推是 MCP 还是 Skill 的问题排障的核心思路是先判断问题出在工具层还是流程层。下面是我实际遇到过的几类。报错一MCP server failed to start。这是 MCP 层问题跟 Skill 无关。常见原因是npx拉包失败或command路径不对。先在终端手动跑一遍npx -y modelcontextprotocol/server-filesystem ./workspace看能不能起来。如果手动能起、配置里起不来检查args里的相对路径是不是相对于 Agent 工作目录。报错二tool not found: taotoken-fetch。这是引用断裂。config.toml里写的tool名字必须和settings.json里mcpServers的键名完全一致大小写敏感。我踩过的坑是把taotoken-fetch写成了taotoken_fetch下划线和中划线混了排查了半小时。报错三401 Unauthorized或404。这是通道层问题。先确认TAOTOKEN_BASE_URL是https://taotoken.net/api不要多加/v1。再确认环境变量TAOTOKEN_API_KEY在当前 shell 里真的存在用echo $TAOTOKEN_API_KEY检查。如果 Key 是在图形界面里配的重启终端让环境变量生效。报错四Skill 只执行了第一步就停。这是流程层问题。检查params里的变量引用比如{{steps.search.top_url}}如果上一步search没有返回top_url字段下一步就拿不到值流程会中断。把每一步的输出单独打印出来看比猜快得多。报错五MCP 工具列表有但 Skill 不触发。检查trigger描述是否太窄Agent 判断不匹配就不会调用。把trigger写得更贴近用户实际说法或者临时手动指定 Skill 名触发。提示排障时把 MCP 和 Skill 分开验证先确保tools list有输出再确保 Skill 日志按序打印。两个都通再跑端到端。如果你在接入文档里想对照更细的参数说明可以看 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面把 Key 和基地址的用法讲得比较清楚。Key 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 需要轮换或新建时去那里操作。6. 把两类配置各归其位后面就顺了回到最开始那个困惑MCP 和 Agent Skill 不是二选一也不是谁替代谁。settings.json里的mcpServers负责把工具能力挂上来config.toml里的[[skills]]负责把做事流程编排好。你以后新增一个工具只动settings.json新增一个流程只动config.toml。边界清晰了排障时也能一眼看出该查哪个文件。如果你还没开始配建议先按第 3 节的骨架把两个文件建起来用第 4 节的两步验证跑通再逐步往里加工具和步骤。通道侧统一用 TaoToken 的 Key 和https://taotoken.net/api能省掉不少多平台凭证管理的麻烦。长期跑编码或 Agent 任务的话Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 可以看一下额度方案。先把最小闭环跑通比一次性配一堆工具再一起排障要快得多。
返回列表