事情本身不复杂,线索都在日志里。问答服务开了内置联网工具,月底账单里多出一项 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 做预算一定漏,接入前先把单次价格和触发条件问清楚。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
