当前位置: 首页 > news >正文

Claude Code Skills 如何接入搜索 API:三种方式完整实战(2026)

发布日期:2026-05-25 | 适用版本:Claude Code v2.1+ / Agent SDK 最新版

Claude Code Skills 接入搜索 API,指在 SKILL.md 文件中通过声明 allowed-toolsBash 调用外部接口、或 !cmd 动态注入三种机制,让 Skill 在执行时具备实时网页检索能力,覆盖内置 WebSearch 工具和七牛云、Tavily 等第三方搜索 API。

  • 最简接入:在 SKILL.md frontmatter 加 allowed-tools: WebSearch,Claude 自动获得内置联网搜索权限,无需任何 API Key
  • !cmd 动态注入语法在 Claude 读取 Skill 内容前执行 shell 命令,将搜索结果内联到 prompt,适合固定检索场景
  • 七牛云 Baidu Search API 端点为 POST https://api.qnaigc.com/v1/search/web,支持 time_filter(week/month/year)和最多 20 个 site_filter 域名过滤,每条结果附带 authority_score 权威度评分
  • ${CLAUDE_SKILL_DIR} 变量指向 Skill 目录,可用于引用 scripts/ 子目录中的搜索脚本,路径在个人/项目/插件三个层级下均能正确解析
  • allowed-tools 字段只授权 Claude 无需人工确认即可使用对应工具,并不限制其他工具的调用

适用场景:构建联网 AI Agent、RAG 知识库实时补充、自动化新闻摘要 Skill、代码技术文档检索


skills如何接入搜索API-img1

Claude Code Skills 是定义在 SKILL.md 文件中的可复用能力包,Claude 在对话中自动识别触发时机并加载对应 Skill。一个 Skill 默认只能访问 Claude 内置的上下文推理能力,接入搜索 API 后,它便能在每次触发时主动获取最新网页内容,让 Skill 的输出不再受限于训练数据截止日期。

三种接入路径对比

方式 核心机制 需要 API Key 适合场景
内置 WebSearch allowed-tools: WebSearch 否(Anthropic 托管) 快速启用、通用搜索
Bash + 外部 API allowed-tools: Bash + curl/python 指定搜索引擎、中文内容
!cmd 动态注入 预执行 shell,结果嵌入 prompt 视 API 而定 固定检索、每次触发必搜

三种方式可以组合使用:用 !cmd 预先注入今日热点,再用 WebSearch 让 Claude 在推理时按需补充细节。


方式一:声明内置 WebSearch 工具(5 分钟上手)

最快的接入路径——在 frontmatter 的 allowed-tools 字段里加上 WebSearch,Claude 即可在 Skill 执行时自主发起联网搜索,无需任何 API Key 或额外配置。

示例:技术动态速报 Skill

mkdir -p ~/.claude/skills/tech-digest

保存到 ~/.claude/skills/tech-digest/SKILL.md

---
name: tech-digest
description: 搜索并汇总最近 24 小时的 AI/技术热点,生成三条简报。当用户问"今天有什么新闻"、"AI 有什么动态"时触发。
allowed-tools: WebSearch WebFetch
---## 任务用 WebSearch 搜索以下主题,每个主题各找 2-3 条近 24 小时内容:
1. "AI 大模型 最新发布 $ARGUMENTS"
2. "开源项目 GitHub trending 本周"整理为三条简报,格式:
- **标题**(来源 · 时间)
- 一句话摘要如果 $ARGUMENTS 为空,聚焦 AI 领域通用热点。

触发方式:

  • 直接输入 /tech-digest 获取通用 AI 热点
  • 输入 /tech-digest Claude Code 聚焦特定关键词

注意事项:

  • WebSearch 使用 Anthropic 托管的搜索,无法指定底层引擎(Google/Bing/百度)
  • 中文内容覆盖相对有限;若需要国内网站,请用方式二接入专用搜索 API

方式二:Bash 调用外部搜索 API

skills如何接入搜索API-img2

