ARTICLE · 1203094
使用AI助手CodeBuddy协同开发省token又让执行结果更精准的几个技巧
关注公众号, 即可获得与Linux相关的电子书籍(含《嵌入式系统设计与应用》)以及常用开发工具,文末有文档清单,本公众号提供的电子书均只可作为个人学习使用,不可用做商业用途。

刚开始使用时,我很小心翼翼,安排的任务指令下得非常清晰,改动文件指定,AI改很准确,但当下一次发指令时没有带上精准指令,TA就有点乱改了,比如删掉原本的宏定义下的逻辑,还有每次改动注释添加得很多,脚本改一行添加了五六行的注释,这些输出都是要花token的,不要以为不看注释就行了。另外我这种有强迫症的人忍不住会去看注释,就很浪费时间,所以我把遇到的这些问题又用网页版免费AI去查了一遍,浪费了一些token来验证AI给出的方法有效,然后整理成本文,以后可以参考,希望也能对看到本文的你有帮助。
🌸 明明下了指令,CodeBuddy还是乱改?
大多数"AI 改错代码"事故,根因就三个:
1. 上下文窗口有限:它没看到宏定义在哪、其他分支长啥样,就按当前场景脑补,顺手把 #ifdef 分支删了。
2. 指令太模糊:"帮我修这个 bug"——没有范围、没有禁止项,AI 默认可以在整个文件里自由发挥。
3. 规则太长,token烧得肉疼:alwaysApply 规则每轮对话都注入上下文,写一堆冗余,长期下来是纯浪费。
下面这些小技巧,可以解决token消耗和误改风险两个问题。
在工作空间下创建一个.codebuddy目录,目录里创建commands和rules目录,后续可以将规则和命令的md文件放进去,工作台可以自动调用,文件布局如下:
`workspace`目录下.codebuddy/├── commands/ # 复数commands!存放斜杠命令│ ├── saveModifyLog.md│ └── checkMacroBranch.md├── rules/ # 不是rulers!存放alwaysApply规则│ └── dev-standard.md└── settings.json
🌺 技巧一:常驻规则只留"最小必要"
alwaysApply: true 的规则文件每一轮对话都会塞进上下文,越长越费。所以它只放编码风格和硬性安全约束,把"写文件""存档"这些动作逻辑全部挪走。
.codebuddy/rules/dev-standard.md:
markdown ---alwaysApply: true---# 代码开发基础规则1.代码注释精简,仅保留必要信息,禁止冗余注释。2.代码修改完成后汇总本次变更:文件路径、变更简述、关键改动。3.宏定义、#ifdef条件编译代码约束: - 无我的明确指令,严禁删除、注释原有宏分支和业务策略; - 修改优先新增分支/调整判断条件,原有逻辑保留; - 修改前先说明各宏分支原有逻辑,确认理解无误再改代码。>默认生效,无需重复说明。
关键:第3条是硬约束。我没说删,就不能删。这是防"宏分支被删"的第一道闸。
🌷 技巧二:低频动作全做成斜杠命令,按需触发
斜杠命令只有你输入时才加载逻辑,平时不占上下文。这是省token的核心。
命令1:存档变更日志(/saveModifyLog)
.codebuddy/commands/saveModifyLog.md:
markdown ---description: 将上一轮的变更汇总写入modify_logs目录md日志---任务:1.在工作空间下./modify_logs目录创建以当前时间为基线命名的YYYYMMDD_HHMMSS.md文件。2.读取最近一次变更汇总内容,将其写入该文件。
命令2:宏分支预检(/checkMacroBranch)
.codebuddy/commands/checkMacroBranch.md:
markdown ---description: 分析全部#ifdef宏条件分支,输出原有策略,不修改任何代码---任务:1.解析代码内全部#ifdef / #ifndef / #else / #elif分支。2.逐条描述每个分支原始业务策略、启用条件。3.仅输出分析结果,**禁止修改代码**,等待我确认理解正确。
改宏相关bug前,先跑 /checkMacroBranch,让 AI 先证明它"读懂了",再放它去改代码。
🌻 技巧三:权限配置,白名单黑名单分层
settings.json 属于底层权限引擎,完全不占 token,放心用。
.codebuddy/settings.json:
json { "permissions": { "deny": [ "Read(./out/**)", "Read(./buildroot/**)", "Read(./toolchain/**)", "Read(./tmp/**)", "Read(./logs/**)" ], "allow": [ "Read(./modify_logs/**)", "Write(./modify_logs/**)" ] }}
deny:编译产物、toolchain 这种巨型目录直接禁读,省 token 又提速,还能防止 AI 读进无关代码。
allow:放行 modify_logs 读写,供 /saveModifyLog 存档。
可选再加一个 .codebuddyignore 控制自动索引(注意它只管索引,不管手动读取,硬阻断还得靠 deny)。
💐 技巧四:精准指定文件 + 代码行号
这是最省 token 又最不容易出错的一招。
不扫描整个目录,只锁定目标文件 + 行号范围,AI 只读那一段;
显式锁定修改边界,AI不会扩散改动到函数外、其他宏分支;
减少无关信息干扰,降低"脑补宏分支"的幻觉。
修改文件:xxx.c,修改范围:L120~L165修复此处bug。前置:分析本段所有#ifdef宏分支原有逻辑。约束:1. 只修改指定行号区间代码,区间外代码完全不动;2. 无明确指令,严禁删除/注释原有宏分支策略;3. 仅修复故障逻辑,不做全局重构。修改完成输出变更汇总,对比本段修改前后各分支行为。行号不稳定时(前面增删过代码),改用"粘贴目标代码片段"模式,效果一样。
🌸 完整工作流:先读懂,再改代码
1. 前置分析(不改代码) 贴源码 + 宏定义头文件 → 跑 /checkMacroBranch → AI 输出所有宏分支策略 → 你确认它理解了,才进下一步2. 下发修改指令 用"文件+行号+禁止项"模板,锁定边界3. 修改完成 常驻规则自动输出变更汇总(哪些分支没动、哪些改了、新增没有)4. 按需存档 /saveModifyLog 一键写入 modify_logs 时间戳md🌺 指令清晰化三要素
好指令 = 限定范围 + 显式禁止项 + 分步执行。
🌷 踩坑总结
1. AI 删掉 #ifdef 分支:
常驻规则加硬约束 + 改前跑 /checkMacroBranch。
2. 规则太长 token 爆炸:
拆分:基础约束常驻,动作逻辑放斜杠命令。
3. AI 读 build/toolchain 巨量文件卡死:
settings.json 加 deny 硬禁读。
4. AI 改动范围超预期:
每次指令带文件 + 行号 + "区间外禁改"约束。
5. 每次手动复制日志太烦:/saveModifyLog 一键按时间戳存档。
🌻 命令速查表
/checkMacroBranch | ||
/saveModifyLog | ||
/summarize |
💗一句话总结常驻规则只放"风格 + 禁止项",动作逻辑全做成斜杠命令按需触发,修改指令带上"文件+行号+禁止项"——token 省了,宏分支也保住了。
往期文章(欢迎订阅技术分享栏目全部文章):

15年+嵌入式软件开发经验兼二胎宝妈
分享读书心得、工作经验,自我成长和生活方式。
希望我的文字能对你有所帮助















































































