我是谁 & 遇到什么问题
我是独立小游戏开发者,做了一款叫《宿舍凉席大战》的微信小游戏。这 3 天用 TraeCode 迭代了大量功能——从修个人中心面板的闪烁 Bug、到游戏结束画面越界、再到把 6 个角色改成宿舍道具拟人化——改了几十处代码,跑了几十次对话,但积分消耗比我预想的低很多。
一开始的误区是:每遇到一个小改动就新开对话,每次都把整个 14000 行的 game.js 重新灌给模型。结果就是:没改几行代码,上下文先炸了,积分哗哗掉。
后来踩了几个坑,总结出了一套"边开发边省钱"的工作流。
我用了 TraeCode 解决了这件事
模式:Code
主要用了 TraeCode 的几个能力:
TodoWrite任务拆解 + 顺序执行Grep/Glob/Search精准定位代码,不重复读大文件Edit精确替换单行/片段,避免重写整文件- 子任务
Search Agent+General Agent给主对话"减负" node --check语法检查在本地验证,不占对话轮次
具体怎么做的
套路 1:用精准搜索代替"把整文件喂给模型"
这是最省积分的一步。我的 game.js 有 14000 多行,一次 Read 全文件就是巨大的上下文消耗,而其实每次只改其中几十行。
之前的错误做法:改个角色名就读整份 game.js,让模型"自己找位置"。
现在的做法:先用 Grep 精准定位,再用 Read 只读周围 5-10 行。
举个真实例子:把所有角色从"阿冷/大壮/萌妹…“改成"枕头君/小风扇/台灯娘…”,需要改 3 处地方——
- SKINS 数组定义
- 预加载文本
- spawnSkillText 硬编码
我没读整文件,而是连跑了 3 个 Grep:
Plain Text
Grep pattern:阿冷|大壮|萌妹|影哥|阳光
Grep pattern:spawnSkillText|题海战术|泰山压顶|尖叫攻击
Grep pattern:渲染.*身体皮肤.*1/6
每个 Grep 立刻返回精确行号,然后 Read 只取那附近 3-8 行。一次 Grep 的消耗是一次整文件 Read 的几十分之一,但效果完全一样。
套路 2:同类批量改动先搜所有命中位置,一次搞定,不反复开新对话
有一次改"LXB缩写→凉席币",界面显示用了 LXB 的地方有 7 处(飘字文字、商城入口副标题、余额卡片单位、商品价签、Toast 提示、清空存档弹窗、个人中心统计卡)。
我没有一处发现了就改一处(这样会开 7 次对话/7 轮上下文),而是先做了一次「全量命中盘点」:
用一条 Grep pattern:LXB|lxb 把所有出现位置拉出来,然后一次 Edit 全改完:
Plain Text
# 一次对话里排好序逐个改
1. spawnFloatText +d+' LXB' → +d+' 凉席币'
2. 道具商城副标题 凉席币 LXB 购买 → 用凉席币购买
3. 余额卡单位 LXB → 凉席币
...一共7处,一次全搞定
关键:把同类任务攒成一批,一次对话全改完。 改完立刻跑一次 node --check 本地验证,有问题再修,没问题就收工。积分花一次,活儿干一堆。
套路 3:大任务用子 Agent,主对话只留决策,不塞细节上下文
我们遇到"画面越界"这个问题时,涉及 4 个文件位置 + 多种可能性分析(canvas save/restore 配对?cameraShake 残留?setTransform 没重置?)。
如果全部在主对话里干,每读一段代码、每分析一种可能性,上下文就暴涨。
正确做法:用 Search Agent 子 Agent 做脏活累活。
主对话只发一句:
“帮我搜 game.js 里:ctx.save/ctx.restore 的使用位置、exitGame 函数内容、cameraShake 出现的所有行,把位置和内容列出来,别改代码。”
Search Agent 自己跑一堆 Grep/Read,最后只给主对话返回结构化的命中结果清单(文件+行号+片段)。主对话的上下文里没有中间过程,只有干净的结论。改代码时再用这些精确位置做 Edit。
效果:主对话上下文压力降了 70%+,积分自然省了。
套路 4:用 TodoWrite 控制"每轮只做一件事",避免上下文膨胀
TraeCode 自带的 TodoWrite 除了帮你追踪进度,最大的隐藏好处是强制你把任务拆细,控制每轮上下文的大小。
比如画面越界这件事,我是这样拆的:
Plain Text
[1. 分析越界原因 ] completed
[2. exitGame重置ctx ] in_progress
[3. save/restore配对 ] pending
[4. 语法检查验证 ] pending
每轮只让自己改 in_progress 的那一项,做完一项就完成并进入下一项。好处是:
- 本轮上下文里没有其他任务的大段代码
- 模型不需要同时记住"我还要改 3 个别的地方",注意力集中
- 万一中间出错,回滚也只影响一小步,不是全盘重来
对比之前"一次性告诉模型 4 件事,让它全干完",上下文体积至少小 3 倍,模型出错率也明显下降。
我做出了什么
用这 4 个套路,这 3 天我完成了:
- 个人中心闪烁方块 Bug + 点击无反应修复(删 9 处 _hb 绘制 + 命中检测重写)
- 游戏结束返回主菜单画面越界修复(exitGame 重置 ctx + 3 处 save/restore 改 try-finally)
- 6 个角色名 + 6 个技能名 全部改成"宿舍道具拟人化"(SKINS + 预加载 + spawnSkillText 三处同步)
- 全界面 LXB 缩写 → 凉席币(7 处显示文字全改)
积分消耗比之前最开始的"粗放模式"省了大概 60% 左右,而且代码质量反而更高——因为上下文没炸,模型每轮注意力都很集中。
经验 & 技巧总结
- "精准定位 → 局部编辑 → 本地验证"三步走,是积分最省的开发节奏。 Grep/Read 找位置,Edit 精确改,node --check 验证,一步都别省。
- 能用子 Agent(Search/General)做的,坚决不在主对话做。 主对话留决策和最终执行,子 Agent 做搜索、扫描、盘点类脏活。
- 同类改动攒一批再动手。 今天想改 LXB 就全找齐了一次改完,别今天改一处、明天想到又改一处——后者每轮都要重建上下文。
- TodoWrite 不只是给你自己看的,也是给模型看的"上下文减肥器"。 每轮只让模型聚焦 in_progress 那一件,做完再下一件。