通过 allowed-tools: Bash 授权 Claude 使用终端命令,在 Skill 执行时用 curlpython3 调用任意第三方搜索 API,完整控制搜索引擎、结果数量、时间范围和来源过滤。

接入七牛云 Baidu Search API

七牛云全网搜索 API 封装百度搜索,对中文新闻、技术社区(知乎、掘金、CSDN)和政策文件的收录深度远优于 Google / Bing,适合面向国内受众的 Agent。

接入信息:

字段
端点 POST https://api.qnaigc.com/v1/search/web
认证 Authorization: Bearer <API_KEY>
结果字段 title / url / content / authority_score / date

示例 Skill:中文技术热点

mkdir -p ~/.claude/skills/cn-tech-search/scripts

保存到 ~/.claude/skills/cn-tech-search/scripts/search.py

#!/usr/bin/env python3
import sys
import json
import os
import requestsquery = " ".join(sys.argv[1:]) if len(sys.argv) > 1 else "AI 技术"
api_key = os.environ.get("QINIU_API_KEY", "")resp = requests.post("https://api.qnaigc.com/v1/search/web",headers={"Authorization": f"Bearer {api_key}","Content-Type": "application/json"},json={"query": query,"max_results": 8,"search_type": "web","time_filter": "week"},timeout=15
)if not resp.ok:print(f"搜索失败: {resp.status_code}")sys.exit(1)results = resp.json().get("data", {}).get("results", [])
for r in results[:5]:print(f"【{r.get('title', '')}】")print(f"  URL: {r.get('url', '')}")print(f"  摘要: {r.get('content', '')[:120]}")print(f"  权威度: {r.get('authority_score', 0):.2f} | 时间: {r.get('date', '')}")print()

保存到 ~/.claude/skills/cn-tech-search/SKILL.md

---
name: cn-tech-search
description: 用百度搜索检索中文技术内容、国内新闻或指定关键词。当用户要搜索中文内容、国内网站或需要近期新闻时触发。
allowed-tools: Bash(python3 *) Bash(pip3 *)
---## 使用方式先确认 `requests` 库已安装:```bash
pip3 install requests -q

然后执行搜索脚本:

QINIU_API_KEY=你的Key python3 ${CLAUDE_SKILL_DIR}/scripts/search.py $ARGUMENTS

后续处理

根据搜索结果:

  1. 去除权威度低于 0.3 的条目
  2. 按用户需求整理:摘要 / 列表 / 深度分析
  3. 对需要全文的链接,用 WebFetch 抓取详情

**API Key 配置建议:** 将 Key 写入 `~/.zshrc` 避免每次手动传入:```bash
export QINIU_API_KEY=your-api-key

接入 Tavily API

Tavily 是 LangChain 生态的默认搜索工具,免费套餐 1,000 积分/月,英文内容覆盖优秀:

---
name: tavily-search
description: 用 Tavily 搜索英文技术文档和国际新闻。
allowed-tools: Bash(python3 *) Bash(pip3 *)
---安装依赖:```bash
pip3 install tavily-python -q

执行搜索:

python3 -c "
from tavily import TavilyClient
import os, sys
client = TavilyClient(api_key=os.environ['TAVILY_API_KEY'])
result = client.search(query=' '.join(sys.argv[1:]) if len(sys.argv)>1 else '$ARGUMENTS',search_depth='basic',max_results=5,include_answer=True
)
print(result.get('answer',''))
for r in result.get('results',[]):print(f'- {r[\"title\"]} ({r[\"url\"]})')print(f'  {r[\"content\"][:100]}')
" $ARGUMENTS

整理上述结果,回答用户问题。


