Skip to content

成本控制:避免额度跑飞 ​

这一页讲的是怎么防止 AI 编程工具把额度花超,不是记账或财务教程。它覆盖事前限制、事中约束和事后核对;具体的额度、价格、日志和账单字段仍以你的服务商控制台为准。

相关页面:

平台差异

余额、令牌额度、模型限制、IP 白名单、过期时间、日志和账单的字段与是否支持,因服务商而异。本文给出通用做法;具体操作以服务商控制台为准。

先分清三个概念 ​

成本失控通常不是单一原因,先把三层限制分开看:

层级是什么谁会受它影响典型控制方式
账户余额整个账户的总预算账户下所有 Key 和所有工具充值金额、账户级限额、告警
令牌额度单个 Key 的预算上限使用这个 Key 的工具或环境关闭“无限配额”,给 Key 设上限
单次请求用量一次调用实际消耗的 token 和费用这一次请求本身控制上下文、输出上限、重试和并发

一次请求会同时受这三层影响:账户余额不够会失败,令牌额度不够会失败,单次请求过大则可能直接推高费用或触发上下文限制。

无限配额不等于无限预算

“无限配额”通常只取消 Key 这一层的限制,账户余额仍然会被扣。只要账户里还有余额,脚本就可能继续消费。要控制成本,必须至少设置账户级预算、Key 级额度或两者之一。

事前控制 ​

事前控制的目标是:即使工具出错、脚本跑飞或 Key 泄漏,损失也有上限。

按工具分别建 Key ​

给 Codex、Claude Code、OpenCode、Copilot CLI 以及 IDE 工具各建一个独立 Key。这样能:

  • 看出是哪个工具花了钱
  • 某个工具出问题时只吊销它自己的 Key
  • 给高风险工具单独设置更低的额度

创建方法见准备 API Key。

设置令牌额度上限 ​

如果服务商支持,关闭“无限配额”,给每个 Key 设置明确的额度上限。额度单位可能是金额或 token,以控制台为准。

推荐做法:

  • 先设一个很小的额度,跑通流程
  • 确认用量符合预期后,再逐步调高
  • 高风险场景(自动化脚本、CI、批量任务)单独建 Key,并设置更低的额度
  • 不要把所有工具都设成“无限配额”

设置过期时间 ​

给 Key 设置合理的过期时间,尤其是临时测试、CI 和共享环境:

  • CI 和临时任务:使用短有效期
  • 个人本地使用:也建议设置一个需要定期复查的期限
  • 长期有效的 Key 更容易在泄漏后被持续滥用

到期后 Key 会自动失效,能限制长期风险。时区和可选范围由服务商决定。

限制模型范围 ​

用模型限制把 Key 收窄到确实需要的模型:

  • 日常对话和简单任务:限制到便宜、够用的模型
  • 复杂编码任务:单独建 Key,只放开必要的高价模型
  • 避免让一个通用 Key 能调用账户里所有昂贵模型

模型名必须和 /v1/models 返回的 ID 完全一致;限制字段和是否支持以服务商控制台为准。

使用 IP 白名单 ​

如果服务支持,给 Key 配置 IP 白名单,只允许公司、家庭或 CI 出口 IP 使用。IP 白名单不是唯一的安全手段,但能减少 Key 泄漏后被其他来源调用的机会。

代理、CDN、VPN 和公司网络可能改变网关看到的来源 IP;配置后要确认实际出口 IP 仍然匹配,见企业网络、代理与自定义 CA。

优先使用便宜模型 ​

在满足任务要求的前提下,优先选择便宜或免费的模型:

  • 简单问答、格式转换、摘要:优先小模型
  • 日常编码:先用中等价位模型,确认不够用再升级
  • 复杂重构、长上下文任务:再使用高价模型
  • 批量任务先确认模型能力,避免因为工具调用失败反复重试

不要只看模型单价,还要看它是否支持 tool call、长上下文和你要用的协议。便宜但频繁失败、需要反复重试的模型,最终可能更贵。

事中控制 ​

事中控制的目标是:在请求运行过程中,及时发现并阻止费用继续增长。

控制上下文长度 ​

上下文越长,输入 token 越多,费用越高。常见做法:

  • 不要每次对话都携带无关的历史消息
  • 长文档先摘要,再让模型基于摘要工作
  • 定期新开会话,避免历史无限增长
  • 只把必要的文件片段交给模型,不要一次塞进整个仓库
  • 关注工具的上下文压缩或历史裁剪设置

限制最大输出 ​

输出 token 通常比输入更贵。给长任务设置合理的最大输出:

  • 简单任务使用较小的输出上限
  • 只在确实需要长内容时调高
  • 不要在批量任务里使用过大的默认输出
  • 不同工具的字段名不同,例如 max_tokens、max_output_tokens 或界面里的“最大输出长度”

避免无限重试 ​

重试可能产生第二次上游请求,从而重复计费。控制方式:

  • 4xx 通常不应自动重试,先修请求
  • 429 按 Retry-After 或指数退避,并限制最大次数
  • 5xx 可以有限重试,但不要无限循环
  • 流式请求已经输出内容后,不要盲目自动重试
  • 在工具里设置最大重试次数和超时,不要依赖默认值

相关错误处理见错误码与排障。

流式请求及时中断 ​

