devlooper: 自主修复代码的程序合成代理
devlooper 是一个创新的程序合成代理,它能够通过运行测试来自主修复其输出。这个项目由 Modal Labs 开发,旨在简化代码生成和调试的过程。让我们一起来了解这个强大工具的特点和使用方法吧! 🚀
主要特点
devlooper 具有以下几个突出的特点:
- 自主修复: 通过运行测试,devlooper 能够自动识别和修复代码中的错误。
- 多语言支持: 目前支持 React + Jest、Python 和 Rust 三种环境模板。
- 沙箱环境: 利用 Modal 的 Sandbox 原语在隔离环境中运行测试。
- 调试循环: 通过迭代运行测试和修复,直到所有测试通过。
工作原理
devlooper 的工作原理可以概括为以下几个步骤:
- 环境模板: 使用预定义的环境模板来设置基本的测试环境。
- 沙箱执行: 在 Modal 的 Sandbox 中运行测试,确保环境隔离。
- 调试循环:
- 运行测试命令
- 如果测试失败,将输出传递给 LLM 进行诊断
- 根据诊断生成 DebugPlan
- 执行 DebugPlan 中的修复操作
- 重复以上步骤直到所有测试通过
使用指南
要开始使用 devlooper,请按照以下步骤操作:
- 创建 Modal 账户
- 在当前 Python 环境中安装
modal
- 创建 Modal token
- 创建 OpenAI 账户并获取 API 密钥
- 创建 Modal secret 并命名为
openai-secret
准备就绪后,您可以使用以下命令生成代码:
modal run src.main --prompt="a simple 2D graphics library" --template="rust"
modal run src.main --prompt="a todo-list app" --template="react"
modal run src.main --prompt="a webscraper that checks if there are new reservations for a given restaurant on Resy" --template="python"
学习资源
如果您想深入了解 devlooper,以下是一些有用的资源:
- GitHub 仓库: 包含完整的源代码和文档
- Modal 文档: 了解 Modal Sandbox 的使用
- smol developer: devlooper 的基础项目
- env_templates.py: 环境模板的实现代码
未来展望
devlooper 目前仍处于概念验证阶段,未来可能会有以下改进:
- 允许用户在循环中提供反馈
- 改进调试提示,使用嵌入检索相关代码部分
- 自动获取包的文档
- 使用先前的编辑历史来防止模型陷入循环
- 从头合成
EnvTemplate
- 扩展到更多 LLM,包括开源模型
devlooper 为自动化代码生成和调试开辟了新的可能性。无论您是经验丰富的开发者还是编程新手,都可以尝试使用这个强大的工具来提高您的编程效率。希望这篇入门指南能帮助您快速上手 devlooper,开启自主代码修复的新篇章! 🌟