先这样答
Agent 的账单结构和聊天应用不同:聊天一次请求算一次钱,Agent 每轮循环都是一次完整请求,而每次请求都带着「到目前为止的一切」。钱花在四个地方。一是固定前缀:系统提示词加全部工具定义,几十个工具的 Schema 都是文本,每一轮都原样重发一遍。二是历史重发:对话、中间结论、每一步的工具调用记录逐轮累积,每次全量带上,成本随轮数加速上涨。三是工具结果:一次网页抓取、一份文件读取,动辄几万 Token 进上下文,之后每一轮都跟着重发——用完不扔,就是一直在付费。四是多 Agent 放大:每个子 Agent 各自带系统提示和历史,相互交接时还要再汇总一遍,角色越多放大越狠。
所以控制账单也从这四块入手:前缀瘦身(工具描述精简、用不到的工具不挂);历史裁剪或压缩(旧步骤摘要化,完整内容落库检索);工具结果即用即弃(提取需要的部分,原始结果不进历史);前缀缓存(系统提示部分命中缓存,重发成本降一档);模型分级(简单步骤用小模型,只有关键决策用大模型)。这题面试官真正想听的是你对「成本结构」的理解,而不是背几个省钱技巧。
面试官会怎么追问
- 「账单异常了怎么定位大头?」 看请求明细里 prompt tokens 的构成:固定前缀、历史、本轮输入各占多少,工具结果单独统计。多数情况是固定前缀加历史重发占大头,先看这两块再谈优化。
- 「哪些手段性价比最高?」 前缀瘦身和工具结果即用即弃通常见效最快,因为改动小、不伤效果;历史压缩要谨慎,压掉关键信息会直接伤任务成功率,压缩策略也要过评测。
- 「降本和效果怎么平衡?」 把 token 消耗当评测维度之一:每个降本改动跑同一套任务评测集,成本降了、成功率不掉才算数。只看账单不看效果的降本,迟早要在质量上还债。
回答的坑
- 只盯单次调用单价:Agent 的成本是「轮数 × 每轮重发量」,单次便宜不等于总账便宜,答这题不提重发结构就说明没看过真实账单。
- 上了多 Agent 才发现账单爆炸:多 Agent 是成本放大器,拆分角色之前先算清每个角色的上下文构成和交互频次,而不是拆完再想办法省。
—— 本题完 ——