Doorman11991/smallcode
AI coding agent optimized for small LLMs. 87% benchmark with 4B-active model.
解决的问题
SmallCode 是一个专为在消费级硬件上运行的小型本地 LLM(8B-35B 参数)优化的终端原生编码代理。它通过实现专门的架构,弥补了小型模型常见的缺陷——如工具调用失败、上下文窗口溢出、编辑时产生幻觉或截断文件——从而提升其可靠性。
工作原理
SmallCode 采用多种策略,使小型模型更加可靠:
- 上下文管理:预算引擎限制工具结果,并使用语义压缩来总结历史记录,而非简单丢弃。
- 工具路由:两阶段流程,模型首先选择类别(如读取、写入、搜索),然后仅接收相关工具的模式,减少上下文开销。
- 容错解析:支持从 JSON、YAML、XML 或纯文本中提取工具调用的多格式解析器,可自动修复小型模型的常见错误。
- 编辑原语:优先使用搜索-替换补丁而非全文件写入,防止截断和漂移。
- 规划机制:复杂任务被分解为基于 TODO 文件的计划,模型每轮都参考该计划以保持专注。
- 混合搜索:结合正则/关键词匹配与语义排序,实现离线、符号感知的代码搜索。
适用人群
希望在自己的硬件上使用 Qwen 或 Llama 等模型,运行完全本地化、私密的 AI 编码助手,而非依赖昂贵或侵犯隐私的云 API 的开发者。
核心亮点
- 模型升级:当本地模型严重失败时,可选择性降级至更强的云模型(Claude、OpenAI、DeepSeek)。
- 持久 Shell:维持长期运行的 bash 会话,确保环境变量和目录变更在各轮之间持续生效。
- 思考预算控制:限制推理模型使用的「思考」令牌数量,防止在琐碎任务上浪费资源。
- 知识注入:用户可将参考笔记放入指定目录,系统根据关键词重叠自动注入到系统提示中。
- 插件系统:支持项目、用户和全局插件,用于添加工具、命令和钩子。
- 读写保护:防止模型在未读取文件前写入,并管理大文件读取以避免上下文溢出。
相关
- 项目
- 项目
- 项目
- 项目