trae的skills模式可自动识别除零、空指针等漏洞并生成可验证补丁;需在.trae/skills/fix-bug-safe下创建含yaml元数据和五步修复指令的skill.md文件,支持右键或@指令触发,5秒内返回diff补丁与测试结果。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让Trae自动识别代码中的除零错误、空指针访问或状态机跳转漏洞,并直接生成可验证的修复补丁,而不是反复提问、手动粘贴、再自己跑测试——这正是Skills模式的设计初衷,它把“分析→定位→改代码→验证→提交”整条链路封装成一个可触发、可复用、带上下文感知的原子单元。
创建一个专属Bug修复Skill
打开项目根目录,新建.trae/skills/fix-bug-safe文件夹,在其中创建SKILL.md文件。
在文件顶部写入YAML元数据,【name字段必须全小写+短横线,且不能含中文或空格】:
---
name: fix-bug-safe
description: 当用户请求“修复这个Bug”“解决崩溃”“补上空检查”时触发。需读取当前文件、运行Python测试、生成diff格式补丁并附风险等级。
---
保存后,Trae会立即识别该Skill,无需重启或注册。
定义修复流程与工具调用
在YAML下方的Markdown正文里,用自然语言明确指令边界和执行约束:
你是一个资深Python缺陷修复专家,必须严格按以下步骤执行,不得跳过任何环节:
① 先用Read工具读取用户指定的.py文件全文;
② 用RunCommand执行python -m pytest test_*.py -v,捕获stderr中关键词如“ZeroDivisionError”“AttributeError”“KeyError”;
③ 若报错行存在未防护的变量解引用(如obj.field但无if obj:),则触发空指针修复模板;
④ 若报错为len(x) == 0导致除零,则在除法前插入if len(numbers) > 0:分支,并补默认返回值;
⑤ 所有修改必须保留原始缩进与注释位置,补丁输出格式为diff -u风格,且末尾附{"risk_level": "低", "test_result": "PASS"}结构化JSON。
这一步操作起来很简单,直接把上述文字粘贴进SKILL.md正文即可生效。
触发Skill并验证修复结果
方法一:在Trae编辑器中右键点击buggy_calc.py → 选择「Run Skill」→ 选中fix-bug-safe → 点击执行。
方法二:在聊天框输入:“@fix-bug-safe 请修复当前文件中可能导致ZeroDivisionError的逻辑。”
【注意:首次触发时,Trae会自动检测当前Git工作区是否干净;若存在未提交变更,将拒绝执行写入操作】
Trae启动后,依次调用Read→RunCommand→Edit→Diff生成,5秒内返回带语法高亮的补丁块和本地测试通过日志。











