预算不够,性能还能涨?——一文看懂“会算钱”的 AI 搜索代理

关键词:预算感知、工具调用、test-time scaling、搜索代理、BATS、Budget Tracker、成本-性能帕累托前沿


开场白:先抛三个问题

  1. 给搜索机器人 100 次调用额度,它真的会把 100 次用完吗?
  2. 如果它只用 30 次就“摆烂”,再多给预算能否提升准确率?
  3. 有没有办法让机器“心里有数”,自己看着余额花钱?

谷歌、UCSB 和 NYU 的最新联合研究给出的答案是:
“只要让它知道兜里还剩多少钱,就能在同样甚至更低成本下,把准确率再抬一个台阶。”

下面用 3000 字把论文《Budget-Aware Tool-Use Enables Effective Agent Scaling》拆成大白话,带你看看“会算钱”的搜索代理长什么样、怎么实现、以及直接可用的提示词和代码片段。


目录

  1. 背景:为什么“多给钱”不一定更强?
  2. 核心概念 101:预算感知、工具调用、test-time scaling
  3. lightweight 第一步:Budget Tracker 插件
  4. 进阶打法:BATS 框架(规划+验证+动态 Pivot)
  5. 实验结果:同样 100 次调用,准确率最高提升 96%
  6. 成本账本:搜索一次到底花多少?
  7. 可直接抄的提示词与伪代码
  8. 常见疑问 FAQ
  9. 小结:一张图记住“会算钱”的秘诀

1. 背景:为什么“多给钱”不一定更强?

传统大模型 scaling 思路:
“参数不够,算力来凑;算力不够,推理步数来凑。”
放到搜索场景里,就是“再多给 50 次搜索额度,总能捞到更全的信息吧?”

现实打脸:

  • 代理经常 30 次查询后就自我满足,提前输出答案,70 次额度白白过期
  • 继续加预算,准确率却卡在天花板不动(论文里叫 performance plateau)。
  • 根本原因:代理对“余额”毫无概念,不会动态调整策略。

2. 核心概念 101

术语 一句话解释
工具调用预算 (tool-call budget) 允许搜索/浏览的最大次数,硬上限。
预算感知 (budget awareness) 代理每走一步都看到“已用/剩余”额度。
test-time scaling 推理阶段通过增加“思考”或“行动”提升效果。
帕累托前沿 (Pareto frontier) 同样成本下性能最好,或同样性能下成本最低。

3. lightweight 第一步:Budget Tracker 插件

作用:
像车载油表一样,把剩余额度实时写进提示词,让模型自己“读表”。

实现只需 3 行:

<budget>
Query Budget Used: 7, Query Budget Remaining: 93
URL Budget Used: 2, URL Budget Remaining: 98
</budget>

插入位置:
每次工具返回结果后,立刻追加到上下文尾部,不改动原有代理逻辑

效果:

  • BrowseComp 数据集上,准确率平均 +2~3%
  • 相同准确率,总成本降低 31%(搜索次数从 14.2→8.5,浏览次数从 1.36→1.09)。

4. 进阶打法:BATS 框架

Budget Tracker 只是“让代理看见钱”,BATS(Budget-Aware Test-time Scaling)则让代理“自己会花钱”,包含三大模块:

4.1 预算感知规划

  • 先拆问题:把题目拆成“探索型”线索(广撒网)与“验证型”线索(精准打击)。
  • 再写清单:维护一颗树形待办清单,节点状态分四类:
    [ ] 待办 [x] 完成 [!] 失败 [~] 部分
  • 动态修枝:根据剩余预算实时砍掉低收益分支,防止“一条道走到黑”。

4.2 预算感知自验证

每次候选答案出炉后,内部启动“验证器”走三步:

  1. 逐条核对约束:满足 / 矛盾 / 无法验证。

  2. 决策三选一:

    • SUCCESS → 直接收工。
    • CONTINUE → 路线对但证据不足,且余额够,继续深挖。
    • PIVOT → 路线死或余额见底,立即换方向,并把旧轨迹压缩成 3 行摘要,防止上下文爆炸。
  3. 输出 JSON 给主循环,不依赖人工规则

4.3 统一成本度量

把“token 钱”与“工具钱”换算成同一币种——美元美分

C_unified =  token_cost  +  Σ(ci × Pi)
  • token_cost:按官方价(输入/输出/缓存)累加。
  • ci:第 i 类工具实际调用次数。
  • Pi:单次价格,实验统一 0.1¢(约 0.001 美元)。

于是不同策略可直接比“谁花更少的钱,办更大的事”。


