关于 Omnara
Omnara 是面向团队的开源托管 Agent 平台,用于构建和运行持久化 AI Agent。它让 Agent 使用可配置的模型、工具和机器,并保存运行状态,同时提供 API、命令行和仪表板。
主要功能
- 01使用可配置模型和机器运行 Agent
- 02重启后保留 Agent 状态
- 03通过审批权限管理工具调用
- 04连接 Slack、Discord 和 GitHub
- 05安排 Agent 运行并流式传输事件
适用场景
- 01在本地机器或沙箱运行长期 Agent
- 02审查拉取请求并响应仓库事件
- 03使用 Agent 调查生产故障
- 04从应用或定时任务启动 Agent
MCP 相关
Omnara 提供位于 https://app.omnara.com/mcp 的 MCP 服务,供 MCP 客户端启动和管理 Omnara Agent。该平台也可将 MCP 服务配置为 Agent 工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://app.omnara.com/mcpclaude mcp add --transport http com-omnara-omnara https://app.omnara.com/mcp{"mcpServers":{"com-omnara-omnara":{"type":"http","url":"https://app.omnara.com/mcp"}}}在 Cursor 中打开{"servers":{"com-omnara-omnara":{"type":"http","url":"https://app.omnara.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-omnara-omnara":{"type":"http","url":"https://app.omnara.com/mcp"}}}{"mcpServers":{"com-omnara-omnara":{"serverUrl":"https://app.omnara.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
开源托管 Agent 平台
Claude Managed Agents 和 OpenAI's Agents API 的可自托管替代方案。
网站 · 快速入门 · 文档 · API · 更新日志 · Discord
Omnara 是一个开源托管 Agent 平台。使用 API,即可在任意模型和任意机器上运行 AI Agent,并内置工具、密钥、权限和流式传输功能。根据 Apache 2.0 许可免费自托管,或使用 Omnara Cloud。
快速入门
Omnara Cloud
在 app.omnara.com 登录。你的第一个项目已配置模型提供商(omnara-openrouter)和托管沙盒池
(default-pool),因此此配置可以直接运行。将其保存为 agent.yaml:
version: v1
instruction: |
You are an engineering assistant. Use your machine to run commands.
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 "Machine assistant" \
--message "Report this machine's operating system and free disk space."
在终端中使用 npx omnara agents chat <agent-id> 与 Agent 对话,或在控制面板中打开它,查看工具调用并回复。
使用 TypeScript SDK 从代码中启动
在控制面板中创建 API 密钥,并将其导出为 OMNARA_TOKEN;使用 npm install @omnara/sdk 安装 SDK,并使用 npx omnara config 输出的组织 ID 和项目 ID:
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: "Report this machine's free disk space." },
})
const agentID = launched.data.agent.id
for await (const event of openAgentEventStream({ client, path: { ...path, agentID } })) {
console.log(event)
}
快速入门中通过 REST API 展示了相同的流程。
若要让你的编码 Agent 执行设置,请向它提供以下提示词:
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。
新实例尚未配置模型或机器。在控制台中添加模型提供商和模型,在 Machines 下连接这台计算机,并将两者共享给你的项目。实例拥有公共 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 则使用配置中的模型、 工具和机器运行每个 Agent。
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。 你的应用、命令行和仪表板都使用同一个 REST API 来 启动 Agent、发送消息和处理审批。事件会在发生时实时传回。
- Postgres。 每个 Agent 的每一步都会保存在这里。这些记录就是 Agent 的状态,因此发生崩溃或重启后,任何工作进程都可以接手 Agent。
- 工作进程。 无状态进程,用于构建模型上下文、调用 模型和运行工具。Agent 只会在执行回合时使用工作进程, 因此一个工作进程可以服务多个 Agent。增加工作进程即可同时处理 更多回合。
- 机器。 每台机器都会运行
omnarad守护进程,该进程会主动连接到 Omnara,因此 Agent 无需任何入站端口即可在机器上运行命令。
Omnara 还使用 Redis、用于附件和工具输出的 Blob 存储,以及 内存文件系统。 架构文档介绍了详细信息。
功能
构建 Agent
- 任意模型。 使用 你自己的 OpenAI、Anthropic、OpenRouter、Amazon Bedrock、LiteLLM、 Ollama 密钥,或任何兼容的端点,包括由你自行托管的模型。
- 工具。 内置工具包括运行 shell 命令、处理文件、网页搜索和抓取,以及向人员提问;此外还有 MCP 服务和 在你自己的系统中运行的自定义工具。
- 技能。 将指令和文件打包一次, 即可附加到任意 Agent;Agent 需要时会加载这些内容。
- 记忆。 记忆存储为 Agent 提供可在对话之间保留的文件,也可以与其他 Agent 共享,并可针对每个 Agent 设置只读或读写权限。
- 子 Agent。 Agent 可以在全新的上下文中启动子 Agent、查看其进度,并向它们发送 新指令。每个子 Agent 都是完整的 Agent,可供你检查。
随处运行
- 机器。 机器是 Agent 使用的工具。在任意 macOS 或 Linux 笔记本电脑、VM 或容器上安装 Omnara 守护进程,Agent 即可在那里运行命令和编辑文件,无需入站端口或 SSH 密钥。你也可以使用 11 家服务提供商提供的沙盒(Arker、Blaxel、boxd、CreateOS、 Daytona、E2B、Freestyle、Modal、Superserve、Tenki、Unikraft)。Agent 可以同时使用多台机器 (例如一组 GPU 服务器),并在它们之间切换。如果你的 笔记本电脑离线,Agent 可以在沙盒中继续运行,并通过 git 将工作 同步回来。
- 持久状态。 每一步都会 保存,因此发生崩溃、重启或机器断连后,Agent 可以从中断处继续运行。
- 计划任务。 带时区的 Cron 触发器可以向现有 Agent 发送消息、从配置启动新 Agent,或 启动新的 Slack 或 Discord 讨论串。
连接它们
- Slack、Discord 和 GitHub。 在 Slack 或 Discord 中提及机器人,即可在讨论串中启动 Agent;Agent 会在其中回复、提问并请求批准。在 GitHub 上,打开拉取请求或有人提及 Agent 时,都可以启动 Agent;随后 Agent 会读取差异、发表评论并提交评审。要连接其他服务,可基于同一公共 API 构建自定义集成。
- 事件流和 Webhook。 实时传输每个事件,或通过 Webhook 接收事件,并在 Agent 工作时发送新消息。
- 权限。 每个工具都可以立即运行、先询问人员,或被禁止。平台会强制执行此设置,并让 Agent 等待,直到有人批准或拒绝调用。
- API、SDK 和 CLI。 一个定义于
api/openapi/openapi.yaml的 REST API、一个 TypeScript SDK(@omnara/sdk)、一个 CLI(omnara)和一个 MCP 服务。
管控它们
- 基于角色的访问控制 和密钥。 为用户和 API 密钥设置组织和项目角色。模型、机器和 MCP 服务的凭据只需存储一次,即可明确共享给各个项目。
- 多租户。 一个部署可服务多个组织,每个组织都有自己的成员、项目、密钥、模型提供商和机器。可自托管的运营者可以为每个新组织提供默认模型和沙盒,就像 Omnara Cloud 一样。
- 你的数据。 可自托管的部署会将每个 Agent 的历史记录保存在你自己的 Postgres 中,你可以查询这些记录以进行分析、评估和训练数据集。
Omnara 与 Claude Managed Agents 和 OpenAI's Agents API
Claude Managed Agents 和 OpenAI's Agents API 是托管服务,可在一家公司的模型上运行 Agent。Omnara 提供相同功能,是一个可在任何地方运行、适用于任何模型的开源平台。
| Omnara | Claude Managed Agents | OpenAI's Agents API | |
|---|---|---|---|
| 源代码 | 开源(Apache 2.0) | 闭源 | 开源执行框架(Codex)。托管服务由 OpenAI 提供。 |
| 模型 | 任何兼容的模型 | Claude | OpenAI |
| Agent 循环 | Omnara 的 Agent 循环,适用于任何模型 | Anthropic 的 Agent 循环,专为 Claude 构建 | Codex,由 OpenAI 运行和更新 |
| 平台运行位置 | Omnara Cloud,或你自己的基础设施 | Anthropic 的云端 | OpenAI 的云端 |
| Agent 运行位置 | 多家提供商的沙箱,或你自己的机器 | Anthropic 的沙箱,或你自己的沙箱 | OpenAI 的沙箱、合作伙伴的沙箱,或你自己的机器 |
| 运维 | 在 Omnara Cloud 上由我们托管。自托管时由你运维。 | 由 Anthropic 托管。自托管沙箱时,沙箱部分由你运行。 | 由 OpenAI 托管。使用自己的环境时,由你运行环境。 |
| Agent 历史记录 | 在 Omnara Cloud 上由 Omnara 存储,并可通过 API 查询。自托管时存储在你自己的 Postgres 中。 | 由 Anthropic 存储,可通过 API 读取和删除。目前不符合零数据保留或 HIPAA BAA 覆盖条件。 | 由 OpenAI 存储。不支持零数据保留。仅限美国数据驻留。 |
| 定价 | 可免费自托管。在 Omnara Cloud 上,使用你自己的密钥和机器可免费使用;也可按使用量付费,使用我们的模型和沙箱。 | Claude 令牌费率,另加每个活跃会话小时 0.08 美元 | OpenAI 模型费率,另加 OpenAI 工具和托管沙箱的标准费率 |
如果你使用一家公司的模型,并希望由该公司负责运行所有服务,请选择 Claude Managed Agents 或 Agents API。如果你想自行选择模型和机器、自己运行平台,或将 Agent 数据保存在自己的数据库中,请选择 Omnara。
Omnara 的定位
| 如果你使用 | 适用场景 | Omnara 提供 |
|---|---|---|
| 工作流构建器,例如 n8n 或 Zapier | 可预测的分步自动化 | 可在机器上运行代码并持续保存状态数天的开放式 Agent |
| Agent 框架,例如 Mastra、LangChain 或 OpenAI Agents SDK | 在应用代码中实现 Agent 逻辑 | 托管、状态、机器、权限和集成;通过 API 创建和修改 Agent,无需重新部署 |
| Agent 执行框架,例如 Claude Code、Claude Agent SDK、Codex、OpenCode 或 Pi | 在终端或单台机器上运行单个 Agent 循环 | 作为服务运行、跨机器和用户工作的云端 Agent,可从你的应用、Slack、GitHub 或定时任务启动 |
| 托管 Agent 平台,例如 Claude Managed Agents 或 Agents API | 在一家公司的模型上运行托管 Agent | 同样的托管 Agent 模式,开源,适用于任何模型,并且可自托管 |
示例
每个示例都包含一个 agent.yaml 和一个 SKILL.md,位于 examples/ 中,
你只需给编码 Agent 一个提示词,即可部署任意示例。
- Slack 编码 Agent 会修复你在 Slack、Discord 或 GitHub 拉取请求中提到的问题,并创建 PR。
- PR 审查 Agent 会根据仓库的检出副本审查你的 GitHub 拉取请求,并留下内联发现。
- SRE Agent 会调查生产环境问题,例如 5xx 激增。
- 浏览器 Agent 会在真实浏览器中处理长时间运行的任务。
- PostHog 分析 Agent 会比较昨日的产品使用情况与 7 天平均值,并报告变化。
- Reddit、X 和 LinkedIn 信号 Agent 会汇总你选择的主题最近 24 小时内的帖子。
- 视频生成 Agent 会根据简报制作短视频。
此外还有一些代码示例,包括基于 TypeScript SDK 构建的 CLI 聊天应用、 通过 webhook 使用自定义工具,以及 SharePoint 文件系统挂载。
在编码 Agent 中使用 Omnara
MCP 服务。 将 Claude Code、Codex、Cursor 或任何支持 OAuth 的 MCP 客户端连接到
https://app.omnara.com/mcp,即可启动和管理 Omnara Agent。你可以通过浏览器登录,无需粘贴令牌。在
Claude 中,可从连接器目录添加。Omnara
也已列入官方 MCP Registry,名称为 com.omnara/omnara。
claude mcp add --transport http omnara https://app.omnara.com/mcp
codex mcp add omnara --url https://app.omnara.com/mcp
然后在 Claude Code 中使用 /mcp 登录,或在 Codex 中运行 codex mcp login omnara。
请参阅连接 MCP 客户端。
CLI。 omnara 可从终端或编码 Agent 的 Shell 管理
Agent、配置文件、机器、模型提供商、密钥、技能和 cron 触发器。运行 npx omnara --help 即可开始。
设置技能。 skills/setup-omnara-agent
也可通过 omnara.com/SKILL.md 访问,它会引导编码
Agent 为你的项目设置 Omnara。
面向大模型的文档。 docs.omnara.com/llms.txt。
常见问题
什么是 Omnara? 一个开源的托管式 Agent 平台,可在任意模型和任意机器上运行 AI Agent。
费用是多少? 可自托管,且无需付费。Omnara Cloud 不收取平台费用。你可以免费使用自己的模型密钥和机器,也可以按使用量付费,模型按提供商的令牌费率计费,沙箱则按活跃时间和保留存储空间计费。请参阅定价。
可以自托管吗? 可以。使用 Docker Compose 在本地运行,然后参阅 自托管指南进行生产环境部署。Omnara Cloud 和自托管部署使用相同的 API、CLI、SDK 和配置格式。
支持哪些模型? 任何使用兼容 OpenAI Responses、OpenAI Chat Completions 或 Anthropic Messages 的端点的模型,包括 OpenAI、 Anthropic、OpenRouter、Amazon Bedrock、LiteLLM 和 Ollama。
开发
源码开发需要 go.mod 中声明的 Go 版本、Node.js 24 或更高版本及 Corepack、ripgrep,以及带 Compose 的 Docker。运行
make verify 可快速执行仓库检查。完整测试套件、生成代码工作流和拉取请求要求,请参阅
CONTRIBUTING.md。
社区
Discord · GitHub Issues · X · 安全
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。