事情本身不复杂,线索都在日志里。问答服务开了内置联网工具,月底账单里多出一项 web search tool calls,金额比模型费还高,日志里只记了 token,完全没记工具被调了几次。

第一反应是「检索为空或失败也照样计次」,验证下来不成立。

原因不止一个,得分开看。内置工具按次单独计费 不走 token。少数情况下是一次回答可能触发多次检索。

另外,流式与非流式的计费口径不同。

从响应体里取工具调用次数

python -c "import json;r=json.load(open('resp.json'));print(r.get('usage'))"

接着按调用次数估算这块费用

python cost.py --tool-calls 12000 --unit 0.01

给检索加次数上限与结果缓存

python -c "print('cap searches per answer at 2')"

等前面都确认过,再把工具次数写进日志字段

python -c "print('log tool_call_count')"

改完先别撤,确认这几项。日志里能看到每次回答的检索次数,费用预估与账单误差在 5% 以内,重复问题走缓存不再计次。

容易忽略的是,内置工具是独立计费项,只看 token 做预算一定漏,接入前先把单次价格和触发条件问清楚。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189