deeplethe/utopia
DeepLethe 团队发布 Utopia,一个基于 Rust 与 Postgres 构建的企业世界模型与开放知识工程底座。它采用双时态知识图谱,支持 PDF、DOCX 等格式摄取、全文与向量混合搜索(RRF 融合)、agentic RAG、本体驱动查询及多用户权限管理。其 Ontology2SQL 方法在 BIRD Mini-Dev 的 SQLite 和 PostgreSQL 上达到 SOTA。项目处于 v0.1,采用 Apache-2.0 许可证。
Utopia
理念 · 快速开始 · 特性 · 路线图
由 DeepLethe 构建的企业世界模型。 它是第一个开放的知识工程基础底座,能够被动学习并自我治理。知识图谱或向量存储致力于保存当前知识,而 Utopia 将时间感知和本体论置于基础层:知识系统随材料到达而演化,冲突检测、推理和决策都基于该本体运行。它支持离线部署,因此企业可以在自己掌控的硬件上建立知识基础、其 agent 可以信赖的决策核心,以及合规审计追踪。
请注意:我们希望这个项目不要被定位为 Palantir 的开源替代品。它是通往企业智能的另一条路径,从知识治理自下而上构建,直至可信决策与模拟。
https://github.com/user-attachments/assets/aa226443-75de-437e-bd80-88e592ed8457
理念
我们给它起了一个有些浪漫的名字,Utopia。托勒密的地心说在很长一段时间里被视为真理,随后被哥白尼、开普勒、伽利略和牛顿一步步证伪。回头看,我们保留的不仅是日心说最终被证明正确,更是那段历史如何展开的过程。
现有的向量存储和知识图谱致力于让当前知识正确,而 Utopia 的创始目标之一是记录认知变化的完整过程。在工程上,这体现为一个双时态知识图谱。当决策日后被复盘时,系统可以呈现其完整过程及所依据的基础。为了让这一点在实践中站得住脚,我们针对涵盖企业记录、教育、金融、法律和研究的公开语料进行了大量迭代。时间性只是其中一个方面;关于知识如何被吸收、未来如何被推理、逻辑如何约束行动,请参阅 utopia.bi/philosophy。
特性
一个 Rust 二进制文件加一个 Postgres。全文搜索内置于二进制中,向量存储在 pgvector 中,任务队列就是一张表:无需运行其他任何东西。
| 一个完整的应用 | 系统控制台、图谱浏览器和本体工作台集成在一个 Web UI 中。这是一个产品,而非库:安装即可使用。 |
| 知识摄取 | 上传 PDF、DOCX、PPTX、XLSX、XLS、ODS、CSV、TSV、Markdown、HTML 或纯文本,并在导入时自动检测旧编码。网页、RSS、GitHub、Jira 和 S3 兼容存储桶按计划同步;其他一切通过 API 接入。 |
| 搜索与对话 | 基于 Tantivy 的全文搜索,基于 pgvector 的向量搜索,通过 RRF 融合。回答流式输出并附带行内引用,可点击打开来源段落。任何 OpenAI 兼容端点均可使用(DeepSeek、Qwen、GLM、Ollama、vLLM),因此整个系统可以完全离线运行。 |
| Agent 框架与 agentic RAG | 整个系统可以通过对话驱动。内置 agent 可以搜索文档、遍历图谱(某个实体截至任何日期的 facts,或某段时间内的变化)并查询挂载的数据库。相同的只读工具通过 MCP 暴露。 |
| 本体与冷启动 | 新知识库没有自己的词汇表;它从创建时选择的包开始。二进制内置五个包:schema.org、W3C Org、PROV-O、FOAF 和 IOF Core(申请你的行业)。包之外的术语按出现次数统计;确认常用术语后,它们将加入本体。 |
| 双时态图谱 | 抽取将文档转化为实体和 facts,遵循你可编辑的本体。每个 fact 都带有其成立时间和来源。修正一个 fact 会关闭旧版本并将新版本链接到它,而不是覆盖,因此图谱保留两条时间线:某事物在现实中何时为真,以及系统何时开始相信它为真。 |
| 实体解析与审核 | 重复项通过三个阶段解决:精确名称或别名匹配、embedding 相似度、然后由模型对可疑配对进行判断。每次合并都可以撤销。不确定的情况进入审核队列:低置信度抽取、疑似重复和基数冲突。 |
| 推理与推导 | 本体公理编译为规则:传递性、对称性、逆关系和关系层级通过前向链推导出新 facts。推导默认关闭,因为错误的公理会推导出错误的 facts。推导出的 fact 在图谱上被标记,像其他 fact 一样带有有效性和置信度,并显示其推导来源。当它与断言 fact 冲突时,以断言 fact 为准。 |
| 冲突检测 | 三类冲突,三类选择。与旧 fact 冲突的新 fact:关闭旧的、保留两者、或拒绝新的。违反公理的数据(自环、不对称、传递环、基数):撤回 fact、放宽公理、或同时接受。本体本身首先被检查,因为违反自相矛盾本体的冲突是噪音。 |
| 本体驱动查询 | 在基础数据库上挂载数据库(Postgres、用于 Iceberg / Delta Lake / Hive 的 Trino、Databricks、Snowflake),对话可以同时查询数据库和文档。agent 提出其表如何映射到本体,由你确认。其背后的方法 Ontology2SQL 在 BIRD Mini-Dev 的 SQLite 和 PostgreSQL 上达到了 SOTA(提交)。 |
| 多用户与权限 | 每个知识库有自己的成员和角色:owner、admin、editor 和 viewer。开放的知识库对部署中的所有用户可读,受限知识库仅限邀请。第一个注册的账户成为系统管理员。 |
| 决策账本 | 确认或拒绝一个 fact、合并或还原一个实体、重建图谱:每次操作都会留下谁、何时以及对象当时样子的记录。账本只追加,记录比其对象存活得更久,甚至比它所属的知识库更久。 |
| 决策智能(开发中) | 记录决策,重放当时所理解的内容和过程,并在叠加场景上进行推理。 |
快速开始
要求:Docker(本地开发还需要 Rust 1.85+、Node 20+、pnpm)。
从预构建镜像开始:
git clone https://github.com/deeplethe/utopia.git
cd utopia
docker compose --profile app up -d
打开 http://localhost:1516 并注册。第一个账户自动成为管理员,同时会创建一个对所有用户可读的公共知识库。在抽取业务文档之前,请在系统设置中配置模型端点(对话和 embedding)。
或者从源码构建:
docker compose -f docker-compose.yml -f docker-compose.build.yml --profile app up -d --build
本地开发
# 1. 带 pgvector 的 Postgres
docker compose up -d db
# 2. 后端运行在 :1516,启动时自动执行迁移
cargo run -p utopia-server
# 3. 前端运行在 :5173,将 /api 代理到后端
cd web && pnpm install && pnpm dev
路线图
- 决策推理:约束计算,以及事后重放决策
- 执行门控:根据本体规则和符号逻辑检查 agent 的调用
- MaxCompute:针对阿里云 MaxCompute 的映射探索和 Ontology2SQL(通过 Trino 支持 Iceberg / Delta Lake,Databricks 和 Snowflake 已支持,等待在真实集群上运行验证)
- 更多数据源:MySQL、ClickHouse 和 Doris 驱动;S3、WebDAV、Notion 和飞书连接器
- 精确到时刻:在年/月/日之外增加
instant精度,用于携带真实时间戳的数据源。目前连接器会将其舍入到 UTC 日,这可能导致事件跨过午夜偏移一天 - 基于 MCP 的 agent 记忆:episode 写入、检索端点和 MCP 服务器
- 企业级:OIDC SSO、备份和恢复命令、10 万文档基准测试
状态
Utopia 仍处于 v0.1。数据库 schema 在版本之间会演化,迁移只向前推进,不支持回滚。在生产环境中使用 UTOPIA_IMAGE 固定特定版本,并在升级前备份数据库和 data 目录。
在将其暴露到公共互联网之前,请阅读 SECURITY.md。
Star 历史
社区
- 💬 讨论区:讨论、经验分享和评测
- 🐛 Issues:任何 bug、设计问题或请求
- 🤝 贡献指南:开发环境搭建、提交前需要运行的检查、DCO 签署
- 🔌 Ontology2SQL:上文提到的本体驱动 text-to-SQL 方法
许可证
Apache-2.0