OC

Knowledge OS
鹦鹉螺口语
如何推出自己的本地 AI 编码代理
2026-05-02 11:30:00 · 英文原文

如何推出自己的本地 AI 编码代理

随着模型开发人员推行更激进的速率限制、提高价格,甚至放弃基于使用的定价的订阅,这种振动编码的爱好项目将变得更加昂贵。幸运的是,您并非没有节省成本的选择。

在过去的几周里,我们看到了 Anthropic 玩具掉落Claude Code 放弃了最实惠的计划,而微软则跳过了测试阶段,将 GitHub Copilot 转移到了纯粹的计划中。基于使用的模型。整个灾难让我们思考。我们是否需要 Anthropic 或 OpenAI 的顶级模型,或者我们可以使用较小的本地模型吗?当然,它可能会更慢,能力更差,并且使用起来更令人沮丧,但你无法击败免费的价格......好吧,假设你已经拥有了硬件。

正好阿里巴巴最近掉线了Qwen3.6-27B,这家云和电子商务巨头声称将“旗舰编码能力”打包到一个足够小的包中,可以在 32 GB M 系列 Mac 或 24 GB GPU 上运行。

发生了什么变化

这不是我们第一次研究本地代码助手。之前我们探索过使用继续 VS Code 扩展用于代码完成和生成等任务。

当时,模型和软件堆栈还相当不成熟,这使得它们成为有用的工具,但不一定足以与更大的前沿模型竞争。从那时起,模型架构和代理工具得到了显着改进。

“推理”功能允许小型模型通过“思考”更长的专家混合模型来弥补其尺寸,这意味着您不需要每秒 TB 级的内存带宽来获得交互体验,而大幅改进的函数和工具调用功能意味着这些模型实际上可以与代码库、shell 环境和 Web 进行交互。

所有共鸣,没有速率限制

在本次实践中,我们将了解如何部署和配置 Qwen3.6-27B 等本地模型,以便在计算机上进行编码,并探索一些可以与它们一起使用的代理框架。

你需要什么:

  • 能够运行中型法学硕士的机器。我们建议使用至少具有 24 GB VRAM 的 Nvidia、AMD 或 Intel GPU。如果您的内存有点不足,我们还将讨论如何池化您的系统和 GPU 内存。对于使用较新的 Mx-Max 系列 Mac 的用户,我们建议至少使用 32 GB 统一内存。
  • 在本指南中,我们将使用 Llama.cpp 来运行我们的模型,但如果您更喜欢使用 LM Studio、Ollama 或 MLX,则设置过程类似。如果您需要帮助在系统上安装 Llama.cpp,您可以找到我们的综合安装指南这里

注意:较旧的 M 系列 Mac 可能难以应对代理编码所需的大上下文长度。使用像这样的推理引擎可能会有更好的运气奥米克斯,这可以更好地利用苹果的硬件加速器,但你的里程可能会有所不同。

旋转模型

如今,在本地运行法学硕士是一个非常简单的过程。安装您最喜欢的推理引擎。下载模型,并通过 API 连接您的应用程序。

然而,特别是对于代码助手来说,我们需要输入几个参数,否则模型很容易产生垃圾和损坏的代码。有些模型需要特定的超参数才能在不同的应用中正常运行,Qwen3.6-27B也不例外。

使用Qwen3.6-27B进行vibe编码时,阿里巴巴建议设置以下参数:

  • 温度=0.6
  • 顶部_p=0.95
  • 前k=20
  • min_p=0.0
  • 存在惩罚=0.0
  • 重复惩罚=1.0

我们还需要将模型的上下文窗口设置得尽可能大,以适应内存。

如果您不熟悉,模型的上下文窗口定义了模型可以跟踪任何给定请求的令牌数量。

当使用包含数千行代码的大型代码库时,这会很快增加。更重要的是,许多代理框架使用的系统提示可能非常大,因此我们希望将上下文窗口设置得尽可能高。

