AI Service 全景架构设计
本文档改为以 Mermaid 为主体。先看下面这张单张大图,这张图是 ai_service 的主图;后面的图都只是对这张图的局部展开。
1. AI Service 单张主图
flowchart TB
classDef entry fill:#eef7ff,stroke:#3b82f6,color:#111827,stroke-width:1px;
classDef control fill:#f5f3ff,stroke:#7c3aed,color:#111827,stroke-width:1px;
classDef runtime fill:#ecfeff,stroke:#0891b2,color:#111827,stroke-width:1px;
classDef service fill:#f0fdf4,stroke:#16a34a,color:#111827,stroke-width:1px;
classDef storage fill:#fff7ed,stroke:#ea580c,color:#111827,stroke-width:1px;
classDef external fill:#faf5ff,stroke:#a21caf,color:#111827,stroke-width:1px;
classDef governance fill:#fefce8,stroke:#ca8a04,color:#111827,stroke-width:1px;
subgraph L0[Clients And Upstream]
direction LR
DemoFE[Demo Frontend]
StudioFE[Studio Admin Frontend]
DemoBE[Demo Backend]
ExternalCaller[Scripts Tests External Clients]
end
subgraph L1[Layer 1 Entry And API Assembly]
direction LR
MainPy[main.py]
LocalMain[ai_service/main.py]
Entrypoint[api/entrypoint.py]
App[api/app.py]
Docs[Protected Docs OpenAPI]
CORS[CORS Middleware]
StartupHooks[Startup Shutdown Hooks]
end
subgraph L2[Layer 2 Router And Control Plane]
direction LR
CoreRouter[core router\nsessions stream ws turns context]
AgentsRouter[agents router\nagent version runtime config]
KnowledgeRouter[knowledge router\nsources docs ingestion inspection]
MCPRouter[mcp router\nserver credential mount preview]
SkillsRouter[skills router\nskill version mount audit]
FusionRouter[fusion router\nrun persisted io download proxy]
EvaluationRouter[evaluation router\ndataset run gate export]
ScheduledRouter[scheduled_tasks router\ntask list cancel history]
JobsRouter[jobs router]
AdminRouters[admin routers\nauth users audit settings models]
end
subgraph L3[Layer 3 Unified Business Anchors]
direction LR
AgentEntity[Agent]
AgentVersion[AgentVersion]
SessionEntity[Session]
ConversationTurn[ConversationTurn]
TurnSnapshot[TurnContextSnapshot]
RuntimeCheckpoint[RuntimeCheckpoint]
AgentMemory[AgentMemoryRecord]
FusionRun[FusionRun]
EvaluationRun[AgentEvaluationRun]
ScheduledTask[ScheduledTask]
KnowledgeSource[KnowledgeSource]
DocumentEntity[Document]
MCPMounts[AgentMCPLink]
SkillMounts[AgentSkillLink]
end
subgraph L4A[Layer 4 Runtime Plane]
direction LR
ChatRegistry[orchestrator registry]
ChameleonRT[Chameleon Chat Runtime]
ReactRT[LangGraph ReAct Runtime]
FusionRunService[FusionRunService]
FusionRunner[FusionRuntimeRunner]
FusionGraph[Fusion Runtime Graph]
ExtractionGraph[Document Extraction Graph]
ETLGraph[ETL Graph]
EvaluationWorker[Evaluation Runner Worker]
TimerWorker[Timer Scheduler Worker]
SessionRuntime[Session Runtime Replay]
end
subgraph L4B[Layer 4 Governance And Runtime Policies]
direction LR
ModelRouting[Model Routing Config]
MCPRuntimeConfig[MCP Runtime Config]
MCPResponseConfig[MCP Response Config]
GroundingConfig[Response Grounding Config]
RequestLease[Agent Request Lease]
UsageRollup[Usage Rollup And Cost Snapshot]
FusionGovernance[Fusion Governance Context]
AdminAuthz[Admin Authorization]
EnvGuard[Environment Guard]
end
subgraph L5[Layer 5 Capability Services]
direction LR
subgraph ChatCapabilities[Chat And Shared Runtime Capabilities]
direction TB
CapabilityPipeline[Capability Pipeline]
MCPPassthrough[MCP Passthrough]
PromptContext[MCP Prompt Context]
ModelLoader[Model Loader]
LangfuseObs[Langfuse Tracing]
TokenUsage[Token Usage]
end
subgraph RAGServices[RAG Services]
direction TB
IngestionSvc[Ingestion Service]
ChunkingSvc[Chunking Service]
EmbeddingSvc[Embedding Service]
RetrievalSvc[Retrieval Service]
RerankSvc[Rerank]
MultiQuerySvc[Multi Query]
SnapshotRebuild[Snapshot Rebuild]
VectorRecon[Vector Reconciliation]
ManualInspection[Manual Inspection]
DocRecognition[Document Recognition]
end
subgraph MCPServices[MCP Services]
direction TB
MCPRegistry[MCP Registry Service]
MCPClient[MCP Client Service]
MCPAdapter[MCP Tool Adapter]
MCPPolicy[MCP Policy]
MCPSecret[MCP Secret Manager]
MCPAudit[MCP Audit]
MCPTracking[MCP Tool Tracking Runtime]
end
subgraph SkillServices[Skill Services]
direction TB
SkillRegistry[Skill Registry]
SkillExecutor[Skill Executor]
SkillPolicy[Skill Policy]
SkillAudit[Skill Audit]
end
subgraph EvalServices[Evaluation Services]
direction TB
DatasetImporter[Dataset Importer]
JudgeSvc[Judge Service]
MetricsSvc[Metrics]
GateSvc[Gate Service]
RuntimeSummary[Runtime Summary]
end
subgraph InfraServices[Infra Runtime Services]
direction TB
CheckpointSvc[Runtime Checkpoint Service]
MemorySvc[Agent Memory Service]
ScheduledTaskSvc[Scheduled Task Service]
TimerScheduler[Timer Scheduler Service]
ReleaseMeta[Release Metadata]
CorrectionSvc[Knowledge Correction Service]
end
subgraph ParserServices[Parser Services]
direction TB
PDFParser[pdf parser]
DOCXParser[docx parser]
TextParser[text parser]
DoclingParser[docling parser]
end
subgraph AdminServices[Admin Services]
direction TB
AdminAuthSvc[admin auth service]
AdminAuditSvc[admin audit service]
SystemSettingsSvc[system settings service]
ModelConfigSvc[llm model config service]
end
end
subgraph L6[Layer 6 Persistence Domains]
direction LR
SessionsDomain[sessions domain]
AgentsDomain[agents domain]
KnowledgeDomain[knowledge domain]
DocumentsDomain[documents domain]
MCPDomain[mcp domain]
SkillsDomain[skills domain]
FusionDomain[fusion domain]
EvaluationsDomain[evaluations domain]
JobsDomain[jobs domain]
ScheduledDomain[scheduled_tasks domain]
AdminDomain[admin_access domain]
ModelDomain[llm_model_config domain]
end
subgraph L7[Layer 7 Storage And External Infra]
direction LR
Postgres[(PostgreSQL)]
MinIO[(MinIO)]
Qdrant[(Qdrant)]
LLMProviders[LLM Providers]
ExternalMCP[External MCP Servers]
Langfuse[(Langfuse)]
end
DemoFE --> App
StudioFE --> App
DemoBE --> App
ExternalCaller --> App
MainPy --> Entrypoint
LocalMain --> Entrypoint
Entrypoint --> App
App --> Docs
App --> CORS
App --> StartupHooks
App --> CoreRouter
App --> AgentsRouter
App --> KnowledgeRouter
App --> MCPRouter
App --> SkillsRouter
App --> FusionRouter
App --> EvaluationRouter
App --> ScheduledRouter
App --> JobsRouter
App --> AdminRouters
CoreRouter --> SessionEntity
CoreRouter --> ConversationTurn
CoreRouter --> TurnSnapshot
CoreRouter --> RuntimeCheckpoint
CoreRouter --> AgentMemory
CoreRouter --> ChatRegistry
CoreRouter --> CorrectionSvc
AgentsRouter --> AgentEntity
AgentsRouter --> AgentVersion
AgentsRouter --> ModelRouting
AgentsRouter --> MCPRuntimeConfig
AgentsRouter --> MCPResponseConfig
AgentsRouter --> GroundingConfig
AgentsRouter --> RequestLease
AgentsRouter --> UsageRollup
KnowledgeRouter --> KnowledgeSource
KnowledgeRouter --> DocumentEntity
KnowledgeRouter --> IngestionSvc
KnowledgeRouter --> ManualInspection
KnowledgeRouter --> SnapshotRebuild
MCPRouter --> MCPMounts
MCPRouter --> MCPRegistry
MCPRouter --> MCPClient
MCPRouter --> MCPAudit
SkillsRouter --> SkillMounts
SkillsRouter --> SkillRegistry
SkillsRouter --> SkillExecutor
SkillsRouter --> SkillAudit
FusionRouter --> FusionRun
FusionRouter --> FusionRunService
FusionRouter --> FusionGovernance
EvaluationRouter --> EvaluationRun
EvaluationRouter --> DatasetImporter
EvaluationRouter --> EvaluationWorker
ScheduledRouter --> ScheduledTask
ScheduledRouter --> ScheduledTaskSvc
AdminRouters --> AdminAuthz
AdminRouters --> AdminAuthSvc
AdminRouters --> AdminAuditSvc
AdminRouters --> SystemSettingsSvc
AdminRouters --> ModelConfigSvc
ChatRegistry --> ChameleonRT
ChatRegistry --> ReactRT
ChameleonRT --> CapabilityPipeline
ReactRT --> CapabilityPipeline
CapabilityPipeline --> RetrievalSvc
CapabilityPipeline --> MCPRegistry
CapabilityPipeline --> SkillRegistry
CapabilityPipeline --> ModelLoader
CapabilityPipeline --> MCPPassthrough
CapabilityPipeline --> PromptContext
CapabilityPipeline --> TokenUsage
CapabilityPipeline --> LangfuseObs
FusionRunService --> AgentEntity
FusionRunService --> AgentVersion
FusionRunService --> FusionGovernance
FusionRunService --> FusionRunner
FusionRunner --> FusionGraph
FusionGraph --> RetrievalSvc
FusionGraph --> MCPRegistry
FusionGraph --> ModelLoader
FusionGraph --> MinIO
ExtractionGraph --> ParserServices
ExtractionGraph --> JobsDomain
ExtractionGraph --> DocumentsDomain
ETLGraph --> JobsDomain
EvaluationWorker --> ChatRegistry
EvaluationWorker --> JudgeSvc
EvaluationWorker --> MetricsSvc
EvaluationWorker --> GateSvc
EvaluationWorker --> RuntimeSummary
EvaluationWorker --> EvaluationsDomain
TimerWorker --> TimerScheduler
TimerScheduler --> ScheduledTaskSvc
TimerScheduler --> SessionRuntime
SessionRuntime --> ChatRegistry
SessionRuntime --> CheckpointSvc
SessionRuntime --> MemorySvc
IngestionSvc --> ParserServices
IngestionSvc --> ChunkingSvc
IngestionSvc --> EmbeddingSvc
IngestionSvc --> VectorRecon
RetrievalSvc --> MultiQuerySvc
RetrievalSvc --> RerankSvc
SnapshotRebuild --> IngestionSvc
DocRecognition --> IngestionSvc
MCPRegistry --> MCPAdapter
MCPAdapter --> MCPPolicy
MCPPolicy --> MCPClient
MCPClient --> MCPSecret
MCPClient --> MCPTracking
MCPTracking --> MCPAudit
MCPClient --> ExternalMCP
SkillRegistry --> SkillPolicy
SkillPolicy --> SkillExecutor
SkillExecutor --> SkillAudit
ModelLoader --> LLMProviders
LangfuseObs --> Langfuse
SessionsDomain --> Postgres
AgentsDomain --> Postgres
KnowledgeDomain --> Postgres
DocumentsDomain --> Postgres
MCPDomain --> Postgres
SkillsDomain --> Postgres
FusionDomain --> Postgres
EvaluationsDomain --> Postgres
JobsDomain --> Postgres
ScheduledDomain --> Postgres
AdminDomain --> Postgres
ModelDomain --> Postgres
IngestionSvc --> DocumentsDomain
RetrievalSvc --> DocumentsDomain
MCPRegistry --> MCPDomain
SkillRegistry --> SkillsDomain
FusionRunService --> FusionDomain
FusionRunner --> FusionDomain
AgentEntity --> AgentsDomain
AgentVersion --> AgentsDomain
SessionEntity --> SessionsDomain
ConversationTurn --> SessionsDomain
TurnSnapshot --> SessionsDomain
RuntimeCheckpoint --> SessionsDomain
AgentMemory --> SessionsDomain
FusionRun --> FusionDomain
EvaluationRun --> EvaluationsDomain
ScheduledTask --> ScheduledDomain
KnowledgeSource --> KnowledgeDomain
DocumentEntity --> DocumentsDomain
MCPMounts --> MCPDomain
SkillMounts --> SkillsDomain
IngestionSvc --> MinIO
IngestionSvc --> Qdrant
EmbeddingSvc --> LLMProviders
RetrievalSvc --> Qdrant
SnapshotRebuild --> MinIO
VectorRecon --> Qdrant
EnvGuard --> Postgres
StartupHooks --> EnvGuard
StartupHooks --> AdminAuthSvc
StartupHooks --> IngestionSvc
StartupHooks --> VectorRecon
StartupHooks --> EvaluationWorker
StartupHooks --> TimerScheduler
StartupHooks --> LangfuseObs
class MainPy,LocalMain,Entrypoint,App,Docs,CORS,StartupHooks entry;
class CoreRouter,AgentsRouter,KnowledgeRouter,MCPRouter,SkillsRouter,FusionRouter,EvaluationRouter,ScheduledRouter,JobsRouter,AdminRouters control;
class ChatRegistry,ChameleonRT,ReactRT,FusionRunService,FusionRunner,FusionGraph,ExtractionGraph,ETLGraph,EvaluationWorker,TimerWorker,SessionRuntime runtime;
class CapabilityPipeline,MCPPassthrough,PromptContext,ModelLoader,LangfuseObs,TokenUsage,IngestionSvc,ChunkingSvc,EmbeddingSvc,RetrievalSvc,RerankSvc,MultiQuerySvc,SnapshotRebuild,VectorRecon,ManualInspection,DocRecognition,MCPRegistry,MCPClient,MCPAdapter,MCPPolicy,MCPSecret,MCPAudit,MCPTracking,SkillRegistry,SkillExecutor,SkillPolicy,SkillAudit,DatasetImporter,JudgeSvc,MetricsSvc,GateSvc,RuntimeSummary,CheckpointSvc,MemorySvc,ScheduledTaskSvc,TimerScheduler,ReleaseMeta,CorrectionSvc,PDFParser,DOCXParser,TextParser,DoclingParser,AdminAuthSvc,AdminAuditSvc,SystemSettingsSvc,ModelConfigSvc service;
class SessionsDomain,AgentsDomain,KnowledgeDomain,DocumentsDomain,MCPDomain,SkillsDomain,FusionDomain,EvaluationsDomain,JobsDomain,ScheduledDomain,AdminDomain,ModelDomain,AgentEntity,AgentVersion,SessionEntity,ConversationTurn,TurnSnapshot,RuntimeCheckpoint,AgentMemory,FusionRun,EvaluationRun,ScheduledTask,KnowledgeSource,DocumentEntity,MCPMounts,SkillMounts storage;
class Postgres,MinIO,Qdrant,LLMProviders,ExternalMCP,Langfuse external;
class ModelRouting,MCPRuntimeConfig,MCPResponseConfig,GroundingConfig,RequestLease,UsageRollup,FusionGovernance,AdminAuthz,EnvGuard governance;
这张图表达五件事:
Agent是统一业务锚点,连接 chat、fusion、evaluation、scheduled task 和各种 mountapi/app.py只是入口,真正的业务在 router、runtime、services、domains 分层展开- Chat Runtime 和 Fusion Runtime 是两条平行主链,不是主从关系
services/是共享能力层,storage/model_domains/是持久化真相源- startup 会主动恢复 worker、做环境护栏和数据一致性修复
2. 总体系统边界
flowchart TB
subgraph Clients[客户端]
DemoFE[Demo Frontend]
StudioFE[Studio Admin]
DemoBE[Demo Backend]
ScriptClient[Scripts Tests]
end
subgraph AIService[ai_service]
direction TB
subgraph Gateway[入口与装配]
Main[main.py]
Entrypoint[api/entrypoint.py]
App[api/app.py]
Routers[api/routers/*.py]
end
subgraph ControlPlane[控制面]
AgentsCP[Agents Versions]
KnowledgeCP[Knowledge Documents]
MCPCP[MCP Registry Mounts]
SkillsCP[Skills Mounts]
FusionCP[Fusion Definition Run Control]
EvalCP[Evaluation Control]
AdminCP[Admin Auth Users Audit Settings]
JobsCP[Jobs Scheduled Tasks]
end
subgraph RuntimePlane[执行面]
ChatRT[Chat Orchestrator Runtime]
FusionRT[Fusion Runtime]
ExtractionRT[Document Extraction Runtime]
ETLRT[ETL Runtime]
EvalWorker[Evaluation Worker]
TimerWorker[Scheduled Task Worker]
end
subgraph ServiceLayer[能力服务层]
RAGSvc[RAG Services]
MCPSvc[MCP Services]
SkillSvc[Skill Services]
ParserSvc[Parser Services]
InfraSvc[Infra Runtime Services]
AdminSvc[Admin Services]
ModelLoader[Model Loader]
end
subgraph StorageFacade[存储适配层]
Domains[storage model_domains]
MinioClient[minio_client.py]
QdrantClient[qdrant_client.py]
end
end
subgraph Infra[外部基础设施]
Postgres[(PostgreSQL)]
MinIO[(MinIO)]
Qdrant[(Qdrant)]
LLM[LLM Providers]
MCPServers[External MCP Servers]
Langfuse[Langfuse]
end
Clients --> Gateway
Gateway --> ControlPlane
Gateway --> RuntimePlane
ControlPlane --> ServiceLayer
RuntimePlane --> ServiceLayer
ControlPlane --> StorageFacade
RuntimePlane --> StorageFacade
ServiceLayer --> StorageFacade
ServiceLayer --> LLM
ServiceLayer --> MCPServers
ServiceLayer --> Langfuse
StorageFacade --> Postgres
StorageFacade --> MinIO
StorageFacade --> Qdrant
2. 分层结构
flowchart TB
L1[API Gateway Layer]
L2[Control Plane Layer]
L3[Runtime Plane Layer]
L4[Capability Service Layer]
L5[Persistence Domain Layer]
L6[Infra Layer]
L1 --> L2
L1 --> L3
L2 --> L4
L3 --> L4
L2 --> L5
L3 --> L5
L4 --> L5
L4 --> L6
L5 --> L6
flowchart LR
Entrypoint[api entrypoint app]
Routers[api routers]
Orchestrator[orchestrator]
Fusion[fusion runtime]
Agents[agents plugins]
Services[services]
Domains[storage model domains]
Infra[postgres minio qdrant llm mcp langfuse]
Entrypoint --> Routers
Routers --> Orchestrator
Routers --> Fusion
Routers --> Agents
Orchestrator --> Services
Fusion --> Services
Agents --> Services
Services --> Domains
Domains --> Infra
Services --> Infra
3. 目录地图
mindmap
root((ai_service))
api
entrypoint.py
app.py
routers
core
agents
knowledge
mcp
skills
fusion
evaluation
scheduled_tasks
jobs
admin_auth
admin_users
admin_audit
admin_system_settings
admin_llm_model_config
orchestrator
registry
graph
react_agent
state
runtime_kernel
capability_pipeline
checkpoint_state
model_routing
mcp_runtime_config
mcp_response_config
mcp_passthrough
memory
fusion
services
runtime
capabilities
schemas
agents
chat
etl
document_extraction
fusion_definition_runtime
services
rag
mcp
skills
evaluation
admin
infra
parsers
storage
model_domains
minio_client
qdrant_client
utils
settings
database
logger
model_loader
environment_guard
migrations
4. 启动与生命周期
sequenceDiagram
participant Main as main.py
participant Entry as api/entrypoint.py
participant DB as PostgreSQL
participant App as api/app.py
participant Startup as FastAPI startup
participant Workers as Background Workers
Main->>Entry: run_uvicorn_app()
Entry->>DB: verify_startup_database_connectivity()
Entry->>Entry: resolve migration mode
Entry->>Entry: run alembic upgrade if auto
Entry->>App: import app
Entry->>App: uvicorn.run(app)
App->>Startup: on startup
Startup->>Startup: environment guard
Startup->>DB: init_database()
Startup->>Startup: ensure bootstrap super admin
Startup->>Startup: register agent plugins
Startup->>Workers: cleanup stale ingestion jobs
Startup->>Workers: reconcile document vectors
Startup->>Workers: start evaluation supervisor
Startup->>Workers: start timer scheduler
Startup->>Workers: init langfuse
flowchart LR
Start[Process Start]
DBCheck[DB Connectivity Check]
Migration[Migration Mode Resolve]
AutoMigrate[Optional Auto Alembic Upgrade]
AppImport[Import FastAPI App]
Startup[Startup Hooks]
Guard[Environment Guard]
Bootstrap[Bootstrap Admin]
Register[Register Agent Plugins]
Recover[Recover Stale Runtime State]
Ready[Ready]
Shutdown[Shutdown Hooks]
StopWorkers[Stop Worker Threads]
StopTracing[Shutdown Langfuse]
Start --> DBCheck --> Migration --> AutoMigrate --> AppImport --> Startup --> Guard --> Bootstrap --> Register --> Recover --> Ready --> Shutdown --> StopWorkers --> StopTracing
5. API 路由与控制面
flowchart TB
App[api/app.py]
subgraph Routers[api/routers]
Core[core.py]
Conversations[conversations/router.py]
Agents[agents.py]
Knowledge[knowledge.py]
MCP[mcp.py]
Skills[skills.py]
Fusion[fusion.py]
Evaluation[evaluation.py]
Scheduled[scheduled_tasks.py]
Jobs[jobs.py]
DocumentRecognition[document_recognition/router.py]
AdminAuth[admin_auth.py]
AdminUsers[admin_users.py]
AdminAudit[admin_audit.py]
AdminSettings[admin_system_settings.py]
AdminModels[admin_llm_model_config.py]
end
App --> Core
App --> Conversations
App --> Agents
App --> Knowledge
App --> MCP
App --> Skills
App --> Fusion
App --> Evaluation
App --> Scheduled
App --> Jobs
App --> DocumentRecognition
App --> AdminAuth
App --> AdminUsers
App --> AdminAudit
App --> AdminSettings
App --> AdminModels
flowchart LR
Core[core]
Agents[agents]
Knowledge[knowledge]
MCP[mcp]
Skills[skills]
Fusion[fusion]
Eval[evaluation]
Scheduled[scheduled_tasks]
Admin[admin_*]
Core --> Sessions[Sessions Messages Turns WS SSE]
Core --> Context[Turn Context Snapshot]
Core --> Corrections[Knowledge Corrections]
Agents --> AgentCRUD[Agent CRUD]
Agents --> Versioning[Agent Versioning]
Agents --> RuntimeCfg[Model Routing MCP Runtime Grounding]
Agents --> FusionDraft[Fusion Draft Fields]
Knowledge --> Sources[Knowledge Sources]
Knowledge --> Docs[Documents]
Knowledge --> Ingestion[Ingestion Manual Inspection Rebuild]
MCP --> ServerCfg[MCP Servers Credentials]
MCP --> MountCfg[Agent MCP Mounts]
MCP --> Preview[Test Call Preview]
Skills --> SkillCfg[Skill Versions Mounts Audit]
Fusion --> FusionRun[Fusion Runs Persisted IO Download Proxy]
Eval --> EvalRun[Datasets Runs Gate Export]
Scheduled --> TaskOps[Task List Cancel History]
Admin --> Control[Auth Users Audit Settings Models]
6. Agent 统一业务模型
flowchart TB
Agent[Agent]
AgentVersion[AgentVersion]
KnowledgeLink[AgentKnowledgeLink]
MCPLink[AgentMCPLink]
SkillLink[AgentSkillLink]
Session[Session]
Turn[ConversationTurn]
FusionRun[FusionRun]
EvalRun[AgentEvaluationRun]
Cost[Cost Usage Governance]
Agent --> AgentVersion
Agent --> KnowledgeLink
Agent --> MCPLink
Agent --> SkillLink
Agent --> Session
Session --> Turn
Agent --> FusionRun
AgentVersion --> FusionRun
Agent --> EvalRun
AgentVersion --> EvalRun
Agent --> Cost
flowchart LR
AgentType[agent_type]
Chat[chat]
ETL[etl]
Extraction[document_extraction]
FusionDef[fusion_definition_runtime]
FusionAgent[fusion business path]
OrchestratorKey[orchestrator_key]
ChatV1[chameleon_chat_v1]
ReactV1[langgraph_react_agent_v1]
AgentType --> Chat
AgentType --> ETL
AgentType --> Extraction
AgentType --> FusionDef
AgentType --> FusionAgent
Chat --> OrchestratorKey
OrchestratorKey --> ChatV1
OrchestratorKey --> ReactV1
7. Chat Runtime
flowchart TB
Input[OrchestratorInput]
Registry[orchestrator/registry.py]
Runtime[ChatOrchestratorRuntime]
subgraph ChatModules[orchestrator]
Graph[graph.py]
React[react_agent.py]
State[state.py]
Kernel[runtime_kernel.py]
Pipeline[capability_pipeline.py]
Checkpoint[checkpoint_state.py]
Routing[model_routing.py]
MCPRuntime[mcp_runtime_config.py]
MCPResponse[mcp_response_config.py]
Passthrough[mcp_passthrough.py]
Memory[memory.py]
end
Input --> Registry --> Runtime
Runtime --> Graph
Runtime --> React
Graph --> State
Graph --> Kernel
Graph --> Pipeline
Pipeline --> Routing
Pipeline --> MCPRuntime
Pipeline --> MCPResponse
Pipeline --> Passthrough
Pipeline --> Checkpoint
Pipeline --> Memory
flowchart LR
UserInput[User Input]
History[Conversation History]
Retrieval[Retrieval Stage]
ToolDecision[MCP or Skill Decision]
Approval[Checkpoint Approval]
ToolCall[Tool Invocation]
Generation[Final Generation]
Events[OrchestratorEvent Stream]
Persist[Turn Snapshot Persist]
UserInput --> Retrieval
History --> Retrieval
Retrieval --> ToolDecision
ToolDecision --> Approval
Approval --> ToolCall
ToolCall --> Generation
Retrieval --> Generation
Generation --> Events
Events --> Persist
stateDiagram-v2
[*] --> ReceiveInput
ReceiveInput --> BuildContext
BuildContext --> Retrieve
Retrieve --> DecideTools
DecideTools --> ApprovalRequired
DecideTools --> Generate
ApprovalRequired --> ToolInvoke
ToolInvoke --> Generate
Generate --> EmitEvents
EmitEvents --> PersistTurn
PersistTurn --> [*]
8. Fusion Runtime
flowchart TB
subgraph FusionModules[fusion]
Schemas[schemas.py]
subgraph Services[fusion/services]
DefinitionSvc[definition_service.py]
AgentSvc[agent_service.py]
LinkSvc[link_service.py]
GovSvc[governance_service.py]
RunSvc[run_service.py]
end
subgraph Runtime[fusion/runtime]
Runner[runner.py]
Graph[graph.py]
Nodes[nodes.py]
Prompt[prompt_builder.py]
OutputMapper[output_mapper.py]
Validator[validator.py]
State[state.py]
end
subgraph Capabilities[fusion/capabilities]
ModelBinding[model_binding.py]
RAGBinding[rag_binding.py]
MCPBinding[mcp_binding.py]
StorageBinding[storage_binding.py]
ImageBinding[image_generation_binding.py]
end
end
Schemas --> Services
Services --> Runtime
Runtime --> Capabilities
flowchart LR
LoadDef[load_definition]
ValidateDef[validate_definition_contract]
ValidateInput[validate_run_inputs]
PersistInput[persist_validated_inputs]
ResolveBindings[resolve_capability_bindings]
PrepareFiles[prepare_file_artifacts]
RetrieveCtx[retrieve_context]
BuildPrompt[build_prompt]
PlanTools[plan_tool_usage]
InvokeTools[invoke_tools]
InvokeModel[invoke_model]
NormalizeOut[normalize_outputs]
ValidateOut[validate_outputs]
PersistOut[persist_outputs]
Finalize[finalize_run]
LoadDef --> ValidateDef --> ValidateInput --> PersistInput --> ResolveBindings --> PrepareFiles --> RetrieveCtx --> BuildPrompt --> PlanTools --> InvokeTools --> InvokeModel --> NormalizeOut --> ValidateOut --> PersistOut --> Finalize
flowchart TB
Agent[Agent]
AgentVersion[Published AgentVersion]
Governance[Governance Context]
FusionRun[FusionRun]
Inputs[FusionRunInput]
Outputs[FusionRunOutput]
Trace[Trace URL Trace ID]
Agent --> AgentVersion
AgentVersion --> Governance
Governance --> FusionRun
FusionRun --> Inputs
FusionRun --> Outputs
FusionRun --> Trace
9. RAG 子系统
flowchart TB
subgraph RAG[services/rag]
Ingestion[ingestion.py]
Chunking[chunking.py]
Embedding[embedding.py]
Retrieval[retrieval.py]
MultiQuery[multi_query.py]
Rerank[rerank.py]
Debug[debug.py]
SnapshotRebuild[snapshot_rebuild.py]
VectorRecon[document_vector_reconciliation.py]
ManualInspection[manual_inspection.py]
DocRecognition[document_recognition.py]
end
Ingestion --> Chunking
Ingestion --> Embedding
Retrieval --> MultiQuery
Retrieval --> Rerank
SnapshotRebuild --> Ingestion
VectorRecon --> Retrieval
ManualInspection --> Retrieval
DocRecognition --> Ingestion
sequenceDiagram
participant Upload as Knowledge API
participant MinIO as MinIO
participant Parse as Parser
participant Chunk as Chunking
participant Embed as Embedding
participant PG as PostgreSQL
participant Vec as Qdrant
Upload->>MinIO: save original file
Upload->>PG: create document and ingestion job
Upload->>MinIO: download file for processing
Upload->>Parse: parse text
Parse->>PG: save DocumentParseSnapshot
Parse->>Chunk: chunk text
Chunk->>PG: save DocumentChunk rows
Chunk->>Embed: build embeddings
Embed->>Vec: upsert vectors
Vec->>PG: update vector status and counts
flowchart LR
Query[User Query]
SourceFilter[Active Source Filter]
VectorSearch[Vector Retrieval]
MultiQuery[Optional Multi Query]
Rerank[Optional Rerank]
FinalChunks[Final Retrieved Chunks]
DebugReport[Debug Report]
Query --> SourceFilter --> VectorSearch --> MultiQuery --> Rerank --> FinalChunks
VectorSearch --> DebugReport
MultiQuery --> DebugReport
Rerank --> DebugReport
10. MCP 子系统
flowchart TB
subgraph MCPControl[控制面]
Server[MCPServer]
Credential[MCPCredential]
Link[AgentMCPLink]
Audit[MCPCallAudit]
end
subgraph MCPRuntime[services/mcp]
Registry[registry.py]
Client[client.py]
Adapter[tool_adapter.py]
Policy[policy.py]
Secret[secret_manager.py]
RuntimeModels[tool_runtime_models.py]
RuntimeStrategies[tool_runtime_strategies.py]
Tracking[tool_tracking_runtime.py]
ToolCaps[tool_capabilities.py]
RuntimeAudit[audit.py]
end
Server --> Registry
Credential --> Secret
Link --> Registry
Registry --> Adapter
Adapter --> Policy
Policy --> Client
Client --> Tracking
Tracking --> RuntimeAudit
RuntimeAudit --> Audit
ToolCaps --> Adapter
RuntimeModels --> Adapter
RuntimeStrategies --> Client
flowchart LR
Agent[Agent]
Links[Active MCP Links]
Resolve[Resolve Runtime Mounts]
Filter[Filter Inactive Servers]
Normalize[Normalize Allowed Tools Timeout Budget Priority]
Mounts[AgentMCPMountRuntimeConfig]
Runtime[Chat or Fusion Runtime]
Agent --> Links --> Resolve --> Filter --> Normalize --> Mounts --> Runtime
11. Skills 子系统
flowchart TB
Skill[Skill]
SkillVersion[SkillVersion]
AgentSkillLink[AgentSkillLink]
Registry[services/skills/registry.py]
Policy[services/skills/policy.py]
Executor[services/skills/executor.py]
Audit[services/skills/audit.py]
Runtime[Chat Runtime]
Skill --> SkillVersion
Skill --> AgentSkillLink
AgentSkillLink --> Registry
Registry --> Policy
Policy --> Executor
Executor --> Audit
Runtime --> Registry
12. Evaluation 子系统
flowchart TB
subgraph EvalStorage[evaluations domain]
Dataset[EvaluationDataset]
Item[EvaluationDatasetItem]
Run[AgentEvaluationRun]
Result[AgentEvaluationResult]
end
subgraph EvalServices[services/evaluation]
Importer[dataset_importer.py]
Runner[runner.py]
Judge[judge.py]
Metrics[metrics.py]
Gate[gate.py]
RuntimeSummary[runtime_summary.py]
RunnerState[runner_state.py]
end
Dataset --> Item
Dataset --> Run
Run --> Result
Importer --> Dataset
Runner --> Run
Runner --> Result
Runner --> Judge
Runner --> Metrics
Runner --> Gate
Runner --> RuntimeSummary
Runner --> RunnerState
stateDiagram-v2
[*] --> queued
queued --> running : worker claim
running --> heartbeat_expired : stale
heartbeat_expired --> queued : supervisor recover
running --> completed
running --> failed
completed --> [*]
failed --> [*]
sequenceDiagram
participant API as evaluation router
participant Store as evaluation storage
participant Worker as evaluation runner
participant Runtime as chat orchestrator
participant Judge as judge service
participant Gate as gate service
API->>Store: create queued run
Worker->>Store: claim run
loop dataset items
Worker->>Runtime: execute item
Runtime-->>Worker: answer
Worker->>Judge: judge answer
Worker->>Store: persist item result
end
Worker->>Gate: evaluate gate
Worker->>Store: complete run
13. Scheduled Tasks 子系统
flowchart TB
Task[ScheduledTask]
TaskRun[ScheduledTaskRun]
CreateReq[ScheduledTaskCreateRequest]
Scheduler[scheduled_tasks.py]
Timer[timer_scheduler.py]
SessionRuntime[session_runtime.py]
Checkpoint[runtime_checkpoint_service.py]
Memory[agent_memory_service.py]
Chat[Chat Runtime]
CreateReq --> Scheduler
Scheduler --> Task
Task --> Timer
Timer --> TaskRun
Timer --> SessionRuntime
SessionRuntime --> Chat
SessionRuntime --> Checkpoint
SessionRuntime --> Memory
flowchart LR
ScheduleKind[schedule_kind]
At[at]
Every[every]
Cron[cron]
Timezone[timezone_name]
TargetMode[target_mode]
PayloadKind[payload_kind]
ConflictPolicy[conflict_policy]
ScheduleKind --> At
ScheduleKind --> Every
ScheduleKind --> Cron
At --> Timezone
Every --> Timezone
Cron --> Timezone
Timezone --> TargetMode --> PayloadKind --> ConflictPolicy
14. Document Extraction 与 ETL
flowchart TB
subgraph Extraction[agents/document_extraction]
EState[state.py]
ENodes[nodes.py]
EGraph[graph.py]
ESchemas[schemas.py]
EPdf[pdf_utils.py]
end
subgraph ETL[agents/etl]
TState[state.py]
TNodes[nodes.py]
TGraph[graph.py]
TCsv[csv_utils.py]
end
subgraph Shared[shared dependencies]
Parsers[services/parsers]
Jobs[storage model_domains jobs]
Docs[storage model_domains documents]
end
Extraction --> Shared
ETL --> Shared
flowchart LR
AgentType[Agent Type]
ChatRT[Chat Runtime]
FusionRT[Fusion Runtime]
ExtractionRT[Document Extraction Runtime]
ETLRT[ETL Runtime]
EvalRT[Evaluation Worker Runtime]
TimerRT[Scheduled Replay Runtime]
AgentType --> ChatRT
AgentType --> FusionRT
AgentType --> ExtractionRT
AgentType --> ETLRT
ChatRT --> EvalRT
ChatRT --> TimerRT
15. 存储域模型
mindmap
root((storage model_domains))
admin_access
AdminUser
AdminPermissionGrant
AdminRefreshToken
AdminActionAudit
AdminSystemSetting
sessions
Session
Message
ConversationTurn
TurnContextSnapshot
RuntimeCheckpoint
AgentMemoryRecord
agents
Agent
AgentVersion
AgentRequestLease
AgentUsageRollupSnapshot
AgentCostOverviewSnapshot
fusion
FusionDefinition
FusionDefinitionVersion
FusionRun
FusionRunInput
FusionRunOutput
jobs
ETLJob
DocumentExtractionJob
DocumentExtractionFieldReview
knowledge
KnowledgeSource
AgentKnowledgeLink
knowledge_corrections
KnowledgeCorrection
documents
Document
DocumentParseSnapshot
IngestionJob
ManualInspectionRun
ManualInspectionResult
DocumentChunk
evaluations
EvaluationDataset
EvaluationDatasetItem
AgentEvaluationRun
AgentEvaluationResult
mcp
MCPServer
MCPCredential
AgentMCPLink
MCPCallAudit
skills
Skill
SkillVersion
AgentSkillLink
SkillExecutionAudit
scheduled_tasks
ScheduledTask
ScheduledTaskRun
flowchart TB
Agent[Agent]
AgentVersion[AgentVersion]
KnowledgeSource[KnowledgeSource]
AgentKnowledgeLink[AgentKnowledgeLink]
MCPServer[MCPServer]
AgentMCPLink[AgentMCPLink]
Skill[Skill]
AgentSkillLink[AgentSkillLink]
Session[Session]
Turn[ConversationTurn]
Snapshot[TurnContextSnapshot]
FusionRun[FusionRun]
FusionInput[FusionRunInput]
FusionOutput[FusionRunOutput]
EvalRun[AgentEvaluationRun]
EvalResult[AgentEvaluationResult]
Task[ScheduledTask]
TaskRun[ScheduledTaskRun]
Agent --> AgentVersion
Agent --> AgentKnowledgeLink
KnowledgeSource --> AgentKnowledgeLink
Agent --> AgentMCPLink
MCPServer --> AgentMCPLink
Agent --> AgentSkillLink
Skill --> AgentSkillLink
Agent --> Session
Session --> Turn
Turn --> Snapshot
Agent --> FusionRun
AgentVersion --> FusionRun
FusionRun --> FusionInput
FusionRun --> FusionOutput
Agent --> EvalRun
AgentVersion --> EvalRun
EvalRun --> EvalResult
Agent --> Task
Task --> TaskRun
flowchart LR
Postgres[(PostgreSQL)]
MinIO[(MinIO)]
Qdrant[(Qdrant)]
Config[Configs Versions Audit Runs Tasks]
Files[Original Documents Fusion File IO]
Vectors[Embedding Points]
Postgres --> Config
MinIO --> Files
Qdrant --> Vectors
16. 五条主链路
Chat
sequenceDiagram
participant Client
participant Core as core router
participant Session as sessions domain
participant Registry as chat registry
participant Runtime as chat runtime
participant Services as rag mcp skills model
participant Persist as turn snapshot audit
Client->>Core: POST /stream or WS
Core->>Session: get or create session
Core->>Registry: build runtime
Registry->>Runtime: instantiate
Runtime->>Services: retrieval tool generation
Services-->>Runtime: outputs
Runtime-->>Core: events and result
Core->>Persist: persist turn context usage
Core-->>Client: stream response
Fusion
sequenceDiagram
participant Client
participant Router as fusion router
participant RunSvc as FusionRunService
participant Runner as FusionRuntimeRunner
participant Graph as Fusion Graph
participant Store as fusion storage
Client->>Router: create run json or multipart
Router->>RunSvc: create_run
RunSvc->>Store: persist FusionRun
Router->>RunSvc: execute_run
RunSvc->>Runner: run
Runner->>Graph: execute graph
Graph->>Store: persist inputs outputs trace
Runner-->>Router: final state
Router-->>Client: run response
Knowledge Ingestion
sequenceDiagram
participant Client
participant Router as knowledge router
participant MinIO as minio
participant Ingest as ingestion service
participant Parser as parser
participant PG as postgres
participant Vec as qdrant
Client->>Router: upload document
Router->>MinIO: save original
Router->>PG: create document and job
Router->>Ingest: process_document
Ingest->>MinIO: download file
Ingest->>Parser: parse
Parser->>PG: save parse snapshot
Parser->>PG: save chunks
Parser->>Vec: save vectors
Ingest->>PG: update status
Evaluation
sequenceDiagram
participant Admin
participant API as evaluation router
participant Store as evaluation store
participant Worker as evaluation worker
participant Runtime as chat runtime
participant Judge as judge
Admin->>API: create run
API->>Store: queue run
Worker->>Store: claim run
loop item
Worker->>Runtime: execute
Runtime-->>Worker: answer
Worker->>Judge: judge
Worker->>Store: persist result
end
Worker->>Store: finalize gate
Scheduled Task Replay
sequenceDiagram
participant User
participant Runtime as chat runtime
participant TaskSvc as scheduled task service
participant Store as scheduled task store
participant Timer as timer worker
participant SessionRuntime as session runtime
User->>Runtime: ask to schedule
Runtime->>TaskSvc: create task
TaskSvc->>Store: persist task
Timer->>Store: poll due tasks
Timer->>SessionRuntime: dispatch due task
SessionRuntime->>Runtime: execute future turn
17. 后台恢复与自愈
flowchart TB
Startup[Startup]
IngestionCleanup[Cleanup Stale Ingestion Jobs]
VectorRecon[Document Vector Reconciliation]
EvalRecover[Recover Evaluation Worker]
TaskRecover[Recover Scheduled Task Worker]
Ready[Ready]
Startup --> IngestionCleanup --> VectorRecon --> EvalRecover --> TaskRecover --> Ready
stateDiagram-v2
[*] --> Running
Running --> ProcessCrash
ProcessCrash --> Restart
Restart --> StartupRecovery
StartupRecovery --> ReconcileJobs
ReconcileJobs --> RequeueEval
RequeueEval --> RestartSchedulers
RestartSchedulers --> Running
18. 观测与治理
flowchart TB
Runtime[Runtime Execution]
TokenUsage[token_usage.py]
Langfuse[langfuse_tracing.py]
AdminAudit[admin audit]
MCPAudit[mcp audit]
SkillAudit[skill audit]
TurnSnapshot[TurnContextSnapshot]
Checkpoint[RuntimeCheckpoint]
FusionTrace[FusionRun trace_url trace_id]
EvalResult[Evaluation Result]
Runtime --> TokenUsage
Runtime --> Langfuse
Runtime --> AdminAudit
Runtime --> MCPAudit
Runtime --> SkillAudit
Runtime --> TurnSnapshot
Runtime --> Checkpoint
Runtime --> FusionTrace
Runtime --> EvalResult
flowchart LR
Governance[Governance]
ModelRouting[Model Routing]
Grounding[Response Grounding]
MCPRuntimeCfg[MCP Runtime Config]
MCPResponseCfg[MCP Response Config]
RequestLease[Request Lease]
UsageRollup[Usage Rollup]
CostSnapshot[Cost Snapshot]
AdminPerm[Admin Permission]
Governance --> ModelRouting
Governance --> Grounding
Governance --> MCPRuntimeCfg
Governance --> MCPResponseCfg
Governance --> RequestLease
Governance --> UsageRollup
Governance --> CostSnapshot
Governance --> AdminPerm
19. 扩展点
flowchart TB
NewChat[新增 Chat Runtime]
NewAgentType[新增 Agent Type]
NewFusionCap[新增 Fusion Capability]
NewParser[新增 Parser]
NewMCPPolicy[新增 MCP Strategy Policy]
NewEval[新增 Evaluation Logic]
NewDomain[新增 Storage Domain]
NewObs[新增 Observability]
NewChat --> OrchestratorRegistry[orchestrator/registry.py]
NewAgentType --> AgentsPlugin[agents/* plugin]
NewFusionCap --> FusionCaps[fusion/capabilities]
NewParser --> Parsers[services/parsers]
NewMCPPolicy --> MCPServices[services/mcp]
NewEval --> EvalServices[services/evaluation]
NewDomain --> StorageDomains[storage/model_domains + migration]
NewObs --> InfraObs[services/infra/observability]
20. 收敛结论
flowchart LR
Gateway[统一入口]
Agent[统一业务锚点 Agent]
MultiRuntime[多 Runtime 并存]
SharedServices[共享能力服务层]
DomainStorage[Domain 化持久化真相源]
Recovery[恢复与自愈]
Audit[观测审计治理]
Gateway --> Agent --> MultiRuntime --> SharedServices --> DomainStorage --> Recovery --> Audit
mindmap
root((结论))
ai_service 不是普通 CRUD API
Agent 是统一控制面实体
Chat 与 Fusion 是平行运行时
RAG MCP Skills 是平台能力层
Evaluation 与 Scheduled Tasks 是后台执行平面
storage model_domains 是持久化真相源
MinIO 与 Qdrant 是 RAG 与文件执行的基础设施
Langfuse 审计 checkpoint trace 共同构成观测体系