跳转至

Aider — 终端 AI 编程工具

一句话说明: Aider 是一个运行在终端中的 AI 编程助手,具备 git 感知能力,能直接修改代码文件并自动提交。


为什么要学

  1. 面试加分 — 展示你理解 AI-assisted development 的工程化实践(自动 commit、diff 审查)
  2. 实用性 — 终端原生,适合 SSH 远程开发、无 GUI 环境、CI/CD 集成
  3. Git 原生 — 每次修改自动 commit,可随时 revert,安全感拉满
  4. 模型灵活 — 支持 OpenAI/Anthropic/本地模型,可自选最优组合

核心概念详解

Git-Aware 编程

白话: Aider 知道你的项目是 git 仓库,它做的每次修改都会自动 git commit。不满意?git revert 回去就行,零风险。

对比项普通 AI 助手Aider
文件修改输出代码你手动粘贴直接改文件
版本控制你自己 commit自动 commit
回滚手动 Ctrl+Zgit 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 模式(先设计后实施)

aider --architect

# Aider 会先用强模型出设计方案,确认后再用编码模型实施
# 适合复杂重构

2. 指定模型组合

# 用 Claude 做对话,DeepSeek 做编辑
aider --model anthropic/claude-sonnet-4-20250514 --editor-model deepseek/deepseek-chat

3. 本地模型(Ollama)

# 启动 Ollama
ollama serve

# 用本地模型运行 Aider
aider --model ollama/deepseek-coder-v2:16b

4. 自动测试修复循环

# 指定测试命令,Aider 改完代码自动跑测试
# 测试失败则自动修复,直到通过
aider --test-cmd "pytest tests/" --auto-test
# 在对话中也可以
> /test pytest tests/test_api.py
# Aider 发现 2 个测试失败,自动修复代码...

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 中使用

# 非交互模式,适合脚本
aider --message "修复所有 type: ignore 注释" --yes --no-git

常见问题与排错

问题原因解决方案
git repo not found不在 git 仓库中git init 或 cd 到仓库目录
修改了错误文件上下文文件不对/drop 错误文件,/add 正确文件
超出 context 长度加了太多文件减少 /add 的文件数,只加相关的
API 报错 429频率限制等一会儿或换模型
代码质量不高模型能力不够换更强的模型或用 architect 模式
commit message 不好默认自动生成--commit-prompt 自定义模板

面试高频考点

  1. Aider 的 git-aware 设计有什么好处?
  2. 每次修改可追溯、可回滚,团队协作时 blame 清晰

  3. Repo Map 的原理和作用?

  4. 用 tree-sitter 解析代码结构生成符号索引,让 AI 理解跨文件依赖

  5. 如何在 AI 编程中保证代码质量?

  6. 自动测试循环、diff 审查、architect 模式先设计后编码

  7. 终端 AI 工具与 IDE 插件的适用场景?

  8. 终端:远程开发、CI 集成、轻量快速;IDE:可视化 diff、UI 交互

  9. AI 辅助编程的最佳实践?

  10. 小步迭代(每次一个功能)、保持上下文精准、人工审查 diff

参考资源