Omnara:開源替代 Claude Managed Agents 的自託管平臺
Show HN: Omnara – Open-Source Alternative to Claude Managed Agents
Omnara 是一個開源、可自託管的智慧體平臺,支援任何模型(OpenAI、Anthropic、OpenRouter、Amazon Bedrock、LiteLLM、Ollama 等)與任何機器。
Omnara 以開源方式提供可自託管的智慧體平臺 允許使用任何模型與機器 為企業提供更靈活的部署與資料掌控
一個可自託管的替代方案,取代 Claude Managed Agents 與 OpenAI 的 Agents API。
網站 · 快速開始 · 檔案 · 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