はじめに
複数のAIコーディングエージェント(Claude Code、Codex、Cursorなど)を並行して使っていると、「どのエージェントにどのシェルコマンド実行権限を渡したか」「どのセッションがいくらトークンを使ったか」がバラバラに散らばっていきます。この記事では、その課題に正面から取り組むOSSメタハーネス Omnigent を検証した内容を紹介します。
Omnigentは Databricksが2026年6月13日に公式発表しOSS公開 したプロジェクトです。5,000人超のエンジニアリングチームで早期にコーディングエージェントを採用し、顧客向けに数千のエージェントを構築してきた自社の運用経験がベースになっています。
この記事で学べること
- Omnigentが解決する「複数コーディングエージェントの統治」問題の中身
- 公式README・リリースノートに基づく、実際に動かせるセットアップ手順とポリシー設定
- Claude Code公式のsubagent機構との役割の違い
対象読者
- Claude CodeとCodex・Cursorなど複数のコーディングエージェントを併用している方
- チームでAIエージェントのシェルコマンド実行やトークン支出を統制したい方
- OSSのマルチエージェント基盤の実装に興味がある方
前提環境
- Python 3.12以上
- Node.js 22 LTS以上
- Linuxの場合は
bubblewrap、macOSの場合は標準搭載のseatbeltサンドボックスを利用
TL;DR
- Omnigentは Claude Code / Codex / Cursor / OpenCode / Hermes Agent / Pi など複数ベンダーのコーディングエージェントを、単一のポリシー・サンドボックス層の上でオーケストレーションするOSSメタハーネス(Apache-2.0ライセンス)
- GitHubスターは約6.8k、フォーク908(2026年7月時点)。最新版は v0.4.0(2026-07-03公開)
- 「エージェントを増やす」のではなく「複数ベンダーのエージェントに共通のガバナンス層を被せる」のが本質
- Claude Code公式のsubagentは 単一ハーネス内 の並列処理、Omnigentは 複数ベンダーを横断 した統治という住み分け
背景・課題
Claude Code・Codex・Cursorをそれぞれ別々のターミナルタブで使っていると、以下のような統治不能な状態に陥りがちです。
- エージェントAには本番DBへのアクセス権限があるのに、エージェントBには無い、という状態が誰も把握していない
- 各ツールのトークン支出が別々のダッシュボードに散らばり、月末に合算しないと予算超過に気づけない
- ターミナルを閉じるとセッションが切れる。スマホから続きを見られない
Omnigentはこれらを「エージェントの種類に依存しない、共通のポリシー・サンドボックス・セッション管理レイヤー」として解決しようとするプロジェクトです。
Omnigentとは何か
| 項目 | 内容 |
|---|---|
| リポジトリ | omnigent-ai/omnigent |
| ライセンス | Apache-2.0 |
| スター数 | 約6.8k(フォーク908) |
| 最新リリース | v0.4.0(2026-07-03公開) |
| 主言語 | Python 83% / TypeScript 15.1% |
第一級対応のエージェント(harness)
- Claude Code
- Codex
- Cursor
- OpenCode
- Hermes Agent(Nous Research)
- Pi
- OpenAI Agents
- カスタムエージェント(YAML定義で追加可能)
v0.4.0では「Harness Plugin SDK」が追加され、任意のコーディングエージェントをPythonパッケージとしてインストール可能な形で統合できるようになりました(v0.4.0 リリースノート)。
やったこと: セットアップとポリシー設定を検証する
ステップ1: インストール(公式README記載の複数手段)
公式READMEには複数のインストール方法が用意されています。用途に応じて選べます。
# 標準インストール(インストールスクリプト)
curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | sh
# uv 経由
uv tool install omnigent
# pip 経由
pip install "omnigent"
# Homebrew(macOS/Linux)
brew install omnigent-ai/tap/omnigent
シェルスクリプトを
curl | shでそのまま実行するのはセキュリティ上のリスクを伴います。CIやサンドボックス外の本番マシンで試す場合は、事前にスクリプトの中身を確認するか、pip install/brew installなど内容が検証しやすい方法を選ぶことを推奨します。
ステップ2: サンドボックスの仕組みを理解する
Omnigentはエージェントごとに実行環境をOSレベルで隔離します。
| プラットフォーム | 隔離方式 |
|---|---|
| Linux | bubblewrap(bwrap)による強制隔離 |
| macOS | 標準搭載の seatbelt サンドボックス |
| Windows | Job Object |
| クラウド実行 | Modal / Daytona / E2B / CoreWeave / Kubernetes 等に委譲可能 |
ネイティブのターミナルラッパーではLinux上のbubblewrap隔離が必須構成になっており、エージェントが指定外のファイルシステム・ネットワークにアクセスできないよう強制されます。
ステップ3: ポリシーをYAMLで設定する
Omnigentの中核機能は、サーバー全体・開発者単位・セッション単位の3階層でシェルコマンド実行・ファイル編集・トークン支出を「許可・ブロック・承認待ち」に振り分けられるポリシー機構です(Help Net Securityの解説)。イメージとしては以下のような設定になります。
# policy.yaml(概念を示すイメージ例であり、そのままでは動作しません)
# 実際のOmnigentは handler + factory_params 方式のポリシー定義を採用しており
# (例: handler: omnigent.policies.builtins.safety.ask_on_os_tools)、
# 本サンプルのようなフラットなキー構造ではありません。
# 正確なスキーマは公式リポジトリのポリシー定義例を参照してください。
policies:
- scope: server
token_budget_usd: 500 # サーバー全体の月間予算上限(イメージ)
- scope: developer
id: dev-taro
allowed_harnesses: [claude-code, codex]
shell_commands: approve # シェルコマンドは実行前に承認待ちにする(イメージ)
- scope: session
file_edit: allow
network_access: deny # このセッションはネットワークアクセスを禁止(イメージ)
このように「誰が」「どのエージェントを」「どこまでの権限で」動かせるかを、エージェントの種類に関わらず一元管理できる点がOmnigentの核です。
ステップ4: マルチデバイスでセッションを引き継ぐ
Omnigentのセッションはターミナルで開始し、ブラウザで継続し、スマートフォンで続きを見る、という使い方ができます。共有セッション機能では複数ユーザーがリアルタイムで同じセッションを監視・参加でき、ポリシー層とサンドボックスがそれぞれのユーザーの操作範囲を制限します。
Claude Codeユーザーが気になる点: 公式subagentとの違い
Claude Codeには公式のsubagent機構があります。メインのエージェントが .claude/agents/ 配下に定義したサブエージェント(またはプログラム的に定義したサブエージェント)を呼び出し、コンテキストを分離しながら並列でタスクを処理できる仕組みです(Claude Code公式ドキュメント)。
両者は似ているようで担う階層が異なります。
| Claude Code subagent | Omnigent | |
|---|---|---|
| 対象 | Claude Codeという 単一ハーネス内 の並列処理 | Claude Code・Codex・Cursorなど 複数ベンダーのハーネスを横断 |
| 目的 | コンテキストを分離してタスクを並列化する | 誰がどのエージェントをどこまでの権限で動かせるかを統治する |
| セッションの持続性 | 呼び出し元のセッションに従属 | ターミナル→ブラウザ→スマホと横断して継続 |
つまり「1つのClaude Codeセッションの中でタスクを並列化したい」ならsubagent、「Claude CodeとCodexとCursorを併用するチーム全体のガバナンスを統一したい」ならOmnigent、という住み分けになります。両者は競合するというより、Omnigentの配下でClaude Codeがそのsubagent機構を使う、という重ね掛けも可能な設計です。
著者視点の発見ポイント
筆者がREADMEとリリースノートを読み込んで気づいたのは、Omnigentの本質が「エージェントを増やすこと」ではなく「複数ベンダーのエージェントに共通のガバナンス層を被せること」だという点です。実際にv0.4.0の目玉機能を見ると、新しいエージェント種別の追加よりも「Harness Plugin SDK」(任意のコーディングエージェントをPythonパッケージとして統合する仕組み)と「Polly」というマルチエージェントオーケストレーション機能に力点が置かれています。これは、コーディングエージェントの選択肢が増え続ける中で「どのエージェントを使うか」よりも「複数のエージェントをどう安全に運用するか」がチームの課題になりつつあることの表れだと感じました。
ハマりどころ・注意点
- 開発速度が速い: リリースはAtomフィードで見る限り2026年6月中旬から7月頭までの約3週間でv0.1.1→v0.4.0まで進んでおり、破壊的変更が入る可能性を考慮してバージョン固定を推奨します。
- オープンイシューが228件: 活発に開発が進んでいる裏返しですが、本番導入前にIssueトラッカーで既知の不具合を確認しておくと安全です。
-
インストールスクリプトの実行: 前述の通り
curl | shはスクリプトの中身を事前確認するか、pip install等の代替手段を検討してください。
まとめ
- Omnigentは複数のコーディングエージェント(Claude Code / Codex / Cursorなど)を、共通のポリシー・サンドボックス層で統治するOSSメタハーネス
- 3階層のポリシー機構とOSレベルのサンドボックス(bubblewrap / seatbelt)で、シェルコマンド実行・トークン支出を横断的に管理できる
- Claude Code公式のsubagentとは階層が異なり、「単一ハーネス内の並列化」と「複数ベンダー横断の統治」で役割が分かれる
- チームで複数のコーディングエージェントを併用しているなら、ポリシー層の一元化を検討する価値があります
参考リンク
- Introducing Omnigent(Databricks公式ブログ) — 開発の経緯・動機の一次情報
- omnigent-ai/omnigent(GitHub) — インストール手順・対応エージェント一覧の一次情報
- Omnigent v0.4.0 リリースノート — 新機能の詳細
- Omnigent: Open-source AI agent framework and meta-harness(Help Net Security) — ポリシー・ガバナンス機能の解説
- Subagents in the SDK(Claude Code公式ドキュメント) — 比較対象としたClaude Code公式subagent機構