之前有写到,我有在自己的电脑上部署那些大语言模型。在那之后,我用的还是那些主流 Agent 嘛。因为我实在想不到,我到底用什么东西,才能让这些大语言模型在本地为我干活。直到昨天,我突然还想起来有一款叫做 Aider 的工具,它是我当初 25 年氛围编程时,所使用的一款氛围编程工具。它虽然也算是一种 Agent,但是它足够简洁,并且可控性要强上很多。相较于市面上大部分使用 Node.js 编写的氛围编程工具不同,它是使用 Python 编写的,跟 Hermes 所使用的编程语言一样。对比大部分选择让 AI 自主规划代码的 Agent,Aider 默认是一轮人、一轮 AI 这样的古老对话方式。

但不同的一点在于,Aider 原生支持 Git,每次 Aider 这轮对话产生代码、更改结束以后,Aider 就会对这轮修改进行 AI 的 Commit,于是你的更改就被保存到 Git 里面了。不仅如此,对于有 Git 仓库的 Aider 来说,它生成的是标准的差异文件,而不是让程序直接去控制 AI 输出到文件里。只有当你的项目没有 Git 的时候,Aider 才会用搜索替换和任务记录。想要在 macOS 上下载 Aider 其实非常简单,相较于在 Linux 上使用 Pip 下载后还会使用 UV 再下载一遍,在 macOS 上你只需要输入一条命令,使用我们大家都知道的 Homebrew 包管理器从包管理仓库中安装软件即可:

1
brew install aider pandoc

安装好以后我们就需要为 Aider 配置大语言模型参数了,对比其它进来后提醒你输入 API 端点、大语言模型密钥的命令行 Agent 来说,Aider 需要你配置好命令参数。所以你完全可以把 Aider 给 alias 一遍。我的参数是 Aider 加上了 --model ollama/gemma4:e4b-mlx 指定了大语言模型,又加上 --openai-api-base http://localhost:11434/v1/chat/completions 指定了端点,最后加上了密钥 --openai-api-key ollama 以便通过,不过正常来看你的 Ollama 是不需要使用密钥的,随便都能用,除非你已经设置好了密钥,也可以把上述配置换成你的服务商。

接下来普及一些 Aider 的基本用法,Aider 的控制程度强的一点是,你所要做的所有几乎都由人去主导。如果我想要 AI 编辑一个文件,那么我可以输入 /add 再在末尾跟上文件路径来实现,那样 AI 就能看到这个文件;如果我想要 AI 只读这个文件,那么我只需要把上述的 /add 换成 /read 即可,这样 AI 就不会有更改那个文件的权利;如果我希望编写一个多行提示词,那么我可以输入 /edit 并在编辑器里输入我的提示词,它会临时打开默认编辑器;如果我想要 AI 去阅读一篇信源,我完全不需要在提示词中加一句“搜索并学习”,只需要在命令行中输入 /web 再跟着文档网页链接即可。

Aider 的原理是把这些网页转成 Markdown 添加到上下文,所以就需要 Pandoc 这种命令行转换文件格式的软件参与工作。因为现在厂商都为自循环 Agent 优化了大上下文,这种你一句我一句的反而是太够用了。