1. Elastic AI agent skills 是什么为什么要把 Claude Code 的 endpoint 换掉Elastic AI agent skills 是 Elastic 官方开源的一套 Agent Skills 包仓库地址在elastic/agent-skills。它做的事情很具体把 Elasticsearch、Kibana、Fleet、Observability、Elastic Security 这些产品的操作知识拆成一个个独立的 skill 文件夹每个文件夹里放一个SKILL.md里面写清楚这个 skill 叫什么、什么时候该用、具体怎么调 API。Claude Code 启动时会读取这些 skill 的名称和描述平时不加载全文只有检测到你在做相关任务时才把完整说明读进来。这样 agent 默认保持轻快需要深度知识时又能拿到流程化的操作步骤。这套东西适合谁已经装好 Claude Code、手上有 Elasticsearch 集群或者 Kibana 环境、想让 AI 帮你写 ES|QL 查询、建 dashboard、配 Fleet policy、排查安全告警的开发者。它不是一个独立工具而是给现有 coding agent 加装的专业知识层。那为什么要把 Claude Code 的 endpoint 改到 TaoToken原因很直接Claude Code 默认走 Anthropic 官方通道国内直连经常超时而且如果你同时用多个模型、多个 agent每个都要单独配 Key 很麻烦。TaoToken 提供统一的 API 入口一个 Key 就能调 Claude 系列模型Claude Code 只需要把ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址其余请求格式完全不变。这样 Elastic skills 的调用链路就变成Claude Code → TaoToken → 模型 → 返回 skill 执行结果鉴权和计费都收拢到一处。我实测下来改 endpoint 这一步不复杂但有几个坑环境变量名写错、Base URL 多带斜杠、Key 没配对都会导致 401 或者连接失败。下面按顺序把配置、验证、排障都走一遍。2. 前置准备TaoToken Key、Claude Code 与 Elastic skills 安装在动 endpoint 之前先把三样东西准备好TaoToken 的 API Key、能正常启动的 Claude Code、以及装好的 Elastic skills。先说 TaoToken 这边。打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后在控制台里创建 API Key。创建入口在 https://taotoken.net/console/api-keys 进去之后点新建复制出来的 Key 一般长这样sk-开头的一串字符。这个 Key 只显示一次先存到安全的地方。如果你还没决定用哪个模型可以先去模型对话页面 https://taotoken.net/models 看看当前支持的模型列表Claude Code 场景下选 Claude 系列就行。然后是 Claude Code。确认你本地能跑claude命令claude --version有输出即可。Claude Code 读取环境变量的方式很标准主要认这几个ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY或者ANTHROPIC_AUTH_TOKEN。我们要改的就是ANTHROPIC_BASE_URL把它从默认的 Anthropic 地址换成 TaoToken 的 API 地址https://taotoken.net/api。注意这里不要加 UTM 参数API 地址就是干净的https://taotoken.net/api。最后是 Elastic skills。用 npx 装最省事前提是环境里有 Node.js 和 npx。先列一下有哪些 skill 可用npx skills add elastic/agent-skills --list这条命令会把仓库 clone 下来然后打印出 33 个 skill 的名称和描述。确认没问题后针对 Claude Code 安装npx skills add elastic/agent-skills -a claude-code交互式提示里会让你选具体装哪些 skill用空格切换回车确认。安装完成后skill 会被复制到~/.claude/skills/目录下每个 skill 一个文件夹。如果你只想装某一个比如 ES|QL 相关的npx skills add elastic/agent-skills --skill elasticsearch-esql -a claude-code装完之后Claude Code 在启动时就能发现这些 skill。你可以用ls ~/.claude/skills/确认目录里有没有elasticsearch-esql、kibana-dashboards这些文件夹。注意skills 安装时会复制到项目目录或 home 目录仓库后续更新不会自动同步。用 npx 安装默认走 symlink更新一次所有 agent 都能刷新如果是本地 clone 安装的需要重新跑 installer 加--force。三样齐了之后就可以进入 endpoint 配置环节。3. 可复制配置把 Claude Code 的 endpoint 指向 TaoToken这一步是全文的核心。Claude Code 的配置分两种方式环境变量和 settings 文件。环境变量适合临时测试settings 文件适合长期使用。两种我都给出来你按自己的习惯选。先看环境变量方式。在~/.zshrc或~/.bashrc里加这几行export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的TaoToken密钥保存后source ~/.zshrc让它生效。这里的关键是ANTHROPIC_BASE_URL的值必须是https://taotoken.net/api结尾不要带斜杠也不要带任何查询参数。Claude Code 会在后面自动拼接/v1/messages这类路径。如果你更喜欢用 settings 文件Claude Code 支持在项目根目录或用户目录放.claude/settings.json。内容如下{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥 } }这个文件放在~/.claude/settings.json是全局生效放在项目里的.claude/settings.json只对当前项目生效。我一般把 Key 放全局项目里只覆盖模型相关的配置。如果你用的是 Codex 或者 Cline 这类也走 Anthropic 兼容接口的工具配置思路一样只是文件位置不同。Codex 认~/.codex/auth.jsonCline 在 VSCode 设置里填 Base URL 和 Key。不管哪个工具三件套都是Base URL 填https://taotoken.net/apiKey 填 TaoToken 的 KeyModel ID 填你要用的 Claude 模型名。配置写完之后先别急着跑 skill用一条最简单的命令验证通道是否打通claude -p reply with ok如果返回ok或者类似的正常回复说明 Claude Code 已经通过 TaoToken 拿到模型响应了。如果报 401说明 Key 不对如果报连接超时说明 Base URL 写错了或者网络有问题。这一步过了再进下一步验证 skills。提示不要把 Key 硬编码到会提交到 git 的文件里。settings.json 如果放项目里记得加进.gitignore。4. 验证请求跑一次 elasticsearch-esql skill 并确认走的是 TaoToken通道打通后来验证 Elastic skills 是否真的能通过 TaoToken 工作。我们拿elasticsearch-esql这个 skill 做例子它的作用是执行 ES|QL 查询适合做日志分析、指标聚合、从查询结果生成图表。在 Claude Code 的聊天窗口里输入/elasticsearch-esqlClaude Code 会识别到这个 skill然后向你索要连接 Elasticsearch 需要的变量通常是集群地址、认证信息这些。你按提示填进去。填完之后就可以提问了。比如what are the indices in the clusters?Claude Code 会加载elasticsearch-esql的完整说明按照里面写的流程去调 Elasticsearch 的 API把索引列表拉回来。如果一切正常你会看到返回的索引名称列表。再试一个更贴近实际场景的用 ES|QL 查一下最近一小时 error 级别的日志数量按 service.name 分组这时候 skill 会生成对应的 ES|QL 语句比如FROM logs-* | WHERE timestamp NOW() - 1 hour AND log.level error | STATS count COUNT(*) BY service.name | SORT count DESC然后通过 Elasticsearch 的_query接口执行把结果返回给你。整个过程里Claude Code 负责理解你的意图、生成查询、调用 API而模型推理这部分请求是发往 TaoToken 的。怎么确认请求确实经由 TaoToken 完成两个办法。第一看 TaoToken 控制台的用量记录https://taotoken.net/console 里会有请求日志和 token 消耗你跑完 skill 后刷新一下能看到对应的调用记录。第二临时把ANTHROPIC_BASE_URL改回默认值再跑同样的命令如果报连接错误或者超时说明之前能跑通确实是靠 TaoToken 通道。我试过在同一个会话里连续跑多个 skill比如先/elasticsearch-esql查数据再切到kibana-dashboards建可视化Claude Code 会根据任务自动切换加载对应的 skill模型请求始终走同一个 endpoint。这种统一入口的好处是你不用为每个 skill 单独配 Key也不用担心中间某个环节的鉴权不一致。5. 常见报错排查401、local proxy failed、reading choices、OAuth配置过程中最容易撞上的几类错误我按实际遇到的顺序列一下每个都给排查方向。401 Unauthorized。这是最常见的。原因通常是 Key 没配对或者环境变量没生效。先确认echo $ANTHROPIC_API_KEY能打印出你的 Key如果为空说明source没执行或者写错了文件。再确认 Key 本身有没有多余空格复制的时候容易带上换行。如果用的是 settings.json检查 JSON 格式是否合法多一个逗号都会导致解析失败。还有一种情况是 Key 被禁用或额度用完去 https://taotoken.net/console/api-keys 看一下状态。local proxy failed。这个报错通常出现在 Claude Code 尝试连接 Base URL 但连不上的时候。先确认ANTHROPIC_BASE_URL的值是https://taotoken.net/api没有多余斜杠没有拼写错误。然后确认本机网络能访问这个地址可以用curl -I https://taotoken.net/api看返回头。如果 curl 也失败说明是网络层的问题不是配置问题。reading choices 相关报错。这类错误一般出现在模型返回格式不符合预期的时候。检查你选的 Model ID 是否在 TaoToken 支持的列表里去 https://taotoken.net/models 确认一下。如果 Model ID 写错请求会发到一个不存在的模型返回体结构不对Claude Code 解析时就报错。另外确认没有在 settings 里同时配了多个冲突的模型参数。OAuth 相关报错。Claude Code 某些版本会尝试走 OAuth 流程如果你已经用 API Key 鉴权可能会冲突。解决办法是确保没有残留的 OAuth token 文件检查~/.claude/目录下有没有credentials.json之类的文件有的话先备份再删掉让 Claude Code 走纯 API Key 模式。skill 加载了但没执行。有时候/elasticsearch-esql能识别但提问后没反应。先确认 skill 目录确实在~/.claude/skills/下ls ~/.claude/skills/elasticsearch-esql/能看到SKILL.md。然后确认 Elasticsearch 连接变量填对了集群地址、认证信息缺一个都会导致 skill 执行中断。如果还是不行在 Claude Code 里用/skills命令看看当前加载了哪些 skill。注意排障时优先用最小复现先跑claude -p reply with ok确认通道再跑 skill。这样能把「通道问题」和「skill 问题」分开定位。6. 长期使用建议与接入入口跑通一次之后如果你打算长期用 Elastic skills 配合 Claude Code 做日常开发有几个点值得注意。skill 更新方面npx 安装的走 symlink跑npx skills check看有没有上游更新有的话npx skills update一次刷新所有 agent。本地 clone 安装的git pull之后重新跑./scripts/install-skills.sh add -a claude-code --force。别让 skill 版本落后太多Elastic 的 API 和最佳实践更新挺频繁的。模型选择方面Claude Code 做 skill 调用时对模型的指令遵循能力有要求选 Claude 系列里能力较强的型号生成 ES|QL 和调用 API 的准确率会高一些。具体哪个型号适合你的场景可以去 https://taotoken.net/models 对比或者直接在模型对话页面 https://taotoken.net/models 试几条查询看看效果。如果你要把这套配置带到团队里建议把 Base URL 和 Model ID 写进项目的.claude/settings.jsonKey 走环境变量或者团队统一的密钥管理不要提交到仓库。这样每个人 clone 下来只需要配自己的 Key 就能跑。接入相关的文档在 https://taotoken.net/doc API Key 管理在 https://taotoken.net/console/api-keys 。如果你主要做长期编码和 Agent 任务可以看看 Coding Plan 页面 https://taotoken.net/coding-plan 按用量规划比单次调用更划算。Claude Code 专用的接入说明在 https://taotoken.net/claudecode 。最后留一个实用技巧把常用的 ES|QL 查询模板存成 snippet配合elasticsearch-esqlskill 用每次让 Claude Code 基于模板改参数就行比从零描述需求快很多。skill 的价值在于它知道 Elasticsearch 的 API 怎么调、参数怎么传你只需要把业务意图说清楚。