内容
align="center">
<img src="docs/media/omadia-wordmark.png" alt="omadia" width="820">
### 面向专业人士的智能操作系统
[
[](#status--roadmap)
[](#-quickstart)
[](https://www.typescriptlang.org/)
[
[](https://github.com/byte5ai/omadia/stargazers)
**](https://omadia.ai) · [**快速开始**](#-quickstart) · [**为什么选择omadia?**](#why-omadia) · [**文档**](docs/) · [**贡献**](CONTRIBUTING.md)
</div>
**omadia是一个可自行托管、多人协作的智能操作系统,使AI足够可靠,可用于实际工作。**智能代理组成的团队在您拥有的基础设施上运行,并在您的团队共享的频道中工作,这样多人可以在中与同一个代理协作,而不是私有的、一对机器人。代理将您的数据、软件和您可以控制、审计和证明的结果。敏感在您的机构内,不会以明文形式离开。每个答案在发送前都会经过检查。每个操作都有收据。您可以自带LLM密钥,并通过配置而非代码切换提供商。
#### 🎬 2分钟快速了解
https://github.com/user-attachments644f9dae-c8a9-44af-a47f-183d2fcdcf34
---
## 前置条件
快速开始过程完全在容器中运行,因此主机保持轻量:
- **Docker 24+**,并安装Docker Compose v2插件(`docker compose`子命令,而不是旧的`docker-compose`二进制文件)
- **Git**,用于克隆仓库
这是运行omadia的全部要求。 当您从源代码构建服务或开发插件时,只需要本地Node.js工具链:
- **Node 22.x**,用于middleware和admin UI,位于Docker之外。固定的版本位于`.nvmrc`中,因此`nvm use`可以获取它。middleware在不匹配的主版本上会阻止安装,因为本机模块是针对构建的。
详见 [`CONTRIBUTING.md`](CONTRIBUTING.md) 了解完整的从源代码设置。
## ⚡ 快速开始
```bash
git clone https://github.com/byte5ai/omadia.git && cd omadia
# 1. 启动最小核心:postgres + middleware + admin UI。
# 镜像从GHCR预构建并拉取,因此首次启动,
# 而不是源代码构建。不需要配置即可启动。
docker compose up -d
# 2. 打开admin UI并完成首位管理员向导。
# /setup向导收集您的LLM密钥并将其加密存储在保险库中。
open http:3333
```
`docker compose up -d` 只会拉取三个服务。 打开UI导中设置您的密钥,并运行您的第一个智能代理团队。 下是90秒的艳时刻”。 图表、嵌入和对象存储是可选的(参见 [可选功能](#optional-features。
您可以使用shell变量`OMADIA_VERSION`(或项目根`.env`文件`middleware/.env`文件)来固定特定镜像,而不是最新版本。 或者,您可以从源代码构建镜像:
OMADIA0.3. compose up -d 固定版本 compose -f docker -f docker-compose.build.yaml up -d -- # 从源代码> **拉,显示``?** GH在每次发布时,因此新的代码库可能会暂时早于第一个发布的 在发布之前,可以通过上述`--build从源代码构建。
## 🚀 首次从提示到审计
<div align="center">
<img src="docs/media/omadia-demo="omadia no-code builder: describe an agent in plain words, the builder generates it, then try it out" width="820">
<sub>用通俗的语言描述一个智能代理 → 构建工具生成它试用。无需代码。</sub>
</div>
当您看到一队智能代理完成实际工作并为您提供收据时,omadia就会启动:
1. 运行 **`docker compose up -d`**。 最小核心(postgres、middleware、admin UI)一起启动。
2. **打开 `http://localhost:3333`** 并完成首位管理员的 `/setup` 向导。
3. **从网页聊天中的单个提示启动演示智能代理团队**。
4. **观察其工作过程。** 调度器会将任务流式传输并调度到团队中的智能代理。
5. **打开运行的跟踪记录。** 每个运行的调用栈查看器都是您的审计收据:每一步骤、每个工具调用、每个决策都可以重放。
## 为什么选择omadia?
omadia是为智能系统离开笔记本电脑并满足实际工作需求而构建的:所有权、可审计性和与现有堆栈的干净集成。 接下来的三行是团队选择它的原因;其余部分是适当的基础工作。
| 功能 | 您获得的内容 |
|---|---|
| 🛡️ **隐私盾** | 原始工具结果保留在数据平面LLM只看到一个身份无关的摘要。 默认情况下`guarded`,具有`bypass`/`per_tool`可选和一个限制(`OMADIA_PRIVACY_FORCE_GUARDED`)。 可以通过omadia运行而不通过模型。 |
| ✅ **答案验证** | 验证器会答案的声明是否与运行的源匹配,并在其到达通道之前记录一个判决(`approved` / `approved_with_disclaimer`)。 |
| 🧮 **计算,而非猜测**和Excel输出来自一个真正的电子表格引擎,在服务器端,基于真正的行(`datasetId`)。 数据通过该引擎计算,而不是由模型生成。 |
| 🧾 **每个操作的收据** | 每个智能代理运行都带有完整的运行跟踪和调用栈查看器:每一步骤、工具调用和决策都可以重放。 |
| 👥 **设计为多人协作** | 智能您的团队共享的频道(Slack、Teams、Discord)中运行,因此多人可以在中与它们协作,而不是私有的一的聊天机器人。 |
| 🤖团队,而非单个聊天机器人** | 调将每个回合路由到正确的专业插件智能 频道、集成、工具和能力提供程序一个稳定的API后面。 |
| 自行托管,归您所有** | 一个``在一台机器上。 您的、您的LLM密钥、您基础设施上的 符合GDPR,在欧盟境内制造 🧩 **签名插件分发**插件以可验证的签名包形式提供在运行时从不拉取任意npm。 |
🔌 **企业集成** | Microsoft 365、、Confluence、Teams和Telegram,LLM是一个可替换的插件。 |
## 盒子里有什么
- **隐私盾一个数据,内部存储原始工具结果,只向LLM暴露一个身份无关的摘要([`harness-plugin-privacy-guard`](middleware/packages/harness-plugin-privacy-g[`privacyMode.ts`](/plugin-api/src/.ts))
答案验证器**:检查每个答案的声明是否与源匹配,并在发送前返回一个判决(arness-verifier`](middleware/packages/harness-verifier),[`verifierService.ts`](middleware/packages/harness-orchestrator/src/verifierService.ts))
- **Office计算**:`` / `create_docx`在服务器真正的电子表格和文档,解析数据集行而不通过它们([`harness-plugin-office`](middleware-plugin-office))
- **插件运行时频道、集成、子智能代理和能力提供程序;所有内容都是一个插件,位于稳定的API表面后面([`@omadia/plugin-api`](/plugin-api))
- **构建工具**:UI驱动的插件创作,带有代码生成、插槽类型检查、进程内ESLint自动修复和运行时烟雾测试
- **知识图谱**:基于pgvector的(Postgres)带有内存替代方案用于测试
- **频道**:网页聊天(admin UI)位于树中;Teams和Telegram作为单独分发的插件ZIP提供
- **身份验证**:多提供程序登录(本地密码+OIDC),每个提供程序的用户表,管理员UI用于提供程序切换管理
- **例行程序用户编写的cron智能代理运行,带有完整的运行跟踪栈查看器
操作员Lume,这是一种视觉语言。 想法是材料:表面从光中读取为凝智能代理的注意力显示为高亮的照明,而不是平面颜色。 四个配方携带它。 渐变对,边框在顶部边缘捕, 一个高亮槽发光以标记, 角落保持柔软。
三种配色方案随附,分别是Petrol、Atelier和Lagoon作为默认。 操作员选择一种,并在标题从浅色和深色切换。 单个令牌文件中(`web-ui/app.css`),化停留在层,而不是组件的扫描。
Lume在[byte5ai/omadia-ui](https://github.com/byte5ai/omadia-ui)的`-spec.md`中指定,这是omadia的所基于的相同语言。 操作员UI和共享一个身份。
## 架构
```
┌────────────────────────────────────────────────────────────┐
│ │
│ 网页聊天 Telegram … │
└───────────────────────────┘
│ ChannelAnswer)
▼
┌────────────────────────────────────────────────────────────┐
│ 调度 │
│ 将回合路由到智能管理工具调度,流式传输 │
└────────────────────┬───────────────────────────────────────┘
ctx(PluginContext)
▼
────────────────────────────┐
│ │
│ 智能代理 工具 · 者 集成│
└────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────┴────────────────────────────┐
▼ ▼ ▼
知识图谱 嵌入 保险库(机密)
(Postgres + pgvector)(Ollama / API) (256-GCM文件)
```
从[](docs/architecture开始,了解组件请求流程。 插件加载序列、能力注册表和多提供者身份验证层的深入了解位于[`docs/`](docs/)下。
## 信任与
三个子系统使omadia能够将于LLM面前并支持答案:隐私盾(数据平面边界)**工具结果被内部存储在边界后面,只看到一个身份无关的摘要。 默认情况下为`guarded`;`bypass`和_tool`是显式选择,`OM_PRIVACY_FORCE_GUARDED`在范围内将每个插件限制为`guarded 假名仅在物化时解析值,每个绕过都记录在收据规范:[`specs/001-ield-v4/`](specs/001-ield-v4/)。
- **答案验证答案的回合被返回之前,验证检查其声明是否与源匹配,并发出`approved`、`approved_with_disclaimer`或`)。 边境判决附带免责无声地发送不支持的声明。
-计算(计算,而非猜测)**xlsx` / `.docx`输出中的数字电子表格引擎,基于真实行,而不是模型的流。 当专业返回`dataset时,行在服务器端解析,永不。
### 可选功能
最小核心是 + admin UI。 图表、嵌入和默认关闭。 每个都是一个叠可以使用`-f`添加,启动边车并启用匹配的插件。
```bash
# 对象存储(MinIO):聊天附件摄取
-f docker-compose.yaml -f docker-compose up -d
表渲染(Kroki)。 需要对象存储,因此添加两个叠加层:
docker compose -f docker-compose.yaml \
-f docker-compose.storage.yaml -f docker-compose.diagrams.yaml up -d
# 租户内嵌入(Ollama)。 首次启动会拉取nomic-embed-text(~270 MB),
# 因此它需要时的网络访问。
docker compose -f docker-compose.yaml -f docker-compose.embeddings.yaml up -d
# 一切同时进行
docker compose -f docker-compose.yaml \
-f docker-compose.storagef docker-compose.di \
-f docker-compose.embeddings.yamld
```
图表渲染**还需要一个签名密钥。 生成一个并`DIAGRAM`添加到`middleware/.env`中图表叠加层:`openssl rand -hex 32`。 插件在设置之前保持非活动状态。
##开发
**从:[`byte5ai/omadia-plugin://github.com5ai/om-starter)。随时可用的模板自己的om。 克隆它@omadia/pluginmiddleware/packages/plugin-api)编写您的逻辑,然后发布。
omadia插件包含的ZIP操作员通过上传。 平台在运行时从不信任外部npm;插件会`node_modules通过`@omadia`使用平台的标准库。 另外两个也作为起点中提供:
- [`agent-reference-maximum`](middleware/packages-maximum):在插件API中功能
--seo-analmiddleware/packages/agent-seo-anal一个较小、仅限工具的示例工具UI会引导克一引用,逻辑,并在烟雾验证。
##
- **单租户`docker compose up`,参见上面的快速入门
- **自带**:运行时是一个标准的Node + Postgres应用程序;任何可以运行两者的主机都可以使用(Kubernetes,ECS,普通VM)。
> **所需的生产机密。** 发布的`NODEproduction`运行`VAULT_KEY启动时。 如果没有件将(这是故回退写入,这在不安全`openssl rand 32一个,并在部署前将其作为平台机密进行连接。 的`docker固定`NODE_ENV`,`docker compose up`保留开发回退。 当您重用作为非本地部署的起点时,请(并在`.env`中VAULT_KEY`)。
## 状态图
> **pre-1.** 公版。 API和数据库模式可能会在次之间更改,直到.0.。 支持使用OSS分发版进行生产,但目前是手动自动迁移运行程序位于v1.0路线图上。
稳定性承诺**仅文档化的插件;其他所有数据库模式、内部服务接口、管理员UI路由)可能会在.0.不断演变。
活跃的开发
-家**:带有人工签批路径的多。005-omductor`落地;一旦合并到`main`,它就会升级为一流的功能。
- **插件市场**:发现和签名包分发(1.0后)
- **多租户托管**:不在v1范围内;计划单独分叉
-开发的Web**:将循环移动UI中,无需往上传(1.0后) 许可
[MIT)。版权所有 ( 2026 byte5.
第三方依赖许可和通知在 [`THIRD_PARTICES.md`](THIRD_NOTICES.md)。依赖树中不包含GPL、AGPL和SSPL软件包;弱版税通过`sharp-libvips`的LGPL,通过`axe-core` / `lightningcss` / `dompurifyMPL-2.按照文档使用未经修改的依赖项。
## 故障排除
**端口已被占用。** 核心绑定`3333`用于admin UI以及Postgres端口。如果另一个进程持有其中一个端口,则受影响的容器在启动时退出。释放端口,或在您自己的Compose覆盖文件中重新映射它,然后重新运行` -d`。
**启动时缺少`VAULT_KEY`。** 生产镜像(`NODE_ENV=production`在没有`VAULT_KEY`的情况下拒绝启动。 使用`openssl rand -base64 32`生成一个,并在部署前在项目根目录的`.env`中设置。 捆绑的`docker-compose.yaml`固定`NODE_ENV=development`,因此本地`docker compose up`保留开发回退。完整上下文位于[部署](#deployment)。
**找不到可选叠加层。** 可选功能是通过重复的`-f`标志添加的Compose文件,而不是Compose配置文件。传递完整的文件名,例如`-f docker-compose.yaml -f docker-compose.storage.yaml`。 裸`--profile storage`在此处不匹配任何内容。
**源代码的Node版本不匹配。** 中间件在`.nvmrc`中固定其Node主版本,如果版本不同,则停止`npm install`,因为本机模块是针对特定ABI编译的。 在存储库根目录运行`nvm use`后再安装。
## 贡献
详见 [`CONTRIBUTING.md`](CONTRIBUTING.md) 了解开发设置、提交消息约定和拉取请求工作流程。 [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) (贡献者契约 2.1 版)适用于问题、拉取请求和讨论中的所有交互。
## 安全
发现漏洞? **请不要公开问题。** 参见 [`SECURITY.md`](SECURITY.md) 了解协调披露流程和私人联系渠道。
## 维护
omadia 由 [byte5 GmbH](https://byte5.de) 在 GitHub 组织 [`byte5ai`](https://github.com/byte5ai) 下维护。 外部贡献欢迎; 参见 [`CONTRIBUTING.md`](CONTRIBUTING.md)。
连接信息
猜你喜欢
暂无推荐服务器