如果你关注大模型,Devin——这个名字你肯定有听过,他是一位具有开创性的AI软件工程师,前段时间他正在人工智能领域掀起波澜。
通过Devin,我们看到了LLM在软件开发方面的巨大潜力。经过一段时间的发展,程序员的工作还没有被替代。但大模型作为辅助工具,确实帮助程序员提高了工作效率。
这段时间我们又发现了几个开源AI Agent也有很强的软件开发能力,有望改变程序员的工作方式。
1.SWE-agent
https://github.com/princeton-nlp/SWE-agent
SWE-agent是一个革命性的工具,可以将GPT-4等语言模型(LM)转换为强大的软件工程代理。这些代理可以处理各种任务,例如:修复GitHub存储库中的bug、协助代码生成、重构代码等。
主要特性包括:
- Bug修复:SWE-agent可以自动识别和修复代码中的bug,为开发人员节省宝贵的时间和精力。
- 代码生成:代理可以基于自然语言描述生成代码片段和整个函数,加快开发工作流程。
- 代码重构:SWE-agent可以分析代码并提出改进建议,以增强可读性,性能和可维护性。
- 易于安装:SWE-agent提供多种安装选项,包括无需安装的基于浏览器的版本。
- 丰富的配置:该工具可以在不修改代码的情况下进行广泛的自定义,允许用户根据自己的特定需求进行定制。
SWE-agent具有强大的功能和友好的用户界面,能够将繁琐的任务自动化,并提供智能协助,帮助开发人员专注于业务、创意和战略性的方面内容,有望彻底改变软件工程师的工作方式。
系统架构如下图所示:
2.Devika
https://github.com/stitionai/devika
Devika是一款AI软件开发助手,旨在帮助开发人员简化工作流程并提高生产力。凭借其自然语言处理功能,Devika可以理解并响应开发人员的查询,提供各种帮助。
Devika的主要功能包括:
- 代码生成:Devika可以基于自然语言描述生成代码片段和整个函数,节省开发人员的时间和精力。
- 代码说明:该助手可以用简单的术语解释复杂的代码概念和算法,使开发人员更容易理解和应用它们。
- 自动化任务:Devika可以自动执行重复性任务,例如设置开发环境或运行测试,从而使开发人员能够专注于更重要的工作。
- 个性化推荐:该助手从每个用户的偏好和编码风格中学习,为工具、库和最佳实践提供量身定制的建议。
3.OpenHands(原名OpenDevin)
https://github.com/All-Hands-AI/OpenHands
OpenHands一个由AI驱动的软件开发代理平台。OpenHands代理可以做任何人类开发人员可以做的事情:修改代码、运行命令、浏览网页、调用API,甚至可以从StackOverflow复制代码片段。旨在帮助开发人员完成从代码生成到项目管理的各种任务。OpenHands构建在大型语言模型之上,为开发人员提供了一个灵活且可扩展的平台,以构建自己的AI驱动工具。
OpenHands的主要功能特性:
- 模块化架构:模块化设计支持开发人员轻松添加新功能,并根据其特定需求定制助手。
- 多语言支持:该助手可以理解和生成多种编程语言的代码,使其对从事不同项目的开发人员非常有用。
- 可扩展的基础架构:建立在可扩展的基础设施上,使其能够处理大量请求并支持不断增长的用户群。
OpenHands系统架构如下图所示:
4.GPT-Pilot
https://github.com/Pythagora-io/gpt-pilot/
GPT-Pilot是一个用于软件开发的对话式AI助手,旨在帮助软件开发人员在整个开发生命周期中提高效率。GPT-Pilot使用大型语言模型构建,可以参与自然语言对话,GPT Pilot不只是生成代码,它还能构建应用程序。
GPT-Pilot的主要特性:
- 对话界面:GPT-Pilot使用对话界面,允许开发人员以自然和直观的方式与助手进行交互。
- 多模式支持:该助手可以处理各种输入类型,包括代码段、图像和文件,因此可用于各种开发任务。
- 上下文理解:GPT-Pilot在整个对话中保持上下文,允许更连贯和相关的响应。
- 持续学习:助手从每次交互中学习,随着时间的推移提高其知识和能力,以帮助开发人员。
以下是GPT Pilot创建应用程序的步骤:
- 输入应用程序名称和描述。
- 产品所有者代理就像在真实的生活中一样,什么也不做。:)
- 如果项目描述不够好,规范编写者代理会问几个问题来更好地理解需求。
- 架构师代理编写将用于应用程序的技术,并检查计算机上是否安装了所有技术,如果没有,则安装它们。
- 技术主管代理编写开发人员必须实现的开发任务。
- 开发人员代理接受每个任务,并写下实现它需要做什么。描述是人类可读的形式。
- Code Monkey代理获取Developer的描述和现有文件并实现更改。
- Reviewer代理会检查任务的每一步,如果有错误,Reviewer会将其发送回Code Monkey。
- 当出现问题时,搜索引擎代理可以帮助您向GPT Pilot提供良好的反馈。
- 探员讨厌见到他,但当事情变糟时,他是你最好的朋友。
- 技术写作代理为项目编写文档。
5.Agent Zero(零号特工)
https://github.com/frdel/agent-zero
Agent Zero是一个灵活的人工智能代理,旨在帮助软件开发人员完成从代码生成到项目管理的各种任务。Agent Zero使用先进的机器学习技术构建,可以适应每个用户的特定需求和偏好。
Agent Zero的主要特性:
- 灵活的架构:Agent Zero的模块化设计允许开发人员轻松自定义代理的功能和行为,以满足他们的特定需求。
- 个性化帮助:代理从每个用户的交互和偏好中学习,随着时间的推移提供量身定制的建议和帮助。
- 多模式支持:Agent Zero可以处理各种输入类型,包括代码段、自然语言描述和文件,这使得它可以用于各种开发任务。
- 可扩展的基础架构:该代理构建在可扩展的基础设施上,允许它处理大量请求并支持不断增长的用户群。