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 會話,確保環境變數和目錄變更在各輪之間持續生效。
  • 思考預算控制:限制推理模型使用的「思考」令牌數量,防止在瑣碎任務上浪費資源。
  • 知識注入:使用者可將參考筆記放入指定目錄,系統根據關鍵字重疊自動注入至系統提示中。
  • 插件系統:支援專案、使用者與全域插件,用於新增工具、命令與鈎子。
  • 讀寫保護:防止模型在未讀取檔案前寫入,並管理大檔案讀取以避免上下文溢出。

相關

  • 專案
  • 專案
  • 專案
  • 專案