omnara-ai/omnara
The open-source managed agent platform. A self-hostable alternative to Claude Managed Agents and OpenAI's Agents API.
Omnara – オープンソースのマネージドエージェントプラットフォーム
概要 – Omniraは、任意のモデルと任意のマシン上でAIエージェント(LLM駆動のボット)を実行できるセルフホスト可能なプラットフォームです。エージェントの起動、イベントのストリーミング、承認処理のためのREST API、TypeScript SDK、CLIを提供します。Claude Managed AgentsやOpenAIのAgents APIのオープンソース代替品と考えてください。ただし、自社のインフラ上で実行し、任意のモデルを選択できます。
コアコンセプト
| コンセプト | 機能 |
|---|---|
| エージェント | agent.yaml(モデル、ツール、マシンプール、メモリなど)で定義されます。プラットフォームはエージェントループ(プロンプト作成→モデル呼び出し→ツール実行→状態保存)を実行します。 |
| マシン | リモートランタイム(ラップトップ、VM、コンテナ、またはサンドボックスプロバイダー)。各マシンはomnaradデーモンを実行し、エージェントがインバウンドポートを開かずにシェルコマンドやファイル編集などを実行できるようにします。 |
| ツールとスキル | 組み込みツール(シェル、ファイルI/O、Web検索、人間への質問)に加え、カスタムツールと再利用可能なスキル(バンドルされた指示/ファイル)。 |
| メモリストア | エージェントが会話をまたいで読み書きできる永続的なファイルのようなストレージ。エージェント間で共有可能です。 |
| サブエージェント | エージェントは新しいコンテキストのサブエージェントを生成し、その進行状況を監視し、結果を引き継ぐことができます。 |
| 統合 | Slack、Discord、GitHub、Webhook、ストリーミングイベント、および同じ公開APIを介したカスタム統合。 |
| 権限とRBAC | 誰がどのツールを実行できるか、データを表示できるか、アクションを承認できるかを細かく制御します。 |
仕組み(高レベルアーキテクチャ)
- API – アプリ、CLI、またはダッシュボードが中央のHTTP API(OpenAPI仕様付き)と通信します。エージェントの起動、メッセージ送信、イベントのストリーミングを処理します。
- Postgres – 各エージェントのすべてのステップがここに記録され、永続的な状態を提供します。ワーカーはクラッシュ後にエージェントを再開できます。
- ワーカー – エージェントループを実行するステートレスプロセスです。1つのワーカーが多くのエージェントに対応でき、水平方向にスケールできます。
- マシン – セキュアなアウトバウンド接続を公開するリモートデーモン(
omnarad)。エージェントはmacOS/Linuxホストやサンドボックスプロバイダー(Arker、Modalなど)でコマンドを実行できます。 - RedisとBlobストレージ – キュー、一時データ、添付ファイル/ツール出力の保存に使用されます。
はじめに
1. Omnira Cloudを試す(インストール不要)
# サンプル設定を保存
cat > agent.yaml <<'EOF'
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
EOF
# CLI経由で起動(Node 22+)
npx omnira agents launch --file agent.yaml \
--name "Machine assistant" \
--message "Report this machine's operating system and free disk space."
必要に応じて、CLIがブラウザを開いてログインさせます。
2. セルフホスト(Docker Compose)
git clone https://github.com/omnira-ai/omnira.git
cd omnira
docker compose -f compose.yaml --profile app up -d # API、ワーカー、DBなどを起動
http://localhost:8000を開き、サインアップします(確認リンクがコンテナログに表示されます)。- Web UIでモデルプロバイダー、モデル、マシンを追加します。
- CLIをインスタンスに向けます:
npx omnira config --api-url http://localhost:8000/api/v1 --issuer-url http://localhost:8000
npx omnira login
- 同じ
agent.yaml(machine_pool_nameをマシン名に置き換え)を使用して、上記のように起動します。
注目の機能
- モデル非依存 – OpenAI、Anthropic、OpenRouter、LiteLLM、Ollama、または互換性のある任意のエンドポイントをサポート。
- ツールエコシステム – 組み込みのシェル、ファイル、Web検索、人間への質問ツール、MCPサーバー、カスタムWebhookツール。
- スキル – エージェントがオンデマンドでロードできる再利用可能な指示/ファイルのバンドル。
- 永続的な状態 – すべてのターンがPostgresに保存され、エージェントはクラッシュやマシン損失を乗り越えられます。
- マルチテナント – 1つのデプロイメントで複数の組織をホストでき、各組織が独自のシークレット、モデル、マシンを持てます。
- スケジューリング – Cronスタイルのトリガーでエージェントにメッセージを送信したり、新しいエージェントを起動したり、Slack/Discordスレッドを開始したりできます。
- 権限 – ツール実行前に承認が必要になる場合があり、プラットフォームがこれらのルールを強制します。
- ストリーミングとWebhook – 統合のためのリアルタイムイベントストリームまたはWebhookコールバック。
使用例(examples/内に提供)
- コーディングアシスタント – Slack/Discord/GitHub PRのバグを修正し、新しいPRを開きます。
- SREボット – 5xxスパイクを診断し、ログをクエリし、修正策を提案します。
- ブラウザ自動化 – 長時間実行されるWebタスクのために実際のブラウザを操作します。
- ソーシャルメディアシグナルエージェント – トピックに関するReddit、X、またはLinkedInの投稿の過去24時間を要約します。
- 動画生成 – テキストの概要から短いビデオを作成します。
- カスタムCLIチャットアプリ – TypeScript SDK上に構築されたシンプルなターミナルUI。
価格とライセンス
- ライセンス – Apache 2.0(無料、寛容)。
- セルフホスト – プラットフォーム料金なし。モデルと使用するサンドボックスリソースの費用のみ負担。
- Omnira Cloud – 独自のキー/マシンを持ち込む場合は無料ティア。ホストされたモデルとサンドボックス時間は従量課金制。
コミュニティと貢献
- Discord – https://discord.gg/Dc46sYk6e3
- イシューとPR – GitHubリポジトリ。
- 貢献 – Go(
go.modで宣言)、Node 24+、ripgrep、Docker Composeが必要です。高速ゲートにはmake verifyを実行。完全なガイドラインはCONTRIBUTING.mdにあります。
要約: Omniraは、ステートフルでツール対応のLLMエージェントを、任意のモデルと任意のコンピュート上で大規模に実行するための配管を提供し、すべてのデータを自社の管理下に置きます。マネージドエージェントサービスの柔軟性を求めつつ、特定ベンダーのクラウドにロックインされたくない場合に最適です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト