Read in English → | Leer en español →
你的AI账单即将改变。如何应对。
GitHub Copilot将于6月1日转为按量计费。如果你一直在固定月费计划上运行代理工作流,你的下一张账单看起来会不一样。一次深度调试会话现在可能吃掉你大部分的月度额度。
你在这里有真正的控制权。理解什么驱动成本,以及在哪里可以削减而不放弃任何东西,这就是整个游戏。
你实际付费的内容
基础内联补全和Next Edit建议,即你输入时出现的快速建议,在所有付费计划中保持无限。GitHub明确将它们排除在积分系统之外。如果你主要想要输入时的快速建议,6月1日几乎不影响你。
消耗积分的是其他一切:高级模型、多步骤代理工作流、带文件上下文的对话和高级补全。如果你在运行代理,这很重要。
GitHub AI Credits以美元计价。每个付费计划包含等于订阅价格的月度额度:
- Copilot Pro:每月$10的AI Credits
- Copilot Pro+:每月$39的AI Credits
- Copilot Business:每用户每月$19的AI Credits
- Copilot Enterprise:每用户每月$39的AI Credits
Business和Enterprise在6月到8月获得临时提升(每用户分别为$30和$70)以缓和过渡。
每个代理请求计算三种token类型:
- 输入token:你发送的所有内容,包括系统提示词、对话历史、工具定义和文件内容
- 输出token:模型生成返回的内容
- 缓存token:模型从先前调用中重用的上下文
输出token最昂贵,在Anthropic模型上大约是输入费率的5倍。输入token更便宜,但在多轮代理循环中快速累积。缓存token在Anthropic模型上比新鲜输入便宜约10倍,在OpenAI模型上便宜50%。
最后一个是大多数人浪费钱的地方。
一个值得知道的行为变化
在旧系统下,当你用完配额时,会悄悄回退到更便宜的模型并继续工作。那已经没有了。当你的AI Credits用完时,你要么停止,要么购买更多。没有静默降级。
对于Business和Enterprise管理员,你现在在企业、成本中心和用户级别拥有预算控制。积分在整个组织中汇集,因此没有单个席位会搁置未使用的容量。在6月1日之前设置那些限制,而不是之后。
还有一点:Copilot代码审查除了AI Credits外还会消耗GitHub Actions分钟。如果你大量自动化了审查,也要把这个算入你的Actions预算。
如果你在年度Pro或Pro+计划上:在你的计划到期之前你保持PRU定价,但年度订阅者的模型乘数在6月1日上调。如果你想现在切换,你可以提前转换为月度并获得按比例分配的积分。
提示词缓存
如果你的代理在每一轮都发送相同的系统提示词、工具目录或文件内容,而且确实如此,你就在为模型30秒前已经处理过的token支付全额输入价格。
提示词缓存存储该前缀,以便后续请求以大约基础输入成本的10%重用它。使用Anthropic SDK看起来是这样的:
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system=[
{
"type": "text",
"text": "你是一个有用的编码助手。你可以访问以下工具...",
"cache_control": {"type": "ephemeral"} # 缓存这个前缀
}
],
messages=[
{"role": "user", "content": "重构认证模块以使用async/await"}
]
)
# 检查缓存命中率
print(response.usage.cache_read_input_tokens) # 从缓存提供的token
print(response.usage.cache_creation_input_tokens) # 写入缓存的token
在一个50轮代理会话中,如果系统提示词有8,000个token,缓存会将你的每轮前缀成本从约$0.024降至约$0.0024(Claude Sonnet $3/MTok输入)。缓存token比新鲜输入便宜10倍,对于长代理会话来说,缓存实际上不是可选的。VS Code已经为Copilot自动处理这个。它在系统提示词末尾、工具定义和轮次边界放置缓存断点。如果你在构建自己的代理,你需要自己接线。
保持上下文精简
缓存有帮助,但首先要注意你在提示词中放了什么。
最大的浪费来源:包含所有内容的系统提示词、每次调用都发送完整对话历史,以及模型不会使用的工具定义。
系统提示词膨胀。 一个500 token的系统提示词在10,000次请求中重复就是500万个token。200 token版本节省300万。削减那些冗余或从未真正触发的指令。在Copilot中你能做的最高ROI的单个改变是在你的.github/copilot-instructions.md中添加Code only, no explanation.。在我的测试中,那一行在代码任务上削减输出token 40-70%。再添加Bullets over paragraphs. No explanations unless asked.,我看到整体再减少30-60%。在你标准化之前先在你自己的工作负载上测试。
对话历史。 大多数代理会将每条先前消息附加到每次新调用中。如果你在第30轮,第1到20轮可能是噪音。修剪到最后N轮或将较旧的上下文总结成紧凑块。
工具定义。 VS Code 1.118(发行说明)通过将代理工具集分为一个紧凑的始终可用的核心约30个工具来处理这个问题,这些工具涵盖约88%的工具调用,更大的延迟集合仅在明确需要时加载。将相同模式应用于你自己的代理。
MCP服务器。 你连接的每个MCP工具都会增加提示词开销。在我自己的设置中,每个代理步骤大约花费100-500个token仅用于描述每个工具。如果你有15个服务器在15步任务中运行,那大约是265,000个token的开销,模型还没做任何有用的事情。审计实际连接的内容,并禁用任何你没有积极使用的内容。
多代理设置使所有这些复合化。在我的实验中,未优化时它们可以消耗比单次调用多4-15倍的token。如果你在并行化工作,确保任务真正独立,你不只是在到处复制上下文。
Ask模式 vs Agent模式
不是每个Copilot任务都需要Agent模式。Ask模式用于查找、解释和快速问题。Agent模式用于多步骤工作,模型需要读取文件、运行命令并迭代。
对所有事情都默认使用Agent模式就像启动一个完整的代理循环来回答”这个函数是做什么的”。在我的测试中,对简单问题使用Ask模式可以在那些交互上节省60-90%。为真正需要它的任务保留Agent模式。
为工作选择合适的模型
不是每个任务都需要Claude Opus。Haiku和Opus之间的成本差距在两个方向上都是5倍。你的大多数任务不需要Opus。
| 模型 | 输入(每1M token) | 输出(每1M token) |
|---|---|---|
| Haiku 4.5 | $1.00 | $5.00 |
| Sonnet 4.6 | $3.00 | $15.00 |
| Opus 4.7 | $5.00 | $25.00 |
Haiku快速且便宜。适合摘要、分类和简单问答。Sonnet处理大多数编码任务、多文件重构和分析而不至于破产。Opus用于真正困难的问题:复杂的架构决策、困难的调试和真正需要的长上下文推理。
Opus 4.7配备了一个新的tokenizer,对于相同的输入文本可能产生多达35%的token。费率没有改变,但你每个请求的实际账单仍然可能上升。Anthropic在他们的定价页面上记录了这一点。在假设成本与4.6相同之前,先用真实流量对你的工作负载进行基准测试。
def route_to_model(complexity: str) -> str:
if complexity == "simple":
return "claude-haiku-4-5" # $1/MTok 输入
elif complexity == "medium":
return "claude-sonnet-4-6" # $3/MTok 输入
else:
return "claude-opus-4-7" # $5/MTok 输入
将简单任务发送到更便宜的模型,只有在需要火力时才升级。
本地模型
你不必把所有东西都发送到云API。
GitHub Copilot直接支持Ollama,在VS Code和Copilot CLI中都支持。Qwen、DeepSeek和Llama等模型在本地运行,并在与云模型相同的模型选择器中显示。没有积分。没有遥测。你的代码留在你的机器上。
在Copilot CLI中设置只需一个命令:
ollama launch copilot
Ollama将Copilot CLI连接到本地模型并将你放入代理中。要选择特定模型:
ollama launch copilot --model qwen3.5
对于VS Code,在Language Models设置中添加你的本地Ollama实例URL。VS Code会自动发现每个安装的模型并将其添加到选择器中。本地运行AI不仅仅是为了省钱。对于专有代码、受监管的环境或气隙网络来说,这是唯一的选择。
公平警告:仅CPU的机器在多步骤工具执行上有困难。LM Studio在CPU硬件上往往比Ollama工作得更好,因为你能真正看到正在发生的事情。在模型选择上,Qwen3.5 Coder 7B是消费者硬件上速度与质量之间最好的权衡。如果你有VRAM,Qwen 2.5 Coder 32B在多步骤命令上更强。
有一件事让人困惑:Ollama默认使用4K上下文,即使对于支持更多的模型。对于任何代理使用,在启动服务器之前通过环境变量设置上下文长度:
export OLLAMA_CONTEXT_LENGTH=32768
ollama serve
或者在交互式REPL内部按会话设置:
/set parameter num_ctx 32768
32K到64K是大多数编码工作流的实际甜蜜点。
一个会话实际花费多少
无论用多少,基础补全都是免费的。昂贵的部分是高级模型上的复杂推理。在Opus上跑10轮推理,你就要花掉$10 Pro额度中的约$6.75,一次性。把那同样的一段换到Sonnet,整个会话花费不到$1.50。
这就是杠杆。大多数任务不需要Opus。需要的那些,值得。其他一切都应该在Sonnet或Haiku上。
6月1日之前要做什么
先检查你的预览账单。GitHub在5月初在github.com的账单概览页面提供预览发票。它会随着你使用Copilot而更新,所以你将确切看到在切换生效之前你将花费多少。
-
将输出控制添加到
copilot-instructions.md。 从Code only, no explanation.开始。这是你能做的最高ROI的单个改变。 -
启用提示词缓存 在你构建的任何代理上。在Anthropic SDK中给你的系统提示词块添加
cache_control。检查响应中的cache_read_input_tokens以确认它正在工作。 -
审计你的MCP服务器。 断开你没有积极使用的任何东西。每个空闲服务器在每个代理步骤都消耗token。
-
修剪对话历史。 保留最后5-10轮在上下文中,而不是整个会话。
-
使用Ask模式处理简单问题。 为真正需要多步骤执行的任务保留Agent模式。
-
拉取一个本地模型。 即使你不每天使用,在本地运行
qwen3.5也能为你不想发送到云API的任何东西提供零成本选项。 -
按复杂度路由。 停止默认对一切使用你最强大的模型。为真正需要它的问题保留Opus。
-
管理员:现在就设置预算控制。 Business和Enterprise有成本中心和用户级别的限制。在6月1日之前配置它们,而不是在你第一张惊喜账单之后。
就这样。去查看你的预览账单。
本文由全球中文开发者社区翻译。如有表达不准确之处,欢迎通过 GitHub 仓库 提交 PR 修正。