我用4B参数模型构建的编码智能体在基准测试中达到87%,诀窍如下

Reddit r/LocalLLaMA 工具

摘要

作者构建了SmallCode,一个针对小型本地模型优化的编码智能体,通过复合工具、改进循环和令牌预算等技术,在4B参数模型上实现了87%的基准测试成功率。

我对所有编码智能体(OpenCode, Cursor, Claude Code)都假设你在运行GPT-5.4或Claude Opus感到沮丧。如果你用本地模型(如Gemma或Qwen)尝试它们,它们就会崩溃。我发现工具调用经常失败,上下文溢出,多步任务崩溃。所以我构建了SmallCode。它是从零开始为小型本地模型设计的。 **结果:** 使用Gemma 4模型(每token仅激活4B参数)通过了87/100的基准测试任务。OpenCode使用14B模型得分约75%。承担繁重工作的是框架,而不是模型大小。 **工作原理(让小型模型可靠的技巧):** * **复合工具:** 不再让模型链式调用4个工具(查找文件 → 读取文件 → 编辑文件 → 验证),SmallCode提供一次完成全部4个步骤的工具。小型模型在3次以上连续调用后会失去连贯性。这使失败率减半。 * **改进循环:** 每次模型编写代码时,SmallCode立即编译/检查。如果失败,它自动反馈错误。模型不必聪明到一次就能正确——它只需要在看到错误时修复它们。 * **失败时分解:** 如果模型对同一任务失败两次,SmallCode停止重试,而是将问题分解为更小的部分。「修复这个200行文件」变成「仅修复第45行」。 * **升级:** 即使分解也失败,并且你配置了Claude/OpenAI密钥,它会自动将这一任务升级到更大的模型。你95%的时间保持本地,5%使用云端。 * **令牌预算:** 小型模型有32k-256k上下文。SmallCode从不把整个文件丢进去。它总结、截断并管理每个令牌,使模型永远不会在重要代码中间看到「...」截断。 * **代码图:** 不再使用grep搜索代码库,SmallCode将代码索引为符号图(函数、类、谁调用谁)。当你问「认证如何工作」时,它会遍历图并只返回相关的关联代码——而不是15个随机的文件片段。 **外观:** 全屏终端UI(类似OpenCode/vim)、可滚动聊天、带`/`的命令面板、插件系统、跨会话的持久化记忆。 **它不做什么:** * 尚无LSP集成 * 尚无多会话支持 * 无桌面应用 * 不与Claude Code竞争前沿模型用户 **安装:** npm install -g smallcode cd your-project smallcode 将其指向LM Studio、Ollama或任何兼容OpenAI的端点。MIT许可,一切都在GitHub上:[https://github.com/Doorman11991/smallcode](https://github.com/Doorman11991/smallcode) 欢迎就架构或基准测试方法提问。
查看原文

相似文章