聊天模式与会话命令
Aider 的 code / ask / architect / help 四种模式,以及 /add、/drop、/run、/undo 等会话内命令和键位。
四种聊天模式
| 模式 | 作用 |
|---|---|
code | 默认模式,Aider 直接改你的代码来满足请求 |
ask | 只讨论和回答关于代码的问题,从不改文件 |
architect | 同样会改文件,但分两步:architect 模型提出方案,editor 模型把方案翻译成具体的文件编辑 |
help | 回答关于 Aider 本身的问题:用法、配置、排错 |
提示符会显示当前模式:> 是 code,ask> 是 ask,architect> 是 architect。只对单条消息切换:用 /code、/architect、/ask、/help 加内容,下一条消息会回到当前模式。粘性切换:/chat-mode <mode>,或不带参数的 /code、/architect、/ask;启动时用 --chat-mode <mode>,--architect 是 --chat-mode architect 的简写。
Ask / Code 工作流
推荐在 /ask 和 /code 之间来回切换:先用 ask 讨论方案、让 Aider 给出选项并反馈,意见一致后切到 code 让它动手。此时你可以说得很简短,一句「go ahead」就会按前面讨论的计划执行。可以把它看作用同一个模型完成的、更灵活的 architect 模式。
Architect 与 editor 模型
architect 模式会向两个模型发请求:先把请求发给主模型(/model 或 --model 设置)作为 architect 提出方案;再发给 editor 模型,要求把方案转成具体的文件编辑指令。Aider 会按主模型选默认 editor 模型,也可以用 --editor-model <model> 指定;editor 用的编辑格式用 --editor-edit-format 指定,推荐 editor-diff 和 editor-whole。有些模型不能一次完成「提方案」加「写精确编辑」,配上 editor 模型会更好(文档以 OpenAI o1 为例:推理强但不擅长改文件);代价是两次 LLM 请求,更慢也更贵。
常用会话命令
| 命令 | 说明 |
|---|---|
/add | 把文件加入聊天,让 Aider 可编辑或细看 |
/read-only | 加入仅供参考的文件,或把已加入的文件改成只读(/read 同类用途) |
/drop | 移出文件,腾出上下文 |
/ls | 列出已知文件,标出哪些在聊天里 |
/run(别名 !) | 运行 shell 命令,可把输出加入聊天 |
/test | 运行命令,退出码非零时把输出加入聊天 |
/lint | 对聊天里的文件(没有则对所有改动文件)做 Lint 并修复 |
/diff | 显示自上一条消息以来的改动 |
/undo | 撤销上一次由 Aider 做的 git 提交 |
/commit | 提交聊天之外做的改动 |
/git | 运行 git 命令(输出不进聊天) |
/model、/editor-model、/weak-model | 切换主 / editor / weak 模型 |
/models | 搜索可用模型 |
/reasoning-effort、/think-tokens | 设置推理强度、思考 token 预算 |
/tokens | 统计当前上下文的 token 用量 |
/clear、/reset | 清空对话历史;/reset 同时移出所有文件 |
/map、/map-refresh | 打印、强制刷新仓库地图 |
/web | 抓取网页转成 Markdown 发到聊天 |
/paste、/voice | 粘贴剪贴板内容、语音输入 |
/copy、/copy-context | 复制上条回复、复制整个聊天上下文 |
/save、/load | 保存、执行能复原当前会话文件的命令 |
/editor | 打开编辑器写长提示 |
/multiline-mode | 切换多行模式(交换 Enter 与 Meta+Enter) |
/settings、/report、/help、/exit | 查看设置、提 issue、提问、退出 |
随时可以按 Ctrl-C 打断,已收到的部分回复仍留在对话里。交互提示基于 prompt-toolkit,默认 Emacs 键位,加 --vim 切换成 Vi 键位;上方向键翻历史,Ctrl-R 搜索历史。
使用技巧
- 只把需要修改的文件加入聊天:太多无关代码会干扰模型;Aider 有仓库地图,通常已知道别处相关的类和函数。
- 把目标拆成小步,边做边
/drop不再需要的文件、/add下一步要改的文件。 - 复杂改动先
/ask讨论计划,满意后直接说「go ahead」。 - 卡住时:
/clear重来、/drop多余文件、先/ask讨论、用/model换模型再试,实在不行自己写下一步再让 Aider 继续。 - 要新建文件,先
/add <file>,否则它可能把改动写进已有文件。 - 修 bug:用
/run把报错输出发给它,或直接粘贴;测试失败用/test。 - 提供文档:粘贴片段、消息里写 URL(Aider 会抓取)、用
/read读本地文档,或写成约定文件(见「编码约定」)。