Skip to content

架构总览

English: Architecture Overview

UModel 是 local-first 服务:REST API、CLI、Web UI、SDK 和 MCP 共享同一组领域服务和公共契约。

系统视图

分层

路径职责
Entrycmd/umodel-server, cmd/umctl, cmd/umodel-mcp进程、flags、本地运行入口。
API adaptersapi/openapi, api/mcp, internal/bootstrapREST routing、MCP schema、server wiring。
Application servicesinternal/workspace, internal/umodel, internal/entitystore, internal/query, internal/agentgatewayWorkspace、模型写入、运行时写入、读取和 Agent 接入。
Contractspkg/contract, pkg/model, pkg/errors公共接口、共享类型、稳定错误 envelope。
Storage abstractioninternal/graphstoreProvider-neutral 的持久化和图访问。
Providersmemory, file.memory, local.ladybug运行时存储实现。
Clientsweb, sdk/go, sdk/python, generated/java用户和集成客户端。

公共契约

公共契约包括:

公共契约变更必须在同一个 PR 中更新 docs、tests、examples、SDK 期望和 Web UI。

核心设计决策

  • 所有操作都以 workspace 为边界。
  • Query Service 是模型、实体和拓扑数据的唯一公共读取路径。
  • EntityStore 负责写入运行时对象和关系,不提供公共读取 API。
  • UModel Service 负责模型定义写入和校验。
  • AgentGateway 通过 Query Service 获取运行时 rows,resources 保持 metadata-oriented。
  • GraphStore provider 隔离持久化细节。

Architecture Guard

Architecture guard:tools/guards/architecture_guard.py。运行方式:

bash
make guard

Guard 保护关键边界,例如不在 Query Service 外新增公共领域读取 API,业务模块不直接导入 provider 实现包。

基于 Apache-2.0 许可发布。