<!-- title: 终端党只用Aider一成：八个隐藏开关 -->
<!-- domain: tips-tricks -->

# 终端党只用Aider一成：八个隐藏开关

如果你每天泡在终端里写代码，大概率听过 **Aider**——这个在 GitHub 上狂揽数万 star、长期霸榜「AI 编辑代码能力排行榜」第一的命令行 AI 结对编程工具。但我和几位重度用户聊下来发现一个尴尬的事实：**90% 的人装完 Aider，就只会在终端敲一句自然语言让它改代码，然后用默认模型、默认参数、默认流程跑到底。**

这就好比你买了一台单反，永远只用全自动挡拍。Aider 真正值钱的地方，藏在那一堆 `--` 开头的 flag 和 `/` 开头的斜杠命令里——它们能把一个「能用」的 AI 改代码工具，变成一个**能砍掉一半 token 账单、能自动跑测试、能跨模型分工**的提效引擎。今天这一篇，我翻遍 Aider 官方文档（aider.chat/docs），把八个中国用户大概率没碰过的隐藏开关一次性讲透。

---

## 先搞懂：Aider 的「双模型」底层逻辑

在讲具体开关之前，你必须先建立这张心智地图——这是后面所有省钱技巧的基础：

```mermaid
flowchart TD
    A[你的请求: 改这段代码] --> B{谁来干活?}
    B -->|出方案/读地图/分析| C[主模型<br/>Architect / Reasoning<br/>贵但聪明]
    B -->|具体改代码/填diff| D[编辑模型 Editor<br/>便宜但听话]
    C -->|产出修改计划| D
    C -->|读仓库地图| E[弱模型 Weak Model<br/>最便宜<br/>只负责建repo map]
    D --> F[git auto-commit]
    F --> G[/undo 可回退/]
    style C fill:#ffe0e0
    style D fill:#e0ffe0
    style E fill:#fff8e0
```

记住一条铁律：**贵模型只在「想」的时候烧钱，便宜模型在「动手」的时候干活。** 下面八个开关，本质上都是在调度这张图里的箭头。

---

## 开关一：Architect 模式——让 Opus 出方案，Haiku 写代码

这是 Aider 省钱最狠的一招，也是最少人用的一招。

默认情况下，你用什么模型改代码，就全程烧那个模型的 token。比如你用 Claude Sonnet 改一个 200 行的文件，Sonnet 既要读、要想、又要逐字吐 diff，全程按最贵档位计费。

而 `--architect` 模式把这件事拆成两段：

```bash
aider --architect --model sonnet --editor-model haiku
```

**操作步骤：**
1. 启动时加 `--architect`，用 `--model` 指定一个「架构师」（强推理）模型，比如 sonnet / opus
2. 用 `--editor-model` 指定一个「编辑」（廉价）模型，比如 haiku 或 DeepSeek
3. 架构师模型只负责「读代码 + 提方案」，输出一段自然语言的修改计划
4. 编辑模型拿着这份计划，去做真正的 diff 编辑——这部分是机械活，便宜模型完全够用

**预期效果：** 实测在大型重构场景下，token 账单能砍掉 40%~60%，而代码质量几乎不打折扣，因为「想」的部分依然是最强模型在做。

**适用场景：** 复杂多文件重构、跨模块改造、需要深度推理的 bug 修复。简单的小改动反而没必要开。

> ⚠️ 小坑：Architect 模式默认会弹确认框让你 review 架构师的方案。如果你嫌烦想全自动，加 `--auto-accept-architect`（这是相对较新的功能，老版本可能没有）。

---

## 开关二：--thinking-tokens / --reasoning-effort——给推理模型拧阀门

这是 2025 年下半年才在文档里稳定下来的功能，很多老 Aider 用户根本不知道。

现在的推理模型（Claude Sonnet/Opus 的 thinking、OpenAI 的 o 系列、DeepSeek R1）都有一个「思考预算」概念。思考越多越准，但也越烧钱、越慢。Aider 给了你两个旋钮直接拧：

```bash
# Claude 系：用 thinking-tokens 控制思考token预算
aider --model sonnet --thinking-tokens 8k    # 简单任务调小
aider --model sonnet --thinking-tokens 32k   # 难题调大

# OpenAI o 系：用 reasoning-effort 三档
aider --model o3-mini --reasoning-effort low
aider --model o3-mini --reasoning-effort high
```

**信息差在哪：** 大多数人装好 Aider 用默认值，等于让模型「用最大火力」思考每一条请求。但现实是——「把这行变量名改一下」根本不需要模型思考 8k token。把简单请求的 `--thinking-tokens` 调到 `2k` 甚至 `0`，复杂调试时再调大，**单这一招就能省下一笔可观的账单**，而且简单任务反而更快返回。

