Sentdex/minion

A tiny single-file coding agent for self-hosted models (llama.cpp / vLLM / SGLang).

解決的問題

Minion 解決了 AI 編碼代理中的「上下文膨脹」問題。許多框架在進行基本互動時會消耗數萬個令牌,因為它們將大量功能和工具載入 LLM 的上下文中。這種膨脹會減慢回應速度,降低模型的有效智能(注意力在早期上下文最有效),增加 API 成本,並使得在上下文窗口有限的本地模型上運行代理變得困難。

工作原理

Minion 是一個輕量級的單檔案編碼代理(minion.py),可與 OpenAI 相容的端點(如本地伺服器 llama.cpp 或遠端 API)通訊。它透過最小化系統提示和工具模式,將初始令牌數量保持在較低水平(簡單問候語約為 625 個令牌)。

關鍵技術特性包括:

  • 優雅降級:如果伺服器不支援原生工具呼叫,它會回退至解析特定文字分隔符([minion_tool_call])。
  • 上下文管理:當上下文視窗達到預設閾值(預設 85%)時,自動將較早的對話回合壓縮為摘要。
  • 風險分類:每個寫入、編輯或 bash 命令都透過低成本模型呼叫進行風險分類(低、中、高),以根據所選的審批模式判斷是否需要使用者批准。
  • 會話持久化:對話會自動儲存為人類可讀的 JSON 檔案,便於輕鬆恢復。

適用對象

希望擁有極簡、無花俏的編碼代理,能在本地 LLM 上高效運行或在遠端 API 上成本效益高的開發者,以及偏好透明、單檔案程式碼庫以便輕鬆理解或修改的人。

主要亮點

  • 超低開銷:相比功能豐富的代理框架,每輪互動使用的令牌顯著更少。
  • 工具功能:可在專案內讀取、寫入、編輯檔案,並執行 shell 命令。
  • 靈活後端:相容任何 OpenAI 相容端點,包括本地伺服器和 Together AI、OpenRouter 等供應商。
  • 安全控制:提供多種審批層級(從 allyolo),控制模型在無需提示的情況下執行命令的時機。
  • 單檔案架構:全部邏輯都包含在一個 Python 檔案中,實現最大簡潔性。

相關

  • 專案
  • 專案
  • 專案
  • Dispatch
  • 專案