9款开发者必备的开源AI编码工具 目录1. SWE-Kit 面向编码代理的开源无头IDE2. Composio人工智能集成和工具平台3. Aider——人工智能结对编程者4. Mentat - GitHub 原生编码代理5. AutoCodeRover -自主程序改进5.Continue - 领先的 AI 驱动型代码助手6. Qodo Merge用于自动拉取请求分析的工具7. OpenHands人工智能软件开发代理平台8.来自 Sourcegraph 的 CodyIDE 的代码助手9. VannaAI与 SQL 数据库聊天如果您喜欢此文章请收藏、点赞、评论谢谢祝您快乐每一天。人工智能正在改变我们所知的世界对于开发者而言拥抱人工智能可以显著提高工作效率。它能帮助你更快地发布新功能自动编写测试用例甚至还能发现代码中的漏洞。互联网提供了许多工具但找到​​合适的工具可能需要时间和精力。因此我整理了一份人工智能工具清单希望能帮助你成为更优秀的开发者。1. SWE-Kit 面向编码代理的开源无头IDE作为一名开发者我一直想构建定制化的AI工具让我能够与代码库进行交互自动将更改推送到GitHub并自动发布新功能。说实话直到遇到这个工具之前我一直没找到合适的。SWE-Kit 是一款无头集成开发环境 (IDE)具备 LSP、代码索引和代码 RAG 等功能。它提供灵活的运行时环境可以与专业的编码工具包一起运行在任何 Docker 主机或远程服务器上。这些工具包包括与 GitHub、Jira 和 Slack 等平台的集成以及文件搜索和代码索引等工具这些工具由 Composio 提供支持。使用 SweKit 构建的编码代理在经过验证的SWE 基准测试中获得了令人印象深刻的 48.60% 的分数。该综合基准测试包含了来自 Django、Scikit-learn、Flask、Sympy 等流行库的一些真实 GitHub 问题。它与所有主要的LLM框架兼容如LangChain、CrewAI、Autogen和LlamaIndex。您可以自行构建和部署。GitHub PR Agent用于自动审查 GitHub PR。SWE 代理您可以构建一个 SWE 代理来自动编写功能、单元测试、文档等。与代码库聊天您可以使用代码索引工具构建一个与任何远程或本地代码库进行聊天的工具。安装swekit并composio-core快速上手。pip install compsio-core swekit安装你选择的任何框架。pip install crewai composio-crewai现在让我们创建一个具有 GitHub 访问权限的编码代理。composio add github生成新的代理框架。swekit scaffold crewai -o swe_agent运行代理。cd swe_agent/agentpython main.py默认工作区环境使用 Docker。更多信息请参阅文档。2. Composio人工智能集成和工具平台Composio是一个开源平台为人工智能代理提供第三方集成。它提供Linear、Slack、GitHub、Jira、Asana等集成可用于构建定制化的人工智能代理。例如您可以构建功能全面的代理与 Slack 和 Discord 上的用户互动。回复咨询、指导用户完成支持流程或安排后续行动。您可以构建编码代理以根据 Jira 工单自动修复 GitHub 中的错误。构建代理程序来编写代码文档。Composio 非常容易上手。pip install composio-core添加 GitHub 集成。composio add githubComposio 代表您处理用户身份验证和授权。以下是如何使用 GitHub 集成来给仓库加星标的方法。from openai import OpenAIfrom composio_openai import ComposioToolSet, Appopenai_client OpenAI(api_key******OPENAIKEY******)# Initialise the Composio Tool Setcomposio_toolset ComposioToolSet(api_key**\\\\*\\\\***COMPOSIO_API_KEY**\\\\*\\\\***)## Step 4# Get GitHub tools that are pre-configuredactions composio_toolset.get_actions(actions[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])## Step 5my_task Star a repo ComposioHQ/composio on GitHub# Create a chat completion request to decide on the actionresponse openai_client.chat.completions.create(modelgpt-4-turbo,toolsactions, # Passing actions we fetched earlier.messages[{role: system, content: You are a helpful assistant.},{role: user, content: my_task}])运行此 Python 脚本使用代理执行给定的指令。Composio 可与 LangChain、LlamaIndex、CrewAi 等知名框架配合使用。如需了解更多信息请访问官方 文档如需更复杂的示例请参阅存储库的 示例 部分。3. Aider——人工智能结对编程者如果您正在寻找一位结对程序员来帮助您更快地交付代码那么这就是完美的选择。Aider 允许您将程序与 LLM生命周期管理结合使用以便在本地 GitHub 代码库中编辑代码。您可以创建一个新项目也可以处理现有的 GitHub 代码库。你可以像这样快速入门pip install aider-chat# Change the directory into a git repocd /to/your/git/repo# Work with Claude 3.5 Sonnet on your repoexport ANTHROPIC_API_KEYyour-key-goes-hereaider# Work with GPT-4o on your repoexport OPENAI_API_KEYyour-key-goes-hereaider更多详情请参阅 安装说明 和其他 文档。4. Mentat - GitHub 原生编码代理Mentat 是一款人工智能工具旨在帮助您通过命令行完成任何编码任务。与 Copilot 不同Mentat 可以协调跨多个文件和位置的编辑。而且与 ChatGPT 不同Mentat 从一开始就能理解您的项目上下文——无需复制粘贴它拥有一个专用的 CLI 工具可以直接与代码库通信并且可以从终端提示符生成和执行 Python 代码。请按照以下步骤运行 Mentat。首先创建一个 Python 虚拟环境。# Python 3.10 or higher is requiredpython3 -m venv .venvsource .venv/bin/activate克隆你的GitHub仓库。git clone https://github.com/AbanteAI/mentat.gitcd mentat# install with pip in editable mode:pip install -e .添加 OpenAI 或任何 LLM 提供商的 API 密钥。export OPENAI_API_KEYyour key here在项目目录下运行 Mentat。Mentat 使用 Git因此如果您的项目尚未配置 Git请运行 git add 命令 git init。然后您可以使用以下命令运行 Mentatmentat paths to files or directories有关 Mentat 的更多信息请查看文档。5. AutoCodeRover -自主程序改进AutoCodeRover 提供了一个全自动的解决方案来解决 GitHub 问题包括错误修复和功能添加。AutoCodeRover 将 LLM 与高级分析和调试功能相结合优先考虑补丁位置从而高效地创建和实施补丁。首先设置 OPENAI_API_KEY 或任何其他密钥。export OPENAI_KEYsk-YOUR-OPENAI-API-KEY-HERE构建并启动 Docker 镜像docker build -f Dockerfile -t acr .docker run -it -e OPENAI_KEY${OPENAI_KEY:-OPENAI_API_KEY} -p 3000:3000 -p 5000:5000 acr请查看他们的官方资料库以获取更多信息。5.Continue - 领先的 AI 驱动型代码助手你一定听说过 Cursor IDE这是一款流行的 AI 驱动型 IDEContinue 与它类似但它是按照 Apache 许可证开源的。它具有高度可定制性允许您添加任何语言模型用于自动补全或聊天。这可以极大地提高您的工作效率。您可以将 Continue 添加到 VS Code 和 JetBrains。主要特点在侧边栏中聊天以便理解和迭代代码。输入代码时自动完成功能会提供内联代码建议。编辑以在不离开当前文件的情况下修改代码为日常使用场景建立快捷方式的操作更多信息请查看 文档。6. Qodo Merge用于自动拉取请求分析的工具这款来自 Codium AI 的开源工具可以自动处理 GitHub Pull Request包括审核、分析、反馈和提出建议。它可以帮助您更高效地处理 Pull Request并且兼容 GitLab 和 BitBucket 等其他版本控制系统。它既有自托管解决方案也有云托管解决方案。对于自托管解决方案您需要 OpenAI API 密钥和 GitHub 或 GitLab 访问令牌。要在本地使用它请安装该库。pip install pr-agent然后使用以下脚本运行相关工具。请务必填写必填参数 user_token openai_key pr_urlcommandfrom pr_agent import clifrom pr_agent.config_loader import get_settingsdef main():# Fill in the following valuesprovider github # GitHub provideruser_token ... # GitHub user tokenopenai_key ... # OpenAI keypr_url ... # PR URL, for example https://github.com/Codium-ai/pr-agent/pull/809command /review # Command to run (e.g. /review, /describe, /askWhat is the purpose of this PR?, ...)# Setting the configurationsget_settings().set(CONFIG.git_provider, provider)get_settings().set(openai.key, openai_key)get_settings().set(github.user_token, user_token)# Run the command. Feedback will appear in GitHub PR commentscli.run_command(pr_url, command)if __name__ __main__:main()您还可以使用 Docker 镜像或从源代码运行。文档中有更多关于 Qodo 合并的信息。7. OpenHands人工智能软件开发代理平台OpenHands是领先的开源人工智能代理平台之一也是Devin的直接竞争对手。OpenHands代理可以构建全新的项目为现有代码库添加功能调试问题等等。最近他们的经纪人也以 53% 的成绩位居 SWE-bench 排行榜榜首。要开始使用 OpenHands您需要 Docker 版本 26.0.0 或 Docker Desktop 4.31.0 以及 Linux、Mac 或 WSL。拉取 Docker 镜像并运行容器。docker pull docker.all-hands.dev/all-hands-ai/runtime:0.12-nikolaikdocker run -it --rm --pullalways \-e SANDBOX_RUNTIME_CONTAINER_IMAGEdocker.all-hands.dev/all-hands-ai/runtime:0.12-nikolaik \-v /var/run/docker.sock:/var/run/docker.sock \-p 3000:3000 \--add-host host.docker.internal:host-gateway \--name openhands-app \docker.all-hands.dev/all-hands-ai/openhands:0.12运行上述命令后您将在 http://localhost:3000找到正在运行的 OpenHands 。启动 OpenHands 后您会看到一个设置对话框。选择一个“ LLM Provider 连接 方式”LLM Model 并输入相应的“连接数 API Key”。您可以随时通过点击用户界面上的Settings按钮来更改这些设置。如果您的型号未列出请切换到高级模式并手动输入。他们提供了四种与代理交互的方法交互式图形用户界面 (GUI)、命令行界面 (CLI) 以及通过无头模式和 GitHub Actions 进行的非交互式使用选项。每种方法各有优势。更多信息请参阅文档。8.来自 Sourcegraph 的 CodyIDE 的代码助手Cody 是 Sourcegraph 的一个开源项目旨在直接在您的 IDE无论是 VS Code、JetBrains 还是其他 IDE中大幅提升您的编码工作流程。Cody 利用高级搜索功能作为编码助手从本地和远程代码库中提取上下文信息。这使得您可以直接在 IDE 中无缝访问任何规模的 API、符号和使用模式的详细信息。使用 Cody您可以与代码库进行聊天、进行内联编辑、获取代码建议并享受自动完成等功能所有这些都是为了帮助您更快、更有效地编写代码而量身定制的。您可以直接将其安装到您的 IDE 中并开始使用。更多信息请查看文档。9. VannaAI与 SQL 数据库聊天我讨厌编写 SQL 查询语句但同时它又是现代软件开发中最关键的技术之一。几乎所有公司都严重依赖 SQL 与关系数据库进行交互。但正如人们常说的总会有相应的 AI 工具来处理 SQL 数据库Vanna AI 就是这样一款工具。它是一款开源工具可让您使用自然语言与 SQL 数据库进行交互。Vanna 的工作原理很简单只需两步——在您的数据上训练一个 RAG“模型”然后提出问题这些问题将返回可以设置为在您的数据库上自动运行的 SQL 查询。使用 Vanna 入门很简单。使用以下命令安装它pippip install vanna# The import statement will vary depending on your LLM and vector database. This is an example for OpenAI ChromaDBfrom vanna.openai.openai_chat import OpenAI_Chatfrom vanna.chromadb.chromadb_vector import ChromaDB_VectorStoreclass MyVanna(ChromaDB_VectorStore, OpenAI_Chat):def __init__(self, configNone):ChromaDB_VectorStore.__init__(self, configconfig)OpenAI_Chat.__init__(self, configconfig)vn MyVanna(config{api_key: sk-..., model: gpt-4-...})# See the documentation for other options您可以使用自定义数据训练模型。根据您的使用情况您可能需要运行这些vn.train命令也可能不需要。使用DDL语句进行训练。vn.train(ddlCREATE TABLE IF NOT EXISTS my-table (id INT PRIMARY KEY,name VARCHAR(100),age INT))提问vn.ask(What are the top 10 customers by sales?)您将获得 SQL 输出。SELECT c.c_name as customer_name,sum(l.l_extendedprice * (1 - l.l_discount)) as total_salesFROM snowflake_sample_data.tpch_sf1.lineitem l join snowflake_sample_data.tpch_sf1.orders oON l.l_orderkey o.o_orderkey join snowflake_sample_data.tpch_sf1.customer cON o.o_custkey c.c_custkeyGROUP BY customer_nameORDER BY total_sales desc limit 10;更多详情请参阅 文档。如果您喜欢此文章请收藏、点赞、评论谢谢祝您快乐每一天。