预算不够,性能还能涨?——一文看懂“会算钱”的 AI 搜索代理
“
关键词:预算感知、工具调用、test-time scaling、搜索代理、BATS、Budget Tracker、成本-性能帕累托前沿
开场白:先抛三个问题
-
给搜索机器人 100 次调用额度,它真的会把 100 次用完吗? -
如果它只用 30 次就“摆烂”,再多给预算能否提升准确率? -
有没有办法让机器“心里有数”,自己看着余额花钱?
谷歌、UCSB 和 NYU 的最新联合研究给出的答案是:
“只要让它知道兜里还剩多少钱,就能在同样甚至更低成本下,把准确率再抬一个台阶。”
下面用 3000 字把论文《Budget-Aware Tool-Use Enables Effective Agent Scaling》拆成大白话,带你看看“会算钱”的搜索代理长什么样、怎么实现、以及直接可用的提示词和代码片段。
目录
-
背景:为什么“多给钱”不一定更强? -
核心概念 101:预算感知、工具调用、test-time scaling -
lightweight 第一步:Budget Tracker 插件 -
进阶打法:BATS 框架(规划+验证+动态 Pivot) -
实验结果:同样 100 次调用,准确率最高提升 96% -
成本账本:搜索一次到底花多少? -
可直接抄的提示词与伪代码 -
常见疑问 FAQ -
小结:一张图记住“会算钱”的秘诀
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 预算感知自验证
每次候选答案出炉后,内部启动“验证器”走三步:
-
逐条核对约束:满足 / 矛盾 / 无法验证。
-
决策三选一:
-
SUCCESS → 直接收工。 -
CONTINUE → 路线对但证据不足,且余额够,继续深挖。 -
PIVOT → 路线死或余额见底,立即换方向,并把旧轨迹压缩成 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}
}
