你大概以为 AI 写代码只有两条路:要么订阅 Cursor / Copilot,要么开个 Claude Code 钱包被烧穿。但海外 HN 和 power user 圈子里,一个叫 Aider 的开源命令行工具早就跑通了第三条路——自带 Git 版本控制、能接任何模型(包括 GLM、DeepSeek、本地模型)、几乎零订阅费。问题是 90% 的中国开发者连它名字都没听过,听到过的也只会在终端里敲一句 "帮我改 bug" 就完事。今天这八个隐藏开关,每一个都能单独帮你省钱或提效,最后一个能让你用国产模型把它跑成免费编程搭子。
Aider 官网在 aider.chat,GitHub 仓库 Aider-AI/aider,开源 MIT 协议,pip install aider-chat 即装即用。它和 Cursor 的根本区别在两点:第一,它把每次改动直接做成 Git commit,所以 AI 改崩了永远能回滚;第二,它是 BYOK(Bring Your Own Key),你给什么模型它就用什么模型,包括 OpenAI 兼容端点的国产模型和 Ollama 本地模型。
这个定位意味着两件事:你不需要每月 20 美元的订阅,token 费用完全可控;你也不必被锁在某一家的模型生态里。下面八个开关,就是大多数用户没挖到的宝藏。
这是 Aider 性价比最高、却最少人开的开关。启动时加 --architect,或者会话中输入 /architect:
aider --architect --model claude-sonnet-4-6 --editor-model glm-4.6
原理:传统模式下,一个模型既要想清楚怎么改、又要一个字一个字吐出修改。Architect 模式把这两步拆开——让旗舰模型(architect)只负责思考和规划,输出一份自然语言描述的改动方案;再把这份方案交给一个便宜、编辑能力强的模型(editor-model)去机械地执行 search/replace。
为什么是信息差:思考阶段消耗的 token 最贵,但它恰恰决定质量;编辑阶段 token 量大却不需要聪明。分流之后,旗舰模型只出"点子",脏活累活全甩给几毛钱的模型。HN 上有人实测,代码质量逼近全用 Claude,账单却只有三分之一。
适用场景:重构、跨文件大改动、需要先理清思路的复杂任务。日常的小修补反而不用开,直接用默认模式即可。
很多人以为用 Aider 必须手动 /add 每个文件,否则 AI 是瞎的。错。Aider 内置一个基于 tree-sitter 的仓库地图(repo map),会自动扫描整个仓库里的类、函数、方法签名,按与当前对话的相关性排序,塞进上下文里。
aider --map-tokens 2048 # 默认 1024,大仓库可以调高
会话中输入 /map 可以直接查看当前的仓库地图,/tokens 能看到它到底吃了多少 token。
为什么是信息差:Cursor 也能感知整个项目,但它是靠索引和检索,且你看不到"喂"了什么。Aider 的 map 是可见、可控、可预算的——你想让它看得更广就调高 --map-tokens,想省钱就调低。对那种"明明有一个现成工具函数,AI 却重写了一遍"的痛点,调高 map budget 立竿见影。
适用场景:大型单体仓库、调用关系复杂的项目、tree-sitter 支持的语言(几乎覆盖所有主流语言)。
Aider 在运行时会做很多"不聪明的杂活":生成 commit message、为新文件写摘要、判断该不该把某文件纳入上下文。这些活默认用主模型干,纯属浪费。加一个 flag:
aider --weak-model haiku # 或 deepseek-chat、本地小模型
为什么是信息差:这是最容易被忽略的省钱大头。一次会话里,weak model 可能被调用几十次,每次只是写一句 commit 标题或总结一个文件。把它换成最便宜的模型,主模型只在你真正提问时才烧钱。配合开关一的 architect,三层模型(architect / editor / weak)各司其职,账单能比"全场旗舰"低一个数量级。
适用场景:所有场景,建议写进 .aider.conf.yml 永久生效。
Aider 默认 --auto-commits,每改一处就自动 git commit,提交信息由 weak model 写好,遵循 conventional commits 规范。这听起来不起眼,但它的真正价值在 /undo:
/undo # 撤销 Aider 的上一次提交,一键回到改之前
/diff # 提交前先看一眼到底改了什么
为什么是信息差:很多人在 Cursor 里被 AI 改崩代码后只能疯狂 Ctrl+Z,或者翻 git stash 碰运气。Aider 因为每次改动都是 commit,你永远可以 git log 看到完整改动链,/undo 一键反悔。它还和你已有的 git 历史共存,不会破坏你手动的提交。
如果你的工作区本身有未提交改动,加 --dirty-commits 让它照常提交;想完全手动控制就用 --no-auto-commits。
适用场景:所有需要 AI 动手改代码的场景,尤其是"放手让它改一大块"的时候——这是你敢放手的底气。
很多人只会让 AI 写代码,写完自己手动跑测试。Aider 直接把测试结果喂回给 AI:
/test # 跑 --test-cmd 配置的测试命令
/run pytest -x # 跑任意 shell 命令,输出回灌给 AI
/lint # 跑 --lint-cmd 配置的 linter
为什么是信息差:/test 失败时,Aider 会自动读取报错并尝试修复,进入"跑测试→失败→修→再跑"的循环,直到通过或放弃。这就是教科书级的 test-driven 闭环,而你只需要敲一次 /test。配合 .aider.conf.yml 里写死 test-cmd: pytest 和 lint-cmd: ruff --fix,整个流程全自动。
flowchart TD
A[你说:/test] --> B[运行测试套件]
B --> C{通过?}
C -- 是 --> D[完成,自动commit]
C -- 否 --> E[报错回灌给AI]
E --> F[AI自动分析+改代码]
F --> B
适用场景:有测试覆盖的项目、接手陌生代码库、重构后想确保不破坏现有逻辑。
/watch 模式开启后,Aider 会监控文件的外部变化:你用 Prettier、Black、ESLint --fix,或者干脆手动改了几行,它都能识别。
为什么是信息差:Cursor 这类工具的格式化和 AI 编辑经常打架——AI 改完一保存,格式化器又把它改回去。Aider 的 /watch 让两者共存:AI 改完 → 格式化器自动整理 → Aider 感知到整理后的版本 → 下次基于干净版本继续。适合那种"AI 写的代码风格不统一,需要 linter 收尾"的团队。
适用场景:有严格 lint/格式化规范的项目、多人协作仓库、AI 产出需要二次规整时。
aider --cache-prompts
这个 flag 会让 Aider 把系统提示词和仓库地图这部分固定前缀缓存起来,后续每次请求复用,命中缓存后这部分 token 按缓存价计费(通常是正常价的十分之一左右)。
另一个省钱利器是 /tokens——它会列出当前每个被纳入上下文的文件、repo map、历史对话分别消耗多少 token。不知道钱花在哪,就无从优化。
为什么是信息差:大部分用户从没看过 /tokens 的输出,所以根本意识不到自己把一个 5000 行的日志文件 /add 进了上下文,每次对话都在为它付费。养成"/tokens 检查 → /drop 不必要的文件"的习惯,长会话成本能砍掉一大半。
适用场景:长会话、大文件项目、对 API 成本敏感的自由开发者。
这是对中国用户最香的一点。Aider 支持任何 OpenAI 兼容端点。以 GLM 为例,在 .aider.conf.yml 配置:
name: GLM
api-base: https://open.bigmodel.cn/api/paas/v4
api-key: <你的key>
model: glm-4.6
weak-model: glm-4.5-air
editor-model: glm-4.5
DeepSeek 同理,换 api-base 和 model 即可。想完全离线免费,用 Ollama 跑本地模型,aider --model ollama/qwen2.5-coder 直接连接。
为什么是信息差:很多人以为"开源 = 功能弱",其实 Aider 配合国产模型,编程体验已经能覆盖八成日常任务,而成本是 Cursor 订阅的零头。组合拳:architect 用 GLM-4.6 思考、editor-model 用 DeepSeek-Coder 改代码、weak-model 用本地小模型——三层全是国产或免费,几乎不花钱。
flowchart LR
U[你的提问] --> A[Architect<br/>GLM-4.6 思考]
A --> E[Editor<br/>DeepSeek-Coder 改代码]
E --> W[Weak<br/>本地小模型写commit]
W --> G[Git 自动提交]
G --> R[/undo 随时回滚]
适用场景:预算有限的独立开发者、不想数据上云的团队、想完全本地化部署的场景。
/read 文件名:把文件设为只读,AI 能看不能改。保护核心配置、锁文件、生产代码不被 AI 乱动。/save myproject.md + /load myproject.md:把当前会话的项目规范、上下文约定存成文件,下次 /load 直接复用,省去重复交代背景。aider --message "fix all failing tests" --yes-always 可以无人值守运行,接进 CI 跑批量修复、接进脚本做定时重构——这是付费 GUI 工具基本做不到的能力。| 维度 | 你以为的 Aider | 别人在用的 Aider |
|---|---|---|
| 模型策略 | 全场一个旗舰模型 | architect/editor/weak 三层分流 |
| 仓库认知 | 手动 /add 文件 | tree-sitter repo map 全仓库透视 |
| 成本 | 跟着主模型烧钱 | weak model + cache-promets 砍掉一大半 |
| 安全感 | AI 改崩只能 Ctrl+Z | 自动 commit + /undo 一键回滚 |
| 测试 | 手动跑测试看结果 | /test 失败自动回灌修复,TDD 闭环 |
| 模型选择 | 只能用 GPT/Claude | GLM/DeepSeek/Ollama,国产本地随便接 |
| 自动化 | 只能交互式用 | --message --yes-always 接 CI 批处理 |
pip install aider-chat,在项目根目录建 .aider.conf.yml,写入 weak-model、test-cmd、lint-cmd、cache-promets——一次配置永久受益。--architect 和 --weak-model。这是性价比最高的组合,用一周对比账单和质量,你会直观感受到分流的效果。一句话总结这个信息差:真正贵的不是 AI,是没人告诉你可以把思考、改码、杂活拆给三个不同价位的模型去干。Aider 把这种自由度原原本本交到了你手里。
本文由「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 等场景全覆盖。