**适用场景：** 你已经在为推理模型付费，且任务难易混杂时，强烈建议按任务难度动态调。

---

## 开关三：--weak-model——把「建地图」这种脏活外包

Aider 启动时会用 tree-sitter 扫描你的整个 git 仓库，生成一张「仓库地图」（repo map）喂给模型，让它知道有哪些函数、哪些类、它们的关系。这张地图对代码质量至关重要，但它本身也要消耗 token 去生成。

`--weak-model` 让你指定一个**超便宜的模型专门负责生成 repo map 和处理杂务**：

```bash
aider --model sonnet --weak-model haiku
```

**效果：** 主模型（sonnet）依然负责核心改代码，但 repo map 的构建、文件摘要这些「不需要高智商」的活，全部甩给 haiku。等于雇了个廉价实习生做资料整理，主工程师专注写代码。

**配合开关一食用更佳：** `--architect sonnet --editor-model haiku --weak-model haiku`，三个角色分工，账单最优。

---

## 开关四：--map-tokens + --subtree-only——精准控制上下文预算

仓库地图是 Aider 的灵魂，但很多人不知道它的大小是可以**手动拧**的。

```bash
# 默认 ~2048 tokens，大仓库可以调大给模型更多全局视野
aider --map-tokens 4096

# 小项目或想省钱，调小
aider --map-tokens 1024

# 只画某个子目录的地图（巨型 monorepo 神器）
aider --subtree-only src/payment/

# 控制地图刷新频率：always / auto / files / never
aider --map-refresh auto
```

**信息差：** 在十万行级别的 monorepo 里，默认的 repo map 会把不相关的模块也塞进去，既烧 token 又干扰模型。`--subtree-only` 让 Aider 只把你当前要改的那个子目录画进地图，**token 消耗立降一个数量级**，模型也更聚焦。

**预期效果：** 大仓库场景下，单轮对话上下文从动辄十几万 token 压到两三万，账单和延迟双降。

---

## 开关五：--cache-prompts——重复请求的九折券

Aider 支持 prompt caching（提示词缓存），但默认不一定开。加一个 flag 就能白嫖：

```bash
aider --cache-prompts
```

**原理：** 当你在同一个会话里连续发多轮请求，前面已发送的 prompt（系统提示 + 仓库地图 + 已添加文件）会被服务商缓存。下一轮如果这部分内容没变，就按缓存价计费——比如 Anthropic 的缓存价格只有正常输入价的十分之一左右。

**适合谁：** 会话较长、多轮迭代改同一个功能的场景。一轮对话搞定的小改动感知不明显，但一个下午改 50 轮，省下来的钱够再跑十轮。

**强烈建议写进配置文件**（见开关八），让它永久生效。

---

## 开关六：--auto-lint + --auto-test——让 AI 自己跑测试自证清白

这是 Aider 区别于「纯聊天型」AI 工具最大的杀手锏，但很多人完全没用。

```bash
# 改完代码自动跑 lint
aider --auto-lint --lint-cmd "ruff check --fix"

# 改完代码自动跑测试，失败了让AI自己修
aider --auto-test --test-cmd "pytest tests/"
```

**工作流：** 你让 Aider 改一段代码 → 它改完自动跑你指定的 lint/test 命令 → 如果报错，**它会自己看到错误输出，然后自动迭代修复**，直到通过为止——全程不用你插手。

```mermaid
sequenceDiagram
    participant U as 你
    participant A as Aider
    participant T as 测试/Lint
    U->>A: 改这个函数并加测试
    A->>A: 改代码 + 生成diff
    A->>T: 自动跑 pytest
    T-->>A: ❌ 2个测试失败
    A->>A: 读报错 → 自动修复
    A->>T: 再跑一次
    T-->>A: ✅ 全绿
    A->>U: 完成，已git commit
```

**信息差：** 国内很多人把 Aider 当「会改文件的 ChatGPT」用，改完还得自己手动 `pytest`、手动 `git diff` 检查。开了这两个开关，Aider 就变成一个**会自我验证的闭环 Agent**——这才是它真正的形态。

**适用场景：** 任何有测试套件的项目。没有测试？那就先让它帮你写测试（`/test` 命令 + `--test-cmd`）。

---

## 开关七：--read + CONVENTIONS.md——给 AI 立规矩，一次性喂规范

`--read` 让你把文件以**只读**方式加进上下文，AI 能看到但不会去改它。最经典的用法是喂项目规范：

```bash
# 把代码规范、架构说明喂进去，AI改代码时全程遵守
aider --read CONVENTIONS.md --read ARCHITECTURE.md

# 临时参考某个接口文档
aider --read docs/api-spec.md main.py
```

