无需 KYC — 无需身份证件、自拍或文件。用加密货币支付:BTC, USDT, USDC, ETH, SOL, LTC
语言: 简体中文
获取 API 密钥

用例 · AI agents · 工具名 web_search

一个面向 AI agents、能带回页面正文的网页搜索工具

只能搜索、不能读取的 agent 只能凭摘要猜测。给它一个兼具两者的工具:它搜索实时网页,并把首批页面以干净的 Markdown 返回,编号排列以便模型引用。

最后更新: · 3 分钟阅读

快速回答

如何给 AI agent 一个能返回页面内容的网页搜索工具?

将网页搜索 API 封装为工具,接收查询并返回带页面正文的编号来源。LLMWebSearch 通过一次调用即可完成:来自实时搜索的排序结果,并把前 3 个页面读取为 Markdown,仅消耗一个积分。价格低至 US$9.25(5,000 次搜索),可降至 US$1.20/千次搜索。无需 KYC;加密货币支付。

LLMWebSearch 作为 agent 工具

工具web_search(query, recent) 调用 POST https://llmwebsearch.com/api/v1/search
返回最多 20 条排序结果;前 3 条附带 Markdown 格式的页面正文
长度控制每页 max_chars,页面数量用 read,列表用 max_results
成本1 积分支付一次查询:最多 20 条排名结果,其中前 3 条的页面会被读取并以 Markdown 返回。读取 4 到 10 个页面为 2 积分。以错误结束的调用不收费
筛选可选择结果的国家和语言、时间范围(过去一天、一周、一个月或一年)、网页或新闻结果,以及要包含或排除的域名
现成集成MCP 服务器、OpenAI function calling、LangChain 和 LlamaIndex、n8n、OpenClaw

为什么 agent 需要页面正文,而不只是摘要?

因为答案很少就藏在摘要里。搜索结果页只给出标题和搜索引擎挑出的一两行。用户问的那个数字、日期或规则,往往在页面更靠下的位置。

只看到摘要的 agent 只有两个糟糕的选择。它可以从片段作答,冒着答错的风险;或者再调用一个工具去抓取每个页面。第二个选择让往返次数和工具定义都翻倍。

用 LLMWebSearch,前几个页面到手时已经读好了。导航、广告和 cookie 横幅都被去掉,模型就把 token 花在内容上。其余的搜索结果仍带摘要,帮助模型判断是否需要再搜一次。

搜索工具应该怎么定义?

把 schema 保持得小:一个必需的 query,最多再加一两个开关。模型调用简单的工具更可靠。下面的例子暴露了一个 recent 标志,它映射到 time_range=month;其余的都写死在你的代码里。

函数返回纯文本,而不是 JSON。每个来源以编号、标题和 URL 开头,后面跟着它的 Markdown。这种排版让 [2] 这样的引用对模型来说很自然。

如果你的 agent 已经内置了一个叫 web_search 的工具(Claude Code 和 OpenClaw 就是这样),就把你的工具换个名字,比如 search_web。两个工具同名会让模型混淆。

Python:为 OpenAI 风格 function calling 写的 web_search 工具
import json
import os

import requests

API = "https://llmwebsearch.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]}

# Tool definition in the OpenAI function-calling format; most agent frameworks accept the same JSON schema.
WEB_SEARCH_TOOL = {
    "type": "function",
    "function": {
        "name": "web_search",
        "description": "Search the live web. Returns numbered sources; the first ones include the page text in Markdown.",
        "parameters": {
            "type": "object",
            "properties": {
                "query": {"type": "string", "description": "A short search query, 3 to 8 words"},
                "recent": {"type": "boolean", "description": "True to keep only results from the past month"},
            },
            "required": ["query"],
        },
    },
}


def web_search(query, recent=False, read=3, max_chars=4000):
    """Run one search (1 credit with read <= 3) and return compact text the model can cite."""
    body = {"q": query, "max_results": 5, "read": read, "max_chars": max_chars}
    if recent:
        body["time_range"] = "month"
    resp = requests.post(API, headers=HEADERS, json=body, timeout=60)
    resp.raise_for_status()
    lines = []
    for r in resp.json()["results"]:
        lines.append(f"[{r['position']}] {r['title']} — {r['url']}")
        if r.get("content_status") == "ok":
            lines.append(r["content"])
        else:
            lines.append(r.get("snippet", ""))
        lines.append("")
    return "\n".join(lines)


def run_tool_call(call):
    """Execute a tool call returned by the model and give back the text for the tool message."""
    args = json.loads(call["function"]["arguments"])
    return web_search(args["query"], recent=args.get("recent", False))

agent 应该在什么时候搜索,搜多频繁?

当答案取决于会变化、或模型不可能知道的事实时就搜索。价格、版本、法律、日程和近期事件都算。定义和稳定的知识通常不算。

