每位开发者都应该知道的10个开源 AI 编程工具

文摘   2024-11-11 08:18   上海  

AI 正在改变我们所熟知的世界,对于开发者而言,拥抱 AI 可以显著提升生产力。它可以帮助你更快地推出新功能,为你编写测试用例,甚至发现代码中的漏洞。 

互联网上提供了许多工具,但找到合适的工具需要时间和精力。因此,我整理了一份 AI 工具清单,帮助你成为一名更好、更有效率的开发者。

1. SWE-Kit : 开源 head-less IDE for Coding agents

作为一名开发者,我一直希望能够构建定制化的 AI 工具,让我能够与代码库进行聊天,自动化推送 GitHub 变更,并自动发布新功能。老实说,直到现在我才找到了这样一个工具。

SWE-Kit 是一个head-less IDE,具有诸如语言服务器协议(LSPs)、代码索引和代码检索增强(RAG)等功能。它提供了一个灵活的运行时环境,可以在任何 Docker 主机或远程服务器上运行,并且可以与专门的编码工具包一起使用。

这些工具包包括与 GitHub、Jira 和 Slack 等平台的集成,以及文件搜索和代码索引等工具,这些工具由 Composio 提供支持。

使用 SWE-Kit 构建的编码代理在经过验证的 SWE 基准测试中取得了令人印象深刻的 48.60% 的成绩。

这个综合基准测试包括来自流行库(如 Django、Scikit-learn、Flask、Sympy 等)的一些真实世界 GitHub 问题。

SWE-Kit 与所有主要的大型语言模型(LLM)框架兼容,包括 LangChain、CrewAI、Autogen 和 LlamaIndex。

应用场景

GitHub PR Agent:

用途:用于自动化 GitHub 拉取请求(PR)的审查。

功能:可以自动检查代码质量、检测潜在的错误和漏洞,并提供改进建议,从而加快代码审查过程。

SWE Agent:

用途:可以构建一个 SWE 代理,自动编写功能代码、单元测试、文档等。

功能:通过 AI 技术,SWE 代理可以自动生成高质量的代码和测试用例,提高开发效率,减少手动编码的工作量。

Chat with Codebase:

用途:可以构建一个工具,用于与任何远程或本地代码库进行聊天。

功能:利用代码索引工具,开发者可以通过自然语言与代码库进行交互,快速查找和理解代码中的特定部分,提高开发效率和代码管理能力。

总结

SWE-Kit 作为一个无头 IDE,不仅与多种大型语言模型框架兼容,还提供了丰富的应用场景。

你可以构建和部署自己的 GitHub PR Agent 来自动化代码审查,构建 SWE Agent 来自动编写功能代码和测试用例,或者构建 Chat with Codebase 工具来与代码库进行自然语言交互。

这些功能有助于提高开发效率,减少手动工作量,并提升代码质量。

文档:https://docs.composio.dev/swekit/introduction

2. Composio: AI 集成和工具平台

Composio 是一个开源平台,提供第三方集成以构建 AI 代理。它支持 Linear、Slack、GitHub、Jira、Asana 等平台的集成,可以用于构建定制化的 AI 代理。

例如:

与用户在 Slack 和 Discord 上互动:

你可以构建全面的代理,与用户在 Slack 和 Discord 上进行互动。回应查询、引导他们完成支持流程,或安排后续行动。

在 GitHub 上自动修复 Bug:

你可以构建编码代理,从 Jira 票据中自动修复 GitHub 上的 Bug。

编写代码文档:

你可以构建代理,自动生成代码文档。

Composio 非常容易上手。

https://docs.composio.dev/introduction/intro/overview

3.Aider - AI 配对程序员

如果你正在寻找一个配对程序员来帮助你更快地交付代码,那么 Aider 是完美的选择。

Aider 让你可以与大型语言模型(LLM)配对编程,编辑你本地 GitHub 仓库中的代码。你可以开始一个新项目,也可以与现有的 GitHub 仓库合作。

