AI Agent 浪费 token 怎么省:六条可执行的省钱规矩

改一个按钮颜色烧掉十几刀 API 并不罕见。本文归纳手术式上下文、栈声明、禁全量重写、先静态后逻辑、固定设计词典,以及强制读 package.json 的预检协议。

AI Agent 浪费 token 怎么省:六条可执行的省钱规矩

有人用 Agent 改一个 Tailwind 颜色类,最后账单超过十美元:上下文塞整页、模型猜栈、整文件重写、再为幻觉配置返工。Joshua Pchumba 把教训收成六条——核心不是「换更便宜模型」,而是别把 Agent 当读心术同事

1. 上下文做手术,别做尸检

只附相关文件,点名行号。把 500 行组件整份塞进去只为改一行,等于让实习生通读整本教材找一个错字——你按页付钱。

在 Dashboard.jsx 第 42 行主按钮:bg-blue-500 → bg-emerald-500。只改这一处。

Cursor@file / 精确选区;Claude Code 用 @path 或粘贴 ±5 行片段。能钉上下文就钉。

任务规模 推荐上下文 避免
改一行样式 单文件 + 行号 整仓 @
修一个 hook 该 hook + 调用方 1 个文件 整个 src/
跨模块重构 接口定义 + 2–3 实现文件 README + 全组件库

上下文预算纪律也适用于 Claude Code,见 上下文窗口管理。会话超过约 20 轮且主题已漂移,新开 chat 往往比续聊便宜。

2. 第一句锁死技术栈

「做个登录表单」=「做个交通工具」。模型会猜 Formik/RHF/Zod,你每纠正一次就付一次重写费。会话顶贴 Stack Header:

Stack: React 19, Tailwind, React Hook Form + Zod, TanStack Query, Zustand, React Router v7.

Stack Header 还应包含:包管理器(pnpm/yarn)、测试框架(Vitest/Jest)、是否 App Router。国内 monorepo 常见 pnpm workspace,不写清楚模型会按 npm 幻觉生成 install 命令。

把 Stack Header 存进项目 AGENTS.md 或 Cursor User Rules,每次粘贴省 30 秒,长期省大量纠正轮次。

3. 禁止整文件重写

默认生成整文件对模型更省事,对你更贵。明确要求 search-replace / 仅输出变更块:

不要重写整个文件。只给 search-replace 或变更行±2 行上下文。

Claude Code 可要求用 Edit 工具而非整文件覆盖;Cursor 可强调「Apply 模式只改 diff」。若模型仍输出全文件,直接打断:「停止,只给 unified diff」。

整文件重写的隐藏成本:你 merge 时看不清改了什么,漏审一行就可能引入密钥或删测试——后续返工又是 token。

4. 先静态骨架,再接大脑

一句话同时要 UI + API + loading,模型会把 fetch 缠进 JSX,你再花四轮拆。拆成两枪:

  1. 硬编码数据把 UI 做对
  2. 再把数组换成 useQuery

第二步单独会话往往更干净:「上一步 UI 已 OK,现在只接 API,endpoint 是 /api/users,用已有 TanStack Query 模式」。

非 UI 任务同理:先写纯函数与类型,再接 CLI/HTTP 壳。每层验收通过再叠,比一次要「完整功能」少 50% 返工。

5. 固定设计词典(如强制 Tailwind)

允许模型自创 .super-cool-wrapper,它会花 token 解释类名,再在你否决后重写。限定「只用 Tailwind 工具类、禁止自定义 CSS」能砍掉创作型废话。

可追加约束:

  • 颜色只允许 slate/emerald/blue 色板
  • 间距只用 4 的倍数
  • 图标只用 lucide-react 已有组件

设计词典写进 Stack Header 或 .cursor/rules,团队统一,模型不会每个会话发明新 CSS 架构。

6. 幻觉要预检,别事后哭

模型会自信地谎报工具能力与依赖版本。开干前强制 Pre-flight:

Pre-flight:先读 package.json 与 tailwind.config。向我复述 React/Query/调色板版本。未确认前禁止写代码。

read_file 从可选变成门禁。Pre-flight 失败时的典型信号:模型说「项目用 Next 14 App Router」而你是 Pages Router;说「已安装 shadcn」而 package.json 里没有。

这和「收尾阶段信任但核实」同一逻辑,见 Claude Code 最后 30% 怎么收尾

会话级省钱清单

动作 省在哪
小改动用小模型/Cost 路由 单价不用前线价
同一功能不换模型中途 吃 prompt cache
主题漂了就新开会话 少带脏上下文
团队开智能路由 Cursor Router 如何省成本
BYOK 设月度预算告警 账单直出,无缓冲
批量相似改动合并一条 prompt 少重复 Stack Header

国内开发者:Relay 与订阅场景

  • CodePass / 中转按量:Pre-flight + 手术式上下文 ROI 最高;整仓扫描一次可能抵几十次小改。
  • Max 周限额:把「探索读代码」交给小模型或 grep 自己先定位,再让强模型只写 patch。
  • 网络重试:超时后别在同会话说「继续」——常触发全量重发;新开短会话只带结论。

踩坑对照

现象 可能原因 立刻可做
改一行扣很多额度 上下文含大文件/图片 缩小 @ 范围
同一 Bug 修五遍 栈未声明,每次换库 补 Stack Header
diff 巨大难 review 未禁整文件重写 打断并要求 patch
配置类报错 未 Pre-flight 先读 lockfile

常见问题

已经 BYOK 了还用管这些吗?

更要管。BYOK 账单按量直出,浪费立刻反映在卡上;配置见 Cursor BYOK 设置。国内信用卡付 OpenAI 仍可能失败,BYOK 失败时别用「更大上下文」赌运气。

和「开最强模型省返工」矛盾吗?

不矛盾:难题用强模型,改颜色用手术式上下文 + 小模型。浪费来自任务与上下文不匹配,不来自「从不买强模型」。架构选型、安全审计值得 Opus;改 className 不值得。

有没有一键模板?

把 Stack Header + Pre-flight +「只输出 diff」存成 User Rules / 项目 skill,新会话粘贴即用。Claude Code 可放 CLAUDE.md;Cursor 放 .cursor/rules

Agent 自动读了不该读的文件怎么办?

与 Codex/Cursor ignore 策略相关,见 Codex 排除敏感文件。省 token 的同时也在省「误读密钥后进上下文」的风险。

团队怎么统一规矩?

Code review 检查 Agent 产出时,过大 diff 直接打回;CI 不替 Agent 兜底「整文件替换」的漏网之鱼。

一周对照实验(可自测)

选同一小任务(例如改按钮色 + 补一条测试),分两次做:

轮次 做法 记录
A 整文件 @、无 Stack Header 轮数、额度/美元
B 六条规矩全开 轮数、额度/美元

多数人会看到 B 轮对话更短、总 token 更低。把 B 的 prompt 模板固化,比「记住要省」有效。

和订阅/quota 的关系

Claude Max、Cursor Pro、按量 Relay 的计费单位不同,但浪费结构相同:大上下文进、大上下文出。省 token 不等于永远用小模型——而等于「每次请求只带完成任务的最小信息」。配额快见底时,优先关 Autopilot 全仓扫描,改用手动 @ 三个文件,往往比降模型档位更能撑到月底。

改样式、改文案、补 import 这类任务,单独开「轻量会话」:只贴 Stack Header + 10 行代码片段,通常一轮结束。别在讨论架构的同一会话末尾顺手改 CSS——上下文里已有上万 token 架构讨论,改一行也按全量计价。

参考资料