AI Agent · 统一搜索 · 垂直领域 · 跨平台 CLI —— anysearch-ai/anysearch-skill 为 AI 助手提供了一套覆盖通用搜索、垂直领域查询与深度 内容提取的实时搜索能力。它基于 JSON-RPC 2.0 协议,无需搭建 MCP 服务端,匿名即可调用,并已 在 OpenClaw、Claude Code、Cursor 等平台上以 Skill 形式分发。
AI 助手的搜索困境
今天的大语言模型在回答事实性问题时,依然面临一 个核心约束:知识截止于训练数据。用户问「今天的 苹果股价」「最新的 GitHub 趋势」「某篇论文的 DOI 对应内容」,模型要么无法作答,要么给出已 过时的信息。
传统解决路径有两条。一是接入搜索引擎 API——需 要注册、申请 Key、理解 REST 接口,每次调用还要 自行解析非结构化的返回文本。二是搭建 MCP Server——对 AI 框架有一定依赖,不是所有 Agent 平台都能直接对接。
AnySearch 选择了一条更轻的路线:将搜索能力封装 为 AI Agent 的 Skill,让 Agent 通过 CLI 调用一 个统一的搜索入口。它不再区分「你用的是哪家搜索 引擎」,只要 AI 助手拥有一个 JSON-RPC 端点,就 能获得从通用网页搜索到垂直领域数据的全部能力。 这对个人开发者、独立应用构建者以及需要在脚本中 嵌入搜索能力的团队尤为直接——省去了集成多家 API 的维护成本。
上手路径与高频场景
AnySearch 提供四种核心操作:search、batch_search、 extract 和 get_sub_domains,所有操作通过一个 CLI 入口暴露。按官方推荐,安装后先创建一个 runtime.conf 来固定运行时,后续所有调用直接走 配置的命令行即可,不需要每次重复探测环境。
场景一:通用搜索 + 内容提取
最简单的用法是搜索然后提取全文。Agent 先执行:
python3 anysearch_cli.py search "2026 LLM agent
benchmark排行榜" --max_results 3
得到搜索结果后,对感兴趣的链接调用 extract:
python3 anysearch_cli.py extract "https://
example.com/benchmark-report"
extract 返回的是 Markdown 格式正文,Agent 可以 直接将其作为上下文补充给大模型。对于需要在对话 里「引用来源」的写作类任务,这一组合省去了人工 翻页的时间。
场景二:垂直领域检索
这是 AnySearch 区别于通用搜索引擎的关键能力。 它内置了覆盖 17 个领域的子域检索(finance、 academic、legal、health、security、code 等), 每种领域有专有的查询格式与参数。
以股票查询为例,Agent 先查询 finance 领域的可 用子域:
python3 anysearch_cli.py get_sub_domains
--domain finance
返回结果里包含 finance.quote、finance.market、 finance.news 等子域及其 query_format 与必填参 数。接下来查询 AAPL 股价:
python3 anysearch_cli.py search "AAPL"
--domain finance --sub_domain finance.quote
--sdp type=stock,symbol=AAPL,cn_code=
sdp(sub_domain_params)支持 key=value 语法, 也可以传 JSON。空的 cn_code= 表示该参数虽必填 但对中国以外的股票不适用。最终返回的结果是结构 化的 JSON,比通用搜索的片段拼接精确得多。
场景三:批量并行查询
当用户的问题涉及多个独立子查询时(例如「对比 AAPL、MSFT、GOOG 的当前股价」),可以用 batch_search 一次完成:
python3 anysearch_cli.py batch_search
--query AAPL --query MSFT --query GOOG
--domain finance --sub_domain finance.quote
--sdp type=stock
batch_search 支持 1-5 个查询并行发送,各查询的 domain、sub_domain 参数既可共享,也可在单个 query 对象中独立定义。单次查询失败不影响其他查 询的结果,合并后一起返回。对比逐个搜索,时间可 减少到原来的 1/3 左右。
常见误区: extract 命令没有 - -format 选项, 输出已经是 Markdown;不要给它传 - -format markdown——该参数不存在。另外,如果拿不准一个 查询是通用搜索还是垂直领域,直接走混合模式:在 batch_search 中同时放一个通用查询和一个领域查询, 「覆盖优于猜测」。
轻量架构与设计亮点
AnySearch 的架构可以用「一个端点、四套 CLI、零 MCP」来概括。
一个端点: 所有搜索与提取请求统一发往 https://api.anysearch.com/mcp,走 JSON-RPC 2.0 协议。请求体使用 tools/call 方法,服务端按 tool_name 路由到 search、batch_search、extract 或 get_sub_domains。这意味着不管客户端是 Python 还是 Node.js、是 Agent Skill 还是 curl 脚本, 交互契约完全一致。
四套 CLI: 仓库同时维护了 Python、Node.js、 PowerShell、Bash 四套 CLI 实现,优先级 Python > Node.js > Shell。Python 版依赖 requests 库, Node.js 版零外部依赖(只用内置 https 模块), 确保在资源受限或无 pip 权限的环境也能运行。 shared/constants.json 是领域列表的唯一事实来源, generate.py 负责将更新同步到各 CLI 中。
免 MCP 服务端: 这是该项目最直接的差异化特 性。当前大多数 AI 搜索插件要求 Agent 平台先跑 一个 MCP Server(需要 nodejs 运行、暴露本地端 口、配置 transport),而 AnySearch 只需一条 CL I 命令就能完成搜索。Agent 不需要维护本地服务进 程,也不需要处理端口映射与进程生命周期管理。这 对无持久化运行环境的 Agent(如 CI/CD 流水线、 一次性 Lambda 函数)非常有价值。
匿名优先: API Key 是可选的。没有 Key 时自 动回退到匿名访问(仅限流更低),用户可以先无障 碍地试用全部功能。当配额用尽时,API 响应中可能 包含自动注册的新 Key,Agent 可询问用户后写本地 .env 文件,下次自动复用。
垂直领域目录: get_sub_domains 是一个很少见 的设计。传统搜索引擎把结构化搜索隐藏在产品内部, 用户只能通过「高级搜索语法」来碰运气。AnySearch 把每个领域的参数 schema 以标准化的 Markdown table 暴露给 Agent——模型可以直接读取子域描述、 query_format 和必填参数,从而自主决定如何构造 查询。这种「模型可读的接口文档」思路,降低了 Agent 调用非通用搜索的门槛。
落地与应用空间畅想
最直接的落地场景是增强型 AI Agent。在 OpenClaw 中安装 AnySearch Skill 后,Agent 可以在回答股票 查询、专利检索、法律条文咨询、学术论文引用 (DOI 查询)等场景下获取结构化数据,而不是靠 模型「猜测」答案。安装只需解压 zip 到 skill 目 录、配置 runtime.conf、运行一次 doc 验证,即可 投入使用。
另一个有价值的场景是自动化研究管线。将 batch_search + extract 串联后,可以编写脚本自 动收集多个来源的内容并汇总成报告。由于 extract 输出已是 Markdown,后续拼接、翻译、摘要都可以 由同一个 Agent 完成。
展望更远的应用,AnySearch 的垂直领域覆盖能力让 它有潜力成为 AI Agent 的「行业数据网关」。例如 在 healthcare 领域查询药品信息、在 legal 领域 检索判例、在 ip 领域查询专利状态——这些原本需 要分别对接各平台 API 的数据源,现在可能通过一 个统一的查询协议来获取。随着社区为其贡献更多 sub_domain 映射,其行业覆盖深度还有增长空间。
项目地址:https://github.com/anysearch-ai/anysearch-skill
夜雨聆风