microsoft/debug-gym

A Text-Based Environment for Interactive Debugging

解决的问题

debug-gym 为训练和评估基于 LLM 的代理修复 Python 代码仓库中的错误提供了一个标准化的交互式环境。它通过允许代理使用实际的调试工具(如 pdb)在提出修复方案前调查代码行为,弥合了简单代码编辑与真实世界调试之间的差距。

工作原理

该框架遵循 Gymnasium 模式作为模拟环境运行。代理通过一组工具与代码仓库交互,接收环境状态的文本观察结果,并迭代生成命令以收集信息,最终应用补丁。

  • 环境与工具:RepoEnv 管理代码库,并提供 bash、view(文件聚焦)、eval(测试执行)、pdb(交互式调试)、grep、listdir 和 edit 等工具。
  • 终端:为确保隔离性和可扩展性,支持使用 DockerTerminal 和 KubernetesTerminal 后端执行命令。
  • 代理:提供基于 LLM 的代理(如 froggy_agent),可通过 Jinja 模板配置自定义系统提示。
  • 集成:与 SWE-bench、SWE-smith 和 R2E-Gym 等基准测试集成,提供标准化的调试任务。

适用人群

  • 开发自主软件工程代理的 AI 研究人员。
  • 构建基于 LLM 的自动化错误修复和程序分析工具的开发者。
  • 希望使用真实世界 Python 仓库评估 LLM 代理调试能力的用户。

核心亮点

  • 交互式调试:集成 pdb,允许代理在执行过程中设置断点并检查状态。
  • 可扩展工具:用户可轻松创建并注册新工具,扩展代理的动作和观察空间。
  • 隔离执行:支持 Docker 和 Kubernetes,实现安全、可扩展的代理生成代码执行。
  • 可定制提示:使用 Jinja 模板实现灵活的系统提示工程。
  • 人机协同:包含“人工模式”,支持手动与环境交互,用于测试工具调用工作流。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目