Qwen3.6-27B 支持 262,144 个令牌上下文窗口,但除非您有高端 Mac 或工作站 GPU,否则您可能没有足够的内存来利用所有这些优势,至少在 16 位精度下是这样。

好消息是,我们不需要以 16 位存储用于跟踪模型状态的键值缓存。我们可以摆脱较低的精度,而不会造成太多的性能和质量下降。为了最大化我们的上下文窗口,我们将把键值对压缩到 8 位。

最后,我们要确保前缀缓存已打开。对于需要反复重新处理大部分提示的工作负载(例如系统提示或代码库),这将通过确保仅处理新令牌来加速推理。在 Llama.cpp 的较新版本中,默认情况下应启用此功能,但为了以防万一,我们将调用这些标志。

完成所有这些后,这是我们用于 24GB Nvidia RTX 3090 TI 的启动命令,但如果您使用 AMD 或 Intel GPU 或在 Mac 上运行 Llama.cpp,相同的代码命令应该可以正常工作。如果您在具有更多内存的计算机上运行此程序,请尝试将上下文窗口增加到 131,072 或 262,144。

骆驼服务器 \--hf-repo unsloth/Qwen3.6-27B-GGUF:Q4_K_M \--ctx-大小 65536 \-ngl 999 \--flash-attn 上 \--缓存提示\--缓存类型-k q8_0 \--缓存类型-v q8_0 \--温度0.6 \--top-p 0.95 \--top-k 20 \--min-p 0.0 \--存在惩罚 0.0 \--重复惩罚 1.0 \--端口8080

如果您计划运行 Llama.cpp 并在另一台计算机上访问它,您还需要将 --host 0.0.0.0 添加到命令中,这会将其公开给您的局域网。如果 Llama.cpp 在 VPC 中运行,出于安​​全考虑,您需要在传递此标志之前配置防火墙规则。

选择代理框架

现在我们的模型已经启动并运行,我们需要将其连接到代理编码工具。模型本身可以生成代码,但如果没有活跃的开发环境,它们就无法实现、测试或调试代码。帮助 Vibe 编码在其他人工智能企业举步维艰的地方取得成功的部分原因是代码是可验证的。它要么运行或编译,要么不运行。 

为了简单起见,我们将关注三个流行的选项:Claude Code、Pi Coding Agent 和 Cline。

Despite what you might think, you don't actually have to use Claude Code with Anthropic's models

不管您怎么想,您实际上不必将 Claude Code 与 Anthropic 的模型一起使用 - 单击放大

我们将从克劳德代码开始。不管您怎么想,您不必将 Claude Code 与 Anthropic 模型一起使用。该框架可以很好地与本地模型配合使用,前提是您有足够的资源来运行它们。

像平常一样安装 Claude Code。你可以找到 Anthropic 的一句话这里

接下来,我们需要告诉 Claude Code 我们想要使用在我们的机器上本地运行的模型,而不是 Claude 帐户或 Anthropic 的 API 服务。这是通过在启动 Claude Code 之前设置一些 shell 变量来完成的。

导出 ANTHROPIC_BASE_URL="http://localhost:8001"导出 ANTHROPIC_API_KEY='无'克劳德

每次从新会话启动 Claude 时都需要运行这些。

现在,当您启动 Claude 时,它​​将直接连接到您的本地模型。克劳德·代码本身继续像往常一样发挥作用。

Pi编码剂

假设您不仅想使用自己的本地模型,而且还更喜欢开源工具。如果您喜欢克劳德·代码,您可能会喜欢Pi编码剂。就像 Claude Code 一样,它对使用什么模型并不挑剔。

Pi Coding Agent 的主要吸引力之一是它的轻量级。长输入序列对于低端或较旧的 GPU 或加速器来说可能会造成极大的负担。Claude Code 和 Cline 都有系统提示,可能会使功能较差的硬件陷入困境。相比之下,Pi Coding Agent 的默认系统提示符足够短,可以让事情变得快捷,尤其是在启用提示符缓存的情况下。

