Claude Code 里挂 gsearch-cli 搜索 Skill,Base URL 填 TaoToken
2026/9/21 0:33:01 网站建设 项目流程

1. Claude Code 搜不到新东西,卡点其实不在模型

Claude Code 本身不带联网搜索能力,这是很多人第一次认真给它挂搜索 Skill 或者 MCP 时撞上的第一堵墙。模型再强,训练截止之后发生的更新它一概不知道,你问一个 2026 年才发布的库和它的新版接口,它要么给你旧参数,要么一本正经地编一段看起来很专业的假文档。我前后装过五六种搜索方案,有要自己申请搜索 API Key 的,有把整页 HTML 塞回上下文的,有返回一堆 2019 年链接的,共同点是配置成本高、结果不稳定,用两天就想卸掉。

这篇要讲的是我自己跑通的一条组合:用 Rust 写的单二进制搜索工具 gsearch-cli 做联网搜索,用 Claude Code 的 Skill 机制把它挂上去,同时把 Claude Code 的 Base URL 指向 TaoToken。关键在于把两件事拆开:搜索走 gsearch-cli 复用 Gemini CLI 的 OAuth 认证,模型通道走 TaoToken。这样 Skill 每轮把搜索结果塞回上下文时,真正烧 Token 的那条链路是你自己可控的,而不是被搜索工具的认证和额度牵着走。

适合谁看:已经在用 Claude Code、想让 Agent 查最新文档和实时信息、又不想在 Prompt 里写一大段「请使用搜索工具」说明的人。下面所有步骤都能直接复制。

1.1 大多数搜索插件为什么用两天就卸

先说清楚痛点,不然你没法判断换工具是不是白折腾。第一类是基于网页抓取的方案,返回的是压缩过的 HTML 或者一大段无语义文本,模型要从里面捞答案,上下文瞬间被塞满,还没引用编号可以核对。第二类是要求你自己注册某家搜索 API、填 Key、配额度的方案,配置流程比写业务代码还长,Key 过期了你还得自己发现。第三类是搜索能力确实有,但结果不带引用编号和原文链接,模型说「根据最新文档」你没法点进去看它到底看的是哪一页。

还有一个常被忽略的成本:Skill 每轮把搜索结果追加进上下文,这些内容最终都要经过 Claude Code 的模型通道计费。搜索工具本身免费,不代表整套链路免费。所以选搜索工具要看两件事——搜索质量和它塞回上下文的体积,后者决定了你每个月的模型开销。

1.2 gsearch-cli 只管一件事,而且管得干净

gsearch-cli 是一个 Rust 写的单二进制命令行工具,启动几乎没有延迟,体积小到放进 PATH 里都不占地方。它底层调用的是 Gemini API 的 grounded search,比爬虫方案稳,结果自带引用编号和原文链接,模型引用哪一条你能直接点开验证。

最省事的一点是它复用了 Gemini CLI 的 OAuth 认证:如果你的机器上装过官方 gemini-cli 并登录过,它直接读~/.gemini/oauth_creds.json里的 token 就能用,装完不弹授权窗口。没用过 Gemini CLI 也没关系,它自带一个本地 OAuth 流程,第一次运行自动打开浏览器点一下授权即可。access token 的刷新它在后台自己做,不用你记过期时间。企业内网那套自定义根证书和网络环境变量它也会自动读,不用手动塞 ca 文件。MIT 协议开源,随便改。

2. 挂 Skill 之前,先把模型通道和搜索通道拆开

很多人装完搜索工具就直接进 Claude Code 试,然后发现响应变慢、额度消耗变快,以为是搜索坏了。其实搜索只负责「把结果拿回来」,拿回来的内容要经过 Claude Code 的模型通道才能变成回答。这两条链路是独立的,得分开配置、分开验证。

2.1 两条链路分开之后各管什么

搜索链路:Claude Code 通过 Skill 触发gsearch命令,gsearch-cli 用 Gemini OAuth 发请求,返回带引用编号的搜索结果文本。这条链路不经过任何模型通道,和你的 Claude Code 额度无关。

模型链路:Skill 把搜索文本追加进上下文,Claude Code 带着这段文本去请求模型,这条链路才是计费和限速发生的地方。把它指向 TaoToken,你就有一个独立的 Key、独立的额度视图,出问题时也容易定位到底是搜索挂了还是模型通道挂了。

2.2 先拿一把 Key,再去改 Base URL

