ScavioScavio
产品定价文档
登录开始使用
博客
ai-agentsllmtool-usesearch-api

你的智能体正在跳过工具,而你的延迟仪表盘很喜欢这样

凭记忆作答而不调用搜索的智能体在延迟仪表盘上显示为绿色,但其实在悄悄出错。用确定性验证和强制接地来检测并防止被跳过的工具调用。

June 24, 2026
7 min read

当智能体凭参数化记忆作答,而不调用你给它的搜索工具或知识库时,它就跳过了工具。被跳过的调用更快、不返回错误,在你的延迟仪表盘上显示为绿色。但它也是错的,因为模型是在猜,而不是有根据地回答。修复方法是确定性的:记录每一条工具调用轨迹,对需要新鲜数据的查询验证工具确实被调用了,没有调用就让评测失败。

为什么延迟仪表盘会掩盖被跳过的调用

一次工具调用会增加一个往返。调用 POST /api/v1/google、等待结果、再把结果喂回模型,要花掉几百毫秒和一个积分。当智能体跳过这一步直接从权重作答时,请求更快也更便宜。你的 p50 下降了。错误率仍为零,因为猜测不是运行时能看到的错误。

于是仪表盘恰恰奖励了你真正在意的那种失败。一个本应触发搜索却没有触发的事实查询,和一个本来就不需要工具的闲聊回合看起来完全一样。延迟、错误率和 token 数都区分不了它们。你需要的信号是工具有没有触发,而这存在于轨迹里,不在指标里。

用确定性方式而非 LLM 裁判来验证工具使用

对于「智能体有没有调用工具」这个问题,确定性检查胜过 LLM 裁判。裁判是另一个模型,会幻觉、消耗 token、而且慢。但你已经有了真值:工具调用轨迹。轨迹里要么有一次对你搜索工具的调用,要么没有。就验证这个。

更强的检查分两部分。第一,验证工具被调用了。第二,验证最终答案确实引用了工具返回的内容,这样智能体就不能调用了工具却又无视它。Scavio 的 Google 端点会返回带真实 URL 的 organic 结果,所以你可以检查答案是否引用了其中之一。

Python
import requests

API_KEY = "sk-your-key"

def search(query):
    r = requests.post(
        "https://api.scavio.dev/api/v1/google",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"query": query, "light_request": False},
    )
    r.raise_for_status()
    return r.json()

def assert_grounded(query, agent_answer, tool_calls):
    # 1) 确定性: 搜索工具确实被调用了
    assert any(c["name"] == "search" for c in tool_calls), \
        f"agent skipped search for fact query: {query!r}"

    # 2) 确定性: 答案引用了工具返回的某个 URL
    results = search(query)
    returned_urls = [item["link"] for item in results.get("organic", [])]
    assert any(url in agent_answer for url in returned_urls), \
        "answer does not reference any retrieved source"

# 评测用例示例
assert_grounded(
    query="latest stable python release",
    agent_answer="Python 3.13 is current. Source: https://www.python.org/downloads/",
    tool_calls=[{"name": "search", "args": {"query": "latest stable python release"}}],
)

回路里没有模型。检查依据的是你能看见的事实,要么通过要么失败。

对事实查询强制接地

事后检测被跳过的调用对评测有用。在生产中防止它更好。对于你知道需要新鲜数据的查询,强制发起搜索调用,而不是交给模型自己判断。

大多数智能体框架都暴露了 tool_choice。在事实查询路径上把它设为 required(或显式指定你的搜索工具),这样模型在作答前必须调用 POST /api/v1/google 并基于真实的自然结果作答。你不是在让智能体决定接地是否重要。在你已经知道答案不可能来自训练数据的那些情形里,你替它做了决定。

这是用一点延迟和每次调用一个积分,换来一个真正最新的答案。在事实路径上,这是你每次都想要的交换。

诚实的局限

确定性的工具调用验证在「它有没有调用」上胜过 LLM 裁判,但它不会告诉你一开始哪些查询需要工具。这得有人来打标。你的评测集需要标注为「需要工具」的用例,这样断言才知道缺失的调用什么时候是 bug,什么时候是本就正确地不需要工具。

打标才是真正的工作。构建一组事实查询,其正确答案依赖于当前数据,把每一条标为工具必需,再对每一条跑那个两部分断言。一旦你有了标签,确定性检查既便宜又精确。拿到标签才是没有任何自动化能替你做的部分。

继续阅读

aeogeo

你的 LLM 可见性追踪器只盯着你给它的那些提示词

7 min read
ragai-agents

LLM 原生网络搜索 vs 搜索 API 工具:何时用哪个(2026)

6 min read
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策