2.5 KiB
2.5 KiB
Dashboard Nanobot 架构设计文档(当前实现)
1. 设计原则
- 控制平面与数据平面分离。
- 引擎零侵入:不修改 nanobot 源码,仅通过 workspace 与容器管理接入。
- 镜像显式登记:系统不自动构建,不扫描
engines/,只使用 Docker 本地镜像 + DB 注册。 - 可观测性优先:通过容器日志流解析状态并推送到 WebSocket。
2. 核心组件
2.1 Frontend(React + Zustand)
ImageFactoryModule:镜像登记与状态展示。BotWizardModule:引导创建与模型测试。BotDashboardModule:2D 运维控制台(无 3D),采用标准 LLM 聊天气泡视图 + 对话流中的思考动画 + workspace 文件浏览器。- 全局支持 light/dark 与 中英文切换。
2.2 Backend(FastAPI + SQLModel + docker-py)
- 镜像 API:
/api/images、/api/docker-images、/api/images/register - Bot 生命周期 API:
/api/bots、/api/bots/{id}/start|stop|command - Workspace API:
/api/bots/{id}/workspace/tree、/api/bots/{id}/workspace/file - Provider 测试 API:
/api/providers/test - 监控通道:
/ws/monitor/{bot_id}
2.3 Workspace 配置生成器
BotConfigManager.update_workspace 负责:
- 写入
.nanobot/config.json - 写入 5 个 bootstrap 文件:
AGENTS.mdSOUL.mdUSER.mdTOOLS.mdIDENTITY.md
3. 关键数据流
3.1 镜像流
- 用户手动构建镜像(命令行)
- 前端读取
/api/docker-images - 用户点击“加入数据库” ->
/api/images/register - 后续创建向导只消费
/api/images且筛选READY
3.2 创建流
- 前端提交 Bot 创建参数(镜像、provider、模型参数、5 个 md 文件)
- 后端校验镜像可用并写入
botinstance - 启动时生成 workspace 文件并按资源配额拉起容器(CPU/内存/存储)
3.4 镜像升级流
- 在运维面板基础配置中切换
image_tag - 后端更新
.nanobot/config.json - 用户手动执行 stop -> start,使新镜像生效
workspace目录保持挂载,既有插件与脚本继续可用
3.3 运维流
- 前端轮询
/api/bots获取实例列表 - 对运行中 bot 建立 WebSocket 连接
- 后端解析日志,推送
AGENT_STATE与RAW_LOG
4. 当前约束
- Provider 测试接口当前只做
dashscope/openrouter。 - Skills 采用 workspace 文件系统模式管理,不再使用数据库注册表。
- Bot 状态来自日志与容器状态,不依赖侵入式埋点。