试用
5,000 次搜索
US$9.25
US$1.85/千次搜索
- 接入一个智能体
- 与最大积分包相同的 API
- 积分永不过期
用例 · AI agents · 工具名 web_search
只能搜索、不能读取的 agent 只能凭摘要猜测。给它一个兼具两者的工具:它搜索实时网页,并把首批页面以干净的 Markdown 返回,编号排列以便模型引用。
快速回答
如何给 AI agent 一个能返回页面内容的网页搜索工具?
将网页搜索 API 封装为工具,接收查询并返回带页面正文的编号来源。LLMWebSearch 通过一次调用即可完成:来自实时搜索的排序结果,并把前 3 个页面读取为 Markdown,仅消耗一个积分。价格低至 US$9.25(5,000 次搜索),可降至 US$1.20/千次搜索。无需 KYC;加密货币支付。
| 工具 | 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 只有两个糟糕的选择。它可以从片段作答,冒着答错的风险;或者再调用一个工具去抓取每个页面。第二个选择让往返次数和工具定义都翻倍。
用 LLMWebSearch,前几个页面到手时已经读好了。导航、广告和 cookie 横幅都被去掉,模型就把 token 花在内容上。其余的搜索结果仍带摘要,帮助模型判断是否需要再搜一次。
把 schema 保持得小:一个必需的 query,最多再加一两个开关。模型调用简单的工具更可靠。下面的例子暴露了一个 recent 标志,它映射到 time_range=month;其余的都写死在你的代码里。
函数返回纯文本,而不是 JSON。每个来源以编号、标题和 URL 开头,后面跟着它的 Markdown。这种排版让 [2] 这样的引用对模型来说很自然。
如果你的 agent 已经内置了一个叫 web_search 的工具(Claude Code 和 OpenClaw 就是这样),就把你的工具换个名字,比如 search_web。两个工具同名会让模型混淆。
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))当答案取决于会变化、或模型不可能知道的事实时就搜索。价格、版本、法律、日程和近期事件都算。定义和稳定的知识通常不算。
把这条规则写进 system prompt,再加一个预算。三个习惯有帮助:
三个参数决定有多少正文送进模型。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。
这些工具大多返回带引用的成文答案,而不是原始页面。它们还把搜索绑定到某一家模型厂商。独立工具能与任何模型配合,并让你设置每个页面的长度。自带工具对比 有完整的表格。
当 read 为 3 或更少时,每次搜索一个积分。一个团队使用的助手,每天回答 100 个问题、每个问题搜 4 次,一个月大约跑 12,000 次搜索。25,000 次查询 以 US$41.25 就覆盖这个月,还能剩下大半个月。
一个开发者使用的编码 agent 可能每天搜 20 次,也就是一个月约 600 次。5,000 次搜索 以 US$9.25 就能用好几个月,因为积分永不过期。费用指南 给出了更大工作量的算法。
在 5,000 次搜索 上做原型;等 agent 进入日常使用后,再换到 25,000 次查询 或 100,000 次查询。
5,000 次搜索
US$9.25
US$1.85/千次搜索
25,000 次查询
US$41.25
US$1.65/千次搜索
100,000 次查询
US$145
US$1.45/千次搜索
所有套餐均包含: 前 3 个页面读取为 Markdown · 国家、语言、时间和域名筛选 · 调用失败不计费 · 积分永不过期
可以,通过一个小型 MCP 服务器把搜索暴露成工具。MCP 页面 有代码和客户端配置。
可以。上面的 schema 是纯 JSON Schema,Anthropic、Google、Mistral 和开源框架稍作改动就能接受。工具只调用我们的 HTTPS 端点。
在你的工具封装里计数,预算用完后返回一条简短消息。也把预算写进 system prompt,让模型提前规划。
它可以尝试。把页面正文当作数据:在 system prompt 里告诉模型忽略来源内部出现的指令,并且绝不让来源自行触发任何操作。
低至 US$1.20/千次搜索 · 无需 KYC
获取 API 密钥