工具介绍与办公应用

Aider

在终端中进行 AI 结对编程的开发工具。

Aider 是在终端里配合开发者修改代码的 AI 编程助手,可针对已有 Git 仓库或新项目进行对话式编辑。

Aider 能做什么

它会把指定文件与精简的仓库地图提供给模型,帮助模型理解相关函数、类和依赖关系。仓库地图提供结构线索,具体修改仍需要加入相关文件。

编辑建议:把一个清楚的小问题交给一次会话,先给失败例子和可运行的测试命令,再检查代码差异。

明确控制参与修改的文件

启动时可指定文件,也可在会话中用 /add 加入文件。只加入相关文件能减少无关上下文和模型调用开销。

用仓库地图补充结构线索

仓库地图概括重要文件中的函数、类与签名,并按上下文预算选择相关部分,方便从局部修改追踪其他模块。

把 AI 修改放进 Git 工作流

Aider 可为修改创建 Git 提交、显示差异,并用 /undo 撤回上一次 Aider 修改。编辑建议:开始前确认已有未提交工作。

把检查失败反馈给模型

可配置 lint 命令;测试可通过 /test 执行,也可结合 --test-cmd 与 --auto-test 在修改后运行。测试命令需要来自项目本身。

核心用途
终端对话改代码,结合仓库地图理解依赖
可完成的工作
小范围缺陷修复、跨文件重构和测试补齐
如何开始
在项目目录启动 aider,加入目标文件
使用条件
先配置模型访问与项目可运行的检查命令
先让一次工作流转清楚

如何使用 Aider

  1. 准备项目与模型

    按官方使用文档配置可访问的模型,并进入目标项目目录。先查看 Git 状态,明确当前工作边界。

  2. 加入必要文件

    启动 aider 并指定要修改的文件;发现缺少上下文时用 /add 补充,避免一开始装入整个仓库。

  3. 描述一个可检查的问题

    说明当前行为、期望行为与禁止改变的接口。编辑建议:让首轮只解决一个明确问题,再继续后续任务。

  4. 运行检查并审阅提交

    通过 /test 执行项目测试,必要时配置自动测试;检查 diff 和提交,确认不合适时再使用对应撤回功能。

修复一个有复现条件的边界问题

适合:维护已有项目的开发者

准备输入
出错输入、预期结果、涉及文件和针对该问题的测试命令。
操作方法
编辑建议:加入实现和测试文件,描述复现条件;让 Aider 小步修改,运行测试后阅读差异。
预期交付物
围绕单个缺陷的补丁与检查输出。
人工检查
补测相邻边界;确认修复没有顺带改变其他接口。

调整一个被多处调用的接口

适合:需要小范围重构的开发者

准备输入
旧接口、目标接口、调用方范围和兼容要求。
操作方法
编辑建议:先借仓库地图查相关符号,再把实际要编辑的调用方加入会话,分批修改并检查引用。
预期交付物
实现与调用方一致的接口调整。
人工检查
搜索残留旧名称,检查外部调用与序列化字段是否仍兼容。

为已有修复补回归测试

适合:有现成测试框架的开发者

准备输入
已知缺陷、已有测试样例及运行方式。
操作方法
编辑建议:提供相邻测试作为格式参考,生成失败例子,再运行局部测试检查它确实覆盖目标行为。
预期交付物
可重复运行的回归测试。
人工检查
确认测试会在旧实现上失败,避免只验证新代码的写法。

界面与参考图片

Aider 终端中的文件修改与命令执行确认
Aider 官方早期演示中的终端交互:文件修改后显示命令执行确认及运行输出;图中为 v0.51.2 开发版时期的演示。图片来源 ↗
修复一个有复现条件的边界问题原创流程示意
使用示意图 · 本站原创方法图:修复一个有复现条件的边界问题。用于说明编辑建议,非官方界面,也非产品实测结果。图片来源 ↗

开始前需要了解

模型访问另有条件

Aider 需要连接可用模型;云模型可能按提供方规则收费,本地模型则需要自己的运行环境。不要把安装工具理解成模型调用无限免费。

仓库地图有上下文预算

地图是精简的结构信息,并非把所有文件完整读入。遗漏的相关实现需要主动加入会话。

检查命令不会凭空具备环境

lint 与测试依赖项目已有的命令、依赖和配置。检查通过也只说明覆盖到的行为,仍应阅读补丁。

可连接云端或本地模型;使用云端模型时需要对应提供商凭据,模型费用与客户端分别确认。

账号权限、费用与可用功能请以官方入口的当前说明为准。重要结果应先检查,再用于实际工作。

查看 Aider 官方说明 ↗

常见问题

必须先把整个仓库放进对话吗?

不需要。先加入要修改的文件,仓库地图补充其他代码的结构信息;需要编辑其他文件时再加入。

修改会留下 Git 记录吗?

Aider 支持为修改自动创建 Git 提交和查看差异。开始前应确认仓库状态,以便区分自己的修改与会话生成的修改。

测试会自动运行吗?

可手动使用 /test。若要在修改后自动运行,需要设置测试命令并启用相应自动测试选项。

仓库地图能保证理解全部依赖吗?

不能。它会在有限上下文中选择相关结构;动态调用、配置和外部依赖仍需要补充说明和检查。

← 返回全部 AI 工具