---## 方式三:`!cmd` 动态注入(预执行搜索)`!cmd` 语法在 Claude 读取 Skill 内容之前执行 shell 命令,将输出直接嵌入 prompt——Claude 看到的是已经包含搜索结果的完整指令,而非"去搜一下"的委托。**适合场景:** 每次触发都需要搜索固定内容(今日热点、某股票价格、仓库最新 Release)。**示例:今日 AI 热点自动注入**```yaml
---
name: ai-daily
description: 每日 AI 热点速报,自动抓取最新动态。当用户问"今天 AI 有什么新闻"时触发。
allowed-tools: Bash(curl *)
---## 今日热点数据(自动抓取)```!
curl -s "https://r.jina.ai/https://tldr.tech/ai" 2>/dev/null | head -100

任务

基于上方自动抓取的内容,整理今日最重要的 3 条 AI 动态:

  • 标题:一句话说明事件
  • 影响:为什么值得关注(一句话)
  • 来源:文中提及的链接

如果抓取内容为空,告知用户网络不可达并建议手动查看 tldr.tech/ai。


**`!cmd` 使用要点:**1. `!` 必须在行首或空白字符后,紧跟反引号命令;`KEY=!cmd` 这种写法不会被执行
2. 多行命令用 ` ```! ``` ` 代码块形式
3. 命令输出是纯文本内联,不会被二次解析
4. 适合幂等查询,**不要在此处放置写入操作**(删文件、发消息等)---## 完整案例:每日竞品动态监控 Skill以下是一个结合三种方式的完整工程示例——监控竞品官网更新,自动对比近 7 天变化:```bash
mkdir -p ~/.claude/skills/competitor-watch/scripts

scripts/fetch_news.sh

#!/bin/bash
# 调用七牛云搜索 API,抓取指定公司近 7 天内容
COMPANY=${1:-"Anthropic"}
curl -s -X POST "https://api.qnaigc.com/v1/search/web" \-H "Authorization: Bearer ${QINIU_API_KEY}" \-H "Content-Type: application/json" \-d "{\"query\":\"${COMPANY} 新产品 发布\",\"max_results\":5,\"time_filter\":\"week\"}" \| python3 -c "
import json,sys
d=json.load(sys.stdin)
for r in d.get('data',{}).get('results',[]):print(f'- {r[\"title\"]} ({r[\"date\"]})')print(f'  {r[\"content\"][:80]}')
"

SKILL.md

---
name: competitor-watch
description: 监控竞品近期动态,对比变化,生成简报。输入公司名触发。
argument-hint: [公司名]
allowed-tools: Bash(bash *) Bash(python3 *)
---## 竞品:$ARGUMENTS### 近 7 天新闻(自动搜索)!`bash ${CLAUDE_SKILL_DIR}/scripts/fetch_news.sh "$ARGUMENTS"`### 你的任务1. 分析上方搜索结果,提炼 2-3 个值得关注的信号
2. 判断是否有产品发布、价格变动或组织调整
3. 给出一句话结论:"$ARGUMENTS 本周最重要的变化是……"如果搜索结果为空,说明近 7 天无重大动态。

使用方式:/competitor-watch OpenAI


常见问题

Q:allowed-tools: WebSearchallowed-tools: Bash 授权有什么区别?
WebSearch 是 Claude 内置工具,授权后 Claude 可自主决定何时搜索、搜什么,不需要在 Skill 里写搜索命令。Bash 是通用 shell 权限,需要你在 Skill 指令中明确写出调用哪个脚本或 API,搜索逻辑完全由 Skill 控制。前者更灵活,后者更精确。

Q:!cmd 执行失败会怎样?
命令输出为空时,Claude 会看到一个空白区块——Skill 不会中断,但 Claude 会基于空结果给出"无内容"的回应。建议在命令末尾加 || echo "[搜索失败]" 提供明确的降级提示,避免 Claude 凭空推断。

Q:Skill 的 allowed-tools 和 Agent SDK 的 allowed_tools 有什么关系?
SKILL.md 中的 allowed-tools 只在 CLI 模式下有效——CLI 会根据此字段自动放行对应工具。通过 Agent SDK 调用 Skills 时,allowed-tools frontmatter 不生效,工具权限由 SDK 的 allowedTools 参数统一管理,Skill 本身的声明会被忽略。