然而,这种速度是以牺牲我们在其他编码代理上看到的许多护栏和安全功能为代价的。您可能希望在虚拟机、容器甚至 Raspberry Pi 中启动它。

与 Claude 非常相似,Pi 编码代理可以使用适当的方式安装一班轮为您的系统。之后,所需要的只是一点 JSON 告诉代理工具在哪里可以找到您的模型。

如果您一直在跟进,那么设置相当简单。使用您喜欢的文本编辑器创建以下文件:

窗户:

编辑〜/.pi/agent/models.json

Linux/苹果机:

纳米 ~/.pi/agent/models.json

接下来,粘贴以下模板。如果您已设置 API 密钥,请将 no_API_key_required 替换为您的密钥。其余的将取决于您使用的型号和端口。您还需要调整 contextWindowSize 以匹配您在 Llama.cpp 中设置的内容。

“提供商”:{“骆驼.cpp”:{"baseUrl": "http://localhost:8080/v1","api": "openai 完成","apiKey": "无",“模型”:[{“id”:“unsloth/Qwen3.6-27B-GGUF:Q4_K_M”}]}}}

完成这些后,我们可以导航到我们的工作目录,启动 Pi Coding Agent,并开始对我们的下一个爱好项目进行 Vibe 编码。

pi --model unsloth/Qwen3.6-27B-GGUF:Q4_K_M

克莱因

Claude Code 直接与 VS Code 等流行的集成开发环境 (IDE) 集成,但如果您要走这条路,我们还建议您查看另一个名为 Cline 的开源应用程序。

安装 Cline 非常简单,只需在 VS Code 的 – 或支持的 IDE 的 – 扩展管理器中找到它并将其添加到您的库中即可。

Cline is available as an extension in many popular IDEs, including VS Code

Cline 可作为许多流行 IDE 中的扩展,包括 VS Code - 单击放大

接下来,我们将 Cline 指向 Llama.cpp 服务器并调整一些超参数,例如温度和上下文大小:

  • 基本网址:http://本地主机:8080/v1
  • 型号 ID:unsloth/Qwen3.6-27B-GGUF:Q4_K_M
  • 上下文窗口大小:65536(或者您在 Llama.cpp 中设置的任何值)
  • 温度:0.6

Once installed, all you need to do is point Cline at your Llama.cpp server.

安装应用程序后,您所需要做的就是将 Cline 指向您的 Llama.cpp 服务器。- 点击放大

Then, set your max context size and model temperature

然后,设置最大上下文大小和模型温度。- 点击放大

配置完成后,您可以通过其聊天界面与 Cline 进行交互。任何文件或编辑都会在生成时显示在 VS Code 中。

Cline 更有用的功能之一是能够在纯粹的计划模式和行动模式之间切换。如果您曾经因为克劳德将问题解释为号召性用语而感到沮丧,而您真正想做的是解决问题,那么这是一个巨大的帮助。

As you interact with Cline, changes will appear in VS Code's editor.

当您与 Cline 交互时,更改将显示在 VS Code 的编辑器中。- 点击放大

本地模型终于足够了吗?

那么Qwen3.6-27B可以替代Opus 4.7或GPT-5.5吗?不完全是。正如您可能猜到的,27B LLM 并不能替代数万亿参数前沿模型。

然而,您可能会惊讶于如今本地模型能走多远。在我们的测试中,Qwen3.6-27B 轻松完成了一个交互式太阳能系统 Web 应用程序,并且能够准确识别和修补现有代码库中的错误。

Working with Cline, Qwen3.6-27B managed to one shot an interactive solar system web app.

Qwen3.6-27B 与 Cline 合作,成功开发出了一款交互式太阳能系统 Web 应用程序。- 点击放大

诚然,这些都是相当琐碎的项目。为了更好地了解该模型的表现,我将其交给了同行 Thomas Claburn,看看它与他最近使用 Claude Code 的体验有何不同。

