ARTICLE DETAIL

资讯详情

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

【Claude Code】Hooks、Rules、Commands、Skills、Agents、Plugins、MCP 七件套怎么配 TaoToken:一份 settings.json 骨架讲清

【Claude Code】Hooks、Rules、Commands、Skills、Agents、Plugins、MCP 七件套怎么配 TaoToken:一份 settings.json 骨架讲清 1. 先搞清楚这七件套到底在解决什么问题Claude Code 刚上手时很多人会把它当成一个能读文件的聊天框——问一句答一句改代码还得自己复制粘贴。但真正让它变成可编程 AI 操作系统的是 Hooks、Rules、Commands、Skills、Agents、Plugins、MCP 这七类扩展机制。它们各自负责不同层面Rules 是底线约束Skills 是领域知识Agents 是执行大脑Hooks 是事件反射MCP 是外部肢体Commands 是用户入口Plugins 是打包分发。理解它们的分工比记住每个字段名更重要。而实际落地时另一个绕不开的问题是这些机制最终都要通过模型 API 来驱动Key 怎么统一管理、请求走哪条通道、多个 Agent 并发时配额怎么算。这篇就围绕七件套 统一 API 通道这个组合给出一份可以直接复制的settings.json骨架并逐项说明字段含义最后给出启动后的验证动作。适合第一次接入 Claude Code、想把扩展机制一次性配齐的开发者。我试过把七类配置分散在多个文件里结果排查问题时来回跳转非常痛苦后来统一收敛到settings.json加目录约定维护成本降了一大截。2. 接入前的准备TaoToken 通道与 Key 获取在写配置之前先把 API 通道准备好。Claude Code 的所有扩展机制——不管是 Agent 调用模型、Skill 触发子任务还是 Hook 里跑脚本请求补全——最终都指向同一个 API 端点。把 Key 和 Base URL 统一在一处后面七件套的配置才不会各写各的。TaoToken 在这里扮演的角色就是统一 Key/API 通道你只需要在官网注册后拿到一个 Key然后在 Claude Code 的环境变量或settings.json里指向它的 API 地址所有扩展机制就都走这条通道不用为每个 Agent 单独配一套凭证。具体操作访问官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 完成注册进入控制台创建 API Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。API 端点本身是 https://taotoken.net/api 注意这个地址不带 UTM 参数配置时直接写裸地址即可。拿到 Key 之后建议先写进环境变量而不是硬编码进配置文件export TAOTOKEN_API_KEYsk-你的key export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEY$TAOTOKEN_API_KEY这样做的原因是settings.json里如果直接写 Key一旦提交到 Git 就容易泄露。环境变量方式在本地开发时最省心CI 环境里再换成 secrets 注入。注意Claude Code 读取的是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个变量指向 TaoToken 的 API 地址后所有模型请求都会走这条通道。如果你用的是 coding-plan 套餐Key 的权限范围会不同具体可以在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 查看套餐说明。3. settings.json 骨架七件套的字段怎么摆下面这份骨架把七类机制都收进一个文件目录约定是.claude/下分hooks/、rules/、commands/、skills/、agents/、plugins/六个子目录MCP 单独用mcp.json管理。先看整体结构{ apiKeyHelper: echo $TAOTOKEN_API_KEY, env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: $TAOTOKEN_API_KEY }, hooks: { PreToolUse: [ { matcher: Bash, hooks: [ { type: command, command: node .claude/hooks/pre-bash-guard.js } ] } ], PostToolUse: [ { matcher: Edit|Write, hooks: [ { type: command, command: npx prettier --write $CLAUDE_FILE_PATH } ] } ], SessionStart: [ { hooks: [ { type: command, command: node .claude/hooks/session-init.js } ] } ] }, rules: { paths: [.claude/rules/*.md] }, commands: { paths: [.claude/commands/*.md] }, skills: { paths: [.claude/skills/*/SKILL.md] }, agents: { paths: [.claude/agents/*.md] }, plugins: { marketplaces: [affaan-m/everything-claude-code], installed: [everything-claude-codeeverything-claude-code] }, mcpServers: { filesystem: { command: npx, args: [-y, modelcontextprotocol/server-filesystem, ./] } } }逐项拆解一下关键字段。apiKeyHelper是一个命令Claude Code 启动时会执行它来获取 Key。这里用echo $TAOTOKEN_API_KEY从环境变量读取避免明文。env块则把 Base URL 和 Key 注入到子进程环境保证 Hook 脚本、MCP 服务、Agent 调用都能拿到同一套凭证。hooks块按事件名分组每个事件下是 matcher 加 hooks 数组。PreToolUse的 matcher 写Bash表示只拦截 Bash 工具调用PostToolUse的Edit|Write表示文件编辑或写入后触发。Hook 脚本的退出码有讲究exit 0放行exit 2阻断操作并把 stderr 反馈给模型其他非零码视为警告。rules、commands、skills、agents四个块都用paths数组声明文件位置。Rules 是始终加载的 Markdown 提示词Commands 是/xxx触发的入口文件Skills 是带 frontmatter 的工作流模板Agents 是带工具集和模型声明的子代理定义。plugins块声明 marketplace 和已安装插件插件本质上是把 skills、agents、commands、hooks 打包分发。mcpServers块定义外部工具服务每个服务一个 command 加 argsClaude Code 启动时会拉起这些进程并通过 stdio 通信。提示如果你的项目里已经有.mcp.jsonClaude Code 会优先读它settings.json里的mcpServers作为补充。两者同时存在时注意不要定义同名服务。4. 七类机制各自的配置要点与调用链配置写完之后理解它们怎么协同工作才能在出问题时快速定位。Rules 是软约束写在.claude/rules/下的 Markdown 会拼进系统提示。比如你写一条所有新增函数必须有 JSDoc 注释模型会尽量遵守但不会强制阻断。它适合放编码规范、命名约定、项目背景这类希望模型知道的信息。Hooks 是硬约束因为它是真正执行的脚本。PreToolUse里exit 2能直接拦下工具调用PostToolUse能自动格式化文件。它适合放必须执行的动作比如提交前跑 lint、编辑后自动 prettier、会话开始时加载记忆。Commands 是用户入口.claude/commands/tdd.md对应/tdd命令。文件里可以写提示词也可以指定调用某个 Agent。它只负责用户输入什么触发什么不承载执行逻辑。Skills 是知识库.claude/skills/tdd-workflow/SKILL.md里写清楚遇到 TDD 场景该怎么做的步骤。它被 Agent 按需加载不占用主对话的上下文。Agents 是执行单元.claude/agents/tdd-guide.md的 frontmatter 里声明tools和model正文写它的职责。一个 Agent 可以引用多个 Skill也可以调用其他 Agent。调用链大致是这样用户输入/tdd 实现用户登录→ Command 文件被触发 → 它指定调用tdd-guideAgent → Agent 带着 Read/Write/Edit 工具接管 → 内部引用tdd-workflowSkill 获取步骤 → 全程受 Rules 约束、被 Hooks 监控。MCP 是外部工具层让 Claude 能调用 GitHub、数据库、部署平台等外部服务。它和内置工具的区别在于内置工具操作本地文件系统MCP 工具操作远程服务。配置好mcpServers后Claude 会在需要时自动调用对应服务。Plugins 是分发层把上面这些打包成可安装单元。用/plugin marketplace add和/plugin install两条命令就能装一套现成的配置。5. 验证启动后确认 MCP 加载、Hook 触发、命令调用都走通配置写完不算完得实际验证一遍。按下面步骤逐项确认。第一步启动 Claude Code看 MCP 服务是否加载。在对话框输入/mcp应该能看到filesystem服务状态为 connected。如果显示 failed检查npx是否能正常执行以及 args 里的路径是否存在。# 手动验证 MCP 服务能否启动 npx -y modelcontextprotocol/server-filesystem ./第二步验证 Hook 触发。随便让 Claude 编辑一个文件观察终端是否输出 prettier 的执行日志。如果没反应检查PostToolUse的 matcher 是否匹配到了工具名以及$CLAUDE_FILE_PATH变量是否被正确传入。# 单独测试 Hook 脚本 echo {tool_name:Edit,tool_input:{file_path:./test.js}} | node .claude/hooks/pre-bash-guard.js echo $?第三步验证 Command 调用。输入/tdd 写一个加法函数看是否触发了对应的 Agent。如果提示 command not found检查.claude/commands/目录下文件名是否和命令名一致。第四步验证 API 通道。在对话框问一个简单问题看是否正常返回。如果报 401检查ANTHROPIC_API_KEY是否指向了 TaoToken 的 Key如果报连接错误检查ANTHROPIC_BASE_URL是否写成了https://taotoken.net/api注意结尾没有斜杠。# 直接测试 API 通道 curl -s https://taotoken.net/api/v1/messages \ -H x-api-key: $TAOTOKEN_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d {model:claude-sonnet-4-20250514,max_tokens:64,messages:[{role:user,content:ping}]}返回里有content字段就说明通道正常。这一步能过后面七件套的模型调用就都有保障。6. 常见报错排查Hook 脚本不执行最常见的原因是文件没有可执行权限或者 shebang 写错。用chmod x加上权限脚本首行写#!/usr/bin/env node或#!/bin/bash。另外注意 Hook 的工作目录是项目根目录脚本里的相对路径要基于这个位置。MCP 服务启动失败先手动跑一遍npx命令看报错。如果是包下载慢可以提前npm install -g装好。如果是 stdio 通信问题检查服务是否往 stdout 输出了非 JSON 内容——MCP 协议要求 stdout 只走协议消息日志要写到 stderr。Agent 调用时模型报错检查 Agent frontmatter 里的model字段是否是 TaoToken 支持的模型名。如果用了不支持的模型标识请求会被拒绝。可以在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 查看当前支持的模型列表。Command 不生效确认文件名和命令名一致比如tdd.md对应/tdd。如果文件名带空格或特殊字符命令名会不匹配。另外检查settings.json里commands.paths的 glob 是否能匹配到文件。Key 泄露风险如果settings.json里直接写了 Key记得加进.gitignore。更稳妥的做法是用apiKeyHelper从环境变量或密钥管理服务读取配置文件里只留命令。并发 Agent 配额问题多 Agent 并行时会同时发起多个请求如果套餐有并发限制可能出现部分请求失败。可以在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 确认套餐的并发额度必要时在 Agent 配置里限制并行数量。7. 下一步按场景选择接入方式七件套配好之后接下来就是按实际场景选择用哪条通道。如果你主要是排查接入问题、验证 Key 和 Base URL 是否配对直接去 API Keys 页面管理凭证配合接入文档对照字段https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 和 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你想先验证模型对话是否正常不涉及复杂扩展用模型对话页面发一条消息最快https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你打算长期用 Claude Code 做编码、跑 Agent 工作流那 coding-plan 套餐更合适配额和并发都按编码场景优化过https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后提一个实际踩过的坑Hooks 里的脚本如果执行时间过长会阻塞整个工具调用链。建议在 Hook 里加超时控制比如用timeout 5s node script.js避免一个卡住的脚本拖垮整个会话。
返回列表