Q:如何在 Skill 里安全存放 API Key?
不要将 Key 硬编码进 SKILL.md(会被 git 追踪)。推荐做法:写入 ~/.zshrc 作为环境变量(export QINIU_API_KEY=xxx),Skill 中通过 $QINIU_API_KEYos.environ.get("QINIU_API_KEY") 读取。个人 Skills(~/.claude/skills/)不进 git,相对安全;项目 Skills(.claude/skills/)会进版本控制,严禁在此硬编码 Key。

Q:能否在 Skill 里同时调用多个搜索 API?
可以。一个 Skill 可以先用 !cmd 调七牛云百度搜索预注入中文结果,再在指令里让 Claude 用 WebSearch 补充英文来源,最后用 WebFetch 抓取具体页面全文。三者组合即可覆盖中英文双语搜索需求,allowed-tools 字段里声明所有需要的工具权限即可。


延伸资源

  • Claude Code Skills 官方文档:code.claude.com/docs/en/skills
  • Agent SDK Skills 接入:code.claude.com/docs/en/agent-sdk/skills
  • 申请七牛云 API Key:qiniu.com/ai/models

本文内容基于 2026 年 5 月 Claude Code 官方文档,建议访问 code.claude.com 获取最新版本信息。

http://www.gsyq.cn/news/1379925.html

相关文章:

  • 从咖啡机到无人机:聊聊那些‘小身材大能量’的电机是怎么设计出来的
  • 2026新媒体运营如何提高职场能力
  • 遥感图像分类:不确定性量化与噪声标签鲁棒性实战指南
  • CAD 2021 经典界面设置保姆级教程:从零到顺手,附赠我的F盘自动保存防C盘爆满技巧
  • WorkshopDL终极指南:告别Steam客户端,轻松获取创意工坊模组
  • AMD锐龙SDT调试工具:解锁处理器潜能的终极指南
  • 书匠策AI的毕业论文功能有多能打?一个论文科普博主的“实测拆解报告“
  • Godot 4对话系统架构:数据-逻辑-表现三层解耦实战
  • 3大实战技巧:从零开始掌握高效抖音内容下载与管理
  • Windows安卓应用安装完整指南:轻松在电脑上安装APK文件
  • 利用Taotoken为内部知识库构建智能检索与问答Agent
  • Beyond Compare 5密钥生成器:5分钟完成专业文件对比软件激活
  • 3步为Windows 11 LTSC安装微软商店的完整指南:告别应用荒的终极方案
  • 2026安徽GEO优化公司优质推荐榜 - 行业深度观察C
  • UE5材质实战:用材质参数集和蓝图Actor,5分钟搞定可拖拽的球形遮罩效果
  • 终极指南:如何免费解锁Cursor Pro完整功能,突破API限制
  • 如何快速掌握音频解密:5步轻松破解加密音乐文件
  • Zotero-Style插件终极指南:如何打造个性化文献管理系统
  • 终极暗黑破坏神2存档修改器:Diablo Edit2让你的游戏体验全面升级
  • 如何快速掌握Happy Island Designer:打造梦想岛屿的完整指南 [特殊字符]️
  • DeepChem-Equivariant:让SE(3)等变模型在分子机器学习中触手可及
  • 如何快速掌握开源Verilog仿真工具:终极实战指南
  • 如何在Windows上5分钟搭建专业级SRS流媒体服务器:新手终极指南
  • 从个人玩具到团队基础设施:MonkeyCode的企业级AI编程实践
  • LLM驱动的高性能计算日志解析技术实践
  • 3步解决英雄联盟回放难题:ROFL-Player终极使用指南
  • C51对Maxim 390远内存绝对地址访问的三种方案
  • Windows 11终极优化指南:Win11Debloat一键清理系统提升51%性能
  • 鲨鱼妹妹又调皮了—电子锚(顶流机)定点蠕动功能保姆级教程来啦 - 品牌之家
  • 增强型梯形滤波器设计:从Moog经典到谐振器创新