一个可自托管的 Claude Managed Agents 和 OpenAI Agents API 替代方案。
Omnara 是一个开源托管智能体平台。使用 API 可在任意模型和任意机器上运行 AI 智能体,内置工具、密钥、权限和流式传输。可在 Apache 2.0 下免费自托管,或使用Omnara Cloud。
快速开始
Omnara Cloud
登录app.omnara.com。你的第一个项目自带一个模型提供商(omnara-openrouter)和一个托管沙箱池(default-pool),因此此配置可直接运行。将其保存为agent.yaml:
version: v1 instruction: | 你是一名工程助手。使用你的机器运行命令。 model: provider_config: omnara-openrouter name: anthropic/claude-fable-5.1 machine_sources: - machine_pool_name: default-pool
使用 CLI 启动它(Node.js 22 或更高版本)。如果你尚未登录,第一条命令会打开浏览器让你登录。
npx omnara agents launch --file agent.yaml \ --name "机器助手" \ --message "报告这台机器的操作系统和可用磁盘空间。"
在终端中与智能体聊天,使用npx omnara agents chat <agent-id>,或在仪表盘中打开它,查看其工具调用并回复。
在仪表盘中创建 API 密钥,并将其导出为OMNARA_TOKEN,使用以下命令安装 SDKnpm install @omnara/sdk,并使用由以下命令打印的 org 和 project IDnpx omnara config:
import { readFile } from 'node:fs/promises' import { bearerToken, createOmnaraClient, openAgentEventStream, sdk } from '@omnara/sdk' const client = createOmnaraClient({ auth: bearerToken(process。env。OMNARA_TOKEN!) }) const path = { orgID: 'org_...', projectID: 'proj_...' } const config = await sdk。createAgentConfig({ client, path, body: { source: await readFile('agent.yaml', 'utf8'), source_format: 'yaml' }, }) const launched = await sdk。createAgent({ client, path, body: { config: config。data。id, message: "报告这台机器的可用磁盘空间。" }, }) const agentID = launched。data。agent。id for await (const event of openAgentEventStream({ client, path: { ...path, agentID } })) { console。log(event) }
该快速开始展示了使用 REST API 的相同流程。
要让你的编码智能体完成设置,请给它以下提示词:
Help me set up Omnara by following https://www.omnara.com/SKILL.md
自托管
需要带 Compose 的 Docker。
git clone https://github.com/omnara-ai/omnara.git
cd omnara
docker compose -f compose.yaml --profile app up -d打开http://localhost:8000并注册。本地开发会在以下位置打印验证链接docker compose logs api,因此不需要电子邮件提供商。要从源码构建而不是使用已发布的镜像,请运行docker compose --profile app up -d --build。
新实例还没有任何模型或机器。在控制台中,添加一个模型提供商和一个模型,在机器下连接这台计算机,并将两者都共享给你的项目。实例拥有公共 URL后,沙箱也能正常工作。
将 CLI 指向你的实例并登录:
npx omnara config --api-url http://localhost:8000/api/v1 --issuer-url http://localhost:8000 npx omnara login
在agent.yaml中,使用你的提供商和模型名称,并将machine_pool_name条目替换为machine_name: <your machine>。然后用与上面相同的命令启动它。
本地默认配置有意设置为不安全。对于真实部署,请遵循自托管指南和配置参考。
工作原理
你的产品与 Omnara 通信,Omnara 使用其配置中的模型、工具和机器来运行每个智能体。
flowchart TB
subgraph yours["Your side"]
users(["Your users"]) --> app["Your app<br/>REST API · TypeScript SDK"]
team["Your team<br/>CLI · dashboard<br/>Slack · Discord · GitHub"]
end
subgraph omnara["Omnara"]
api["API<br/>launch · input<br/>event stream · approvals"] <--> pg[("Postgres<br/>each agent's event log")] <--> worker["Workers<br/>run the agent loop"]
end
subgraph plug[" "]
models["Models<br/>OpenAI · Anthropic<br/>OpenRouter · self-hosted"]
tools["Tools<br/>built-in · skills<br/>MCP · custom"]
machines["Machines<br/>sandboxes or your own<br/>laptop, VM, container"]
end
app --> api
team --> api
worker --> models
worker --> tools
worker --> machines
classDef side fill:none,stroke:#8b949e,stroke-width:1px
classDef core fill:#506FCF,stroke:#3D5BB5,stroke-width:1px,color:#ffffff
classDef store fill:#3D5BB5,stroke:#2E4794,stroke-width:1px,color:#ffffff
classDef plugin fill:none,stroke:#85A0E6,stroke-width:1.5px
class users,app,team side
class api,worker core
class pg store
class models,tools,machines plugin
style yours fill:none,stroke:#8b949e,stroke-dasharray:4 3
style omnara fill:#506FCF14,stroke:#506FCF,stroke-width:1.5px
style plug fill:none,stroke:#85A0E6,stroke-dasharray:4 3
linkStyle default stroke:#8b949e,stroke-width:1.5px
- API。你的应用、CLI 和仪表盘都使用同一个 REST API 来启动智能体、发送消息和应答审批。事件会在发生时实时流式返回。
- Postgres。每个智能体的每一步都保存在这里。该记录就是智能体的状态,因此任何工作进程都能在崩溃或重启后重新接管某个智能体。
- 工作进程。无状态进程,负责构建模型上下文、调用模型并运行工具。智能体只在执行一轮时使用工作进程,因此一个工作进程可以服务多个智能体。添加工作进程以同时处理更多轮次。
- 机器。每台机器运行
omnarad守护进程,它向外连接到 Omnara,因此智能体可以在那里运行命令,而无需任何入站端口。
Omnara 还使用 Redis、用于附件和工具输出的 blob 存储,以及内存文件系统。架构文档涵盖了详细信息。
功能
构建智能体
- 任意模型。自带密钥,支持 OpenAI、Anthropic、OpenRouter、Amazon Bedrock、LiteLLM、Ollama 或任何兼容端点,包括你自己托管的模型。
- 工具。内置工具支持 shell 命令、文件、网页搜索与抓取,以及向人提问,此外还有MCP 服务器和自定义工具,它们在你自己的系统中运行。
- 技能。将指令和文件打包一次,附加到任何智能体,智能体会在需要时加载它们。
- 记忆。记忆存储为智能体提供可在对话之间持久保存的文件,并可与其他智能体共享,每个智能体可拥有只读或读写权限。
- 子智能体。一个智能体可以启动具有全新上下文的子智能体,检查它们的进度,并向它们发送新指令。每个子智能体都是一个完整的智能体,你可以对其进行检查。
在任何地方运行它们
- 机器。机器是智能体使用的工具。在任何 macOS 或 Linux 笔记本电脑、虚拟机或容器上安装 Omnara 守护进程,你的智能体就能在那里运行命令和编辑文件,无需入站端口或 SSH 密钥。或者使用来自十一家提供商的沙箱(Arker、Blaxel、boxd、CreateOS、Daytona、E2B、Freestyle、Modal、Superserve、Tenki、Unikraft)。一个智能体可以同时使用多台机器(例如一组 GPU 服务器)并在它们之间迁移。如果你的笔记本电脑离线,智能体可以在沙箱中继续工作,并通过 git 将工作同步回来。
- 持久状态。每一步都会被保存,因此智能体在崩溃、重启和机器断开后能从上次中断的地方继续。
- 定时调度。带时区的 Cron 触发器可以向现有智能体发送消息、从配置文件启动新智能体,或启动一个新的 Slack 或 Discord 线程。
连接它们
- Slack、Discord 和 GitHub。在 Slack 或 Discord 中提及该机器人,即可在线程中启动一个智能体,它会在其中回复、提问并请求批准。在 GitHub 上,智能体可以在拉取请求打开或有人提及时启动,然后读取 diff、发表评论并提交审查。要连接其他服务,可在同一公共 API 上构建自定义集成。
- 流式传输和webhook。将每个事件在发生时实时流式传输,或作为 webhook 接收,并在智能体工作时发送新消息。
- 权限。每个工具都可以立即运行、先询问人员,或被阻止。平台会强制执行该设置,智能体会等待有人批准或拒绝该调用。
- API、SDK 和 CLI。一个 REST API,定义于
api/openapi/openapi.yaml,一个@omnara/sdkTypeScript SDK(omnara)、一个 CLI(
)以及一个 MCP 服务器。
- 控制它们基于角色的访问控制和密钥。面向用户和 API 密钥的组织与项目角色。模型、机器和 MCP 服务器的凭据只存储一次,并显式地与每个项目共享。
- 多租户。一次部署可服务多个组织,每个组织都有自己的成员、项目、密钥、模型提供商和机器。自托管运营者可以为每个新组织提供默认模型和沙箱,就像 Omnara Cloud 所做的那样。
- 你的数据。自托管部署将每个智能体的历史记录保存在你自己的 Postgres 中,你可以在那里查询它用于分析、评估和训练数据集。
Omnara 与 Claude Managed Agents 和 OpenAI 的 Agents API 对比
Claude Managed Agents以及 OpenAI 的Agents API都是托管服务,用于在一家公司的模型上运行智能体。Omnara 做的是同样的事,但作为一个开源平台,你可以在任何地方运行它,并使用任何模型。
| Omnara | Claude Managed Agents | OpenAI 的 Agents API | |
|---|---|---|---|
| 来源 | 开源(Apache 2.0) | 闭源 | 开源 harness(Codex)。托管服务由 OpenAI 提供。 |
| 模型 | 任何兼容模型 | Claude | OpenAI |
| 智能体循环 | Omnara 的,可与任何模型配合使用 | Anthropic 的,专为 Claude 构建 | Codex,由 OpenAI 运行和更新 |
| 平台运行位置 | Omnara Cloud,或你自己的基础设施 | Anthropic 的云 | OpenAI 的云 |
| 智能体运行位置 | 来自多个提供商的沙箱,或你自己的机器 | Anthropic 沙箱,或你自己的沙箱 | OpenAI 沙箱、合作伙伴沙箱,或你自己的机器 |
| 运维 | 由 Omnara Cloud 托管。自托管时由你运维。 | 由 Anthropic 托管。如果你自托管沙箱,则由你运行沙箱侧。 | 由 OpenAI 托管。如果你自带环境,则由你运行环境。 |
| 智能体历史记录 | 在 Omnara Cloud 上由 Omnara 存储,可通过 API 查询。自托管时存储在你自己的 Postgres 中。 | 由 Anthropic 存储,可通过 API 读取和删除。目前不符合零数据保留或 HIPAA BAA 覆盖的条件。 | 由 OpenAI 存储。不支持零数据保留。仅限美国数据驻留。 |
| 定价 | 自托管免费。在 Omnara Cloud 上,使用你自己的密钥和机器免费,或按用量付费使用我们的模型和沙箱。 | Claude token 费率加每活跃会话小时 $0.08 | OpenAI 模型费率,外加 OpenAI 工具和托管沙箱的标准费率 |
如果你使用一家公司的模型并希望该公司为你运行一切,请选择 Claude Managed Agents 或 Agents API。如果你想自选模型和机器、自行运行平台,或将智能体数据保存在你自己的数据库中,请选择 Omnara。
Omnara 的适用场景
| 如果你使用 | 它适合 | Omnara 增加 |
|---|---|---|
| 工作流构建器,例如 n8n 或 Zapier | 可预测的、逐步的自动化 | 在机器上运行代码并保持状态数天的开放式智能体 |
| 智能体框架,例如 Mastra、LangChain 或 OpenAI Agents SDK | 应用代码中的智能体逻辑 | 托管、状态、机器、权限和集成,智能体通过 API 创建和变更,而不是重新部署 |
| 智能体运行框架,例如 Claude Code、Claude Agent SDK、Codex、OpenCode 或 Pi | 在终端中或单台机器上运行的一个智能体循环 | 作为服务运行的云端智能体,跨机器和用户,从你的应用、Slack、GitHub 或定时计划启动 |
| 托管式智能体平台,例如 Claude Managed Agents 或 Agents API | 基于单一公司模型的托管智能体 | 与托管智能体相同的模型,开源,可运行于任意模型,且可自托管 |
示例
其中每一个都是一个agent.yaml外加一个SKILL.md位于examples/,你可以用一条提示词将它们中的任何一个部署到你的编码智能体。
- Slack 编码智能体修复你在 Slack、Discord 或 GitHub pull request 中提到的问题,并打开一个 PR。
- PR 审查智能体基于仓库的检出副本审查你的 GitHub pull request,并留下行内发现。
- SRE 智能体调查生产环境问题,例如 5xx 激增。
- 浏览器智能体在真实浏览器中处理长时间运行的任务。
- PostHog 分析智能体将昨天的产品使用情况与 7 天平均值进行比较,并报告变化。
- Reddit、X和LinkedIn信号智能体总结过去 24 小时内关于你所选主题的帖子。
- 视频生成智能体根据简要说明制作短视频。
此外还有代码示例,包括一个CLI 聊天应用基于 TypeScript SDK 构建,通过 webhook 的自定义工具,以及一个SharePoint 文件系统挂载。
从你的编码智能体使用 Omnara
MCP 服务器。连接 Claude Code、Codex、Cursor 或任何支持 OAuth 的 MCP 客户端到https://app.omnara.com/mcp以启动和管理 Omnara 智能体。你通过浏览器登录,因此无需粘贴令牌。在 Claude 中,从连接器目录添加它。Omnara 也以com.omnara/omnara的身份列在官方 MCP Registry 中。
claude mcp add --transport http omnara https://app.omnara.com/mcp codex mcp add omnara --url https://app.omnara.com/mcp
然后使用/mcp在 Claude Code 中登录,或使用codex mcp login omnara在 Codex 中登录。参见连接 MCP 客户端。
CLI。 omnara从你的终端或编码智能体的 shell 管理智能体、配置文件、机器、模型提供商、密钥、技能和 cron 触发器。运行npx omnara --help以开始。
设置技能。 skills/setup-omnara-agent,同时也提供于omnara.com/SKILL.md,引导编码智能体为你的项目设置 Omnara。
面向 LLM 的文档。 docs.omnara.com/llms.txt。
常见问题
Omnara 是什么?一个开源托管式智能体平台,可在任意模型和任意机器上运行 AI 智能体。
费用是多少?无需自托管。Omnara Cloud 没有平台费用。你可以免费自带模型密钥和机器,或者按提供商 token 费率按需付费使用我们的模型,并按活跃时间和保留存储为我们的沙箱付费。参见定价。
我可以自托管吗?可以。在本地用 Docker Compose 运行,然后按照自托管指南进行生产部署。API、CLI、SDK 和配置格式在 Omnara Cloud 和自托管部署中完全相同。
支持哪些模型?任何兼容 OpenAI Responses、OpenAI Chat Completions 或 Anthropic Messages 端点的模型,包括 OpenAI、Anthropic、OpenRouter、Amazon Bedrock、LiteLLM 和 Ollama。
开发
源码开发需要 中声明的 Go 版本、go.mod、Node.js 24 或更新版本(含 Corepack)、ripgrep,以及带 Compose 的 Docker。用 运行快速仓库门禁。参见make verify。CONTRIBUTING.md了解完整测试套件、生成代码工作流和拉取请求要求。