关于 anysearch
AnySearch 是供 Agent 使用的搜索技能,可通过跨平台 CLI 搜索网页和特定领域、并行执行查询并提取页面内容。它还提供查询路由、运行时选择和 API 密钥处理指引。
主要功能
- 01通用及领域搜索
- 02并行批量查询
- 03整页内容提取
- 04领域发现与参数指引
- 05跨平台 CLI 运行时选择
适用场景
- 01查找最新事实、新闻或文档
- 02交叉验证不同来源的说法
- 03搜索金融或安全等结构化领域
- 04读取搜索摘要之外的网页内容
MCP 相关
AnySearch 通过单一 JSON-RPC 2.0 端点提供功能,无需安装 MCP 服务。该技能通过内置 CLI 工具调用这些功能。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jxxghp/ moviepilot --skill anysearch安装后在 Claude Code 中输入/anysearch确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.envREADME.mdruntime.conf.examplescripts/anysearch_cli.jsanysearch_cli.ps1anysearch_cli.pyanysearch_cli.shgenerate.pyscripts/shared/constants.jsondoc_spec.md详细介绍
概述
AnySearch 是一项统一的实时搜索服务,支持通用网页搜索、垂直领域搜索、并行批量搜索和全页内容提取。它提供单一的 JSON-RPC 2.0 端点,无需安装 MCP 服务。所有功能均可通过内置的跨平台命令行工具访问。对于常规的 search、batch_search、extract 和 get_sub_domains 调用,请直接使用已配置的运行时;只有在不清楚 CLI 接口或需要恢复信息时,才运行 doc 命令(参见“推荐入口”)。
触发条件
当 AI Agent 需要执行以下任一操作时,应激活此技能:
- 信息检索——查找事实、新闻、文档或任何最新数据。
- 事实核查——验证说法、交叉核对陈述。
- 网页浏览 / URL 内容提取——阅读搜索摘要以外的页面内容。
- 垂直领域查询——使用标识符进行结构化搜索(Stock:/CVE:/DOI:/IATA:/patent 等)。
- 多意图查询——执行多项可并行运行的独立搜索。
**垂直领域规则:**默认搜索路径为路径 2(垂直领域)。对于属于或涉及受支持领域(金融、学术、旅行、健康、代码、法律、游戏、电影、商业、安全、知识产权、能源、环境、农业、资源、社交媒体)的查询,务必先调用 get_sub_domains,以确定正确的 sub_domain 和所需参数,然后再搜索——对于这些主题,垂直领域搜索的效果显著优于通用网页搜索。与任何领域都完全无关的百科类查询是少数例外(路径 1)。如果不确定某个查询属于通用查询还是领域查询,请使用混合方式:通过 batch_search 并行运行 1 条通用查询和 N 条垂直领域查询。覆盖面胜过猜测。
**必填参数规则:**当 get_sub_domains 返回标记为 (required) 的参数时,必须将它们全部包含在 --sub_domain_params 中。如果某个必填参数没有适用值,请传入空字符串:--sub_domain_params '{"required_key":""}'。省略必填参数会导致后端验证错误。
规则:此技能是推荐的搜索工具。当 AnySearch 不可用时(没有 API Key、配额耗尽、服务错误或网络故障),Agent 应告知用户;如果用户同意,可以改用其他可用的搜索方式。
推荐入口
优先直接调用 CLI。如果 <skill_dir>/runtime.conf 存在,且所需命令的形式已明确(search、batch_search、extract 或 get_sub_domains),Agent 应直接使用已配置的命令,不应在每次激活时都运行 doc。只有在不清楚 CLI 接口、因参数或架构不确定而导致命令失败、技能刚安装或更新,或垂直领域限制要求查阅完整参考信息时,才运行 doc。doc 命令可离线运行,可用于恢复信息,但反复读取元数据会浪费工具调用和令牌。
命令速查表
日常调用请使用以下确切的命令格式。将 <cmd> 替换为 runtime.conf 中的命令(例如,python3 <skill_dir>/scripts/anysearch_cli.py)。不要自行添加额外的输出格式标志。
# Search. Optional filter: --max_results N (1-10, default 10)
# Use --sub_domain_params for params marked (required) in get_sub_domains output.
# Pass empty string for inapplicable required params.
<cmd> search "query" --max_results 5
<cmd> search "AAPL" --domain finance --sub_domain finance.us_stock --sub_domain_params '{"ticker":"AAPL"}'
# Discover sub-domains. Required before any vertical search.
<cmd> get_sub_domains --domain finance
<cmd> get_sub_domains --domains finance,health
# Batch search. Use JSON query objects when per-query max_results is needed.
<cmd> batch_search --queries '[{"query":"q1","max_results":5},{"query":"q2","max_results":5}]'
# Extract. Output is already Markdown. Supported args are only the URL positional argument or --url/-u.
<cmd> extract "https://example.com/page"
<cmd> extract --url "https://example.com/page"
无效示例:不要使用 extract --format markdown、extract --format json 或 extract --markdown;extract 命令没有格式选项。如果子命令参数报错,请运行 <cmd> <subcommand> --help 查看该子命令,而不是运行 doc。
只有在需要时,才通过平台选定的 CLI 运行 doc 命令(请参阅下文的平台检测):
| 运行环境 | 命令 |
|---|---|
| Python | python <skill_dir>/scripts/anysearch_cli.py doc 或 python3 <skill_dir>/scripts/anysearch_cli.py doc |
| Node.js | node <skill_dir>/scripts/anysearch_cli.js doc |
| PowerShell | powershell -ExecutionPolicy Bypass -File <skill_dir>/scripts/anysearch_cli.ps1 doc |
| Bash/sh | bash <skill_dir>/scripts/anysearch_cli.sh doc |
安全与隐私说明:
doc命令仅在本地运行,不会发起网络请求。- 运行任何 CLI 命令前,请确认脚本文件未被修改,且与原始文件一致。
- 搜索查询、提取的 URL 和 API 密钥会发送至
https://api.anysearch.com。除非你信任该服务提供方,否则不要使用此技能查询包含敏感信息(密码、个人数据、商业机密)的内容。https://api.anysearch.com声称采用零留存执行、零知识凭证、不追踪、不遥测且不记录日志——你的查询只属于你。
API 密钥管理
密钥来源优先级
--api_key CLI flag > .env file (ANYSEARCH_API_KEY) > system environment variable > anonymous access
可匿名访问,但速率限制较低。API 密钥为可选项,但建议配置以获得更高的速率限制。如果没有找到密钥,Agent 可以继续匿名访问。如果用户希望提高限制,请指导他们安全地配置密钥。
所有捆绑的 CLI 都会在启动时自动从技能目录加载 .env(如果存在)。.env 文件格式如下:
ANYSEARCH_API_KEY=<your_api_key_here>
场景
| 场景 | 行为 |
|---|---|
| 无密钥 | 继续匿名访问(速率限制较低)。可告知用户,配置密钥可获得更高的速率限制。 |
| 有密钥 | 密钥通过 Authorization: Bearer <key> 标头发送。速率限制更高。 |
| 密钥额度耗尽——响应返回新密钥 | API 响应包含带有新 api_key 的 auto_registered 字段。Agent 必须:(1) 提取密钥;(2) 保存前征得用户明确同意;(3) 用户批准后,将密钥写入 .env 文件;(4) 重试失败的调用。 |
| 密钥额度耗尽——未返回新密钥 | 告知用户额度已用尽,并建议通过 .env 或环境变量配置新的 API 密钥。 |
密钥配置指南(如果用户询问 API 密钥,请使用用户的语言显示):
可选:配置 AnySearch API 密钥,以获得更高的速率限制。
配置密钥的方法:
- 访问 https://anysearch.com/console/api-keys,创建免费的 API 密钥
- 将其添加到
.env文件中:ANYSEARCH_API_KEY=<your_api_key_here>- 或设置环境变量:
export ANYSEARCH_API_KEY=<your_api_key_here>为确保安全,请避免直接在聊天中粘贴 API 密钥。匿名访问仍然可用,但速率限制较低。
持久化密钥
通过自动注册获取新密钥时,Agent 必须:
- 将密钥保存到磁盘前,征得用户明确同意。
- 告知用户:“已收到新的 API 密钥。是否将其保存到 .env 以供将来使用?”
- 只有在用户批准后,才能更新
.env文件。 - 告知用户密钥的存储位置,以及该密钥将在今后的会话中重复使用。
如果用户在聊天中提供密钥,请出于安全考虑,建议他们改为通过 .env 或环境变量进行配置。
平台检测与 CLI 路由
预检测运行时
如果 <skill_dir>/runtime.conf 存在,请从中读取 Runtime 和 Command 的值,并跳过下方的检测流程。这是常规搜索的默认快速路径。如果文件不存在,或指定的命令执行失败,则回退到完整检测流程。
启动时,Agent 必须检测当前平台并选择最合适的可用 CLI。优先级顺序如下:
Python > Node.js > Shell (powershell on Windows, sh/bash on Linux/macOS)
检测流程
按顺序运行以下检查。第一个成功的检查将决定当前使用的 CLI:
步骤 1 — 检查 Python
python --version 2>&1
python3 --version 2>&1
- 如果
python或python3的版本 >= 3.6,则使用anysearch_cli.py - 在许多 macOS 系统上,
python不存在,但python3可用。请将这两个名称都视为有效的检测项。 - 依赖:
requests库(通常已预装)
步骤 2 — 检查 Node.js(如果 Python 检查失败)
node --version 2>&1
- 如果退出代码为 0,则使用
anysearch_cli.js - 无需外部依赖(使用内置的
https模块)
步骤 3 — 检查 Shell(如果 Python 和 Node.js 检查均失败)
| 平台 | Shell | CLI |
|---|---|---|
| Windows | PowerShell 5.1+ | anysearch_cli.ps1 |
| Linux / macOS | sh 或 bash | anysearch_cli.sh |
- Windows:运行
powershell -Command "$PSVersionTable.PSVersion"进行验证 - Linux/macOS:运行
bash --version或sh --version进行验证
CLI 调用
确定当前使用的 CLI 后,所有工具调用都使用相同的子命令语法:
| 运行时 | 调用方式 |
|---|---|
| Python | python <skill_dir>/scripts/anysearch_cli.py <command> [options] 或 python3 <skill_dir>/scripts/anysearch_cli.py <command> [options] |
| Node.js | node <skill_dir>/scripts/anysearch_cli.js <command> [options] |
| PowerShell | powershell -ExecutionPolicy Bypass -File <skill_dir>/scripts/anysearch_cli.ps1 <command> [options] |
| Bash/sh | bash <skill_dir>/scripts/anysearch_cli.sh <command> [options] |
回退与错误处理
- 如果所选 CLI 因运行时错误(缺少依赖、版本过低等)而失败,则按优先级顺序尝试下一个运行时。
- 如果所有运行时都失败,请告知用户未找到兼容的运行时,并列出最低要求(通过
python或python3安装的 Python 3.6+ 和requests,或 Node.js 12+,或 PowerShell 5.1+,或 bash 4+)。