Aider是什么?
Aider是一款运行在命令行终端中的开源AI结对编程工具。开发者进入本地Git项目后,可以用自然语言要求它新增功能、修改多文件、重构代码、编写测试、修复错误或编辑配置和文档。
Aider没有把用户限制在特定编辑器中,而是直接围绕现有仓库、模型API和Git工作流运行。它适合喜欢终端、希望自行选择模型、重视版本控制与可配置性的开发者。
在现有代码库中工作
启动Aider后,用户可以把需要编辑的文件加入会话,也可以将只读参考文件提供给模型。Aider会结合当前需求、对话历史、目标文件和仓库结构生成修改,再把变更写回本地文件。
它并不会把整个大型仓库无条件发送给模型。开发者应明确任务目标、受影响目录、验收条件和不能修改的部分,减少不必要的Token与误改。
仓库地图Repo Map
Aider会为Git仓库生成精简地图,包含重要文件、类、函数、类型与调用签名。它使用Tree-sitter提取符号,再根据文件依赖图和当前会话相关性选择最重要的内容放入模型上下文。
仓库地图让模型在没有读取所有实现的情况下了解项目结构,并判断还需查看哪些文件。默认地图预算通常较小,超大型单体仓库可调整Token预算或限制当前子树。
多文件代码修改
Aider支持一次修改多个源文件、测试、配置和文档,常见任务包括接口迁移、跨层新增字段、重命名、错误修复和批量更新。不同模型会使用适配的编辑格式输出补丁。
模型可能生成语法正确但业务错误的代码。大改动应拆成可测试的小步骤,并在每次提交后查看差异、运行测试和检查依赖。
Code模式
Code模式让主模型直接分析请求并输出可应用的代码编辑,适合目标明确、修改范围较小或模型擅长编辑格式的任务。它的交互轮次少,通常速度和成本更可控。
如果模型能解释方案却经常无法正确输出补丁,可改用Architect模式,或选择Aider排行榜中更适合代码编辑的模型。
Architect模式
Architect模式把解决方案设计和实际编辑分离:主模型负责推理、规划和提出修改,编辑模型再把方案转换为具体代码。它适合复杂问题、推理模型或不擅长严格编辑格式的模型。
双模型流程可能增加Token和调用费用。用户可以配置主模型、编辑模型、弱模型和是否自动接受编辑,关键项目建议先审阅设计再应用。
Ask与Help模式
Ask模式主要用于询问代码和讨论方案,不直接修改文件;Help模式用于查询Aider本身的命令与配置。开发者可以先理解模块或确认实现方向,再切换到编辑模式。
把探索性问题和实际修改分开,有助于避免模型在需求不清楚时过早改动代码。
Git自动提交
Aider与Git深度集成。每次完成文件修改后,它通常会创建带描述性信息的提交;如果目标文件已有未提交改动,Aider会先将这些原有变更单独提交,避免把用户工作和AI改动混在一起。
自动提交便于查看历史和回滚,但默认提交会跳过pre-commit验证。需要强制执行钩子的团队应开启Git提交验证,并继续在CI中运行完整检查。
查看差异与撤销
会话内可查看最近修改差异、创建提交、执行Git命令或用撤销命令取消上一轮AI变更。由于修改已进入Git历史,用户也能使用熟悉的分支、提交和差异工具审查。
撤销操作可能丢弃最近变更,执行前要确认其中没有混入手工编辑。复杂任务最好先创建独立分支。
Lint与自动修复
Aider可以在修改后自动运行指定的Lint命令,把错误反馈给模型并尝试修复。它支持针对不同语言配置格式化、静态检查和类型检查工具。
自动修复可能改变更多文件,不能只看命令最终通过。仍需检查规则是否被降低、忽略注释是否被滥用以及格式化是否影响生成文件。
测试执行
用户可以配置测试命令,让Aider在修改后运行测试,并根据失败输出继续修复。它适合测试驱动开发、回归错误和小范围迭代。
通过现有测试不代表功能一定正确。需求缺少覆盖时,应先要求补充失败测试,再实现代码;涉及数据库或外部服务的测试还要隔离真实数据。
支持的模型
Aider可连接OpenAI、Anthropic、Google Gemini、DeepSeek、xAI、Cohere、Groq、OpenRouter、Azure OpenAI、Vertex AI、Amazon Bedrock、GitHub Copilot以及其他OpenAI兼容服务。它通过统一模型适配层管理大部分调用。
不同模型的上下文、推理参数、编辑格式和工具能力差异明显。能聊天的模型不一定能稳定返回可应用补丁,应参考Aider代码编辑排行榜并用真实项目测试。
本地模型与Ollama
Aider支持Ollama、LM Studio和其他本地OpenAI兼容接口。这样可以在自己的电脑或服务器上运行模型,减少代码发送到外部云端的需求。
本地运行不等于效果和成本都更好。大模型需要足够内存或显存,较弱模型可能频繁输出无法应用的编辑,最终花费更多人工纠错时间。
API密钥配置
云模型需要对应提供商的API密钥,可通过环境变量、命令参数或配置文件设置。Aider还支持模型别名、API基础地址、超时、推理强度和自定义模型元数据。
不要把真实密钥提交到仓库。项目级配置应只保存非敏感参数,密钥使用环境变量或密钥管理工具,并定期轮换。
提示缓存与成本控制
对于支持缓存的模型,Aider可缓存系统提示、只读文件、仓库地图和可编辑文件上下文,以降低重复输入成本并提升速度。缓存保活可以定期请求以延长缓存生命周期。
保活请求本身也可能产生费用,且流式输出时部分缓存统计不可见。是否启用应根据会话长度、提供商规则和真实账单决定。
图像与网页上下文
Aider可以把截图、设计图和网页资料加入对话,用于前端实现、错误分析和参考文档。是否支持图像取决于所选模型。
网页可能包含不可信指令,图像也可能含隐私信息。添加外部内容前要确认来源与授权,不要让网页内容覆盖项目安全规则。
语音编程
Voice-to-code功能允许开发者口述需求,再由模型修改代码,适合快速记录功能想法或无障碍使用。用户可设置输入设备、语言和音频格式。
语音识别可能误听变量名、路径和命令。执行前应检查转写文本,涉及删除、部署和密钥的指令尤其需要确认。
在IDE中使用
Aider可监听文件,在开发者常用IDE或文本编辑器中通过注释触发修改,也可在编辑器终端中直接运行。这样无需放弃VS Code、JetBrains、Vim或其他现有工作环境。
它不是传统IDE扩展商店中的完整图形插件体验,主要交互仍围绕终端、文件监听和浏览器界面。
浏览器界面
除了终端,Aider提供浏览器GUI模式,用户可以在网页界面中发送需求和查看会话。它适合不熟悉命令行输入或需要更直观聊天窗口的用户。
浏览器界面仍运行在本地Aider进程并调用配置的模型,不会改变API费用和代码审查责任。
脚本与自动化
Aider可通过命令参数提交单次消息、读取消息文件、应用已有编辑或在脚本中调用,适合批量维护、自动生成文档和受控的代码处理流程。
无人值守自动化应使用干净分支、最小文件权限、超时和CI门禁,禁止直接把AI提交推送到受保护生产分支。
配置文件
大多数设置可以保存在用户目录、Git仓库根目录或当前目录的配置文件中,后加载的文件优先。配置包括模型、编辑格式、仓库地图、Git、测试、Lint、界面和通知等。
团队可以提交不含密钥的项目配置与编码规范,使成员获得一致行为。升级后应检查已废弃参数和模型名称。
支持的编程语言
Aider通过Tree-sitter和文本编辑机制支持Python、JavaScript、TypeScript、Java、Go、Rust、C、C++、PHP、Ruby、HTML、CSS等大量语言,也能修改YAML、JSON、Markdown和其他文本。
语言被识别不代表模型理解所有框架和构建系统。冷门语言、宏系统和生成代码需要更多人工上下文和测试。
安装方式
官方推荐使用aider-install安装器,它基于uv,并会在需要时单独安装Python 3.12,减少与系统环境冲突。也可通过pipx、Docker、GitHub Codespaces和其他环境安装。
pipx方式支持的Aider运行Python版本通常为3.9至3.12。若依赖冲突,优先使用独立环境,不要污染项目原有虚拟环境。
Aider价格
Aider软件本身免费,没有官方Pro或团队订阅,源代码可按Apache 2.0许可证使用。用户的主要成本是OpenAI、Anthropic、Gemini、DeepSeek、OpenRouter等提供商的API调用费用。
本地模型不产生云API账单,但需要自备硬件、电力和运维。免费API模型通常有速率、每日额度或稳定性限制,不能视为无限免费。
GitHub与开源许可证
Aider官方源码托管在Aider-AI组织的aider仓库,采用Apache License 2.0,允许使用、修改和分发,并要求保留许可证与相关声明。项目通过Git标签和PyPI发布版本。
开源的是Aider客户端,不是它连接的Claude、GPT、Gemini或其他模型。模型服务、训练数据和输出使用权受各提供商条款约束。
隐私与遥测
Aider可启用匿名分析,也提供关闭分析的配置。发送给云模型的代码、提示和文件由相应API提供商处理;使用本地模型可以减少外发,但仍要检查日志、代理和向量组件。
应通过忽略文件排除密钥、生产配置和敏感数据,并了解仓库地图、只读文件和会话历史会进入模型上下文。
适合哪些用户?
- 习惯终端与Git工作流的软件开发者;
- 希望自由选择云模型或本地模型的用户;
- 需要在现有大型仓库中进行多文件修改的团队;
- 重视开源、可配置和自动测试的工程师;
- 希望把AI编码纳入脚本与CI实验的高级用户。
产品优势
- 免费开源且不绑定单一模型提供商;
- 仓库地图兼顾大型项目上下文和Token成本;
- Git自动提交与撤销便于审查AI改动;
- 支持Code、Architect、Ask等不同模式;
- 可自动运行Lint、测试并迭代修复;
- 同时支持终端、浏览器、IDE监听和脚本。
限制与注意事项
Aider需要一定命令行、Git和API配置基础,对纯新手不如图形化AI IDE直观。云模型调用可能昂贵,大仓库和长会话尤其需要控制上下文。
AI可能误改代码、生成不安全命令或提交错误逻辑。必须使用分支、测试、代码审查和最小权限,不能把自动提交当成质量保证。
常见问题
Aider免费吗?
Aider本身免费开源;使用商业云模型需要按对应提供商API价格付费。
Aider支持DeepSeek吗?
支持DeepSeek官方接口,也可通过OpenRouter或其他兼容服务连接,需配置相应密钥与模型名称。
Aider支持本地模型吗?
支持Ollama、LM Studio和OpenAI兼容本地接口,但模型需要具备可靠的代码编辑能力。
Aider会自动提交代码吗?
默认会为AI修改创建Git提交,并可用会话命令查看差异或撤销;该行为可以在配置中关闭。
Aider可以运行测试吗?
可以配置测试和Lint命令,并把失败结果反馈给模型继续修复。
Aider有图形界面吗?
主要是终端工具,同时提供浏览器GUI和文件监听方式与现有IDE配合。
Aider开源吗?
开源,官方仓库采用Apache 2.0许可证。
桂公网安备45132202000164号