乐于分享
好东西不私藏

本地AI编程助手折腾记:从OpenCode到Aider,我终于找到了靠谱的组合

本地AI编程助手折腾记:从OpenCode到Aider,我终于找到了靠谱的组合

先说结论:如果你想要“一句话生成完整项目”的爽感,直接用OpenCode的云端免费模型;如果你在意数据隐私,愿意折腾一下,Aider+本地14B模型是个靠谱的组合。

这篇文章记录了我从零搭建本地AI编程助手的全过程,踩过的坑、换过的工具,以及最后怎么让它真正干活的。

我的硬件配置

先交代一下我的设备:

  • 系统:Ubuntu 24.04

  • 显卡:RTX 3090 24GB

这套配置在Ubuntu 24.04上跑AI推理很稳,24GB显存刚好能流畅运行14B量化的模型

故事的开始:我想要什么?

我的需求很简单:

说一句话,AI帮我生成一个完整的项目,目录结构、代码文件、依赖配置全部到位。

不是那种“你问我答”的ChatGPT式交互,而是真正的“Agent”——它能自己规划、自己写代码、自己创建文件、自己装依赖、自己调试。

第一站:OpenCode,真香!

我第一个试的是 OpenCode

为什么先选它?

安装实在太简单了:

npm install -g opencode-ai

装完就能用,不需要配置任何API Key。它内置了Big Pickle等多个免费模型,开箱即食。

我做了什么测试?

我在OpenCode里输入了一句话:

“创建一个快速排序可视化程序,用matplotlib展示排序过程”

然后看着屏幕上的光标自己跳动。它生成了一个完整的Python文件,代码逻辑清晰,注释完整。

更绝的是,它自己检测到了虚拟环境,自动安装了matplotlib依赖。然后告诉我:“直接运行 python quicksort_visualization.py 即可。”

我运行了一下,项目里生成了排序过程的动态图。有报错或者新需求回发给它,它自己也能修复错误。

我一行代码都没写。

OpenCode的复制粘贴小技巧

在终端里用OpenCode,复制粘贴和平时不太一样:

  • 粘贴Ctrl + Shift + V,或者鼠标右键

  • 复制:选中文本后按 y 键

如果按 y 没反应,在Ubuntu上装个剪贴板工具就行:

sudo apt install wl-clipboard

为什么后来换掉了?

OpenCode的云端模型体验很好,但有两个问题让我犹豫:

1. 数据隐私

OpenCode的某些轻量级功能(比如生成会话标题)可能会用到它自己提供的服务。虽然代码和对话默认存储在本地,但涉密项目还是不太放心。

如果想禁用云端服务,可以在配置文件 ~/.config/opencode/opencode.json 里加上:

{  "disabled_providers": ["opencode"]}

2. 本地模型配合不好

我试过用OpenCode连接本地模型,但配合不太顺畅。它的设计重心还是围绕云端模型,本地模型支持相对薄弱。

第二站:Aider,更稳但更折腾

为了完全离线、数据不出电脑,我转到了 Aider

Aider是一个终端里的AI结对编程工具,能直接操作你的代码库

安装Aider

Aider本身是一个Python包:

pipx install aider-chat

推荐用 pipx 安装,干净不污染环境。安装后需要配置API Key,因为Aider默认通过API调用模型

下载本地模型

我选的模型是 Qwen2.5-Coder-14B-Instruct-Q4_K_M.gguf

模型在Hugging Face上可以下载,这个14B的量化版本在24GB显存上跑得很稳

下载命令:

hf download Qwen/Qwen2.5-Coder-14B-Instruct-GGUF \    --include "qwen2.5-coder-14b-instruct-q4_k_m.gguf" \    --local-dir ~/models/qwen2.5-coder-14b

连接本地模型

第一步:启动模型服务(根据你自己的安装目录自行调整命令)

~/ai/llama.cpp/build/bin/llama-server \    -m ~/models/qwen2.5-coder-14b/qwen2.5-coder-14b-instruct-q4_k_m.gguf \    --alias qwen2.5-coder-14b \    --gpu-layers 999 \    -t 8 \    -c 32768 \    --host 127.0.0.1 \    --port 65530

