开源项目 Omni 提供 workplace search 和实时聊天功能,完全基于 Postgres,适合需要自部署的企业环境。
Omni 是一个面向工作场所的 AI Agent 平台。
连接你公司的应用,在工作场所知识之上创建统一的上下文层,并部署能够在整个组织中搜索、推理和行动的 Agent。
文档 • 部署 • 功能 • 架构
Omni 是一个自托管的工作场所 AI Agent 平台。
它连接到 Google Drive、Gmail、Slack、Confluence、Jira、HubSpot 和内部文件系统等工具,索引你的公司知识,并为 Agent 提供它们回答问题、分析信息和帮助员工完成工作所需的上下文。
与其将每个 Agent 直接连接到每个业务系统,不如说 Omni 为你提供了一个共享的上下文和工具层用于工作场所 AI。
工作场所 AI Agent:构建能够搜索公司知识、阅读文档、分析数据和使用工具完成工作的 Agent。
统一上下文层:将 Google Drive/Gmail、Slack、Confluence、Jira、HubSpot、本地文件、网站等索引到一个可搜索的知识层。
混合搜索:使用 ParadeDB 进行 BM25 全文搜索和使用 pgvector 进行语义搜索,都在 Postgres 内部。
工具使用与代码执行:Agent 可以在沙箱容器中执行 Python 和 bash 来检查文件、分析数据和生成输出。
自托管设计:完全在自己的基础设施上运行 Omni。你的数据留在你自己的云或本地环境中。
权限继承:尊重源系统权限。用户只能看到他们已有权限访问的数据。
自带 LLM:Anthropic、OpenAI、Gemini、AWS Bedrock、Vertex AI、Azure AI Foundry 或任何 OpenAI 兼容的端点(vLLM、Ollama、LM Studio、LiteLLM 等)。
简单部署:单服务器配置使用 Docker Compose,生产 AWS/GCP 部署使用 Terraform。
Omni 使用 Postgres(ParadeDB)作为核心数据层,用于 BM25 全文搜索、pgvector 语义搜索和应用数据。
不需要 Elasticsearch。不需要专用的向量数据库。一个数据库来调优、备份、监控和操作。
核心服务用 Rust 编写用于搜索、索引和连接器编排;用 Python 编写用于 AI 和 LLM 编排;用 SvelteKit 编写 web 前端。每个连接器作为自己的轻量级容器运行,允许集成使用不同的语言和依赖而不影响系统的其他部分。
Agent 运行时可以在隔离的 Docker 网络上的沙箱容器中执行代码,不能访问内部服务或互联网。它使用 Landlock 文件系统限制、资源限制和只读根文件系统。
详见完整的架构文档。
Omni 可以完全部署在你自己的基础设施上。参见我们的部署指南:
知识库和文档
通讯和会议
项目管理和工程
使用 Connector SDK 构建你自己的 Omni 集成。
参见 CONTRIBUTING.md 了解开发设置和指南。
如果你使用 Claude Code,该仓库包含一个帮助构建连接器的技能。运行 /build-connector <service name>(例如 /build-connector Asana)。
Apache License 2.0。详见 LICENSE。
文档 • 讨论