我用4B参数模型构建的编码智能体在基准测试中达到87%,诀窍如下
摘要
作者构建了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)
欢迎就架构或基准测试方法提问。
相似文章
我用 Ollama 构建了一个本地自主编码代理——微调灵魂模型,40轮代理循环,MiniMax M3 处理重活
一位开发者使用 Ollama 构建了一个本地自主编码代理,结合了微调个性模型(Eve)进行对话和 MiniMax M3 处理重活,实现了 40 轮代理循环,包含 16 个工具,9 个测试全部一次通过。
我从零重建了一个Claude Code风格的编程代理——整个代理循环只有6行代码。20章,约5000行代码,无框架,也支持本地模型
一位开发者分享了一个20章的教程,从头重建了一个Claude Code风格的编程代理,展示了整个代理循环(约6行代码),并支持本地模型和多种LLM API。
AA 推出 Coding Agent Index —— 模型与 Harness 组合的性能对比
Artificial Analysis 推出了 Coding Agent Index,这是一套新的基准测试套件,结合了 SWE-Bench-Pro-Hard-AA、Terminal-Bench v2 和 SWE-Atlas-QnA,旨在评估 AI 编程代理在多样化任务中的表现。
EvoCode-Bench:在多轮迭代交互中评估编码代理
介绍了EvoCode-Bench,这是一个包含26个有状态编码任务、共227轮评估的基准,用于评估多轮迭代交互中的编码代理,结果表明单轮性能高估了多轮能力22-40分。
CP-Agent:一种用于反馈驱动型竞赛编程的校准风险控制代理
CP-Agent 提出了一种借助大型语言模型的校准风险控制方法,用于反馈驱动型竞赛编程,无需参数更新即可在基准测试上取得显著改进。