runeward について
runewardは、AIエージェントの実行環境を管理するオープンソースのガバナンス層です。既存のエージェントフレームワークを変えずに、ポリシー確認、承認、予算管理、署名付き監査証跡を追加できます。
主な機能
- 01エージェント操作のポリシー確認
- 02人による承認ゲート
- 03DockerとKubernetesのサンドボックス
- 04実行予算とネットワーク制御
- 05検証可能な署名付き監査証跡
- 06CLI、REST API、ダッシュボード、SDK
活用シーン
- 01ポリシーによるシェル・ファイル操作の制限
- 02リスクの高い操作への承認要求
- 03委任された複数ワーカーの実行監査
- 04ポリシー変更前の証拠検証
MCP 対応
runewardはMCPサーバーとして動作し、MCP対応IDEやエージェントにガバナンス付きツールを提供できます。組み込みHTTP MCPはRESTと同じ認可チェックを共有します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e RUNEWARD_CONFIG_DIR -e RUNEWARD_STATE_DIR ghcr.io/runewardd/runeward:v0.1.4RUNEWARD_CONFIG_DIRDirectory to resolve profile TOML files from (optional; defaults to the standard search path).RUNEWARD_STATE_DIRDirectory where the tamper-evident audit ledger is written (optional).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/runewardd/runeward:v0.1.4stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Rune Box:エージェントが自由に動き回りながら、その証跡も残せる環境です。
Runeward が提供する、AI エージェント向けのオープンソースガバナンスハーネスです。
あらゆる AI エージェントに、強制可能なポリシー、人間による承認、分離された実行環境、予算、署名付き証拠を適用できます。Rune Box は新しいモデルやオーケストレーションスタックを要求するのではなく、既存のエージェントやマルチエージェントフレームワークと連携します。
1つのコマンドで実証
前提条件:Docker、OrbStack、または Podman エンジンが実行中であること、および runeward バイナリがあること。
runeward quickstart
このコマンドは .runeward/quickstart.toml を作成し、ポリシー、ランタイム、イメージ、状態パスを確認します。許可されたコマンドを実行し、破壊的なコマンドが実行前に拒否されることを実証してから、署名付き監査証跡を検証します。--force を指定しない限り、既存のポリシーを上書きすることはありません。
doctor とダッシュボードの準備状況の確認では、必要なシークレットのソースも解決されます。未設定の env:// 値を参照する Charter は、起動準備完了とは表示されません。
runeward doctor quickstart # explain setup problems safely
runeward --config-dir .runeward serve # dashboard + governed REST API
runeward evidence export quickstart -o run.json
runeward evidence verify run.json # independent policy/audit verification
Rune Box が追加する機能
| 懸念事項 | コンテナーのみ | Rune Box |
|---|---|---|
| ツール呼び出し | プロセスが要求した内容を実行します | すべてのシェル、コード、ファイル、ネットワーク、ブラウザーのアクションを事前に確認します |
| リスクのあるアクション | アプリケーションごとに異なります | allow、deny、または require-approval を、判断主体が記録された状態で適用します |
| ネットワーク | 個別に設定しない限り、通常は制限されません | デフォルトで拒否するホスト名ポリシー。Kubernetes では厳格な L3 適用を行います |
| 制限 | CPU/メモリ | 実時間、実行回数、エグレス、トークン、コスト、再試行ループの予算 |
| 監査 | ランタイムログ | 追記専用で、ハッシュチェーンと Ed25519 署名を備えたイベント |
| 引き継ぎ | 場当たり的なログとフォルダー | ワークスペースの tar、復旧スナップショット、持ち運び可能な署名付き証拠 JSON |
| エージェントの識別情報 | 不透明な単一プロセス | テナント、アクター、親ラン、プロバイダー、モデル、永続的なランの系譜 |
| インターフェース | ランタイム固有 | CLI、REST、MCP、Web ダッシュボード、Kubernetes CRD、ローカル SDK アダプター |
ガバナンス対象のすべてのアクションは、次の経路をたどります。
agent request → policy → human approval when required → limits → sandbox → signed audit event
用語
ドキュメントと UI では、まずなじみのある用語を使います。既存の API パスとファイル内のフィールドでは、互換性のために従来のテーマに基づく名称を維持しています。
| 平易な用語 | Rune Box での名称 | 既存のインターフェース |
|---|---|---|
| サンドボックス | Citadel | /v1/citadels、Kubernetes Citadel |
| ポリシーファイル/プロファイル | Charter | /v1/charters、*.toml プロファイル |
| 承認 | Conclave | /v1/conclave |
| 署名付き監査証跡 | Chronicle | /v1/chronicle、[chronicle] |
| ネットワーク制御 | Perimeter | /perimeter、[network] |
| 予算と制限 | Rationing | [rationing] |
| エージェントグループ/フリート | Cohort | /v1/cohorts、[cohort] |
| 署名付きポリシーバンドル | Archive | runeward archive、[policy_bundle] |
命名と表記の規約の全容をご覧ください。
インストール
Rune Box の使い方に合ったパッケージを選択してください。
| インストール方法 | インストールされるもの | コマンド |
|---|---|---|
| Homebrew | macOS または Linux 用 Rune Box CLI | brew install Runeeward/tap/runeward |
| PyPI | Python クライアントとエージェントフレームワーク用アダプター | python -m pip install runeward |
| npm | TypeScript クライアントとエージェントフレームワーク用ツール | npm install @runeward/sdk |
通常のローカル利用では、Homebrew で CLI をインストールしてください。エージェントと連携する場合は、 その言語用の SDK もインストールしてください。pip と npm のパッケージは稼働中の Rune Box API に接続します。 CLI/ランタイムの代わりにはなりません。
Homebrew — CLI
ローカルサンドボックスを利用するには、Docker、OrbStack、または Podman のエンジンが稼働している必要があります。
brew install Runeeward/tap/runeward
runeward version
runeward quickstart
pip — Python SDK
Python 3.9 以降が必要です。基本クライアントにはサードパーティ製のランタイム依存関係はありません。
python -m pip install runeward
python -c "import runeward; print(runeward.__version__)"
npm — TypeScript SDK
Node.js 18 以降が必要です。
npm install @runeward/sdk
npm ls @runeward/sdk
LangChain、CrewAI、LlamaIndex、OpenAI Agents、Strands、Vercel AI SDK、LangChain.js のインストール方法については、 アダプターを参照してください。
その他の CLI インストール方法
署名済みの macOS/Linux インストーラーでは、チェックサムマニフェストの検証時にフェイルクローズできるよう、
cosign が必要です。
Windows バイナリはリリースから入手できます。
curl -fsSL https://raw.githubusercontent.com/Runeeward/runeward/main/install.sh | sh
現在の main ブランチをビルドするには、Rust 1.95 以降(ワークスペースの MSRV)を使用してください。
git clone https://github.com/Runeeward/runeward
cd runeward
cargo build --release --locked -p runeward-cli --bin runeward
./target/release/runeward version
cargo install --locked --path crates/runeward-cli を実行すると、代わりに ~/.cargo/bin にインストールされます。
エージェントと連携する
MCP 対応の IDE またはエージェントに、ガバナンス対象のツールを公開します。
{
"mcpServers": {
"runeward": {
"command": "runeward",
"args": ["mcp", "--config-dir", ".runeward"]
}
}
}
または、エージェント CLI をサンドボックス内に配置し、1 つ以上のガバナンス対象ワーカーを実行します。
runeward cohort --agent claude --model sonnet build "Build a tested API"
LangChain、CrewAI、LlamaIndex、OpenAI Agents、Strands、Vercel AI SDK、LangChain.js 用のアダプターが含まれています。 アダプターとエージェントグループを参照してください。
ダッシュボードには、各 Citadel 用の読み取り専用 ライブチャット TTY もあります。
エージェントハーネスは runeward_publish_conversation(または REST、Python、TypeScript の同等機能)を使って、
user、assistant、tool、system の各ターンを公開します。認証済みのチームメイトは、ターミナルへの入力アクセスなしで、
マスキングされた会話を確認できます。エージェントクライアントが公開していない非公開の UI チャットテキストを
Rune Box が推測することはできません。公開呼び出しをハーネスのターンコールバックに組み込んでください。
公開側は、ダッシュボードと同じ runeward serve コントロールプレーン(/mcp、REST、または SDK 経由)に
接続する必要があります。
ハーネスエージェントとサブエージェント
Rune Box はエージェントを取り巻く強制境界であり、エージェントの推論方法を決定するコンポーネントではありません。 親エージェントと、委任された各サブエージェントのツール呼び出しを Rune Box 経由にすることで、明示的なポリシー、 承認、分離、予算、証跡の境界を設定できます。
既存の概念の意味は変わりません。コホートはタスクボードを共有する同格ワーカーのグループであり、 「サブエージェント」と改称されるものではありません。オーケストレーターは引き続き委任するタイミングを決定し、 Rune Box は親/実行/プロバイダーの系譜を記録するとともに、子 Citadel が親のテナントや Charter の範囲を 拡大するのを防ぎます。参加する各エージェントには、それぞれ専用の Citadel と Chronicle を割り当てられます。 エージェントハーネスを参照してください。
ポリシーのワークフロー
ポリシーは、組み込みの glob ルール、CEL、OPA/Rego、署名済み OCI バンドルに対応しています。 CI でテストするか、レビュー済みのひな形から始めるか、検証済みの本番環境の証跡から正確な提案を導き出してください。
runeward policy scaffold package-approval
runeward policy test quickstart --case 'tool=shell,action=rm -rf /,expect=deny'
runeward policy learn run.json > proposed-policy.toml
policy learn がポリシーを自動編集することはありません。まず証跡を検証し、マスキングされたアクションを除外して、
完全一致のルールを生成します。そのうえで、人がレビューし、適用範囲を広げる必要があります。
セキュリティ態勢
- サーバーはデフォルトでループバックにバインドされ、ループバック以外にバインドするには認証が必要です。
- ループバック以外への HTTP 接続では、信頼できるリバースプロキシが TLS を終端することを
--allow-insecure-httpで明示的に承認しない限り、TLS も必要です。 - 複数のプリンシパルに対応した RBAC により、サンドボックス、エージェントグループ、復旧スナップショット、 ダッシュボードの各ビューがテナントごとにスコープされ、すべての操作が実行者に紐付けられます。静的トークンと OIDC JWT は 同じ認可モデルを使用し、組み込みの HTTP MCP でも REST と同じ所有権チェックが適用されます。
- ブラウザー自動化は実験的な機能で、デフォルトでは無効です。信頼できるデプロイ環境でのみ、
セキュリティモデルを確認したうえで
RUNEWARD_ENABLE_EXPERIMENTAL_BROWSER=1を設定して有効にしてください。 ブラウザー機能を使用する Charter ではcapabilities = ["browser"]を宣言します。するとダッシュボードに、 ガバナンス対象のレンダリング済みテキストおよびスクリーンショットの操作と、そのポリシー/エグレス結果が表示されます。 - オプションのブラウザー IDE(環境内の code-server +チケット対応リバースプロキシ)も同様に実験的な機能です。
RUNEWARD_ENABLE_EXPERIMENTAL_IDE=1、Charter の[ide]、Dockerfile.ideのide/ide-agentsターゲット、 サンプルのide-demo/ide-claude/ide-codex/ide-cursorが必要です。 制限事項:キーストロークごとのポリシー適用には対応していません。環境内では Cursor/Claude Desktop/Codex の GUI を使用できません。 code-server では GitHub Copilot を第一級の機能として利用できません。ブラウザー IDE と セキュリティモデルを参照してください。 - アクションごとのポリシーは、コントロールプレーン経由でルーティングされるツール呼び出し(REST、MCP、ダッシュボードの ファイル/シェル/コード操作、SDK)に適用されます。対話型ターミナルや、すでにサンドボックス内で実行中のプロセスは サンドボックスへの直接セッションです。分離、ネットワーク/リソース制御、ターミナルの記録は適用されますが、 個々のコマンドは承認のためにインターセプトされません。コマンドレベルのポリシーと署名済み判定が必要な場合は、 ガバナンス対象のツール呼び出しを使用してください。
- 脆弱性は SECURITY.md から非公開で報告してください。Rune Box は引き続きプレ 1.0 であり、 残存する制限事項は ROADMAP.md で追跡しています。
環境内の内容
アクションごとのポリシーに加え、Charter ではエージェントプロセス自体を隔離し、その作業内容を保持できます。
- サンドボックス内の隔離。
runeward-supervisorはサンドボックスイメージ内で PID 1 として動作し、 Charter の[filesystem]セクションと[process]セクションに基づき、Landlock ファイルシステムルール、 seccomp フィルター、権限を降格した ID を適用してエージェントを起動します。隔離と セキュリティモデルを参照してください。 - 認証情報の仲介。
[[endpoint]]と[[credential]]のエントリーにより、エグレスプロキシは承認済みリクエストに 実際のシークレットを注入できます。エージェントに見えるのはプレースホルダーだけです。また、エンドポイントのbinariesにより、使用できる実行ファイルをリストに記載されたものに制限できます(接続ごとにサンドボックス内の スーパーバイザーが実行元を特定する厳格なエグレスのみ)。セキュリティモデルを参照してください。 - 永続ワークスペースとフォーク。
[workspace] persist = trueを設定すると、スリープ、復帰、コントロールプレーンの 再起動後もワークスペースが保持されます。フォークはコピーから開始します。エージェントのターン、Cohort のメモリ、 ハンドオフ、[schedule]の実行は、このワークスペースを基盤とします。ワークスペースとコンテキストを参照してください。 - 強化モード。
--hardened(またはRUNEWARD_HARDENED=1)を指定すると、すべての強化チェックに合格しない限り起動を拒否します。 実行されなかった呼び出しは、標準の拒否オブジェクトを返します。CLI リファレンスを参照してください。
アーキテクチャ
Rune Box は、4 つのバイナリをビルドする Rust Cargo ワークスペース(crates/)です。
| バイナリ | 実行内容 | クレート |
|---|---|---|
runeward | CLI、コントロールプレーン(serve)、MCP サーバー、Kubernetes コントローラーおよびウェブフック | runeward-cli |
runeward-egress | ポリシーを適用するエグレスプロキシおよび認証情報ブローカー(Linux サイドカー) | runeward-egress |
runeward-supervisor | サンドボックス内の PID 1:Landlock、seccomp、権限を降格した ID(Linux) | runeward-supervisor |
runeward-browser | サンドボックス内のヘッドレスブラウザードライバー(Linux) | runeward-browser |
ライブラリークレートは、制御ループに沿って分割されています。
runeward-charter:Charter スキーマ、ローダー、リンター、署名。runeward-policy:glob/argv、CEL および Rego エンジン、ガードレール、使用量の記録;runeward-policybundleは署名付き OCI ポリシーバンドルを配布します。runeward-controlplane:統制された実行(ポリシー、承認、制限、バックエンド実行、台帳)、 ワークスペース、フォーク、エージェントターン、Cohort メモリー、スケジュール。runeward-backend:Docker、Podman、Kubernetes のサンドボックスバックエンド。runeward-server(REST、WebSocket、ダッシュボード)およびruneward-mcp(stdio およびストリーム可能な HTTP)。runeward-k8s:runeward.devCRD、Citadel/Cohort コントローラー、アドミッションウェブフック。runeward-ledger、runeward-keys、runeward-auditsink、runeward-termrec:署名付きでハッシュチェーン化された監査証跡、その鍵、シンク、ターミナル録画。runeward-authz、runeward-secrets、runeward-credentials、runeward-fleet、runeward-obs: RBAC/OIDC、シークレットソース、CLI ログイン、Cohort タスクボード、ログ/メトリクス。
リリースバイナリは、Linux(静的 musl、amd64/arm64)、macOS(amd64/arm64)、Windows (amd64、CLI のみ)向けに提供されます。コンテナーイメージはマルチアーキテクチャ対応で、cosign による署名付きです。
ドキュメント
- クイックスタート
- インストール
- 分離
- ワークスペースとコンテキスト
- ポリシー/Charter
- REST API
- ブラウザー IDE(実験的な code-server プロキシ)
- セキュリティモデル
- エンドツーエンドテスト
- 公開サイト:runeeward.github.io/runeward
コントリビューションを歓迎します。CONTRIBUTING.mdをご覧ください。Apache 2.0 ライセンスのもとで提供されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。