流式请求会在持续输出时不断产生 token。发现方向不对时,及时手动中断,而不是等它输出完:

  • 输出明显跑偏、重复或开始编造时立即停止
  • 批量任务设置总超时
  • 不要让无人值守脚本无限等待
  • 中断后检查日志,确认是否计费以及是否可以安全重试

中断是否退还预扣、已输出内容是否计费,取决于服务商规则,以账单和请求日志为准。

批量任务先小样本试跑 ​

在批量处理前先做小样本验证:

  1. 先用 1 到 5 个样本跑通。
  2. 检查输出质量、token 用量和失败率。
  3. 确认成本在可接受范围内,再扩大批量。
  4. 给批量任务设置最大次数、最大并发和总预算。
  5. 出现大量失败时先暂停,不要让它继续自动重试。

事后检查 ​

事后检查的目标是:确认实际花费、发现异常,并在必要时立即止损。

看日志 ​

在服务商的日志或请求记录里,按时间范围筛选并核对:

  • 请求时间、模型 ID、端点和 request ID
  • 输入 token、输出 token、缓存 token
  • 预扣金额和最终结算金额
  • 请求状态、错误码和重试次数

如果日志支持按 Key 筛选,优先按工具对应的 Key 查看,能更快定位是哪一个工具花的钱。

核对预扣与结算 ​

流式或长请求可能先预扣,再按真实用量结算。看到“先扣了一笔”不一定是最终费用:

  • 预扣是暂占额度,最终按实际用量多退少补
  • 失败、中断、超时和重试是否计费,以服务商规则为准
  • 并发请求可能同时占用多笔预扣额度
  • 如果可用余额突然变少,先看是否有多笔预扣尚未结算

按时间范围筛选 ​

出现费用异常时,先缩小时间范围:

  • 对比异常发生前后同一时间段的用量
  • 看是否集中在某个模型、某个 Key 或某个工具
  • 看是否有非工作时间的调用
  • 看是否有异常高的单次 token 量或异常并发

发现异常立即吊销 Key ​

如果确认或怀疑 Key 泄漏、脚本跑飞或被滥用:

  1. 先在服务商控制台吊销或禁用相关 Key,停止继续消费。
  2. 检查日志和账单,记录异常时间、模型、来源和用量。
  3. 按最小权限创建新 Key,设置更低的额度和更严格的模型限制。
  4. 更新所有工具、环境变量和 CI secrets。
  5. 按API Key 安全与轮换清理泄漏源。

不要只删除本地配置文件;文件删掉不等于服务端的 Key 失效。

给 AI 的提示词 ​

如果 AI 工具能读取你的本机配置,可以把下面这段提示词交给它,让它只做检查、不直接修改。不要粘贴完整 Key,只提供变量名、配置路径和脱敏信息。

text
请检查我当前的 AI 编程工具配置,找出可能导致费用失控的设置。先只检查并列出问题,不要修改任何文件。

请重点检查:
1. 是否有 Key 开启了“无限配额”,或没有设置额度上限
2. 是否有 Key 没有设置过期时间
3. 是否有 Key 可以调用账户里所有模型,没有模型限制
4. 是否多个工具共用一个 Key,无法区分费用来源
5. 是否配置了过大的上下文窗口、最大输出或过长的历史保留
6. 是否启用了无限重试、过长超时或过高并发
7. 是否有批量任务、定时任务或 CI 使用高额度 Key
8. 配置文件中是否出现明文 Key,是否可能被提交到 Git

请按“风险等级 / 所在文件或配置项 / 当前值 / 建议值 / 是否需要我确认”列出结果。不要输出完整 Key,不要直接修改配置。

如果 AI 不能访问本机文件,它只能给你检查清单和命令,无法替你确认实际配置。

常见误区 ​

误区实际情况正确做法
“无限配额”就是无限免费只取消 Key 级上限,账户余额仍会被扣设置账户级预算或 Key 级额度,并监控用量
缓存命中就是免费缓存通常只是折扣,是否计费、折扣多少由服务商决定以账单和模型计费说明为准
失败请求一定不收费上游已经产生 token、流式中断或超时的情况可能计费查看请求日志和结算规则,不要靠重试试探
重试不会重复计费重试可能创建第二次上游请求并重复计费限制重试次数,流式输出后不要盲目重试
只在本地删掉 Key 就安全了服务端的 Key 仍然有效,别人仍可能使用先在控制台吊销,再清理本地和 CI 配置
便宜模型一定更省钱频繁失败、需要反复重试时可能更贵结合成功率、工具调用能力和实际用量评估

快速检查 ​

配置阶段:

  • [ ] 每个工具使用独立 Key
  • [ ] 关闭无限配额,或设置明确的令牌额度
  • [ ] 设置合理的过期时间
  • [ ] 限制到必要的模型
  • [ ] 服务支持时配置 IP 白名单
  • [ ] 批量任务使用单独的低额度 Key

使用阶段:

  • [ ] 控制上下文长度,定期新开会话
  • [ ] 设置合理的最大输出
  • [ ] 限制重试次数,避免无限重试
  • [ ] 流式请求跑偏时及时中断
  • [ ] 批量任务先小样本试跑

检查阶段:

  • [ ] 按时间范围和 Key 查看日志与账单
  • [ ] 核对预扣与最终结算
  • [ ] 发现异常立即吊销 Key
  • [ ] 按最小权限创建替代 Key 并更新配置

接下来 ​

在 CC-BY-SA-4.0 许可下发布

Copyright © 2023-2026 final

免责声明