#TRAE 技巧便利店
一、省钱的不是“少问”,而是“别让 AI 乱联想”
第一次意识到“计费方式会改变使用习惯”,是在一个再普通不过的场景里: QC 脚本跑到一半报错,指向一行很常见的调用—— summary = _summarize(…) 。
当时我还沿用以前“按次数计费”的心态:反正一次对话算一次,那就把需求写得越完整越好,顺带让 AI 扫一扫代码,寻思还能“顺便”帮我加点功能或者找点隐藏BUG。
结果是问题确实修了,但额度掉得也很真实。
那种感觉就像是:你本来只想修个水龙头,师傅却顺手把你家管线全巡检了一遍,还给你写了份未来三年装修规划。专业是专业,消耗也是真的快。
trae 现在走的是 Token 逻辑——你给模型多少上下文、它输出多少内容,都会算在账里(每条请求会记录输入/输出 Token 并折算成本)【参考:https://www.trae.ai/pricing】。
所以我现在的使用方式被迫重塑**【任务要拆小,指令要克制,尤其要禁止 AI 过度联想。】**
二、学会“一次只讲一件事”
按次数计费时,我的典型提问风格大概是这样,如:
-
“帮我修这个报错,顺便优化下性能”
-
“你扫一下整个项目,看看还能加哪些功能”
-
“把这个脚本做成通用工具,最好再给个可视化面板”
-
“如果你觉得还有别的隐患,也一并处理掉”
说实话,这种体验很爽,像在雇一个精力旺盛、还愿意主动加班的牛马搭档。
问题在于: 它会把“主动性”变成“上下文膨胀”。
一旦 AI 开始扫描更多文件、更多文档、更多可能性,它就会读取更多、推断更多、输出更多——而 Token 计费把这些“更多”统统换算成成本[新月脸]。
所以现在我基本换成另一套思路,如:
-
一个请求只解决一个问题
-
只给必要的代码片段,不给整份文件
-
明确写:不要扫描仓库、不要扩展功能、不要给我做“你觉得更好”的版本
这看起来像在压制 AI 的创造力,但实际效果是: 解决速度反而更稳定,成本也更可控。
因为我把 AI 的注意力从“想象空间”拉回到“证据链”。
三、Token 消耗最常见的坑,不是你问了十次,而是你让它做了这些事
-
扫项目 :为了“更懂上下文”,它会把更多文件纳入阅读范围
-
扫文档 :为了“更完整”,它会把更多说明、README、注释当成必读材料
-
发散功能 :为了“更好用”,它会输出很多你没要求、也不一定需要的功能方案、边界处理、架构建议
-
长篇解释 :为了“更清楚”,它会写一大段背景科普(很多时候你并不需要)
最要命的是,这些行为很隐蔽:你觉得它是在“帮你多想一步”,但在账单上,它是在“帮你多花一块”。
结合上面的坑,我现在最有效的省 Token 心得:多次分小任务 + 明确禁止过度联想
给AI立了个简单到近乎粗暴的规则:
目标:修复这个报错,让脚本能跑完。
范围:只看 XXXX_qc.py 和它直接调用的函数;不要扫描仓库其它文件。
输入:我只提供相关 60 行代码 + 报错首尾 20 行。
输出:只给最小补丁(unified diff)+ 3 条说明;不要扩展功能,不要写长解释。
这段话的关键不在“格式”,而在三条约束:
- 范围钉死 :不许乱扫
- 输入变短 :不喂整份文件
- 输出变短 :不写你没要的功能
四、两轮工作法:把“定位”和“动刀”分开
我现在遇到代码问题,基本不让 AI 一上来就改,而是分两轮:
1第一轮只做定位
目标很明确: “你告诉我该看哪 1–3 个文件、哪段行号、哪条调用链。”
这一步如果 AI 开始讲原理、讲架构、讲可能性,我会直接打断:
“停,先给定位清单,不要解释。”
2第二轮只做修补
我把定位到的那 40–120 行贴出来,再让它出 patch。
这时 AI 已经没什么“自由发挥空间”,输出会更短、更贴题。
你会发现一个很反直觉的结果: 轮次变多了,但 Token 总量反而下降。
因为每轮都很轻,且不会被历史对话拖着越滚越大。
五、使用SKILLS技能
创建skills技能
---
name: "token-saver"
description: "压缩上下文并输出最省 token 的行动方案与补丁。用户要省 token、对话变长、要贴大文件/长日志/长报错时调用。"
---
# Token Saver
## 目标
在保证任务质量的前提下,尽可能减少输入与输出 Token:
- 控制上下文体积(只带必要信息)
- 优先用工具/命令产出“结构化结果”而不是长篇解释
- 优先输出可直接执行的补丁、命令、或最短结论
## 触发条件(何时使用)
- 用户明确要求“省 token / 控制成本 / 减少对话消耗”
- 用户准备粘贴大文件、长日志、长报错、长表格
- 同一对话上下文明显变长,单次请求越来越慢/越来越贵
- 需要跨仓库检索、批量重构、或多步调试,但希望每步都短
## 工作流程(强制)
### 1) 先定“最小目标”
用 1 句明确本轮目标,只允许以下三类之一:
- 修复:让 X 不报错 / 让测试通过 / 让脚本跑通
- 改动:实现 Y 功能(限定文件/模块范围)
- 分析:定位根因 + 给出最小复现/最小改动建议
### 2) 只取“最小上下文”
只允许携带以下信息(按需取用):
- 文件路径 + 行号范围(优先 20–120 行)
- 报错的首尾关键 20 行(不要全量堆栈/日志)
- 依赖/版本信息(仅当与报错相关)
- 期望输入/输出样例(尽量 1 个)
禁止:
- 贴整份文件
- 贴整段训练日志/大表格
- 要求模型“通读全仓库后再说”
### 3) 先用检索,再用阅读
默认顺序:
1. 代码搜索(定位位置与调用链)
2. 只读必要片段
3. 直接出补丁或最短行动清单
### 4) 输出风格(强制简短)
- 默认不解释背景,不复述用户输入
- 优先输出 diff/patch、命令、或 3–7 条 bullet
- 需要解释时只解释“为什么这样改能解决问题”,不做长科普
### 5) 控制长链路与 Max
- 不主动建议开启 Max 模式
- 只有在“必须引入超大上下文/跨大量文件改动”时才建议 Max
- 若开启 Max,必须先给出“裁剪后上下文清单”,并说明预期收益
## 可直接复制的提问模板(给用户)
### Bug 修复(最省 token)
```
目标:修复 <一句话>。
环境:OS=<>, Python/Node/…=<>, 关键依赖版本=<可选>。
复现:运行命令:<一行>。
报错:只贴首尾关键 20 行(含异常类型与文件/行号)。
相关代码:<file_path>#Lx-Ly(或粘贴 40–120 行)。
限制:不要复述背景;只给最小补丁 + 1 句原因。
```
### 重构/批量修改(最省 token)
```
目标:把 <规则> 应用到 <范围>。
范围:仅限这些目录:<dir1, dir2>;不要扫全仓库。
约束:保持行为不变;只改必要文件;输出 unified diff。
验证:跑 <命令>,失败就只贴失败摘要与相关片段。
```
## 上下文裁剪清单(给用户)
- 只贴“错误类型 + 出错文件/行号 + 关键变量值”
- 栈追踪保留第一段与最后一段,删除中间重复
- 日志按时间窗口截取:错误前 5–20 行 + 错误后 5–20 行
- 数据样例最多 5 行;其余转为“统计摘要”(行数、列名、缺失比例)