打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=claude_code_gsearch_skill ,注册账号后进控制台,在 API Keys 页面创建一把 Key,形如sk-开头的一长串。这串东西只显示一次,复制到本地密码管理器或者临时文件里。控制台入口和 Key 管理页面在这里:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=claude_code_gsearch_skill&utm_campaign=rewrite 。

这里有个容易忽略的点:不要拿搜索工具的凭证去填模型通道,也不要拿模型 Key 去填搜索工具。两套凭证服务的是两件完全不同的事,混用只会让你在排查时失去线索。

3. 可复制配置:从装二进制到 Skill 落地

下面按顺序来,每一步都能单独验证。建议不要跳步,尤其是第 3.2 步的命令行自检,它是后面所有排查的基线。

3.1 装 gsearch-cli

macOS 用 Homebrew 最省事:

brew install aeroxy/tap/gsearch

有 Rust 环境的话用 cargo:

cargo install gsearch-cli

装完确认一下二进制在 PATH 里,这一步的结果后面要写进 Skill 配置:

which gsearch gsearch --version

如果which输出为空,把 cargo 的 bin 目录加进 shell 配置,常见位置是~/.cargo/bin

echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc source ~/.zshrc

3.2 先让搜索单独跑通

不要直接进 Claude Code,先在终端里确认搜索本身没坏。第一次运行会走 OAuth:

gsearch --login

浏览器点完授权后,直接搜一条实时性强的查询:

gsearch 新加坡天气

正常输出应该是一段结构化文本,包含结果条目、引用编号和原文链接。想换账号重新授权就用gsearch --login,它会覆盖本地凭证文件。

搜索语句不需要加引号,中文直接跟在命令后面就行。如果这一步就有问题,后面全部不用做,先把这一步解决。

3.3 把 Skill 丢进 skills 目录

gsearch-cli 项目里自带 Claude Code Skill 文件。把它放到你所用 Claude Code 插件的skills/目录下,常见做法是给每个 Skill 建一个独立子目录:

mkdir -p ~/.claude/skills/gsearch cp <gsearch-cli仓库路径>/skills/gsearch/SKILL.md ~/.claude/skills/gsearch/

Skill 文件里最关键的是两样东西:什么时候触发、以及怎么调用。参考结构如下,重点是 description 要写清楚「需要最新信息时才用」,不然模型会滥用它,每轮都去搜一遍,上下文和额度都会很难看。

--- name: gsearch description: 当问题涉及最新文档、版本变化、实时数据或训练截止之后的信息时使用。调用 gsearch 命令获取带引用编号的搜索结果。 allowed-tools: Bash(gsearch:*) --- # gsearch 需要联网信息时执行: ```bash gsearch <查询词> ``` 返回结果带有引用编号和原文链接,回答时应保留引用编号。

二进制路径建议在 Skill 里写绝对路径,或者确认 Claude Code 启动时继承的 PATH 里包含gsearch。后者经常出问题——你在终端里which gsearch有输出,但 Claude Code 作为 GUI 或由别的进程拉起时 PATH 不一样,Skill 就找不到命令。写绝对路径最稳:

which gsearch # 输出示例:/opt/homebrew/bin/gsearch

把这个绝对路径填进 Skill 的调用说明里。

3.4 把 Base URL 指向 TaoToken

现在配置模型通道。Claude Code 读取ANTHROPIC_BASE_URL和对应的认证变量,写进 shell 配置让每次开终端都生效:

echo 'export ANTHROPIC_BASE_URL="https://taotoken.net/api"' >> ~/.zshrc echo 'export ANTHROPIC_AUTH_TOKEN="sk-你刚才创建的Key"' >> ~/.zshrc source ~/.zshrc

注意 Base URL 就是https://taotoken.net/api,不要加/v1,不要带任何官网后缀或查询参数。SDK 会自己在后面拼具体路径,你多写一段就会变成两个路径叠在一起,直接 404。这个坑后面第 5 节还会单独展开。

4. 验证请求:两条通道各测一次

配置完不要凭感觉,按下面两步各测一次。顺序很重要:先搜后问,这样出错时能立刻分清是哪条链路的问题。

4.1 搜索通道:命令行再跑一次

gsearch 新加坡天气

看到带编号的引用条目就算通过。这一步和 Claude Code 完全无关,纯命令行,通过就意味着 OAuth、网络、证书、结果解析都没问题。如果这里失败,别去动 Base URL,问题不在模型通道。

