mcpField
R

runeward

ローカル
github.com/Runewarddセキュリティ41 日前に更新

runeward について

runewardは、AIエージェントの実行環境を管理するオープンソースのガバナンス層です。既存のエージェントフレームワークを変えずに、ポリシー確認、承認、予算管理、署名付き監査証跡を追加できます。

主な機能

  1. 01エージェント操作のポリシー確認
  2. 02人による承認ゲート
  3. 03DockerとKubernetesのサンドボックス
  4. 04実行予算とネットワーク制御
  5. 05検証可能な署名付き監査証跡
  6. 06CLI、REST API、ダッシュボード、SDK

活用シーン

  1. 01ポリシーによるシェル・ファイル操作の制限
  2. 02リスクの高い操作への承認要求
  3. 03委任された複数ワーカーの実行監査
  4. 04ポリシー変更前の証拠検証

MCP 対応

runewardはMCPサーバーとして動作し、MCP対応IDEやエージェントにガバナンス付きツールを提供できます。組み込みHTTP MCPはRESTと同じ認可チェックを共有します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"runewardd-runeward": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"RUNEWARD_CONFIG_DIR",
"-e",
"RUNEWARD_STATE_DIR",
"ghcr.io/runewardd/runeward:v0.1.4"
],
"env": {
"RUNEWARD_CONFIG_DIR": "<RUNEWARD_CONFIG_DIR>",
"RUNEWARD_STATE_DIR": "<RUNEWARD_STATE_DIR>"
}
}
}
}
起動コマンドdocker run -i --rm -e RUNEWARD_CONFIG_DIR -e RUNEWARD_STATE_DIR ghcr.io/runewardd/runeward:v0.1.4
設定が必要な環境変数
RUNEWARD_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/runewardd/runeward:v0.1.4

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Rune Box:エージェントが自由に動き回りながら、その証跡も残せる環境

Rune Box:エージェントが自由に動き回りながら、その証跡も残せる環境です。
Runeward が提供する、AI エージェント向けのオープンソースガバナンスハーネスです。

ライセンス:Apache-2.0 CI Rust MSRV 1.95 リリース

あらゆる 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]
署名付きポリシーバンドルArchiveruneward archive、[policy_bundle]

命名と表記の規約の全容をご覧ください。

インストール

Rune Box の使い方に合ったパッケージを選択してください。

インストール方法インストールされるものコマンド
HomebrewmacOS または Linux 用 Rune Box CLIbrew install Runeeward/tap/runeward
PyPIPython クライアントとエージェントフレームワーク用アダプターpython -m pip install runeward
npmTypeScript クライアントとエージェントフレームワーク用ツール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/)です。

バイナリ実行内容クレート
runewardCLI、コントロールプレーン(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.dev CRD、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 による署名付きです。

ドキュメント

コントリビューションを歓迎します。CONTRIBUTING.mdをご覧ください。Apache 2.0 ライセンスのもとで提供されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。