第二步:启动Aider

export OPENAI_API_BASE=http://127.0.0.1:65530/v1export OPENAI_API_KEY="sk-dummy-key"aider --model openai/qwen2.5-coder-14b --edit-format whole

关键点:--edit-format whole 是让Aider用“全量重写”格式,而不是“修改部分”格式,这样本地模型更不容易出错。

踩过的坑:编辑格式错误

Aider最常见的报错是这个:

The LLM did not conform to the edit format.No filename provided before ``` in file listing

什么意思呢?就是模型没有按Aider要求的格式输出修改内容

怎么解决?

我试过的方法里,最有效的是:

  1. 使用 --edit-format whole 参数,从源头降低格式要求

  2. 当报错时,直接要求模型“删除文件并重新生成”,而不是让它去修改

比如:

请删除 app.py 并根据最新需求重新生成完整文件。

这个策略特别管用——本地模型擅长“从零生成”,不擅长“精确修改”。

Aider实战:生成一个博客系统

我给了Aider一个需求:

“帮我写一个博客系统”

它自动完成了目录创建和文件创建,包括:

  • app.py(主程序)

  • templates/index.html(首页模板)

  • templates/post.html(文章详情页模板)

  • static/style.css(样式文件)

运行 app.py 时报错,提示缺少依赖。我要求它提供 requirements.txt,它也正常生成了。

安装依赖后再运行,又报了一个新错误。我把错误信息贴给它后,它思考了一会儿,然后出现了熟悉的格式错误:

The LLM did not conform to the edit format.Only 3 reflections allowed, stopping.

这次我没有让它继续在格式错误里打转,而是直接告诉它:

“删除相关文件并重新创建它们”

然后就成功了。

后续优化:增加注册登录功能

博客系统跑通后,我提出了新需求:

“加入用户注册和登录功能,删除相关文件并重新创建它们。”

它重新生成了包含用户认证功能的完整代码,包括:

  • 用户注册页面

  • 用户登录页面

  • 登录功能

整个过程基本顺畅,偶尔遇到格式错误就用“删除重生成”策略绕过。

OpenCode vs Aider:怎么选?

对比项
OpenCode
Aider + 本地模型
安装难度
⭐ 极简,一行命令
⭐⭐⭐ 需要配置模型服务
上手速度
⭐⭐⭐ 开箱即用
⭐⭐ 需要折腾一下
项目生成能力
⭐⭐⭐ 一句话生成完整项目,自动装依赖
⭐⭐ 能生成,但可能需要手动协助调试
数据隐私
⭐ 默认依赖云端服务
⭐⭐⭐ 完全离线,数据不出电脑
模型选择
内置免费模型,有限制
自由选择任意本地模型
与本地模型配合
⭐⭐ 不太顺畅
⭐⭐⭐ 专为本地模型设计
报错修复
⭐⭐⭐ 自己修bug,迭代到成功
⭐⭐ 本地模型易出格式错误,需手动介入

总结

如果你是新手,想快速体验“AI写完整项目”的爽感:直接选OpenCode。装上就能用,默认的免费模型已经很能打。

如果你的项目涉及敏感数据,或者想长期免费无限使用:选Aider + 本地模型。前期配置多花一小时,后面一劳永逸。

最后的建议

  1. 先从OpenCode开始,10分钟就能感受到“一句话生成项目”的快乐。

  2. 觉得好用但担心隐私,再转向Aider,用本地模型跑。

  3. 遇到格式错误别慌,让AI“删除重生成”比让它“修改”更管用。

本地AI编程助手这条路,我踩过坑,也找到了方法。希望这篇记录能帮你少走一些弯路。


你有在折腾本地AI工具吗?欢迎在评论区分享你的经历。

觉得有用的话,点个关注,我还会继续分享这种真实体验过的工具。 😄

本文核心经验为本人真实折腾记录,借助AI辅助整理润色,确保内容准确实用。