4.2 模型通道:回 Claude Code 查一个新文档

启动 Claude Code,问一个明确需要联网的问题,比如让它查某个 2026 年才更新的框架文档并给出引用编号:

帮我查一下 XXX 框架 2026 年发布的新版配置格式,给出引用编号和原文链接

正常表现是:Claude Code 调用gsearch,把结果带进上下文,然后给出回答并在句末标注引用编号。这时你可以顺着编号去核对原文,验证的不只是「它能不能搜」,而是「它搜到的东西是不是真的」。

实测下来,这个组合最舒服的地方是回答里能看到引用编号,模型有没有真的去搜一目了然,不用猜。

如果你还想单独验证模型通道是否通,可以在模型对话页面发一条最简单的请求:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=claude_code_gsearch_skill&utm_campaign=rewrite 。返回正常说明 Key 和额度都没问题,再去查 Claude Code 侧配置。

5. 报错排查:Base URL 写错是重灾区

把常见错误和现象列成一张表,出问题时按行对号入座,比盲改配置快得多。

现象大概率原因处理方式
Claude Code 报 404 或路径不存在Base URL 多写了/v1改回https://taotoken.net/api
请求发出去但认证失败Base URL 带了官网后缀或查询参数只保留域名加/api
Skill 完全没被触发description 写得过于宽泛收紧触发条件,只限「最新信息」场景
Skill 触发但报命令不存在Claude Code 的 PATH 里没有 gsearch在 Skill 里写二进制绝对路径
命令行能搜,Claude Code 里搜不动权限未放行检查 Skill 的 allowed-tools 是否包含 Bash(gsearch:*)
响应突然变慢、额度掉得快搜索结果回灌过多在 Skill 里限定结果条数,或缩小查询范围

5.1 Base URL 的三种错写法

第一种,写成https://taotoken.net/api/v1。SDK 拼接时会变成/api/v1/v1/...,直接 404。第二种,把官网首页地址整段粘过去,带上?utm_source=...那一串,路径和参数全乱,请求根本到不了该去的地方。第三种,末尾多一个斜杠,看起来无害,但部分客户端拼接时会产生双斜杠,某些网关会判定路径不匹配。

正确的写法只有一种,就是一行:

export ANTHROPIC_BASE_URL="https://taotoken.net/api"

改完记得重新source一次 shell 配置,或者干脆开一个新终端窗口。已经跑着的 Claude Code 进程不会自动读取新变量,这是很多人改完配置「没生效」的真实原因。

5.2 搜索侧的三个小坑

第一个坑是凭证文件被覆盖。如果你同时在用官方 gemini-cli,用gsearch --login换账号可能把本地凭证换成另一个账号,官方 CLI 那边跟着变。心里要有数,别以为工具坏了。

第二个坑是企业内网的自定义根证书场景。gsearch-cli 会自动读取系统环境里已有的网络配置和证书链,但如果你手动设过互相冲突的变量,它会读到错的那个。排查方式是开一个干净的 shell 再跑一次gsearch 新加坡天气,对比结果。

第三个坑是查询词太宽泛。gsearch Rust回来的东西大概率没有针对性,引用编号看着有但内容用不上。把查询写成具体的句子,比如带版本号、带时间范围,结果质量差别很大。

6. 通道拆开之后,Agent 才算真的能联网

Skill 路径和二进制配置照着项目自带的文件抄就行,那部分原作者已经写得很细。真正需要你自己动手的是通道和 Key:搜索走 gsearch-cli 的 Gemini OAuth,模型调用走 TaoToken,两条路各管各的,出问题时你能一眼看出是哪边挂了。

Key 和通道从这里拿:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=claude_code_gsearch_skill ,创建完直接去 API Keys 页面复制:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=claude_code_gsearch_skill&utm_campaign=rewrite 。接入细节和参数说明在文档里:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=claude_code_gsearch_skill&utm_campaign=rewrite 。

如果你不只是想挂搜索,还想把 Claude Code 当作日常编码和 Agent 的主力通道,长期跑的话看 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=claude_code_gsearch_skill&utm_campaign=rewrite 。最后给你一个实用习惯:每次改完 Base URL 或 Skill 配置,先跑一遍gsearch 新加坡天气,再让 Claude Code 查一条当天的新信息,两次都通过再开始正式干活,能省掉大量「到底是哪坏了」的猜测时间。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询