https://aider.chat/docs/usage.html

4. Mentat - GitHub 原生编码代理

Mentat 是一个 AI 工具,旨在帮助你从命令行解决任何编码任务。

与 Copilot 不同,Mentat 可以协调多个文件和位置的编辑。与 ChatGPT 不同,Mentat 从一开始就理解你的项目上下文,无需复制和粘贴!

Mentat 拥有一个专用的命令行界面(CLI)工具,可以直接与代码库通信,并可以从终端提示生成和执行 Python 代码。

https://mentat.ai/docs/setup

5.AutoCodeRover - 自主程序改进

AutoCodeRover 提供了一个完全自动化的解决方案,用于解决 GitHub 问题,包括 Bug 修复和功能添加。

通过结合大型语言模型(LLM)与先进的分析和调试能力,AutoCodeRover 能够优先处理修补位置,高效地创建和实施补丁。

https://github.com/nus-apr/auto-code-rover

6. Continue - 领先的 AI 驱动代码助手

你可能听说过 Cursor IDE,这是一个流行的 AI 驱动的IDE;Continue 与之类似,但它是开源的,采用 Apache 许可证。

Continue 高度可定制,允许你添加任何语言模型以实现自动补全或聊天功能。这可以极大地提高你的生产力。你可以将 Continue 添加到 VSCode 和 JetBrains 中。

主要功能

  1. 聊天以理解和迭代代码:
  2. 在侧边栏中与代码进行聊天,理解代码逻辑并进行迭代修改。
  3. 自动补全:在你输入时接收内联代码建议,提高编码速度和准确性。
  4. 为日常使用场景建立快捷方式,提高工作效率。

总结

Continue 作为一个高度可定制的 AI 驱动代码助手,提供了丰富的功能,包括聊天、自动补全、编辑和动作,可以帮助你更高效地编写和管理代码。无论是提高生产力、简化工作流,还是增强代码理解,Continue 都是一个值得尝试的工具。

https://docs.continue.dev/

7.Qodo Merge: 自动化拉取请求分析工具

Qodo Merge 是 Codium AI 提供的一个开源工具,用于自动化 GitHub 拉取请求的审查、分析、反馈和建议。它可以帮助你在处理拉取请求时提高生产力,并且兼容其他版本控制系统,如 GitLab 和 BitBucket。

Qodo Merge 提供了自托管和云托管两种解决方案。

对于自托管解决方案,你需要一个 OpenAI API 密钥和一个 GitHub 或 GitLab 访问令牌。

详细说明

功能

1.自动化审查:自动化审查 GitHub 拉取请求,提供详细的分析报告。

  1. 反馈和建议:自动生成反馈和改进建议,帮助开发者快速解决问题。

  2. 兼容多种版本控制系统:除了 GitHub,还支持 GitLab 和 BitBucket,适用于多种开发环境。

  3. 自托管和云托管解决方案:提供自托管和云托管两种选择,满足不同用户的需求。

总结

Qodo Merge 作为一个自动化拉取请求分析工具,通过提供详细的审查报告、反馈和改进建议,帮助开发者更高效地处理拉取请求。

它不仅支持 GitHub,还兼容 GitLab 和 BitBucket,提供了自托管和云托管两种解决方案,满足不同用户的需求。无论是提高生产力还是简化工作流,Qodo Merge 都是一个值得尝试的工具。

https://qodo-merge-docs.qodo.ai/installation/locally/

8.OpenHands: AI 软件开发者代理平台

OpenHands 是领先的开源 AI 代理平台之一,是 Devin 的直接竞争对手。OpenHands 代理可以构建新的绿地项目、为现有代码库添加功能、调试问题等。

要开始使用 OpenHands,你需要 Docker 版本 26.0.0+ 或 Docker Desktop 4.31.0+,以及 Linux、Mac 或 WSL(Windows Subsystem for Linux)。