**进阶玩法——CONVENTIONS.md：** Aider 官方文档专门推荐你建一个 `CONVENTIONS.md` 文件，写上「本项目用 tabs 不用空格」「错误处理必须用自定义异常类」「函数必须有类型注解」之类规则，然后 `--read` 进去。从此 AI 生成的代码自带你们团队的「肌肉记忆」，省去每次手动纠正风格的沟通成本。

**和 `/add` 的区别：** `/add` 是可编辑，`--read` 是只读参考。规范文档千万别 `/add`，否则 AI 可能「好心」帮你改规范。

**信息差：** 大多数人反复在对话里强调「请用这个风格」，每轮都烧一遍 token。写成 CONVENTIONS.md 用 `--read` 喂一次，**配合 `--cache-prompts`（开关五）还能享受缓存价**，一劳永逸。

---

## 开关八：.aider.conf.yml——把上面所有开关固化成「出厂设置」

最后一个，也是最该第一个做的开关：**别每次都在命令行敲一长串 flag**。

在项目根目录或 `~/.aider.conf.yml` 写一个 YAML 配置文件：

```yaml
# 模型分工
model: sonnet
editor-model: haiku
weak-model: haiku
architect: true

# 省钱
cache-prompts: true
map-tokens: 2048
map-refresh: auto
thinking-tokens: 8k

# 自验证闭环
auto-lint: true
lint-cmd: "ruff check --fix"
auto-test: true
test-cmd: "pytest -q"

# 规范
read:
  - CONVENTIONS.md

# 中文commit message
commit-language: zh
```

之后直接敲 `aider factorial.py`，所有配置自动生效。再配一个 `.aiderignore`（语法同 `.gitignore`），把 `node_modules/`、`*.lock`、密钥文件挡在 AI 视线之外。

**信息差：** 配置文件是 Aider 体验从「能用」到「顺手」的分水岭。海外老手的 `~/.aider.conf.yml` 都是精调过的，新手却每次裸奔。花 10 分钟写好这个文件，相当于给你未来每一次 AI 编程都省下配置成本。

---

## 信息差总结：你知道的 vs 别人不知道的

| 维度 | 多数人的用法（一成） | 高手的用法（剩下九成） |
|------|---------------------|----------------------|
| **模型** | 一个模型干所有事 | Architect 主模型出方案 + Editor 廉价模型写码 + Weak 廉价模型建地图 |
| **推理预算** | 默认最大火力 | `--thinking-tokens` 按任务难度动态拧 |
| **仓库地图** | 默认全仓库扫 | `--subtree-only` 只画子目录，token 降一个数量级 |
| **重复请求** | 每轮全价 | `--cache-prompts` 享缓存十分之一价 |
| **测试验证** | AI 改完手动跑 | `--auto-test` 让 AI 自跑自修到全绿 |
| **代码规范** | 每轮口头强调 | `CONVENTIONS.md` + `--read` 一次喂入 |
| **配置** | 每次命令行裸敲 | `.aider.conf.yml` 固化出厂设置 |
| **中文场景** | 默认英文 commit | `--commit-language zh` + `--chat-language zh` |

---

## 行动指南：今晚就能做的三步

1. **第一步（5分钟）：** 在 `~/.aider.conf.yml` 落地开关八的配置模板，至少开 `cache-prompts: true` 和 `auto-lint: true`。
2. **第二步（15分钟）：** 在你最熟的项目里跑一次 `aider --architect --model sonnet --editor-model haiku --auto-test --test-cmd "你的测试命令"`，对比一下账单和效果。
3. **第三步（持续）：** 建立 `CONVENTIONS.md`，把团队规约沉淀进去，用 `--read` 喂给 AI，从此告别「AI 不懂我们风格」的反复沟通。

Aider 的核心信息差不在于「它存不存在」，而在于——**这个工具把「省钱、自验证、多模型分工」的能力全做成了 flag，但默认全关着，就等你去打开。**

---

## 参考来源

- [Aider 官方用法文档（Usage）](https://aider.chat/docs/usage.html) — 基础用法、`/add`、`/undo`、git 自动提交
- [Aider Options Reference（完整 flag 列表）](https://aider.chat/docs/config/options.html) — 本文八个开关的权威出处
- [Aider Reasoning Models 文档](https://aider.chat/docs/config/reasoning.html) — `--thinking-tokens` / `--reasoning-effort` 用法
- [Aider Repository Map 文档](https://aider.chat/docs/repomap.html) — `--map-tokens` / `--subtree-only` 原理
- [Aider Scripting 文档](https://aider.chat/docs/scripting.html) — `--message` / `--message-file` 批量自动化

---
> 本文由「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 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
