跳到正文
Hacker News (official RSS)(github.com)·· 10 小時前精選AI 評分79

Omnara:開源替代 Claude Managed Agents 的自託管平臺

Show HN: Omnara – Open-Source Alternative to Claude Managed Agents

AI 導讀

Omnara 是一個開源、可自託管的智慧體平臺,支援任何模型(OpenAI、Anthropic、OpenRouter、Amazon Bedrock、LiteLLM、Ollama 等)與任何機器。

推薦理由

Omnara 以開源方式提供可自託管的智慧體平臺 允許使用任何模型與機器 為企業提供更靈活的部署與資料掌控

正文 · AI 翻譯

Omnara Omnara

一個可自託管的替代方案,取代 Claude Managed Agents 與 OpenAI 的 Agents API。

License: Apache 2.0 npm: @omnara/sdk Discord

網站 · 快速開始 · 檔案 · API · 變更記錄 · Discord

Omnara 是一個開源的管理式代理平臺。使用 API 可在任何模型與任何機器上執行 AI 代理,內建工具、秘密、許可權與串流功能。可免費自託管於 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> 與代理聊天,或在儀錶板中開啟它以觀看其工具呼叫並回覆。

使用 TypeScript SDK 從程式碼啟動它

在儀錶板中建立 API 金鑰並以 OMNARA_TOKEN 匯出,使用 npm install @omnara/sdk 安裝 SDK,並使用組織與專案 ID,npx 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: "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)
}

The quickstart 顯示相同流程,使用 REST API。

若要讓您的程式碼代理完成設定,請給它以下提示:

Help me set up Omnara by following https://www.omnara.com/SKILL.md

自託管

需要 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 並註冊。本機開發會在 docker compose logs api 輸出驗證連結,故不需要電子郵件服務。若要從原始碼建置而非使用已釋出映像,請執行 docker compose --profile app up -d --build。

新例項尚無模型或機器。在控制台中,加入模型供應商與模型,將此電腦連結至 Machines,並與專案共用兩者。沙盒也可在例項擁有 public 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>。然後以相同的指令啟動它。

本機預設故意不安全。若要正式部署,請參考 self-hosting guide 與 configuration reference。

工作原理

您的產品與 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. 每個代理的每一步都儲存在此。該記錄即為代理的狀態,任何工作者都能在崩潰或重新啟動後接手代理。
  • Workers. 無狀態流程,負責構建模型上下文、呼叫模型並執行工具。代理僅在其輪到時使用工作者, 因此一個工作者可為多個代理服務。新增工作者可同時處理更多輪次。
  • Machines. 每臺機器執行 omnarad 守護程式,該程式會連線至 Omnara,讓代理能在其上執行指令,無需任何進站埠。

Omnara 也使用 Redis、Blob 儲存用於附件與工具輸出,以及記憶體檔案系統。詳細資訊請參考 architecture docs。

功能

構建代理

  • Any model. 帶入您自己的 OpenAI、Anthropic、OpenRouter、Amazon Bedrock、LiteLLM、Ollama 或任何相容端點的金鑰,包括您自行託管的模型。
  • 工具. 內建工具用於 shell 命令、檔案、網路搜尋與抓取,以及向人詢問問題,另外還有 MCP 伺服器 和 自訂工具,可在您自己的系統中執行。
  • Skills. 一次打包指令與檔案,附加至任何代理,代理在需要時會載入。
  • Memory. 記憶體儲存能給代理檔案,持續於對話間並可與其他代理共用,每個代理可設定讀取或讀寫許可權。
  • Subagents. 代理可啟動子代理,使用全新上下文,檢查進度並傳送新指示。每個子代理都是完整代理,您可檢查。

隨處執行

  • Machines. 機器是代理使用的工具。將 Omnara 守護程式安裝於任何 macOS 或 Linux 筆記本、虛擬機器或容器,您的代理即可在那裡執行指令並編輯檔案,無需開放入站埠或使用 SSH 金鑰。或使用來自十一個供應商的沙盒(Arker、Blaxel、boxd、CreateOS、Daytona、E2B、Freestyle、Modal、Superserve、Tenki、Unikraft)。代理可同時使用多臺機器(例如一組 GPU 伺服器),並在它們之間切換。若筆記本離線,代理仍可在沙盒中繼續工作,並以 git 同步回來。
  • Durable state. 每一步皆已儲存,故代理在崩潰、重啟或機器斷線後能從中斷處繼續。
  • Schedules. 帶時區的 Cron 觸發可訊息已存在的代理,從設定檔啟動新代理,或 啟動新的 Slack 或 Discord 主題。

連結它們

  • Slack、Discord 與 GitHub. 在 Slack 或 Discord 提及機器人即可在主題中啟動代理,代理會回覆、提問並請求批准。於 GitHub,代理可於 pull request 開啟或被提及時啟動,然後閱讀差異、留言並提交審查。若要連線其他服務,請於同一公開 API 建置 自訂整合。
  • Streaming 與 webhooks. 以即時串流每個事件或以 webhook 接收,並在代理工作時傳送新訊息。
  • Permissions. 每個工具可即時執行、先詢問人員或被阻止。平臺會執行此設定,代理會等待有人批准或拒絕呼叫。
  • API、SDK 與 CLI. 在 api/openapi/openapi.yaml 定義的 REST API、TypeScript SDK (@omnara/sdk)、CLI (omnara) 與 MCP 伺服器。

