展示HN:Omni – 基于Postgres构建的开源工作场所助手

1作者: prvnsmpth5 天前原帖
嗨,HN!<p>在过去的一年里,我一直在构建 Omni(<a href="https://github.com/getomnico/omni" rel="nofollow">https://github.com/getomnico/omni</a>)——一个开源的自托管代理,能够连接到您的工作应用(如云盘、电子邮件、维基、客户关系管理系统、工单系统等),为您的团队提供一个可以跨这些应用操作的 AI 代理。<p>大约六个月前,我在 HN 上发布了关于 Omni 的内容,引发了一些有趣的讨论:<a href="https://news.ycombinator.com/item?id=47215427">https://news.ycombinator.com/item?id=47215427</a>。当时,Omni 主要是一个企业搜索系统。此后,该项目已经发展成为一个能够收集上下文、分析信息并执行任务的代理,而不仅仅是搜索答案。<p>例如,您可以告诉 Omni:“在 Google 幻灯片上创建一个关于本周进展的项目状态报告”,它将搜索 Jira、Slack、文档、会议记录,提取相关信息,使用 Python 分析电子表格,准备摘要并在创建幻灯片之前请求您的批准。<p>以下是 Omni 目前可以执行的一些功能(非详尽列表):<p>- 对连接的应用执行操作,并为写入操作提供审批系统。<p>- 完全支持 MCP,因此连接器可以与任何现有的 MCP 服务器集成。<p>- 将连接的应用中的数据同步到统一的搜索索引,使代理能够使用单一的搜索工具查询所有应用中的数据。<p>- 沙箱代码执行和 Shell 访问,允许代理创建文档、电子表格、演示文稿和 HTML 登陆页面。<p>- 持久内存和用户定义的技能。<p>Omni 仍然使用 Postgres 作为其核心数据层,负责同步和索引来自连接应用的所有数据。我们使用 ParadeDB(Postgres 扩展)进行 BM25 搜索,使用 pgvector 进行语义搜索,因此无需运行和维护专用的搜索集群或向量数据库。想了解更多关于架构的信息,请访问:<a href="https://docs.getomni.co/architecture" rel="nofollow">https://docs.getomni.co/architecture</a>。<p>希望能吸引更多人参与这个项目,如果您觉得有趣,请查看下面的代码库。使用 Docker Compose 部署并连接几个应用只需大约 10-15 分钟。<p>欢迎随时提问!<p>GitHub: <a href="https://github.com/getomnico/omni" rel="nofollow">https://github.com/getomnico/omni</a>(Apache 2.0 许可)<br>文档: <a href="https://docs.getomni.co" rel="nofollow">https://docs.getomni.co</a>
查看原文
Hi HN!<p>Over the past year, I&#x27;ve been building Omni (<a href="https:&#x2F;&#x2F;github.com&#x2F;getomnico&#x2F;omni" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;getomnico&#x2F;omni</a>) - an open-source, self-hosted agent that connects to your workplace apps (drive, email, wiki, CRMs, ticketing systems, etc.), and gives your team an AI agent that can operate across these apps.<p>I posted about Omni on HN about 6 months ago, and it generated some interesting discussions: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=47215427">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=47215427</a>. At the time, Omni was largely an enterprise search system. Since then, the project has evolved to become more of an agent that can gather context, analyze information, and carry out tasks; rather than just search for answers.<p>E.g., you can tell Omni, &quot;create a project status deck on Google Slides with this week&#x27;s progress&quot;, and it will search through Jira, Slack, Docs, meeting transcripts, fetch the relevant information, analyze spreadsheets with Python, prepare a summary and ask for your approval before creating the slides on your drive.<p>A non-exhaustive list of things Omni can do today:<p>- Take action on connected apps, with an approval system for write actions<p>- Full MCP support, so connectors can integrate with any existing MCP servers.<p>- Sync data from connected apps into a unified search index, allowing the agent to query data across all apps using a single search tool.<p>- Sand-boxed code execution and shell access, enabling the agent to create documents, spreadsheets, presentations and HTML landing pages.<p>- Persistent memory and user-defined skills<p>Omni still uses Postgres as its core data layer where it syncs and indexes all data from connected apps. We use ParadeDB (Postgres extension) for BM25 search and pgvector for semantic search - so there&#x27;s no need to run and operate a dedicated search cluster or vector database. To know more about the architecture: <a href="https:&#x2F;&#x2F;docs.getomni.co&#x2F;architecture" rel="nofollow">https:&#x2F;&#x2F;docs.getomni.co&#x2F;architecture</a>.<p>Would love to get more folks involved in the project, so if you find this interesting, please check out the repo below. It only takes around 10-15 min to deploy using docker compose and connect a few apps.<p>Happy to answer any questions!<p>GitHub: <a href="https:&#x2F;&#x2F;github.com&#x2F;getomnico&#x2F;omni" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;getomnico&#x2F;omni</a> (Apache 2.0 licensed) Docs: <a href="https:&#x2F;&#x2F;docs.getomni.co" rel="nofollow">https:&#x2F;&#x2F;docs.getomni.co</a>