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
  • 项目