把这条规则写进 system prompt,再加一个预算。三个习惯有帮助:

  • 先规划再搜索。 让模型先把查询写出来。两个精确的查询胜过五个含糊的。
  • 限制调用次数。 比如每轮用户对话允许四次搜索。只在研究类任务里提高上限。
  • 来源一致就停。 如果三个独立页面说的都一样,agent 就可以作答。

如何控制上下文窗口?

三个参数决定有多少正文送进模型。read 设置读取多少个页面,从 0 到 10。max_chars 限制每个页面的长度,从 500 到 50,000 字符。max_results 设置列出多少条结果,从 1 到 20。

对于聊天 agent,read=3 加 max_chars=4000 每次搜索返回约 12,000 字符的页面正文。这样一次对话里还能留出空间做好几次搜索。对于边搜边总结的研究任务,页面长一点也无妨。

word_count 字段告诉你整页在被截断前有多长。agent 可以用它来判断是否要用 extract 端点 再抓更多。

页面读不了时会怎样?

结果仍会返回,带标题、URL 和摘要,但没有正文。一个 content_status 字段说明原因。

  • blocked_by_robots:站点的 robots.txt 不允许我们的读取器访问。
  • blocked_by_site_policy:在 robots.txt 中设置 Content-Signal: ai-input=no 的网站,其页面内容不会出现在你的结果中。
  • target_refused:站点返回了拒绝;其状态码在 target_status 里。
  • fetch_failed 或 fetch_timeout:页面没有及时加载。

当网站拒绝我们的读取器时,结果会不带内容返回,并附上该网站的状态:我们绝不破解 CAPTCHA、不登录账户,也不绕过封锁或付费墙。告诉 agent 在页面返回为空时改用摘要,或换一个来源。无论每个页面发生什么,搜索本身仍然算一个积分。

为什么不用模型自带的搜索工具?

自带工具方便,但给你的控制更少。截至 2026 年 10 月 22 日,OpenAI 的 web_search 工具每次调用收费 $10、每 1,000 次,外加按 input token 计费的搜索内容。Anthropic 的 Claude web search 也是每 1,000 次搜索 $10,外加 token 费用。Gemini 3 grounding 在付费档每月含 5,000 次免费搜索,之后每 1,000 次 $14。

这些工具大多返回带引用的成文答案,而不是原始页面。它们还把搜索绑定到某一家模型厂商。独立工具能与任何模型配合,并让你设置每个页面的长度。自带工具对比 有完整的表格。

在 LLMWebSearch 上跑一个 agent 要花多少钱?

当 read 为 3 或更少时,每次搜索一个积分。一个团队使用的助手,每天回答 100 个问题、每个问题搜 4 次,一个月大约跑 12,000 次搜索。25,000 次查询 以 US$41.25 就覆盖这个月,还能剩下大半个月。

一个开发者使用的编码 agent 可能每天搜 20 次,也就是一个月约 600 次。5,000 次搜索 以 US$9.25 就能用好几个月,因为积分永不过期。费用指南 给出了更大工作量的算法。

哪种 pack 适合 agent?

在 5,000 次搜索 上做原型;等 agent 进入日常使用后,再换到 25,000 次查询 或 100,000 次查询。

试用

5,000 次搜索

US$9.25

US$1.85/千次搜索

  • 接入一个智能体
  • 与最大积分包相同的 API
  • 积分永不过期
选择 5,000 次搜索

构建者

25,000 次查询

US$41.25

US$1.65/千次搜索

  • 编码智能体或研究助手
  • 支持 MCP、LangChain 和 n8n
  • 积分永不过期
选择 25,000 次查询

生产环境

100,000 次查询

US$145

US$1.45/千次搜索

  • 生产环境中的智能体
  • 可按需提高 rate limit
  • 积分永不过期
选择 100,000 次查询

所有套餐均包含: 前 3 个页面读取为 Markdown · 国家、语言、时间和域名筛选 · 调用失败不计费 · 积分永不过期

AI agent:常见问题

我能把 LLMWebSearch 加到 Claude Desktop、Cursor 或 Claude Code 里吗?

可以,通过一个小型 MCP 服务器把搜索暴露成工具。MCP 页面 有代码和客户端配置。

这个工具能配合 OpenAI 之外的模型吗?

可以。上面的 schema 是纯 JSON Schema,Anthropic、Google、Mistral 和开源框架稍作改动就能接受。工具只调用我们的 HTTPS 端点。

怎么阻止 agent 搜得太多?

在你的工具封装里计数,预算用完后返回一条简短消息。也把预算写进 system prompt,让模型提前规划。

页面正文能向我的 agent 下指令吗?

它可以尝试。把页面正文当作数据:在 system prompt 里告诉模型忽略来源内部出现的指令,并且绝不让来源自行触发任何操作。

来源 (3)
  1. API 定价(web 搜索工具) — OpenAI (read 2026-10-22)
  2. 定价(web 搜索工具) — Anthropic (read 2026-10-22)
  3. Gemini Developer API 定价 — Google (read 2026-10-22)

低至 US$1.20/千次搜索 · 无需 KYC

获取 API 密钥