5. 实验结果:同样 100 次调用,准确率最高提升 96%

表格 1:BrowseComp 上对比(预算 100 搜索+100 浏览)

模型 / 方法 准确率 是否额外训练 统一成本
Gemini-2.5-Pro + ReAct 12.6% 9.9¢
Gemini-2.5-Pro + BATS 24.6% 11.0¢
OpenAI Deep Research(专训) 51.5%

训练零增加,准确率近乎翻倍;成本只多 1.1¢。

图表 2:Early-Stopping 场景(预算 5~200 变动)

  • ReAct 30% 后原地踏步;
  • BATS 随预算线性上涨,预算 200 时准确率 37.4%,比 ReAct 高 22 个百分点。

6. 成本账本:搜索一次到底花多少?

项目 实验均价 说明
Google Custom Search API 0.1¢/次 批量 100 次≈10¢
网页浏览(Jina.ai/Crawl4AI) 0.1¢/次 含 15 万字符截断
Gemini-2.5-Pro 输入 0.15¢/1k token 缓存命中 0.075¢
Gemini-2.5-Pro 输出 0.6¢/1k token

一条典型 20 轮轨迹:

  • 搜索 14 次 + 浏览 2 次 ≈ 1.6¢
  • 输入 32k token + 输出 7k token ≈ 6.5¢
  • 总计 ≈ 8¢ 可搞定一道多跳问答

7. 可直接抄的提示词与伪代码

7.1 ReAct + Budget Tracker 核心片段

You are an AI with search and browse tools. After each <tool_response>,
a <budget> block will show remaining units. You MUST adapt your strategy
according to the budget state:

HIGH (≥70%) → 3–5 diverse queries + 2–3 URLs  
MEDIUM (30–70%) → 2–3 precise queries + 1–2 URLs  
LOW (10–30%) → 1 focused query + 1 most-promising URL  
CRITICAL (<10%) → avoid depleted tool; only answer if essential

7.2 BATS 规划模块伪代码

def plan(question, budget):
    clues = decompose_constraints(question)   # 探索 vs 验证
    tree = {1: {"text": "根节点", "status": "[ ]", "cost": (0, 0)}}
    while budget.remaining and not all_done(tree):
        node = select_most_promising(tree)
        if budget.enough_for(node.estimated_cost):
            result = execute(node)
            budget.update(result.cost)
            tree.update(result.new_nodes)
        else:
            prune_low_benefit(tree)
    return tree

7.3 自验证 JSON 输出模板

{
  "verification": "所有约束核对完毕:出生年份满足、职业满足、地点矛盾",
  "decision": "PIVOT",
  "justification": "地点与维基数据冲突,且剩余预算 6 次,足够换线索",
  "trajectory_summary": "先搜姓名+生日→锁定候选人A→浏览简历发现地点不符",
  "details": {
    "failure_cause": "过早采用验证型线索,导致路径锁定错误人物",
    "useful_info": "候选人A的毕业院校真实存在,可保留",
    "next_suggestion": "回退到探索阶段,改用母校+职业双重搜索"
  }
}

8. 常见疑问 FAQ

Q1:预算感知需要重新训练模型吗?
完全不用。Budget Tracker 与 BATS 都以提示词形式注入,零训练、零梯度。

Q2: token 预算和工具预算哪个更关键?
论文锁定“工具预算”做硬上限,因为:

  • 搜索/浏览次数直接决定信息边界;
  • token 消耗随工具返回内容变化,事前难估计
  • 实际部署中 API 按“次”计价,工具预算=真实现金流。

Q3:上下文被工具返回撑爆怎么办?
BATS 每 10 轮自动把旧轨迹压缩成 3 行摘要,缓存 token 减少 57%,准确率不掉。

Q4:我想用在垂直领域,需要改什么?

  • 换工具:把 search/browse 换成你的 SQL、API、Python 函数;
  • 改单价:在统一成本公式里更新 Pi;
  • 重写“探索/验证”线索定义,其他框架照旧。

9. 小结:一张图记住“会算钱”的秘诀

┌-------------------------┐
|  预算感知 = 实时油表      |
|  规划     = 拆线索+树状清单 |
|  自验证   = 早停+早换道     |
|  统一成本 = 把 token 和工具都换成钱 |
└-------------------------┘

记住四步,你的代理就能在同样甚至更低成本下,把天花板再抬高一块砖


引用格式(BibTeX)
@misc{bats2025,
title={Budget-Aware Tool-Use Enables Effective Agent Scaling},
author={Zifeng Wang et al.},
url={https://arxiv.org/html/2511.17006v1},
year={2025}
}