☰
为什么你的编程智能体总在烧钱?Gajae-Code五大省钱机制一次讲透
2026/10/1 21:14:57 网站建设 项目流程

为什么你的编程智能体总在烧钱?Gajae-Code五大省钱机制一次讲透

【免费下载链接】gajae-codeGajae Code MVP项目地址: https://gitcode.com/gh_mirrors/ga/gajae-code

你是不是也遇到过这种情况:让编程智能体改一个小 bug,它却反复读取几百行文件、把整段历史对话原封不动地发给模型,账单里的 Token 像流水一样涨?Gajae-Code 是一款开源的终端 AI 编程智能体,内置了上下文压缩、读取摘要、输出剪枝、模型角色分工和失败恢复五大省钱机制,从"少发 Token"和"发对 Token"两个方向帮你把费用压下来。这篇文章带你一次看明白。

为什么 Token 会悄悄花光?

先理解一个常识:大模型是"按次收费"的,每一轮对话都会把之前的历史再发一遍。会话越长、工具输出越多,重复发送的费用就越高。

上图来自项目内置的会话统计工具 scripts/session-stats/:read(读文件)长期是 Token 消耗大户,其次是search、task。所以省钱的关键就在于:压缩历史、精简读取、用好便宜的模型。Gajae-Code 正好把这五件事都做进了产品里。

机制一:上下文自动压缩——长对话不再反复重发

当上下文接近窗口上限时,Gajae-Code 会自动把较早的对话改写成一段简短摘要,只把"摘要 + 最近几轮"发给模型,旧消息不再重复计费。

核心行为(详见 docs/compaction.md):

  • 阈值自动触发:默认在"上下文窗口 − 15% 余量"处触发,且不超过 30 万 Token;也可以用/compact手动压缩
  • 切点保护:绝不在工具结果中间切断,摘要里自动带上你读过、改过哪些文件
  • 状态不丢失:正在做的目标(goal)、未完成的待办(todo)会显式写进摘要,压缩后工作能无缝继续
  • 闲置压缩:空闲时也能后台整理历史(需手动开启compaction.idleEnabled)

进阶玩法见 docs/concepts/context-compaction.md:对工具调用密集的长会话,可开启自适应压缩(compaction.adaptive),它在"上下文大 + 调用密"时自动提前压缩,长任务省得更多。

机制二:读取摘要——不再整文件塞给模型

这是省钱效果最明显的一环。智能体读代码文件时,Gajae-Code 的read工具默认返回结构化摘要:只保留函数、类、接口等关键声明,中间大段实现用省略号代替,预算默认只有 20 KiB。模型需要细节时,再让它用:50-100这样的行号选择器精准补读——按需付费,而不是全文付费。

上图左半部分就是真实的部署数据:read占全天 Token 花费的一半左右;部署摘要功能后,单次读取的中位数 Token 从约 1000 降到约 100。相关配置项(read.summarize.enabled、read.summaryMaxBytes等)定义在 packages/coding-agent/src/config/settings-schema.ts,机制细节见 docs/tools/read.md。

机制三:工具输出剪枝——旧结果自动"瘦身"

除了读文件,bash运行结果、搜索结果这些工具输出也会越积越多。压缩检查之前,Gajae-Code 会先执行剪枝(pruneToolOutputs,实现在 packages/agent/src/compaction/pruning.ts):

  • 保护最近 4 万 Token 的工具输出和最近 2 轮用户对话,绝不乱剪
  • 一次性节省不足 2 万 Token 时不动手,避免无效开销
  • 被剪的输出会替换成"退出码 + 错误行 + 尾部摘要"的摘要标记,并且原文会存入会话存档(artifact://可回读),智能体想查可以随时找回,不必重新运行命令

一句话:旧的输出从"全文重发"变成"一行摘要",需要时再取回。

机制四:模型角色分工——便宜的活给便宜的模型干

旗舰模型贵,但不是每一步都需要它。Gajae-Code 把一次任务拆成default、executor(执行)、planner(规划)、architect(架构)、critic(评审)五个角色,每个角色可以绑定不同价位的模型。

  • 一键启用省钱预设:gjc --mpreset codex-eco之类的eco 档预设,把执行类高频角色分配给低推理强度的平价模型,只在架构和评审上用好模型
  • 支持 Claude、ChatGPT Codex、Kimi、GLM、MiniMax、Grok 等订阅制(Coding Plan)供应商,订阅额度用完前 Token 单价约等于零
  • 多账号、多凭证可配置回退链,额度用完自动切换,不用你手动换 key

完整配置指南见 docs/models.md,预设覆盖 OpenAI、Anthropic、DeepSeek、Qwen、GLM 等主流供应商,连本地 Ollama / llama.cpp 的免费模型也能自动发现。

机制五:失败智能恢复——重试、回退不重复烧钱

网络抖动、限流、过载……失败的那次请求往往已经花了钱。Gajae-Code 的恢复策略(详见 docs/non-compaction-retry-policy.md)保证失败尽量不产生浪费:

  • 空响应零成本重放:如果失败的那轮没有任何助手输出(没有文字、没有工具调用),直接零延迟重放,等于这次"没花冤枉钱"
  • 限流自动换号:检测到额度/配额类错误,立即切换到下一个可用凭证重放,并带指数退避,避免反复撞墙
  • 熔断器跳过坏模型:回退链里失败的模型会被"熔断"冷却(默认 60 秒起,最长 30 分钟),其他会话也不会在它身上继续浪费尝试次数
  • 上下文溢出走压缩而非硬重试:窗口爆了先尝试"升级大窗口模型",再不行才压缩重试,避免同一份大历史反复发送

另外还有一个进阶选项 docs/handoff-generation-pipeline.md 描述的/handoff命令:把当前会话浓缩成一份"交接文档"开新会话,彻底甩掉冗长历史,适合长任务分段执行。

快速上手:三步开启省钱模式

  1. 什么都不用配:压缩、读取摘要、剪枝、自动重试默认都已开启
  2. 选对预设:gjc --mpreset codex-eco(或其他 eco 档),或按 docs/models.md 接入你的订阅供应商
  3. 长会话开自适应:在配置里设置compaction.adaptive.enabled: true,高频工具调用场景进一步省 Token

想深入某个机制,推荐从这三份文档入手:docs/compaction.md(压缩与分支摘要)、docs/concepts/context-compaction.md(压缩阈值调优)、docs/tools/read.md(read 工具全貌)。

小结

机制省在哪关键配置
上下文自动压缩历史只发摘要,不重复计费compaction.*
读取结构化摘要读文件只发声明,按需补读read.summarize.*
工具输出剪枝旧输出变一行摘要,可回读pruneToolOutputs默认开启
模型角色分工便宜角色用平价模型/订阅额度gjc --mpreset <eco预设>
失败智能恢复空响应重放零成本、熔断避坑retry.*/fallback.*

Token 花在哪、怎么省,Gajae-Code 用机制而不是口号给出了答案。打开终端跑一条gjc --mpreset codex-eco,下一张账单自己会说话 💸

【免费下载链接】gajae-codeGajae Code MVP项目地址: https://gitcode.com/gh_mirrors/ga/gajae-code

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询