资讯详情

Claude Code(6):Skills、Commands、Agents 与 Plugins 的 settings.json 配置骨架与验证

📅 2026/9/30 18:46:13 | 华诺云谱 👁 阅读
Claude Code(6):Skills、Commands、Agents 与 Plugins 的 settings.json 配置骨架与验证
1. 为什么你的 Claude Code 扩展总是散落一地很多人用 Claude Code 用了一两个月目录里已经堆了七八个 Skill、五六个 Command、两三个 Agent但每次换台机器或者拉个新分支就得重新翻文档、对路径、改配置。更麻烦的是这些扩展之间没有统一的声明入口settings.json里东一块西一块时间一长自己都记不清哪个 Skill 挂在哪个目录、哪个 Agent 依赖哪个 Skill。这个问题的根源在于Claude Code 的四大扩展机制——Skills、Commands、Agents、Plugins——各自有不同的存放约定和加载规则但它们最终都要在settings.json这个配置骨架里找到自己的位置。如果你只是零散地往.claude/目录里丢文件短期能用长期一定乱。我试过把 Skills 目录声明、Commands 注册、Agents 定义、Plugins 加载项全部收敛到一份settings.json骨架里配合 TaoToken 统一 Key 和 API 通道换机器时只需要复制一个配置文件加一个环境变量五分钟就能恢复完整工作流。这篇文章就把这套骨架拆开讲清楚每一项都给出可复制的配置片段和逐项验证动作。适合谁看已经能跑通 Claude Code 基础对话、想把手头扩展统一管理的开发者。如果你还没装 Claude Code建议先跑通一次基础请求再回来。核心检索词先明确Claude Code 的settings.json是扩展机制的配置骨架Skills 靠目录声明、Commands 靠文件注册、Agents 靠 Markdown 定义、Plugins 靠清单加载四者通过统一的配置入口协同工作。2. TaoToken 前置统一 Key 与 API 通道在动settings.json之前先把 API 通道固定下来。Claude Code 默认走 Anthropic 官方端点但如果你希望 Key 管理、模型切换、用量查看都在一个地方完成可以用 TaoToken 作为统一入口。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。这一步的意义在于后面settings.json里所有涉及模型调用的配置Base URL 和 Key 都指向同一个通道不用在多个配置文件之间来回改。你只需要在环境变量里设一次所有 Skill、Agent、Plugin 触发的请求都走这条通道。具体操作分三步。第一步去控制台创建 API Key地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 创建后在 API Keys 页面复制页面地址 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。第二步把 Key 写进 shell 环境变量不要硬编码进settings.json# ~/.zshrc 或 ~/.bashrc export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的TaoToken密钥第三步验证环境变量生效source ~/.zshrc echo $ANTHROPIC_BASE_URL # 期望输出https://taotoken.net/api这里有个容易踩的坑Claude Code 读取的是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个变量名不是OPENAI_开头的。如果你之前配过其他工具环境里可能残留了冲突的变量用env | grep ANTHROPIC检查一遍确保只有一套。模型 ID 方面Claude Code 内部会传claude-sonnet-4-5这类标识TaoToken 通道会做映射。你不需要在settings.json里手动指定模型 ID除非某个 Agent 需要固定用某个模型那就在 Agent 的 frontmatter 里写model: sonnet或model: inherit。如果你打算长期跑编码任务或者多 Agent 协作建议了解一下 Coding Plan地址 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 它针对高频编码场景做了通道优化。想先验证模型对话是否通可以用模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 发一条测试消息确认返回正常再继续。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 遇到参数问题先查这里。Claude Code 专用接入说明在 https://taotoken.net/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有针对settings.json的字段对照。3. 可复制的 settings.json 配置骨架现在进入正题。Claude Code 的settings.json有两个层级用户级在~/.claude/settings.json项目级在项目根/.claude/settings.json。项目级会覆盖用户级的同名配置。下面这份骨架以项目级为例你可以直接复制到.claude/settings.json。先给一份完整的 JSON 骨架然后逐项拆解{ permissions: { allow: [ Read, Grep, Glob, Bash(git diff:*), Bash(npm test:*) ], deny: [ Bash(rm -rf:*), Read(./.env) ] }, skills: { directory: .claude/skills, autoLoad: true }, commands: { directory: .claude/commands, register: [ dev-start, deploy, format ] }, agents: { directory: .claude/agents, definitions: [ { name: pr-reviewer, file: pr-reviewer.md, model: sonnet, skills: [code-review, security-check] }, { name: test-automation, file: test-automation.md, model: inherit, skills: [test-runner] } ] }, plugins: { marketplaces: [ { name: team-marketplace, source: mycompany/team-plugins } ], enabled: [ company-standardsteam-marketplace, django-toolsteam-marketplace ] }, env: { ANTHROPIC_BASE_URL: https://taotoken.net/api } }这份骨架的关键设计思路是把四类扩展的“声明”和“实体”分开。settings.json只负责声明目录位置、注册名称、启用列表真正的 Skill 内容、Command 模板、Agent 定义仍然放在各自的 Markdown 文件里。这样配置文件和内容文件解耦改内容不用动配置改配置不影响内容。逐项说明。permissions块控制工具权限allow列表里的Bash(git diff:*)表示允许执行git diff开头的命令deny里的Read(./.env)阻止读取环境文件。这个块和扩展机制配合使用——Agent 里声明的tools字段如果超出allow范围会被拦截。skills块的directory指向 Skill 根目录autoLoad: true表示启动时扫描该目录下所有含SKILL.md的子目录并注册。Skill 的自动触发依赖SKILL.mdfrontmatter 里的description字段Claude 根据描述判断是否激活。commands块的register数组显式列出要注册的 Command 名称对应.claude/commands/下的同名.md文件。显式注册的好处是避免误加载草稿文件。agents块的definitions数组是重点。每个 Agent 声明name、file、model、skills四个字段。skills字段预加载指定 Skill形成“知识决策”组合。model可以写sonnet、opus或inheritinherit表示继承主对话的模型。plugins块的marketplaces声明插件来源enabled列出启用的插件。插件安装后其内部的 Skills、Commands、Agents 会自动合并到对应目录的加载范围。env块里放ANTHROPIC_BASE_URL这样项目级配置也能固定 API 通道。注意 Key 不要写在这里用环境变量注入。如果你用的是 Codex 风格的auth.json对应字段是base_url和api_key但 Claude Code 走的是settings.json 环境变量组合不要混用。Cline MCP 的配置在.mcp.json里和settings.json是并列关系MCP 服务器声明放.mcp.json扩展声明放settings.json。4. 验证请求与成功结果配置写完不验证等于没写。这一节给出逐项验证动作每项都有明确的期望输出。先验证settings.json语法正确cat .claude/settings.json | python3 -m json.tool /dev/null echo JSON OK # 期望输出JSON OK如果报Expecting property name enclosed in double quotes说明有尾逗号或单引号用编辑器格式化一遍。验证 Skills 目录被正确扫描ls .claude/skills/ # 期望看到类似code-review security-check test-runner然后在 Claude Code 对话里输入/skills或直接问“当前有哪些 Skill 可用”期望返回已注册的 Skill 列表。如果某个 Skill 没出现检查它的SKILL.mdfrontmatter 是否有name和description字段。验证 Commands 注册ls .claude/commands/ # 期望看到dev-start.md deploy.md format.md在对话里输入/dev-start期望触发对应 Command 的提示词模板。如果提示Unknown command检查settings.json的register数组里名称是否和文件名一致不带.md后缀。验证 Agents 定义ls .claude/agents/ # 期望看到pr-reviewer.md test-automation.md在对话里输入pr-reviewer 审查最近的改动期望 Agent 被激活并开始执行git diff。如果 Agent 没响应检查 frontmatter 里的tools字段是否包含Bash以及permissions.allow是否放行了Bash(git diff:*)。验证 Plugins 加载claude plugin list # 期望输出已启用的插件列表包含 company-standardsteam-marketplace如果插件没加载先确认 marketplace 已添加claude plugin marketplace list再确认enabled数组里的名称拼写和 marketplace 里的插件名一致。最后做一次端到端验证发一条会触发 Skill 自动加载的请求比如“帮我审查一下最近的代码变更”期望 Claude 自动激活code-reviewSkill并按照SKILL.md里的指令输出结构化审查意见。如果它没有自动激活说明description写得不够明确把触发场景写具体一点。成功的结果是一条请求同时走通了 Skill 自动加载、Agent 决策、Command 显式调用三条路径且所有请求都通过ANTHROPIC_BASE_URL指向的 TaoToken 通道。你可以在 TaoToken 控制台的用量页面看到对应的请求记录。5. 本篇常见错排查配置过程中最容易撞上的几个报错这里对照真实错误信息给出排查路径。401 Unauthorized。错误信息通常是{error:{type:authentication_error,message:invalid x-api-key}}。原因有三个Key 没设进环境变量、Key 复制时带了空格、ANTHROPIC_BASE_URL和 Key 不匹配。排查动作echo $ANTHROPIC_API_KEY | wc -c看长度是否合理echo $ANTHROPIC_BASE_URL确认是https://taotoken.net/api而不是别的地址。如果 Key 是在别的平台创建的去 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 重新生成一个。local proxy failed。这个报错说明 Claude Code 尝试走本地代理但连接失败。检查是否有残留的HTTP_PROXY或HTTPS_PROXY环境变量env | grep -i proxy。如果有unset掉再重试。Claude Code 直连ANTHROPIC_BASE_URL即可不需要额外代理层。reading choices 相关报错。典型信息是Cannot read properties of undefined (reading choices)。这通常发生在响应格式不符合预期时根源是 Base URL 指向了一个返回 OpenAI 格式的端点而 Claude Code 期望 Anthropic 格式。确认ANTHROPIC_BASE_URL是https://taotoken.net/apiTaoToken 通道会做格式适配。如果还是报错去接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 核对端点路径。OAuth 相关报错。信息类似OAuth token expired或failed to refresh token。Claude Code 某些版本会尝试 OAuth 流程如果你用的是 API Key 模式需要在settings.json里显式关闭 OAuth加一个authMode: apiKey字段。或者检查~/.claude/下是否有残留的credentials.json删掉后重新用环境变量启动。Skill 不自动触发。不是报错但很常见。原因是SKILL.md的description写得太泛比如只写“代码审查”Claude 无法判断何时激活。改成“当用户提到代码审查、PR 审核、代码质量检查时自动激活”触发率会明显提升。Agent 的 tools 被拦截。错误信息类似Tool Bash not allowed by permissions。对照settings.json的permissions.allow数组把 Agent 需要的工具加进去。注意Bash类工具要写具体命令前缀比如Bash(npm test:*)不要只写Bash。Plugin 安装后 Skill 不生效。检查插件的plugin.json里skills目录路径是否正确以及插件的 Skill 是否和项目级 Skill 重名。重名时项目级优先插件级的会被忽略。排查顺序建议先确认环境变量再确认settings.json语法再确认各目录文件存在最后看权限和模型配置。大部分问题出在前两步。6. 把配置变成可迁移的资产走到这里你已经有一份能跑的settings.json骨架了。但骨架的价值不在于“能跑”而在于“能迁移”。我自己的做法是把这份配置和.claude/目录一起纳入 Git 管理.gitignore里只排除credentials.json和本地临时文件。这样新机器上git clone之后设两个环境变量就能恢复完整工作流。如果你要分享给团队把 Skills、Commands、Agents 打包成 Plugin 是更规范的做法。打包后在settings.json的plugins.enabled里加一行新同事claude plugin install一条命令就装好了。Plugin 的版本号在plugin.json里管理升级时改版本号重新发布即可。长期跑编码任务的话Coding Plan 通道在高频请求下更稳地址 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。想快速验证某个模型的行为用模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 发一条消息比改配置快得多。最后留一个实用技巧在settings.json里加一个$schema字段指向 Claude Code 的配置 schema 地址编辑器就能给你字段补全和类型检查写配置时少踩一半语法坑。这个字段不影响运行纯开发体验优化。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