他写道:

我最近才开始接触当地模特,但托比亚斯的经历似乎和我自己的相似。我一直在使用 pi 编码代理,以 OMLX 作为模型服务器,虽然令牌速度慢很多,但到目前为止我对 Qwen 很满意,至少对于小脚本来说是这样。 

例如,我要求模型编写一个 Python 脚本,用于将图像大小调整为指定宽度,它在大约五分钟后完成了,并进行了一些手动批准。 

Claude Code 对 Qwen 模型作品的评价比我预期的要积极——“总体而言:强大的、具有制作质量的剧本。”

克劳德提出了一些改进建议,但没有一个是必要的。例如:

获取保存格式默默地将所有非 PNG 视为 JPEG 目录中的 .webp 文件将被过滤掉SUPPORTED_EXTENSIONS 个,但如果该集合不断增长,JPEG 的失败将是一种无声的不当行为。显式的 elif 或查找字典会更安全。

考虑到生成该代码所需的时间,我可以考虑使用本地代理来进行集中、离散的代码更改、脚本和最小的 Web 项目。 

对于一个更实质性的项目,我预计会有太多的事情需要纠正。但很大程度上取决于本地模型可用的技能和工具。确定本地模型是否可行的最佳方法是尝试一下——它们可能适合您的目的。确保您拥有占用大量内存的硬件,并确保您已备份数据。

这些药物安全吗?

鉴于 OpenClaw 安全噩梦引发的喧嚣,这是一个很好的问题。值得庆幸的是,我们在这里讨论的大多数框架的自主性都相当有限。默认情况下,Claude Code 和 Cline 依靠人工参与来批准代码更改并执行 shell 命令。

除非您已将一组命令列入白名单,或者在阅读之前向回车键发送垃圾邮件,而没有花时间了解代理正在尝试执行的操作,否则爆炸半径应该是可控的。我们强调“应该”,因为对编程语言和常见 CLI 命令的基本理解在这里有很大帮助。如果模型开始要求对工作目录之外的文件或文件夹运行 rm -rf,则可能出现问题。

Pi Coding Agent 的情况并非如此,它以 YOLO 模式开箱即用,可以自由地读取和修改它有权访问的任何内容。在虚拟机或 Raspberry Pi 等专用开发环境中,这可能是可接受的风险,但如果不是,您可能需要考虑在适当的沙箱中运行代理。

容器化为此提供了一条简单的途径。启动 Docker 容器并将工作目录传递给它非常简单。Docker 本身就是一大堆蠕虫,但以下运行命令应该为您提供沙盒环境的合理起点。您可以找到有关在您喜欢的操作系统上安装 Docker 的说明这里

docker run -it --name vivi_container -v 工作目录:/工作目录 ubuntu /bin/bash

这将启动一个新的 Ubuntu docker 容器并通过我们的工作目录传递到该容器。任何更改都将仅限于该文件夹或容器。

如果您想查看有关构建代理沙箱的综合指南,请在评论部分告诉我们。®

关于《如何推出自己的本地 AI 编码代理》的评论

暂无评论

发表评论

摘要

本文讨论了与人工智能模型订阅相关的不断增加的成本,并建议使用本地模型作为替代的节省成本的解决方案。它重点介绍了阿里巴巴发布的 Qwen3.6-27B,与 Anthropic 的 Claude 或 OpenAI 的 GPT 等较大模型相比,该 Qwen3.6-27B 旨在在功能较弱的硬件上高效运行。本文提供了部署 Qwen3.6-27B 并为其配置编码任务的分步指南,包括设置参数和优化内存使用。它还探讨了不同的代理框架,例如 Claude Code、Pi Coding Agent 和 Cline,详细介绍了如何将这些框架与本地模型集成。最后,本文评估了Qwen3.6-27B在实际编码场景中的性能,并考虑了使用AI代理进行代码开发时的安全问题。