Symbio:本地 AI 自我微调循环
Symbio 是一个本地运行的 AI 智能体,能自动从用户纠正和工具错误中提取训练数据,并通过 LoRA 自我微调。支持 CLI、Telegram、技能学习、MOA 多智能体协作,所有数据保存在本地。
Symbio 是一个本地运行的 AI 智能体,它通过记录用户的纠正来持续自我微调,实现“无需云端、无需订阅”的个性化学习。项目以 GitHub 开源,提供交互式演示,其核心特点是能将从自然对话中捕捉到的错误自动转化为训练数据,最终通过 LoRA 微调更新模型参数,让 AI 不再重复犯错。
功能上,Symbio 支持通过本地 CLI 或 Telegram bot 对话,能够以 Markdown 文件保存事实和笔记,在项目目录内读写搜索和修补文件,执行沙盒化的 shell 命令和 Python 片段,并在配置后可检查 IMAP/SMTP 邮件。每一轮对话都会持久化到 JSONL 和 SQLite 中。
Symbio 的一大特色是 MOA(Mixture of Agents)模式:一个大模型作为“校长”将任务拆解并委派给较小的工作模型。若工作模型失败,可回到校长处获得指导;成功后双方都会保存笔记。当同类错误超过阈值,工作模型和校长模型都会被微调,分别学会如何执行任务和更高效地委派任务。
技能(Skill)功能允许动态学习新技能。技能最初是带有逐步说明的 Markdown 笔记;错误和纠正会记录在隐藏的 sidecar 文件中。一旦错误达到阈值,收集的样本会用于 LoRA 微调,生成一个专用的“技能适配器”(一个适配器 = 一个技能)。这些适配器支持热插拔,闲置时可归档。
在纠正学习方面,Symbio 会自动检测“不,我叫 Alice”这类纠正短语,提取原始问题、错误答案、用户纠正和正确答案,保存为 notes/mistakes/ 下的 Markdown 笔记。默认积累 5 个错误笔记后,系统会将它们消化为训练数据并运行一次短 LoRA 更新,然后归档已使用的笔记并重新加载适配器。类似地,工具调用失败后立刻成功的情况也会被自动捕获,作为另一条训练样本。
微调使用 Apple 的 MLX-LM 框架实现 LoRA。基础模型权重保持冻结,只训练小型适配器矩阵。配置项包括 lora.rank、lora.num_layers、lora.scale、lora.dropout 等。为了确保微调不会悄悄破坏已有能力,每次 LoRA 更新后都会运行一个固定“黄金集”回归检查。总体而言,Symbio 借助持续自我修正和微调,将 AI 从“重复犯错”中解放出来。