Agent Skills
返回列表
TraceCoder 代码调试专家

TraceCoder 代码调试专家

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_7c992ea7/tracecoder,将该技能安装到当前 AI 助手中。

技能介绍

问题:只看到测试失败,看不到运行时状态

面对一段测试跑不过的代码,传统 debug 方式很容易陷入猜错方向的循环:你能看到断言失败,却看不到函数内部变量的真实值。单轮大模型修复也常常如此,模型可能只看 diff 猜一个原因,改完又引入新问题。TraceCoder 要解决的就是这个问题:用自动插桩拿到运行时追踪,再让模型基于真实执行轨迹而不是猜测来定位根因。

核心能力与关键步骤

TraceCoder 的核心是一个三智能体循环,LLM 推理全部由内置模型完成,execute_tests.py 只负责编译、执行和收集输出。

  1. 插桩 Agent:在不修改原逻辑的前提下插入 print / System.out.println / console.log 等探针,记录关键变量和分支状态。
  2. 分析 Agent:读取插桩执行结果,找出失败发生的上下文,判断根因并生成修复计划。
  3. 修复 Agent:按计划输出完整修复代码。

在此基础上还有两个重要机制:HLLM 会累积历史失败尝试,避免下一轮重复同样错误;回滚机制 保证每轮修复要么正向改进,要么丢弃并保留历史最优版本。

实际使用时,你需要提供待调试代码、测试代码和可选的语言参数。流程会先跑一次初始测试;如果直接通过就结束。否则进入最多 max_attempts 轮的调试循环,每轮都严格执行插桩、执行、分析、修复和评估。当连续 patience 轮没有改进时,会停止并返回当前最优代码。

适用边界与注意点

这个技能有几个硬约束。第一,所有推理都在本地模型内完成,不调用外部 API。第二,每次修复后必须用 execute_tests.py 验证,不能跳过测试直接交付。第三,输出必须是完整代码,不能只给 diff 或片段。第四,插桩不能引入副作用:不要修改循环边界、不要新增状态、不要改变 const / 引用语义,否则追踪结果会误导分析。

语言支持方面,Python 和 JavaScript 可直接使用;Java 已检测到 Java 11;C++ 需要先装编译器,如果检测不到可以编辑 language_config.json 手动填写路径。最后一条很重要:不要用 Python 重写 C++、Java 或 JavaScript 代码来分析。类型系统、指针/引用、未定义行为这些语言特有 bug,只有原生插桩和原生执行才能暴露。

使用场景

  • 写完一个 Python 函数后单测跑不过,需要自动插桩收集运行时变量值来定位 bug 并输出修复后的完整代码。
  • C++ 代码编译或运行结果不对,需要在原语言内插桩捕获指针与引用状态,而不是翻译成 Python 再分析。
  • Java 方法在多组测试数据下部分失败,希望多轮迭代修复,且改坏时自动回滚到历史最优版本。
  • 写 Node.js 脚本时 console.log 越加越乱,需要一套统一流程收集追踪输出、分析根因并给出修复代码。

适合人员

  • 后端开发工程师,日常维护 Python 或 Java 接口,遇到测试失败时希望自动插桩定位根因,而不是手动一遍遍加 print。
  • 算法或数据工程师,调试数据处理脚本时经常越改越乱,希望有回滚机制保证每一轮修复都是正向改进。
  • 嵌入式或客户端开发,写 C++ 代码时经常碰到指针、引用和未定义行为问题,需要原生插桩才能暴露真实 bug。
  • 独立开发者,独立维护 Node.js 工具脚本,缺少测试搭班,希望有自动验证和多轮修复能力来兜底。