Aider — 终端 AI 编程工具¶
一句话说明: Aider 是一个运行在终端中的 AI 编程助手,具备 git 感知能力,能直接修改代码文件并自动提交。
为什么要学¶
- 面试加分 — 展示你理解 AI-assisted development 的工程化实践(自动 commit、diff 审查)
- 实用性 — 终端原生,适合 SSH 远程开发、无 GUI 环境、CI/CD 集成
- Git 原生 — 每次修改自动 commit,可随时 revert,安全感拉满
- 模型灵活 — 支持 OpenAI/Anthropic/本地模型,可自选最优组合
核心概念详解¶
Git-Aware 编程¶
白话: Aider 知道你的项目是 git 仓库,它做的每次修改都会自动 git commit。不满意?git revert 回去就行,零风险。
| 对比项 | 普通 AI 助手 | Aider |
|---|---|---|
| 文件修改 | 输出代码你手动粘贴 | 直接改文件 |
| 版本控制 | 你自己 commit | 自动 commit |
| 回滚 | 手动 Ctrl+Z | git revert |
| 上下文 | 手动复制代码 | 自动读取 repo |
Repo Map(仓库地图)¶
白话: Aider 会扫描整个项目的文件结构和符号(函数名、类名),生成一张"地图",这样它知道改一个地方可能影响哪些其他文件。
Chat Modes(对话模式)¶
- code(默认):AI 直接修改文件
- ask:只问答不改文件
- architect:先设计方案再实施
安装与配置¶
# 推荐用 pipx 安装(隔离环境)
pipx install aider-chat
# 或 pip
pip install aider-chat
# 设置 API Key(选一个)
export ANTHROPIC_API_KEY="sk-ant-xxxx" # Claude
export OPENAI_API_KEY="sk-xxxx" # GPT
# 验证安装
aider --version
配置文件 ~/.aider.conf.yml¶
# 默认模型
model: anthropic/claude-sonnet-4-20250514
# 自动 commit
auto-commits: true
# 显示 diff
show-diffs: true
# 深色主题
dark-mode: true
快速上手¶
5 分钟入门¶
# 进入 git 项目目录
cd my-project
# 启动 aider(默认用 Claude Sonnet)
aider
# 添加文件到对话上下文
> /add src/main.py src/utils.py
# 提需求,Aider 直接改文件
> 给 calculate_total 函数添加输入校验,参数不能为负数
# 查看修改
> /diff
# 不满意就撤销
> /undo
常用命令速查¶
/add <file> — 添加文件到上下文
/drop <file> — 移除文件
/diff — 查看最近修改的 diff
/undo — 撤销最近一次修改(git revert)
/run <cmd> — 运行 shell 命令
/test <cmd> — 运行测试,失败自动修复
/ask — 切到问答模式(不改文件)
/code — 切回编码模式
/clear — 清空对话历史
/quit — 退出
进阶用法¶
1. Architect 模式(先设计后实施)¶
2. 指定模型组合¶
# 用 Claude 做对话,DeepSeek 做编辑
aider --model anthropic/claude-sonnet-4-20250514 --editor-model deepseek/deepseek-chat
3. 本地模型(Ollama)¶
4. 自动测试修复循环¶
5. 处理大型项目¶
# 只加载相关文件(别一次加太多)
aider src/auth/login.py src/auth/tokens.py src/models/user.py
# 使用 repo map 让 Aider 了解项目全貌
aider --map-tokens 2048 # 分配更多 token 给 repo map
6. 与 OpenRouter 集成¶
export OPENROUTER_API_KEY="sk-or-v1-xxxx"
aider --model openrouter/anthropic/claude-sonnet-4-20250514
7. 在 CI/CD 中使用¶
常见问题与排错¶
| 问题 | 原因 | 解决方案 |
|---|---|---|
git repo not found | 不在 git 仓库中 | git init 或 cd 到仓库目录 |
| 修改了错误文件 | 上下文文件不对 | /drop 错误文件,/add 正确文件 |
| 超出 context 长度 | 加了太多文件 | 减少 /add 的文件数,只加相关的 |
| API 报错 429 | 频率限制 | 等一会儿或换模型 |
| 代码质量不高 | 模型能力不够 | 换更强的模型或用 architect 模式 |
| commit message 不好 | 默认自动生成 | --commit-prompt 自定义模板 |
面试高频考点¶
- Aider 的 git-aware 设计有什么好处?
每次修改可追溯、可回滚,团队协作时 blame 清晰
Repo Map 的原理和作用?
用 tree-sitter 解析代码结构生成符号索引,让 AI 理解跨文件依赖
如何在 AI 编程中保证代码质量?
自动测试循环、diff 审查、architect 模式先设计后编码
终端 AI 工具与 IDE 插件的适用场景?
终端:远程开发、CI 集成、轻量快速;IDE:可视化 diff、UI 交互
AI 辅助编程的最佳实践?
- 小步迭代(每次一个功能)、保持上下文精准、人工审查 diff