背景
进入 2026 年,AI 开发工具 OpenCode 支持 GitHub Copilot、Claude、GPT-4 等多种模型,还能自动执行多步任务。

作为开发者,在试用中发现账单用量异常。明明只是让 AI 帮忙重构文件,但一周后收到提醒:Copilot 使用量是团队平均水平的 3 倍。
问题描述
日常开发任务中,OpenCode 的自动化过程导致额度消耗异常。
我:帮我重构 src/index.ts,优化类型定义
OpenCode:好的,我来帮你... → 读取文件 → 分析代码 → 修改文件 → 运行类型检查 → 修复错误 → 完成!
VS Code 与 OpenCode 在使用 GitHub Copilot 时看似相同,实则不同。
GitHub Copilot 企业账号每月可使用 300 次 Claude Sonnet 4/4.5 模型,按次数计费。
在 VS Code 中使用 GitHub Copilot Chat,一次对话耗费 1 次对话额度,额度消耗约 0.3%。
使用 OpenCode 情况完全变了。完全是后台执行,额度消耗跳至 1%、2%。
计费机制对比
VS Code 的技术实现:单次 Streaming 连接
VS Code 使用的是 SSE (Server-Sent Events) 流式连接:
用户点击发送(标记为用户发起)
↓
建立 HTTP 连接(streaming)
↓
AI:"我需要读取文件..." [发送 tool-call 事件,连接保持打开]
↓
用户点击 Allow → 执行工具 [结果注入到同一个流中,无需新请求]
↓
AI:"发现 3 个错误..." [继续在同一个流中生成]
↓
AI:"需要修改文件..." [再次发送 tool-call 事件]
↓
用户点击 Allow → 执行工具 [结果继续注入到流中]
↓
AI:"已完成!"
↓
关闭连接
总计:1 次 HTTP 请求 = 计费 1 次 ✅
VS Code 的优势:
- 整个对话过程只建立 1 次连接
- 工具执行结果通过流式传输注入,无需发起新请求
- 用户手动确认 Allow,系统识别为"人工批准的工具调用"
- GitHub Copilot 将整个过程视为 1 次用户发起的对话
OpenCode 的技术实现:循环模式(Loop)
OpenCode 采用的是 Agentic Loop 架构:
用户点击发送(第 1 次请求:用户发起)
↓
═══ 循环 Step 1: 第 1 次 HTTP 请求 ═══
AI:"我需要读取文件..." finish = "tool-calls" 连接关闭
↓
权限检查 → 自动执行工具 → 获得结果
↓
═══ 循环 Step 2: 第 2 次 HTTP 请求 ═══
❌ 计费!
AI:"发现 3 个错误..." (AI 自动发起,但未标记)finish = "tool-calls" 连接关闭
↓
权限检查 → 自动执行工具 → 获得结果
↓
═══ 循环 Step 3: 第 3 次 HTTP 请求 ═══
❌ 计费!
AI:"已完成!" (AI 自动发起,但未标记)finish = "stop" 退出循环
总计:3 次独立的 HTTP 请求 = 计费 3 次 ❌