功能

  1. 构建新项目:可以从头开始构建新的绿地项目。

  2. 添加功能:为现有的代码库添加新功能。

  3. 调试问题:帮助调试代码中的问题,提供解决方案。

总结

OpenHands 作为一个领先的开源 AI 代理平台,提供了强大的功能,包括构建新项目、添加功能和调试问题。其代理在 SWE-bench 排行榜上的优异表现证明了其在软件工程任务中的高效性和可靠性。

要开始使用 OpenHands,只需确保你的系统满足 Docker 和操作系统的最低要求。无论是提高开发效率还是简化代码管理,OpenHands 都是一个值得尝试的工具。

https://docs.all-hands.dev/modules/usage/installation

9.Cody from Sourcegraph: IDE 编码助手

Cody 是 Sourcegraph 推出的一个开源项目,旨在直接在你的 IDE(如 VS Code、JetBrains 等)中增强你的编码工作流程。

Cody 作为一个编码助手,利用先进的搜索功能从本地和远程代码库中提取上下文信息。这使得你可以在 IDE 中无缝访问关于 API、符号和使用模式的详细信息,无论规模大小。

使用 Cody,你可以与代码库进行聊天,进行内联编辑,获取代码建议,并享受自动补全等特性,所有这些都旨在帮助你更快、更有效地编码。

功能

  1. 通过自然语言与代码库进行交互,快速查找和理解代码中的特定部分。

  2. 在不离开当前文件的情况下进行代码编辑,保持工作流的连续性。

  3. 获取代码建议,帮助你编写更高质量的代码。

  4. 在你输入时接收内联代码建议,提高编码速度和准确性。

  5. 利用先进的搜索技术,从本地和远程代码库中提取上下文信息,帮助你快速找到所需的信息。

  6. 直接集成到你的 IDE 中,无需切换工具,保持工作流的流畅性。

  7. 通过自动补全、代码建议和内联编辑等功能,帮助你更快、更有效地编码。

总结

Cody 是一个强大的 IDE 编码助手,旨在通过先进的搜索技术和自然语言交互,帮助你在 IDE 中更高效地编码。

无论你使用的是 VS Code、JetBrains 还是其他 IDE,Cody 都能提供无缝的集成体验,帮助你快速查找和理解代码,提高编码速度和质量。

无论是提高生产力还是简化工作流,Cody 都是一个值得尝试的工具。

https://sourcegraph.com/docs/cody/quickstart

10. VannaAI: 与 SQL 数据库聊天

SQL是现代软件开发中最关键的技术之一。几乎所有公司都严重依赖 SQL 来与关系数据库进行交互。正如人们所说,总有一款 AI 工具可以解决这个问题,而这款工具就是 Vanna AI。

Vanna AI 是一个开源工具,让你可以使用自然语言与 SQL 数据库进行聊天。

Vanna 的工作原理分为两个简单的步骤——首先在你的数据上训练一个 RAG(检索增强生成)“模型”,然后提出问题,这些问题将返回可以自动在你的数据库上运行的 SQL 查询。

功能

  1. 使用自然语言与 SQL 数据库进行交互,无需编写复杂的 SQL 查询。

  2. 提出问题后,Vanna 会生成相应的 SQL 查询,并可以设置为自动在数据库上运行。

对于不熟悉 SQL 的开发者来说,Vanna AI 大大降低了与数据库交互的门槛。

通过自然语言交互,可以快速获取所需的数据,提高开发效率。

总结

Vanna AI 是一个强大的工具,通过自然语言交互和自动查询生成,帮助开发者更轻松地与 SQL 数据库进行交互。

无论是降低 SQL 编写的复杂性,还是提高数据查询的效率,Vanna AI 都是一个值得尝试的工具。无论你是初学者还是经验丰富的开发者,Vanna AI 都能帮助你更高效地处理数据库相关任务。

https://vanna.ai/docs/


技术驱动企业未来
技术驱动社会发展、更驱动企业未来
 最新文章