Skip to content

数据模型

概述

Snail AI 的数据模型围绕 Agent(智能体) 这一核心实体展开,通过关联关系连接对话、知识库、模型、工具、技能、记忆等子系统。本文档使用 ER 图展示核心实体及其关系,并说明数据库设计规范。

核心 ER 图

知识库相关实体

模型相关实体

模型类型枚举(ModelType):

说明用途
CHAT对话模型Agent 对话、记忆抽取、Query 改写
EMBEDDING嵌入模型RAG 向量化、记忆向量化
RERANKER重排序模型RAG 检索精排、记忆检索精排
IMAGE图像模型图像生成
SPEECH语音模型语音合成/识别

模型作用域(ModelScope):

说明
GLOBAL全局模型,所有用户可用
PERSONAL个人模型,仅创建者可用

MCP 与技能实体

MCP 传输类型(TransportType):

说明
1SSE (Server-Sent Events)
2Streamable HTTP
3Stdio(本地进程)

MCP 认证类型(AuthType):

说明
0无认证
1API Key
2Bearer Token
3OAuth 2.0

记忆相关实体

应用与分布式实体

追踪与可观测性实体

Observation 类型(ObservationType):

类型说明
GENERATION大模型调用(含输入/输出 Token、费用)
TOOL工具调用(MCP 工具执行)
THINKING思考过程(推理模型的 chain-of-thought)
SPAN通用执行段(如责任链某个 Handler)
EVENT事件节点
AGENTAgent 级别的观测
RETRIEVERRAG 检索
EMBEDDING向量嵌入

Score 数据类型:

类型说明
NUMERIC数值型(如 1-5 星评分)
CATEGORICAL分类型(如 "positive" / "negative")
BOOLEAN布尔型(如 "有帮助" / "无帮助")
TEXT文本型(自由评论)

资源管理实体

bizType 业务类型:

说明
AGENT_AVATAR智能体头像
RAG_DOCUMENTRAG 文档
SKILL_FILE技能文件
CHAT_IMAGE对话中的图片

全局 ER 关系总览

数据库设计规范

表命名约定

前缀所属模块示例
t_agent_智能体t_agent_info, t_agent_config
t_conversation_对话t_conversation_info, t_conversation_record
t_rag_知识库t_rag_info, t_rag_document, t_rag_chunk
t_model_模型t_model_provider, t_model_config
t_mcp_MCPt_mcp_server
t_skill_技能t_skill_info, t_skill_file
t_memory_记忆t_memory_info, t_memory_config
t_app_应用t_app_info, t_app_client_node
t_trace_追踪t_trace_info, t_trace_observation, t_trace_score
t_resource_资源t_resource_info
t_user_用户t_user_info
t_store_存储t_store_instance

通用字段规范

字段类型说明
idBIGINT AUTO_INCREMENT主键
create_dtDATETIME创建时间
update_dtDATETIME更新时间
is_deletedTINYINT(1)逻辑删除标记(0=未删除, 1=已删除)

多数据库兼容

Snail AI 使用 MyBatis-Plus + Flyway 实现多数据库兼容。SQL 方言差异通过 Flyway 多目录管理迁移脚本:

db/migration/
├── mysql/       # MySQL 迁移脚本
├── postgresql/  # PostgreSQL 迁移脚本
├── dm/          # 达梦迁移脚本
└── mariadb/     # MariaDB 迁移脚本
兼容点MySQLPostgreSQL达梦
自增主键AUTO_INCREMENTGENERATED ALWAYS AS IDENTITYIDENTITY
JSON 类型JSONJSONBCLOB
布尔类型TINYINT(1)BOOLEANNUMBER(1)
文本类型TEXT / LONGTEXTTEXTCLOB
时间类型DATETIMETIMESTAMPTIMESTAMP

Apache 2.0 Licensed