PROJECT · 01

Autarkia

单机自托管的 Agent 运行时

在 GitHub 上看 →持续开发中

它最初只是一个对话接口,后来长成了运行时:一次请求里可以有多轮工具调用、状态写入和记忆更新——查文件、设提醒、看一眼屏幕、记一条偏好,再决定要不要继续做下一件事。角色人设只约束表达方式和内容边界,实际能力由工具层提供。

工具是最大的那一层。注册一次,每个角色拿到自己的集合:常驻的每轮进 schema,按需的通过检索发现,禁用的完全不出现在模型面前。发消息、改设备、写本地数据这类操作带风险标注,权限校验发生在执行前,不写在 prompt 里。

记忆不是把历史全塞进上下文。加权记忆、关键词索引、向量检索和遗忘概率叠在一起按相关度挑,每晚再蒸馏一次,把当天的对话压成长期条目。情绪、精力、睡眠和角色自己的日程也会进上下文,并参与主动消息的决策。

主动消息是硬约束下的产物:静默时段、最小间隔、每日上限、活跃客户端、角色白名单,缺一个就不发;用户也可以随时暂停或调频。稳定性占掉另一半时间——推理、语音、图像抢同一块 GPU,所以有一个可选的 C++ 扩展做任务分离和优先级队列,没编译就退回 Python;模型 OOM 之后按降级链重载,服务挂了由监控和自愈接手。

边界也说清楚:单机、单人、不做多租户;C++ 调度、ChromaDB 和 SQLite 索引都是可选项,缺了会退化到文件和关键词路径;iOS 端还只是早期实现。

01技术要点

工具层95 个工具、26 个领域,按角色分配常驻 / 按需 / 禁用,写操作带风险标注与执行前校验
记忆层加权记忆 + 关键词索引 + 向量检索 + 遗忘概率,夜间蒸馏把当天对话压成长期条目
调度层可选 C++ 扩展做 GPU / CPU 任务分离与优先级队列,未编译时自动回退 Python
稳定性健康监控与自愈重启;日志驱动的补丁生成先过沙箱,再走人工审批
主动任务静默时段、最小间隔、每日上限、角色白名单是硬约束,默认不发
状态情绪检测、精力睡眠与角色日程进入上下文,也参与主动消息的门控
多端Web、Android(Compose,含无障碍 / Shizuku 设备控制)、iOS、桌面壳、QQ、Telegram

02技术栈

PythonFastAPIC++llama.cppReactKotlinSwiftDocker