面向团队与社区的多进程 AI Agent,支持并发思考与执行,原生集成 Discord/Slack/Telegram 等多平台消息通道。
项目概述#
Spacebot 是由 Spacedrive 团队开发的多进程 AI Agent,采用 Rust (74.7%) + TypeScript (21.7%) 构建,当前版本 v0.1.15。项目采用 FSL-1.1-ALv2 许可证(两年后转为 Apache 2.0)。
五进程架构#
项目将传统 AI agent 拆分为五个专门进程:
- Channel:用户面对话大使,每个对话一个,拥有个性/身份,永远不被阻塞
- Branch:上下文分支思考,克隆 Channel 完整上下文,返回结论
- Worker:任务执行,无上下文、无个性,专注执行
- Compactor:上下文压缩监控,程序化监控,80%时触发后台压缩
- Cortex:全局记忆协调,唯一跨所有进程的 LLM 进程,生成记忆简报
多平台消息支持#
- Discord (Serenity):完整支持 embeds、按钮、线程、反应、输入指示器
- Slack (slack-morphism):Socket Mode、Block Kit、slash commands
- Telegram (teloxide):媒体附件、群组/DM 支持
- Twitch (twitch-irc):聊天集成
- Webchat:可嵌入门户,SSE 流式传输
消息聚合功能可将快速消息批处理为单次 LLM 轮次,避免刷屏回复。
结构化记忆系统#
- 8 种记忆类型:Fact / Preference / Decision / Identity / Event / Observation / Goal / Todo
- 图边连接:RelatedTo / Updates / Contradicts / CausedBy / PartOf
- 混合检索:向量相似度 + 全文搜索(Reciprocal Rank Fusion 融合)
- 存储:SQLite(元数据+图边)+ LanceDB(向量嵌入)
智能模型路由#
- 进程级默认:Channel 用最佳对话模型,Worker 用快速廉价模型
- 任务级覆盖:coding 任务升级到更强模型
- Prompt 复杂度评分:轻量关键词评分,简单请求路由到廉价模型
- Fallback 链:429/502 自动切换下一个模型
扩展能力#
- MCP 集成:支持 stdio 和 HTTP 两种传输方式
- Cron 调度:自然语言调度,时钟对齐间隔,断路器保护
- Skills 系统:兼容 skills.sh 注册表
- OpenCode Worker:可启动完整 coding agent 作为持久化子进程
部署方式#
前置要求:Rust 1.85+ (rustup)、LLM API Key(Anthropic / OpenAI / OpenRouter 等)
源码构建:
git clone https://github.com/spacedriveapp/spacebot
cd spacebot
cargo build --release
Docker 部署:
docker run -d --name spacebot -v spacebot-data:/data -p 19898:19898 ghcr.io/spacedriveapp/spacebot:latest
CLI 命令#
spacebot # 后台守护进程启动
spacebot start --foreground # 前台运行
spacebot stop # 优雅关闭
spacebot restart # 重启
spacebot status # 显示 pid 和运行时间
spacebot auth login # Anthropic OAuth 认证
核心技术栈#
| 层级 | 技术 |
|---|---|
| 语言 | Rust (edition 2024) |
| 异步运行时 | Tokio |
| LLM 框架 | Rig v0.30 |
| 关系数据 | SQLite (sqlx) |
| 向量 + FTS | LanceDB (HNSW + Tantivy) |
| KV 存储 | redb |
| 嵌入生成 | FastEmbed |
| 加密 | AES-256-GCM |
| 浏览器自动化 | Chromiumoxide (CDP) |
| CLI | Clap |
设计理念#
- 单二进制:无运行时依赖,无 GC 暂停
- 嵌入式数据库:所有数据存储在本地目录
- Rust 强类型:编译期保证多进程共享可变状态的正确性