控制它們

  • Role-based access control 與 secrets. 組織與專案為使用者與 API 金鑰設定角色。模型、機器與 MCP 伺服器的憑證只存一次,並明確與每個專案共用。
  • Multi-tenant. 一次部署可服務多個組織,每個組織皆有自己的成員、專案、機密、模型供應商與機器。自託管運營者可為每個新組織提供預設模型與沙盒,正如 Omnara Cloud 所做。
  • 您的資料。 自託管部署將每個代理的歷史紀錄儲存在您自己的 Postgres,您可在其中查詢以進行分析、評估與訓練資料集。

Omnara 與 Claude 管理代理以及 OpenAI 的代理 API

Claude Managed Agents 與 OpenAI 的 Agents API 是託管服務,可於單一公司模型上執行代理。Omnara 執行相同工作,作為可在任何地方、使用任何模型的開源平臺。

Omnara Claude Managed Agents OpenAI's Agents API
來源 開源 (Apache 2.0) 關閉 開源工具 (Codex)。託管服務屬於 OpenAI。
模型 任何相容模型 Claude OpenAI
代理迴圈 Omnara 的,支援任何模型 Anthropic 的,為 Claude 設計 Codex,由 OpenAI 執行並更新
平臺執行位置 Omnara Cloud,或您自己的基礎設施 Anthropic 的雲端 OpenAI 的雲端
代理執行位置 多家供應商的沙盒,或您自己的機器 Anthropic 的沙盒,或您自己的沙盒 OpenAI 的沙盒、合作夥伴沙盒,或您自己的機器
作業 在 Omnara Cloud 上管理。自行託管時您自行操作。 由 Anthropic 管理。自行託管沙盒時您負責沙盒端。 由 OpenAI 管理。您帶自己的環境時負責執行。
代理歷史 由 Omnara 在 Omnara Cloud 儲存,並可透過 API 查詢。自行託管時則儲存在您自己的 Postgres。 由 Anthropic 儲存,可透過 API 讀取與刪除。目前不符合 Zero Data Retention 或 HIPAA BAA 覆蓋。 由 OpenAI 儲存。不支援 Zero Data Retention。僅限美國資料居留。
價格 自行託管免費。在 Omnara Cloud 上,使用自己的金鑰與機器免費,或按使用付費我們的模型與沙盒。 Claude 代幣費率加上每個活躍會話小時 $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 coding agent 修復你在 Slack、Discord 或 GitHub Pull Request 中提到的問題,並開啟 PR。
  • PR review agent 對你的 GitHub Pull Request 進行審查,基於倉庫的檢出,並留下內聯發現。
  • SRE agent 調查生產環境問題,例如 5xx 峰值。
  • Browser agent 在實際瀏覽器中執行長時間執行的任務。
  • PostHog analytics agent 將昨天的產品使用量與七天平均值做比較,並報告變更。
  • Reddit、X 與 LinkedIn 的訊號代理將你選擇主題的過去 24 小時貼文進行摘要。
  • Video generation agent 以簡短提示產生短影片

也有針對 CLI chat app 的程式碼範例,基於 TypeScript SDK,custom tools over webhooks,以及 SharePoint filesystem mount。

在您的程式碼代理中使用 Omnara

MCP server. 連線 Claude Code、Codex、Cursor 或任何支援 OAuth 的 MCP 客戶端至 https://app.omnara.com/mcp,以啟動並管理 Omnara 代理。您透過瀏覽器登入,無需貼上任何 token。在 Claude 中,從connectors directory新增它。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 或 Codex 分別使用 /mcp 或 codex mcp login omnara 登入。請參閱 Connecting MCP clients。

CLI. omnara 透過您的終端機或程式碼代理的 shell 管理代理、配置檔、機器、模型供應商、機密、技能以及 cron 觸發器。執行 npx omnara --help 開始。

Setup skill. skills/setup-omnara-agent,亦於 omnara.com/SKILL.md 供應,為程式碼代理指導如何為您的專案設定 Omnara。

Docs for LLMs. docs.omnara.com/llms.txt。

常見問題

What is Omnara? 一個開源的代理管理平臺,可在任何模型與任何機器上執行 AI 代理。

How much does it cost? 自行部署不需費用。Omnara Cloud 無平臺費。您可免費帶入自己的模型金鑰與機器,或按使用付費,對於我們的模型按供應商 token 速率計費,沙箱則按活躍時間與保留儲存計費。請參閱 pricing。

Can I self-host it? 可以。您可以在本機使用 Docker Compose 執行,然後依照 self-hosting guide 進行生產環境部署。API、CLI、SDK 與設定格式在 Omnara Cloud 與自行部署版本皆相同。

Which models work? 任何符合 OpenAI Responses、OpenAI Chat Completions 或 Anthropic Messages 相容端點的模型皆可使用,包括 OpenAI、Anthropic、OpenRouter、Amazon Bedrock、LiteLLM 與 Ollama。

開發

原始碼開發需要符合 go.mod 所宣告的 Go 版本,Node.js 24 或更新版配合 Corepack、ripgrep 與 Docker Compose。執行 make verify 以啟動快速倉庫門檻。請參閱 CONTRIBUTING.md 瞭解完整測試套件、生成程式碼工作流程與拉取請求期望。

社群

Discord · GitHub Issues · X · Security

授權

Apache License 2.0