Skip to content

成本管理

通过多场景模型选择和异步压缩策略优化成本,在保证效果的同时实现更快的响应速度和更低的使用成本。

CodeBuddy Code 每次交互都会消耗 Token。成本因代码库大小、查询复杂度和对话长度而异。本文档介绍如何追踪成本、多场景模型机制和降低 Token 消耗。

追踪成本

使用 /cost 命令

/cost 命令提供当前会话的详细 Token 使用统计:

/cost
  ⎿ Total duration (API):  9m 35.6s
    Total duration (wall): 22m 14.9s
    Total code changes:    0 lines added, 0 lines removed
    Usage by model:
         claude-sonnet-4:  875.5k input, 11.7k output, 714.3k cache read, 0 cache write

使用 /context 命令

/context 命令可以分析当前上下文的占用情况,查看不同类型上下文的大小分布:

> /context 
  ⎿  Context Usage
     ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁    glm-4.7 · 38.1k/200.0k tokens (19.1%)
     ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁
     ⛁ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶    ⛁ System prompt: 2.1k tokens (1.1%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶    ⛁ System tools: 16.4k tokens (8.2%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶    ⛁ Memory files: 3.7k tokens (1.9%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶    ⛁ Messages: 15.9k tokens (7.9%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶    ⛶ Free space: 145.9k (72.9%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶    ⛝ Autocompact buffer: 16.0k tokens (8.0%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶
     ⛶ ⛶ ⛶ ⛶ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝

     Memory files · /memory
     └ /Users/yangsubo/.codebuddy/CODEBUDDY.md (User): 18 tokens
     └ /Users/yangsubo/CODEBUDDY.md (Project): 15 tokens
     └ /Users/yangsubo/workspace/genie/CODEBUDDY.md (Project): 1.2k tokens
     └ /Users/yangsubo/workspace/genie/packages/agent-cli/CODEBUDDY.md (Project): 2.5k tokens

     Skills and slash commands · /skills

     Project
     └ release: 1.1k tokens
     └ gen-drawio: 846 tokens
     └ task-manager: 815 tokens
     └ task-add: 730 tokens
     └ task-done: 525 tokens
     └ mr: 519 tokens
     └ task-start: 493 tokens
     └ my-task: 238 tokens
     └ task-list: 233 tokens
     └ security-review: 30 tokens

通过 /context 可以快速识别哪些内容占用了大量上下文空间,从而有针对性地优化。

多场景模型机制

不同的任务场景对模型能力的要求不同。简单的文件搜索、快速查询等任务使用轻量级模型即可完成;复杂的架构设计、多步骤推理等任务需要更强大的推理模型。

通过为不同场景自动选择不同的模型,可以实现:

  • 效果最优:复杂任务使用高能力模型,确保质量
  • 速度更快:简单任务使用轻量模型,响应更迅速
  • 成本更低:避免在简单任务上使用昂贵的高端模型

场景类型

场景类型说明典型用例
default默认模型,平衡性能与成本一般编程任务、代码编写
lite轻量快速模型,低成本高速度文件搜索、简单查询、快速操作
reasoning推理增强模型,强大分析能力复杂分析、架构决策、多步骤推理

自动模型选择

CodeBuddy Code 会根据任务类型自动选择合适的场景模型。当子代理执行时,系统会根据用户当前选择的主模型,自动解析出对应的场景模型。

例如,contentAnalyzer 等轻量级子代理会自动使用 lite 模型,在保证功能的同时降低成本、提升速度。

Task 工具支持通过 model 参数指定场景类型:

  • default:继承父模型,适用于一般任务
  • lite:快速且低成本,适用于简单搜索、快速文件操作
  • reasoning:增强推理能力,适用于复杂分析、架构决策

降低 Token 消耗

Token 成本随上下文大小增长:CodeBuddy Code 处理的上下文越大,消耗的 Token 越多。CodeBuddy Code 通过 Prompt 缓存(减少重复内容如系统提示的成本)和自动压缩(在接近上下文限制时压缩对话历史)自动优化成本。

以下策略帮助你保持较小的上下文,降低每条消息的成本。

主动管理上下文

使用 /cost 检查当前 Token 使用情况。

  • 任务间清理:切换到不相关的工作时使用 /clear 重新开始。过时的上下文会在后续每条消息中浪费 Token。清理前使用 /rename 以便之后通过 /resume 返回。
  • 添加自定义压缩指令/compact Focus on code samples and API usage 告诉 CodeBuddy Code 在压缩时保留什么内容。

你也可以在 CODEBUDDY.md 中自定义压缩行为:

markdown
# Compact instructions

When you are using compact, please focus on test output and code changes.

异步压缩策略

当对话历史接近上下文限制时,系统会自动进行压缩:

  • 自动触发:当上下文接近限制时自动启动压缩
  • 后台执行:压缩过程在后台异步执行,不阻塞用户操作
  • 智能摘要:保留关键信息,压缩冗余内容
  • 无缝衔接:用户无感知,获得"无限上下文"体验

压缩时会保留以下关键信息:代码变更记录、重要决策点、用户明确的偏好和指示、当前任务的关键上下文。

选择合适的模型

根据任务复杂度选择模型。使用 /model 在会话中切换模型,或在 /config 中设置默认值。

  • 简单任务使用 lite:文件搜索、快速查询、代码格式化
  • 复杂任务使用 reasoning:架构设计、性能优化、复杂调试
  • 一般任务使用 default:日常编码、功能实现

减少 MCP 服务器开销

每个 MCP 服务器会将工具定义添加到上下文中,即使处于空闲状态。运行 /mcp 查看已配置的服务器。

  • 优先使用 CLI 工具ghawsgcloud 等工具比 MCP 服务器更节省上下文,因为它们不会添加持久的工具定义。CodeBuddy Code 可以直接运行 CLI 命令,无需额外开销。
  • 禁用未使用的服务器:运行 /mcp 查看并禁用未使用的服务器。

将详细操作委托给子代理

运行测试、获取文档或处理日志文件可能消耗大量上下文。将这些操作委托给子代理,详细输出保留在子代理的上下文中,只有摘要返回主对话。

编写精确的提示

模糊的请求如"改进这个代码库"会触发大范围扫描。精确的请求如"为 auth.ts 中的 login 函数添加输入验证"让 CodeBuddy Code 能够以最少的文件读取高效工作。

复杂任务的高效工作方式

对于较长或更复杂的工作,以下习惯有助于避免因走错方向而浪费 Token:

  • 复杂任务使用计划模式:按 Shift+Tab 进入计划模式。CodeBuddy Code 会探索代码库并提出方案供你批准,避免初始方向错误时的昂贵返工。
  • 尽早纠正方向:如果 CodeBuddy Code 开始走错方向,按 Escape 立即停止。使用 /rewind 或双击 Escape 将对话和代码恢复到之前的检查点。
  • 提供验证目标:在提示中包含测试用例、截图或预期输出。当 CodeBuddy Code 能够自我验证工作时,它可以在你需要请求修复之前发现问题。
  • 增量测试:写一个文件,测试它,然后继续。这样可以在问题还容易修复时尽早发现。

后台 Token 消耗

CodeBuddy Code 在空闲时也会为某些后台功能消耗 Token:

  • 对话摘要:后台任务会为 --resume 功能摘要之前的对话
  • Prompt 预测:根据历史对话信息推测下一条最有可能的 Prompt 输入

这些后台进程即使没有活跃交互也会消耗少量 Token。

相关文档

  • 子代理 - 使用子代理隔离高消耗操作
  • MCP - 管理 MCP 服务器开销
  • 模型 - 了解可用的模型选项

本文档帮助您了解如何有效管理 CodeBuddy Code 的使用成本。