如果你是 Cursor / Claude Code 重度用户,大概率没认真用过 Aider。这个纯终端的 AI pair programmer 长年霸占 Hacker News 首页、GitHub Star 破 30k,是海外 senior 工程师"远程 ssh 上服务器改代码"时的标配——但国内技术圈聊 AI 编码,十个有九个只说 Cursor。这篇文章不是给你念 /add /commit 这种入门命令,而是挖出 Aider 八个 90% 用户没碰过的冷门开关:从 repo map 的 pagerank 算法、到把贵模型和便宜模型拆开用的 architect 模式、到直接丢进 CI 跑批的 --message 自动化。每一个都附带操作步骤、适用场景和省下的真金白银。
Aider(https://aider.chat)由 Paul Gauthier 维护,定位很纯粹:一个跑在终端里、跟 git 深度绑定的 AI 结对编程工具。它没有花哨的 IDE 界面,但它做对了几件事——所有改动自动 git commit(可一键 /undo)、用 tree-sitter 给整个仓库建"知识图谱"喂给模型、自带一套公开的编辑基准(aider benchmark,SWE Bench 的前身之一)。
它的真实使用画面是这样的:你 ssh 到一台没装 Cursor 的生产机,aider 一敲,丢一句"把 auth.py 里的 token 校验改成支持 refresh",它改完直接 commit。海外 devops / 后端 / infra 圈子爱死这个工作流,因为不是所有环境都能塞进一个 VS Code。中国开发者常年在 GUI 里,错过了一个真正"服务器原生"的 AI 编码工具。
下面八个杀招,按"冷门程度 + 实用价值"排序。
大多数人以为 Aider 的 repo map 就是个 tree 命令的输出。错。
它用 tree-sitter 解析整个仓库,提取每个文件的类、函数、方法签名,然后用一个类似 Google PageRank 的算法给这些符号排序——排序依据是"哪些符号被当前正在编辑的文件引用最多"。也就是说,你正在改 payment.py,repo map 会自动把 order.py、refund.py 里相关函数的签名顶到前面,喂给模型;那些八竿子打不着的工具类则被压缩或省略。
操作步骤:
1. 在 Aider 里输入 /map,你会看到当前喂给模型的仓库地图(带签名,不只是文件名)。
2. 想强制刷新,用 /map-refresh(改了大量代码后模型可能用了旧地图)。
3. 在项目根放一个 .aiderignore,把 node_modules/、dist/、生成文件排除掉,map 会更准、token 更省。
预期效果:复杂仓库下,模型不再需要你手动 /add 每一个相关文件,它"自己知道"该参考谁。这是 Aider 在大型 codebase 上比裸 Cursor 更稳的核心原因之一。
适用场景:10 万行以上的老项目、微服务多仓、跨文件重构。
这是 Aider 最该被吹、却最少人用的省钱开关。
/architect 开启后,工作流拆成两段:
- 架构师模型(你设的强模型,比如 Claude Opus)只负责"想"——输出一份纯文本的实现方案。
- 编辑器模型(你设的便宜模型,比如 DeepSeek 或 GLM)只负责"敲"——把方案落成具体的 search-replace 编辑。
操作步骤:
aider --architect \
--model claude-opus-4-8 \
--editor-model deepseek/deepseek-chat
或在交互里:
/architect
/editor-model deepseek/deepseek-chat
预期效果:复杂的逻辑设计交给贵模型(token 量小,因为它只输出方案不输出大段 diff),机械的、长文本的 diff 落地交给便宜模型。复杂重构任务能砍掉 40%-70% 的成本,质量几乎不掉。
适用场景:长任务、大重构、批量迁移脚本——凡是 diff 量大的活儿。
Aider 会自动读取项目根目录的 CONVENTIONS.md(早期版本是 CONVENTIONS.md,现在也认 .aider/ 下的约定文件)。你把"本项目的命名规范、禁止用某库、错误处理方式、提交格式"写进去,每次启动它都会带进上下文。
配合 /read(read-only 文件)和 /add(可编辑文件)区分:
- /add src/models/user.py —— 模型可以改它。
- /read src/models/schema.py —— 模型只能看、不能动(比如你只想让它参考接口定义,别瞎改)。
预期效果:团队级规范一次写好,不用每次对话重复贴。新人 onboarding 仓库时,AI 改的代码天然符合团队 lint 风格。
--watch 让 Aider 盯着文件变化。你可以建立一个 chat.md(或任意 watch 文件),直接在里面用自然语言写需求,保存,Aider 自动读取并执行;也可以在源码里用特殊注释标记 TODO,让它接着干。
操作步骤:
aider --watch
# 然后在另一个终端:echo "给 utils/time.py 加一个支持时区参数的 format 函数" >> chat.md
适用场景:
- 双屏工作:左边编辑器看代码,右边终端 Aider 自动响应你的 markdown 指令。
- 长 pipeline:把一组需求写进 tasks.md,逐条让 Aider 消化。
这恰好是中国用户最缺的"非交互式"心智——很多人以为 AI 编码必须盯着一个对话框。
Aider 支持完全非交互式运行,这意味着它能进 CI/CD、GitHub Actions、cron。
操作步骤:
aider --yes-always \
--no-auto-commits \
--message "把所有 console.log 替换成 logger.debug,并加 logger 配置" \
&& git diff
--yes-always:跳过所有确认(CI 必备)。--message / --message-file:一次性任务指令。--no-auto-commits:CI 里你想自己控制 commit。真实用法:海外团队拿它在 PR 里跑"自动补测试""自动修 lint""自动升级依赖版本"的批处理 job。一个仓库几百个重复重构,写个脚本喂给 Aider,一晚上跑完。
适用场景:批量代码迁移(框架升级、API 改名)、自动生成单元测试、定时清理 TODO。
Aider 内置 /web <query>,会在对话里直接做网页搜索并把摘要喂给模型。改代码时遇到"这个库新版 API 怎么调",不用切浏览器、不用复制粘贴文档。
/web LangChain 0.3 如何初始化 ChatModel
模型拿到搜索结果后再结合你的代码改。对离线文档不全、又不想中断终端流的 server-side 工作流特别友好。
/test pytest tests/
Aider 会跑你指定的测试命令,失败后自动读取报错、继续修,直到通过或放弃。配合它默认开启的 lint(改完文件自动 lint 并尝试修 lint error),形成"改 → 测 → lint → 修"的闭环。
操作步骤(写在 .aider.conf.yml 里持久化):
test-cmd: pytest tests/
auto-test: true
lint-cmd:
- "python: ruff check --fix"
- "src/**.js: eslint --fix"
预期效果:TDD 场景下,你写一个失败测试,Aider 自动迭代到全绿。这是它比纯补全工具强的地方——它真的会"跑"你的代码。
几个小而美的冷门开关:
- /voice(或 --voice):直接对着麦克风说话输入需求,终端原生支持。开车/做饭时口述需求录下来让它改,海外播客圈有不少人这么用。
- 图片输入:/add screenshot.png 或 /paste(剪贴板里复制的报错截图直接喂进去)。前端改样式、对着设计稿改代码特别好用。
- /undo:撤销上一条 AI 改动(含 commit)。因为 Aider 每步都 commit,/undo 等于一个安全的"后悔药",鼓励你大胆让它试错。
- /tokens:实时看当前上下文吃了多少 token、花了多少钱。配合 --cache-prompts(开启 Anthropic prompt caching),长会话能再省一笔。
flowchart TD
A[启动 aider --architect] --> B[tree-sitter 扫描全仓]
B --> C{pagerank 排序符号}
C --> D[生成精简 Repo Map]
D --> E[架构师模型<br/>Claude Opus 出方案]
E --> F[编辑器模型<br/>DeepSeek/GLM 落 diff]
F --> G[自动 git commit]
G --> H{跑 /test + lint}
H -- 失败 --> F
H -- 通过 --> I[/undo 可回滚/]
I --> J[/tokens 查花费/]
| 维度 | 大多数中国开发者以为的 | Aider 实际能做的 |
|---|---|---|
| 使用形态 | 必须装 GUI / IDE 插件 | 纯终端,ssh 上服务器就能用 |
| 仓库理解 | 手动 @file 一个个喂 |
pagerank 排序的 repo map 自动喂 |
| 成本控制 | 一个模型扛全部 | architect 拆"贵模型想 + 便宜模型敲" |
| 自动化 | 只能交互式 | --message 直接进 CI 跑批 |
| 规范约束 | 每次对话重复贴 | CONVENTIONS.md 自动加载 |
| 安全网 | 怕 AI 改坏不敢用 | 每步 commit + /undo 随时回滚 |
| 闭环 | 改完我手动跑测试 | /test 自动迭代到全绿 |
pip install aider-chat,配一个 DeepSeek 或 GLM 的 API key(Aider 支持任意 OpenAI 兼容接口)。先用便宜模型跑日常编辑,把 Opus 留给 architect。aider --architect --model claude-opus-4-8 --editor-model deepseek,丢一个跨文件重构任务,对比一下和 Cursor 的 token 账单。建一个 .aiderignore 排掉生成物。aider --yes-always --message-file tasks.md 在 GitHub Actions 里跑一个 nightly job。预算敏感的团队,强烈建议把日常 edit 默认模型设成 DeepSeek/GLM,只在大任务手动 /architect 切 Opus——这是 Aider 区别于所有 GUI 工具的最大红利。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
