9款开发者必备的开源AI编码工具🎯
人工智能正在改变我们所知的世界,对于开发者而言,拥抱人工智能可以显著提高工作效率。它能帮助你更快地发布新功能,自动编写测试用例,甚至还能发现代码中的漏洞。
互联网提供了许多工具,但找到合适的工具可能需要时间和精力。因此,我整理了一份人工智能工具清单,希望能帮助你成为更优秀的开发者。
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/agent
python main.py
默认工作区环境使用 Docker。更多信息请参阅文档。
2. Composio:人工智能集成和工具平台
Composio是一个开源平台,为人工智能代理提供第三方集成。它提供Linear、Slack、GitHub、Jira、Asana等集成,可用于构建定制化的人工智能代理。
例如,
- 您可以构建功能全面的代理,与 Slack 和 Discord 上的用户互动。回复咨询、指导用户完成支持流程或安排后续行动。
- 您可以构建编码代理,以根据 Jira 工单自动修复 GitHub 中的错误。
- 构建代理程序来编写代码文档。
Composio 非常容易上手。
pip install composio-core
添加 GitHub 集成。
composio add github
Composio 代表您处理用户身份验证和授权。
以下是如何使用 GitHub 集成来给仓库加星标的方法。
from openai import OpenAI
from composio_openai import ComposioToolSet, App
openai_client = OpenAI(api_key="******OPENAIKEY******")
# Initialise the Composio Tool Set
composio_toolset = ComposioToolSet(api_key="**\\\\*\\\\***COMPOSIO_API_KEY**\\\\*\\\\***")
## Step 4
# Get GitHub tools that are pre-configured
actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])
## Step 5
my_task = "Star a repo ComposioHQ/composio on GitHub"
# Create a chat completion request to decide on the action
response = openai_client.chat.completions.create(
model="gpt-4-turbo",
tools=actions, # 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 repo
cd /to/your/git/repo
# Work with Claude 3.5 Sonnet on your repo
export ANTHROPIC_API_KEY=your-key-goes-here
aider
# Work with GPT-4o on your repo
export OPENAI_API_KEY=your-key-goes-here
aider
4. Mentat - GitHub 原生编码代理
Mentat 是一款人工智能工具,旨在帮助您通过命令行完成任何编码任务。
与 Copilot 不同,Mentat 可以协调跨多个文件和位置的编辑。而且与 ChatGPT 不同,Mentat 从一开始就能理解您的项目上下文——无需复制粘贴!
它拥有一个专用的 CLI 工具,可以直接与代码库通信,并且可以从终端提示符生成和执行 Python 代码。
请按照以下步骤运行 Mentat。首先,创建一个 Python 虚拟环境。
# Python 3.10 or higher is required
python3 -m venv .venv
source .venv/bin/activate
克隆你的GitHub仓库。
git clone https://github.com/AbanteAI/mentat.git
cd mentat
# install with pip in editable mode:
pip install -e .
添加 OpenAI 或任何 LLM 提供商的 API 密钥。
export OPENAI_API_KEY=<your key here>
在项目目录下运行 Mentat。Mentat 使用 Git,因此如果您的项目尚未配置 Git,请运行 `git add` 命令 git init。然后您可以使用以下命令运行 Mentat:
mentat <paths to files or directories>
有关 Mentat 的更多信息,请查看文档。
5. AutoCodeRover -自主程序改进
AutoCodeRover 提供了一个全自动的解决方案来解决 GitHub 问题,包括错误修复和功能添加。
AutoCodeRover 将 LLM 与高级分析和调试功能相结合,优先考虑补丁位置,从而高效地创建和实施补丁。
首先,设置 OPENAI_API_KEY 或任何其他密钥。
export OPENAI_KEY=sk-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.继续 - 领先的 AI 驱动型代码助手
你一定听说过 Cursor IDE,这是一款流行的 AI 驱动型 IDE;Continue 与它类似,但它是按照 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_urlcommand
from pr_agent import cli
from pr_agent.config_loader import get_settings
def main():
# Fill in the following values
provider = "github" # GitHub provider
user_token = "..." # GitHub user token
openai_key = "..." # OpenAI key
pr_url = "..." # PR URL, for example 'https://github.com/Codium-ai/pr-agent/pull/809'
command = "/review" # Command to run (e.g. '/review', '/describe', '/ask="What is the purpose of this PR?"', ...)
# Setting the configurations
get_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 comments
cli.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-nikolaik
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.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 的 Cody:IDE 的代码助手
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 入门很简单。使用以下命令安装它pip:
pip install vanna
# The import statement will vary depending on your LLM and vector database. This is an example for OpenAI + ChromaDB
from vanna.openai.openai_chat import OpenAI_Chat
from vanna.chromadb.chromadb_vector import ChromaDB_VectorStore
class MyVanna(ChromaDB_VectorStore, OpenAI_Chat):
def __init__(self, config=None):
ChromaDB_VectorStore.__init__(self, config=config)
OpenAI_Chat.__init__(self, config=config)
vn = MyVanna(config={'api_key': 'sk-...', 'model': 'gpt-4-...'})
# See the documentation for other options
您可以使用自定义数据训练模型。
根据您的使用情况,您可能需要运行这些vn.train命令,也可能不需要。
使用DDL语句进行训练。
vn.train(ddl="""
CREATE 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_sales
FROM snowflake_sample_data.tpch_sf1.lineitem l join snowflake_sample_data.tpch_sf1.orders o
ON l.l_orderkey = o.o_orderkey join snowflake_sample_data.tpch_sf1.customer c
ON o.o_custkey = c.c_custkey
GROUP BY customer_name
ORDER BY total_sales desc limit 10;
更多详情请参阅 文档。
感谢阅读。如果您使用过其他对您有帮助的AI工具,请在下方留言。
文章来源:https://dev.to/composiodev/9-open-source-ai-coding-tools-that-every-developer-should-know-28l4













