AgentHub

数据模型

本文档定义 AgentHub 的核心领域模型、数据库实体及其关系。


目录


1. 领域模型总览

1.1 模型分类

分类 模型 说明
核心 Agent, AgentTeam, Workflow, Memory, Skill 聚合根
策略 RetrievalStrategy, GuardrailStrategy, ModelStrategy, ToolStrategy 策略配置
工具 HttpTool, McpTool, SystemTool 工具定义
知识库 KnowledgeBase, IngestionDocument, IngestionJob, DocumentChunk, DocumentContent 知识管理
会话 Session, ChatMessage, SessionMessage, RuntimeSession 会话管理
租户 Tenant, Workspace, UserInfo, Permission 多租户
配置 AgentConfig, AgentConfigType, ModelConfig, PromptTemplateInfo, VectorStoreConfig 配置项
其他 ScheduledTask, PageResult, Citation, RetrievalResult, AuthTokens 辅助模型

1.2 模型关系图

Tenant (1) ──→ (N) Workspace
Workspace (1) ──→ (N) Agent
Workspace (1) ──→ (N) KnowledgeBase
Workspace (1) ──→ (N) AgentTeam
Workspace (1) ──→ (N) Workflow
Workspace (1) ──→ (N) Skill

Agent (1) ──→ (N) AgentConfig
Agent (1) ──→ (N) Session
Agent (1) ──→ (N) Memory

KnowledgeBase (1) ──→ (N) IngestionJob
KnowledgeBase (1) ──→ (N) IngestionDocument
KnowledgeBase (1) ──→ (N) DocumentChunk
IngestionJob (1) ──→ (N) IngestionDocument

Session (1) ──→ (N) ChatMessage

2. 核心模型详解

2.1 Agent(智能体)

智能体聚合根,管理 Agent 的全生命周期。

字段 类型 说明
id String 唯一标识
tenantId String 所属租户
workspaceId String 所属工作空间
agentCode String Agent 编码
name String 名称
description String 描述
status String 状态:DRAFT, PUBLISHED
enabled boolean 是否启用
createdAt Instant 创建时间
updatedAt Instant 更新时间

状态变更方法

2.2 AgentConfig(Agent 配置)

将各种资源(策略、工具、模型、提示词、知识库)关联到 Agent。

字段 类型 说明
id String 唯一标识
agentId String Agent ID
category AgentConfigCategory 配置分类
configType AgentConfigType 配置类型
configId String 配置资源 ID
enabled boolean 是否启用

配置分类

分类 说明 配置类型
STRATEGY 策略配置 RETRIEVAL_STRATEGY, TOOL_STRATEGY, MODEL_STRATEGY, GUARDRAIL_STRATEGY
TOOL 工具配置 MCP_TOOL, SKILL_TOOL, SYSTEM_TOOL, HTTP_TOOL
PROMPT 提示词配置 SYSTEM_PROMPT, ASSISTANT_PROMPT
MODEL 模型配置 CHAT_MODEL, EMBEDDING_MODEL
KNOWLEDGE 知识库配置 KNOWLEDGE_BASE, KNOWLEDGE_WIKI

2.3 AgentTeam(Agent 团队)

多 Agent 协作团队的管理聚合根。

字段 类型 说明
id String 唯一标识
tenantId String 所属租户
workspaceId String 所属工作空间
teamCode String 团队编码
name String 团队名称
description String 描述
coordinationMode String 协作模式
memberConfig String 成员配置(JSON)
status String 状态:DRAFT, ACTIVE, INACTIVE

协作模式

2.4 Workflow(工作流)

工作流聚合根,基于 DAG 图定义。

字段 类型 说明
id String 唯一标识
tenantId String 所属租户
workspaceId String 所属工作空间
workflowCode String 工作流编码
name String 名称
description String 描述
graphDefinition String DAG 图定义(JSON)
status String 状态:DRAFT, PUBLISHED

2.5 Memory(记忆)

Agent 长期记忆存储聚合根。

字段 类型 说明
id String 唯一标识
tenantId String 所属租户
workspaceId String 所属工作空间
agentId String 所属 Agent
memoryType String 记忆类型
content String 记忆内容
metadata String 元数据(JSON)
importance double 重要性(0-1)
expiresAt Instant 过期时间

2.6 Skill(技能)

Agent 可调用的技能定义聚合根。

字段 类型 说明
id String 唯一标识
tenantId String 所属租户
workspaceId String 所属工作空间
skillCode String 技能编码
name String 技能名称
description String 描述
skillType String 技能类型
skillPath String 技能文件路径
skillFilesTree String 技能文件树
enabled boolean 是否启用

2.7 KnowledgeBase(知识库)

字段 类型 说明
id String 唯一标识
workspaceId String 所属工作空间
name String 知识库名称
description String 描述

2.8 IngestionDocument(入库文档)

不可变值对象,表示文档处理管道中的状态。

字段 类型 说明
id String 文档唯一标识
kbId String 所属知识库 ID
jobId String 所属任务 ID
fileName String 文件名
contentType String MIME 类型
size long 文件大小(字节)
storagePath String MinIO 存储路径
status DocumentStatus 处理状态

文档处理状态

UPLOADED → PARSED → CLEANED → CHUNKED → VECTORIZED
                                              ↓
                                           FAILED

2.9 RetrievalStrategy(检索策略)

