Omnara 托管 Agent 平台
用统一 API 在自有机器或云沙箱上运行可持久恢复的 AI Agent。
- Star 数
- ★ 3.2k
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- Go
- FA 评分
- 65/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code · Claude.ai · OpenAI API · Claude API
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 需要从应用 API 启动代码执行任务,并在多个自有 VM 或沙箱间运行的工程团队。
- 不适合
- 只接受单一模型厂商托管平台的团队
- 不能维护 Docker Compose 自托管服务的团队
- 源码审查
- 65/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Omnara 是一个开源、可自托管的托管 Agent 平台,也提供 Omnara Cloud。应用、CLI 和控制台通过同一 REST API 创建 Agent、发送消息并处理审批,事件可实时流出。无状态 Workers 调用模型并运行工具,Postgres 保存每一步事件,使 Agent 在崩溃或重启后能够恢复;机器通过 Omnara daemon 连接平台。它支持兼容的 OpenAI、Anthropic 等模型端点,以及自有机器或多家沙箱提供商。团队可用 TypeScript SDK、CLI、MCP、Slack、Discord 和 GitHub 集成来启动与管理 Agent;自托管时,Agent 历史保存在自己的 Postgres 中。
通过 agent.yaml 或 REST API 配置指令、模型、工具和机器,并创建 Agent。Agent 在 Worker 上构建上下文、调用配置的模型,再通过内置工具、MCP 或自定义工具执行操作;机器可运行 shell 命令和编辑文件。平台将事件写入 Postgres 并流式返回,工具权限可设置为直接执行、等待人工批准或阻止。用户可通过 CLI、控制台或 API 发送后续消息、处理审批,也可配置定时触发器和 Slack、Discord、GitHub 集成。
- 需要从应用 API 启动代码执行任务,并在多个自有 VM 或沙箱间运行的工程团队。
- 希望让 Agent 在 Slack 或 Discord 线程中响应提及、提问并请求审批的团队。
- 需要在 GitHub PR 打开或被提及时触发代码审查、读取 diff 并提交评论的维护者。
- 希望用 Postgres 保存 Agent 历史,以便查询、分析或构建评测数据集的自托管团队。
- 需要定时启动 Agent 或向现有 Agent 发送任务的运维团队。
如何安装或部署这个 Agent?
使用 Omnara Cloud:登录后可使用首个项目提供的 omnara-openrouter 模型提供方和 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."自托管需要 Docker Compose:
git clone https://github.com/omnara-ai/omnara.git
cd omnara
docker compose -f compose.yaml --profile app up -d打开 http://localhost:8000 注册。新实例尚无模型或机器,需要在控制台添加模型提供方和模型、连接机器并与项目共享。生产部署应按自托管部署与配置指南设置。
如何使用这个 Agent?
CLI 首次使用时会在尚未登录的情况下打开浏览器登录。准备 agent.yaml,填写模型和机器池配置,然后启动并聊天:
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>在代码中使用 TypeScript SDK,先创建 API key 并导出为 OMNARA_TOKEN,安装 @omnara/sdk,再用 npx omnara config 获取组织和项目 ID:
npm install @omnara/sdkimport { 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)
}这个 Agent 有哪些优点和局限?
- 同一 API 和配置格式适用于 Omnara Cloud 与自托管部署,可在选定模型提供方和机器环境间组合。
- Postgres 保存逐步事件作为 Agent 状态,文档说明 Worker 重启后可从记录恢复。
- 支持细粒度工具权限、实时事件流和人工审批,适合需要监督执行的团队。
- 自托管时 Agent 历史保存在自己的 Postgres;平台提供 REST API、TypeScript SDK、CLI 和 MCP 服务端。
- 自托管并非单条命令即可完成生产设置:需要 Docker Compose,且还要配置模型、机器和公开部署 URL 等资源。
- 云端快速启动依赖 Omnara Cloud 账户;模型调用和托管沙箱可能产生按用量费用。
- Agent 执行依赖可连接的平台 API、配置的模型端点和机器或沙箱;README 没有描述离线运行模式。
- 部署和集成涉及多种组件,包括 Postgres、Redis、对象存储、Worker 与机器 daemon,增加运维负担。
这个 Agent 与同类方案有什么区别?
与 Claude Managed Agents 和 OpenAI Agents API 相比,Omnara 可自托管、使用兼容模型并选择多种机器环境;前两者分别由 Anthropic 和 OpenAI 托管,模型范围各自围绕其生态。若希望供应商负责全部平台运行且只使用其模型,README 建议考虑相应托管服务;若需要自有基础设施或跨模型选择,可考虑 Omnara。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Omnara 托管 Agent 平台 当前 | 65 · 存在缺口 | 云服务 / SaaS免费版 + 付费版 | ★ 3.2k | 今天 | Go | Codex · Claude Code · Claude.ai · OpenAI API · Claude API |
| TrueForge | 67 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 6.4k | 1 天前 | TypeScript | OpenAI API · Claude API |
| LlamaAgents | 66 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 462 | 今天 | Python | — |
| wigolo | 54 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 5.5k | 3 天前 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
权限文档说明代理只能使用当前配置列出的工具,工具集变更需更新配置,并提供 always_allow、always_ask、always_deny 三种模式,支持最小权限和人工审批,故相关评分较高但未满分:内置工具和自定义工具默认 always_allow。文档及 README 说明代理可连接模型、工具、机器和外部集成,权限、凭据共享范围及事件记录有一定说明;自托管数据存于自有 Postgres,凭据存于 secrets,但所给材料未详述加密、保留和访问审计。CI 声明 govulncheck,依赖清单较完整,但没有扫描结果或依赖处置证据。可取消、归档代理和持久事件日志提供部分恢复线索,未见回滚机制说明。仓库、API 和相关项目有命名归属,但发布者身份未经验证,故来源归属仅部分可确认。
README 描述 API、Postgres 事件日志和无状态 worker 的关系,与持久恢复及事件流说明相互呼应;CI workflow 列出静态检查、单元、集成及端到端任务,但本审查没有运行它们。需配置 Docker、数据库、Redis、模型服务、机器或云资源;没有材料证明这些依赖的可用性保障。API/CLI 示例展示 HTTP 错误处理选项有限,所给文件对运行时错误消息、重试及故障诊断说明不足,因此只给部分分。
README 覆盖自托管与云端、多个模型、机器、工具、集成、调度和开发者 API 等明确受众与场景,给满场景覆盖分。工具权限、机器来源和模型配置展示了能力边界,但高层描述称可运行命令、编辑文件并接入第三方服务,具体隔离边界依赖部署和配置,未充分说明。触发方式有 CLI/API、Slack、Discord、GitHub 和 cron,来源中有例子但缺少触发规则的完整限制细节。提供 Docker Compose、本地开发、生产部署链接及多种接入方式,但所给材料未覆盖所有环境要求和生产配置细节。
README 按快速开始、自托管、架构、功能、示例、FAQ、开发和社区组织,文档链接清晰;提供云端及自托管安装步骤,但生产部署细节外链,且本地默认明确不安全。项目名、CLI、SDK、API、配置名基本一致;给出多个示例和常见问题,但命名稳定性没有跨版本证据。LICENSE 明确提供 Apache 2.0,给满分。README 链接 changelog,安全策略说明稳定版本前跟随 main,但没有本次材料中的具体发布历史。安全报告路径和联系方式清楚;维护责任仍以项目和未知身份发布者的陈述为主,未见具名维护方或支持承诺。
产品可由 CLI、REST、SDK 或 dashboard 启动,并提供事件流、输入、权限和代理示例,输出对常见集成用途较可用,但主要是文档与宣传陈述,缺少静态材料中的具体运行产物证据。统一托管、持久状态、多模型、多机器和权限控制相对仅在应用内实现 agent loop 提供明显附加能力。自托管可免平台费,但需运维数据库、Redis、存储、worker 和机器;云端按模型和 sandbox 用量付费,成本说明存在但不足以估算总体运维成本。
README 中关键架构与能力多链接至配置、权限、API、部署等文档,示例文件和 API 定义也有指向;权限文档具体列出模式和默认值。README、快速开始、权限文档及 CI 对部分概念提供交叉印证,但所给材料没有源码实现或扫描输出,不能独立验证执行层行为。文档区分了默认值、配置示例和产品说明,但诸如跨供应商兼容、恢复能力和安全隔离的部分表述仍属声明,未总是标明适用条件,故不满分。
- README 明确指出自托管本地默认配置不安全;生产环境应按部署与配置指南加固。
- 内置及自定义工具默认无需审批即运行;应逐项检查工具配置,并对外部写操作设置审批或拒绝。
- 自托管代理历史保存在自有数据库,工具、模型及机器会处理任务数据;部署者需自行评估数据保留、凭据保护和网络暴露。