3.4 KiB
3.4 KiB
Dashboard Nanobot 数据库设计文档(同步到当前代码)
数据库默认使用 SQLite:data/nanobot_dashboard.db。
1. ERD
erDiagram
BOTINSTANCE ||--o{ CHANNELROUTE : "路由"
BOTINSTANCE ||--o{ BOTMESSAGE : "消息"
NANOBOTIMAGE ||--o{ BOTINSTANCE : "被引用"
BOTINSTANCE {
string id PK
string name
text system_prompt
text soul_md
text agents_md
text user_md
text tools_md
text identity_md
text tools_config_json
string llm_provider
string llm_model
string api_key
string api_base
float temperature
float top_p
int max_tokens
float presence_penalty
float frequency_penalty
string workspace_dir UK
string docker_status
string image_tag
string current_state
text last_action
datetime created_at
datetime updated_at
}
BOTMESSAGE {
int id PK
string bot_id FK
string role
text text
text media_json
datetime created_at
}
NANOBOTIMAGE {
string tag PK
string image_id
string version
string status
string source_dir
datetime created_at
}
CHANNELROUTE {
int id PK
string bot_id FK
string channel_type
string external_app_id
string app_secret
text extra_config
int internal_port
boolean is_active
}
2. 表说明
2.1 botinstance
存储机器人实例核心配置与运行参数。
- 运行与镜像:
docker_status、image_tag - LLM 基础:
llm_provider、llm_model、api_key、api_base - LLM 参数:
temperature、top_p、max_tokens - Agent Bootstrap 内容:
soul_md、agents_md、user_md、tools_md、identity_md - 工具配置:
tools_config_json - 运行态:
current_state、last_action
2.2 botmessage
保存 Dashboard 渠道持久化对话消息。
role:user | assistanttext:消息正文media_json:附件路径列表(JSON 字符串)
2.3 nanobotimage
镜像登记表(只记录显式登记镜像)。
tag: 如nanobot-base:v0.1.4status:READY | BUILDING | ERROR | UNKNOWNsource_dir: 当前手工模式通常为manual
2.4 channelroute
渠道路由映射表。
dashboard为内置渠道,不允许删除或禁用。extra_config保存各渠道差异化字段。
3. 已移除的数据表
以下旧表已废弃,并在服务启动时自动删除:
skillregistrybotskillmapping
技能管理改为 workspace 文件系统模式:
- 路径:
workspace/bots/{bot_id}/.nanobot/workspace/skills/ - 管理 API:
/api/bots/{bot_id}/skills、/api/bots/{bot_id}/skills/upload、/api/bots/{bot_id}/skills/{skill_name}
4. 启动迁移策略(当前实现)
服务启动时自动执行:
SQLModel.metadata.create_all(engine)- 删除旧 skills 表(
DROP TABLE IF EXISTS botskillmapping/skillregistry) - 针对
botinstance和botmessage做增量列补齐(ALTER TABLE ADD COLUMN)
5. 安全与一致性
api_key、app_secret建议加密存储(当前代码为明文字段,生产需加密层)。- 启动 Bot 前,以数据库字段 + 渠道路由重新生成 workspace 文件,确保配置一致性。