字段 类型 说明
id String 唯一标识
tenantId String 所属租户
workspaceId String 所属工作空间
name String 策略名称
description String 描述
retrievalType RetrievalType 检索类型(HYBRID, SEMANTIC, KEYWORD)
topK int 返回结果数
scoreThreshold double 分数阈值
enableQueryRewrite boolean 启用查询改写
enableTextSearch boolean 启用全文检索
enableVectorSearch boolean 启用向量检索
enableRerank boolean 启用重排
vectorWeight double 向量检索权重
keywordWeight double 关键词检索权重

2.10 GuardrailStrategy(护栏策略)

字段 类型 说明
id String 唯一标识
tenantId String 所属租户
workspaceId String 所属工作空间
name String 策略名称
description String 描述
inputValidationEnabled boolean 输入验证
outputValidationEnabled boolean 输出验证
piiDetectionEnabled boolean PII 检测
piiMaskingEnabled boolean PII 脱敏
promptInjectionDetection boolean 提示注入检测
maxInputLength int 最大输入长度
maxOutputLength int 最大输出长度

2.11 AgentLifecycleState(Agent 生命周期状态枚举)

CREATED   - "已创建,未启动"
STARTING  - "正在启动"
RUNNING   - "运行中"
PAUSED    - "已暂停"
STOPPING  - "正在停止"
STOPPED   - "已停止"
ERROR     - "错误状态"

2.12 Permission(权限定义)

权限常量 说明
tenant:read/update/delete 租户管理
workspace:create/read/update/delete 工作空间
knowledge:create/read/update/delete 知识库
agent:create/read/update/delete/publish Agent 管理
tool:create/read/update/delete/invoke 工具管理
strategy:create/read/update/delete 策略管理
member:create/read/update/delete 成员管理
audit:read/export 审计
billing:read/update 账单

角色权限矩阵

权限 OWNER ADMIN DEVELOPER VIEWER AUDITOR
Tenant 管理
Workspace 管理 ✅(部分) ✅(只读) ✅(只读)
Knowledge 管理 ✅(无删除) ✅(只读)
Agent 管理 ✅(无删除) ✅(只读)
Tool 管理 ✅(只读+调用) ✅(只读)
Strategy 管理 ✅(无删除) ✅(只读)
Member 管理
Audit ✅(只读) ✅(只读)
Billing ✅(只读) ✅(只读)

3. 数据库实体关系

3.1 Entity 映射

每个领域模型对应一个数据库实体,位于 infrastructure/store/db/entity/

Entity 对应表(预估) 说明
AgentEntity agent Agent 表
AgentConfigEntity agent_config Agent 配置关联表
AgentTeamEntity agent_team Agent 团队表
AppUserEntity app_user 用户表
ChatMessageEntity chat_message 聊天消息表
DocumentChunkEntity document_chunk 文档分块表
GuardrailStrategyEntity guardrail_strategy 护栏策略表
HttpToolsEntity http_tools HTTP 工具表
IngestionDocumentEntity ingestion_document 入库文档表
IngestionJobEntity ingestion_job 入库任务表
KnowledgeBaseEntity knowledge_base 知识库表
McpToolEntity mcp_tool MCP 工具表
MemoryEntity memory 记忆表
ModelConfigEntity model_config 模型配置表
ModelStrategyEntity model_strategy 模型策略表
PromptTemplateEntity prompt_template 提示词模板表
RefreshTokenSessionEntity refresh_token_session 刷新令牌表
RetrievalStrategyEntity retrieval_strategy 检索策略表
ScheduledTaskEntity scheduled_task 定时任务表
SessionEntity session 会话表
SkillEntity skill 技能表
SystemToolsEntity system_tools 系统工具表
TenantEntity tenant 租户表
ToolPolicyBindingEntity tool_policy_binding 工具策略绑定表
ToolStrategyEntity tool_strategy 工具策略表
VectorStoreConfigEntity vector_store_config 向量存储配置表
WorkflowEntity workflow 工作流表
WorkspaceEntity workspace 工作空间表

3.2 仓储实现

每个 Repository 接口对应一个 MyBatis 实现:

仓储接口 实现类
AgentRepository MybatisAgentRepository
AgentConfigRepository MybatisAgentConfigRepository
AgentTeamRepository MybatisAgentTeamRepository
SessionRepository MybatisSessionRepository
KnowledgeBaseRepository MybatisKnowledgeBaseRepository
MemoryRepository MybatisMemoryRepository
…(共 25 个)

4. 枚举定义

枚举 位置
AgentLifecycleState domain/model CREATED, STARTING, RUNNING, PAUSED, STOPPING, STOPPED, ERROR
AgentConfigCategory domain/model STRATEGY, TOOL, PROMPT, MODEL, KNOWLEDGE
AgentConfigType domain/model 多种配置类型
AgentTeamType domain/model 团队类型
AgentToolType domain/model TOOL, MCP_TOOL, SYSTEM_TOOL
DocumentStatus domain/model UPLOADED, PARSED, CLEANED, CHUNKED, VECTORIZED, FAILED
JobPhase domain/model PARSING, CLEANING, CHUNKING, VECTORIZATION
JobStatus domain/model PENDING, PROCESSING, COMPLETED, FAILED
RetrievalType domain/model HYBRID, SEMANTIC, KEYWORD
IsolationLevel domain/model L1, L2, L3
TenantStatus domain/model ACTIVE, SUSPENDED, DELETED
ModelSupplier domain/model OPENAI, OLLAMA, ALIBABA_CLOUD, AZURE_OPENAI
ModelType domain/model CHAT, EMBEDDING
VectorStoreType domain/model QDRANT, MILVUS, WEAVIATE, CHROMA, PGVECTOR
TaskType domain/model 任务类型