DeadBolt by NextEleven について
DeadBoltは、ソフトウェアエージェントのアクション実行時にポリシーとオペレーター制御を適用するローカル実行ゲートです。Rustへの組み込み、ローカルsidecar経由の利用、信頼済みstdio MCPサーバーのプロキシに対応します。
主な機能
- 01ツールと宛先のポリシー適用
- 02一時停止、支出上限、オペレーターによる停止
- 03固定期限と継承ポリシーの適用
- 04許可されない場合にコールバックを実行しない
- 05SQLiteの証跡、JSONLミラー、インシデント記録の出力
活用シーン
- 01関数のディスパッチ前に実行可否を確認
- 02sidecar経由でPythonなどの実行経路を制御
- 03信頼済みstdio MCPサーバーへのツール呼び出しをプロキシ
- 04拒否や実行の証跡を記録
MCP 対応
信頼済みstdio MCPサーバーをプロキシし、そのツール呼び出しにポリシーを適用できます。デスクトップMCPクライアントからの設定にも対応しますが、MCP子プロセスの起動やツール以外のメソッドはゲート対象外です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
DeadBolt
エージェントを使って貢献する場合は、セットアップ、ローカルチェック、プロジェクトの境界について AGENTS.md をお読みください。
ソフトウェアエージェント向けのローカル実行ゲートです。 アクションを実行するコードに DeadBolt を組み込み、ポリシーとオペレーター制御によって、そのアクションを実行するかどうかを決定できます。Rust に組み込む、別の言語からローカルサイドカーを呼び出す、または信頼できる stdio MCP サーバーをラップする方法があります。Apache-2.0 の下で無料で利用できます。
インストール · 試す · 統合 · 移行 · プロジェクトサイト
最近の評価結果:ProtocolProbe による読み取り専用のセットアップ検査と、NextEleven による独立した Swarm ネイティブ統合ラボ。それぞれ、テスト済みの範囲と残る制限を記載しています。
バージョン 2.0.0
このソースは、テスト済みの RC3 の動作範囲を固定した、エンジン 2.0.0 および Python クライアント 2.0.0 を対象としています。バージョン付きリリースで、利用可能なダウンロード、正確なソース、チェックサムを確認できます。インストールでは、パッケージマネージャー、バンドル、エディターでの利用可能性をそれぞれ個別に追跡しています。ソースのマージによってパッケージが公開されたり、ディレクトリの掲載情報が更新されたりすることはありません。
バージョン 2 では、Unix および TCP サイドカーに対する認証済みのオペレーターセットアップが必要です。プライベート状態を作成し、新しいルートではデフォルトでスーパーバイザーによる更新を有効にして、祖先ポリシーと固定実行期限を適用します。既存の保存済み更新モードは変更されません。古いインストールを置き換える前に、メジャーバージョンの移行とプライベート状態をお読みください。
アーティファクトを固定した RC3 の再テストでは、macOS arm64 で、宛先の競合時の拒否、破損したストアに対する Cursor Reload の拒否、固定期限後の実際のモデル呼び出しが確認されました。基盤となる Auto モデルは不明です。別途実施した Linux ヘッドレスチェックでは、記録された範囲を確認しています。これらは実行記録であり、認定ではありません。安定版アーティファクトのチェックとインストール済みコンシューマーのチェックは、RC3 の結果とは別のものです。
エージェントに接続する前に試す
モデルアカウント、API キー、Harness、クラウドサービス、データベースサーバーは不要です。インストールガイドから、チェックサム検証済みのネイティブアーカイブを選択してください。展開したディレクトリから macOS/Linux で実行します。
chmod 0755 deadbolt
./deadbolt --version
./deadbolt drill
python3 examples/evaluate.py --binary ./deadbolt
Windows では、.\deadbolt.exe --version、.\deadbolt.exe drill、python examples/evaluate.py --binary .\deadbolt.exe を実行してください。
期待される結果は、選択したバージョン、deadbolt drill ok、および "passed": true を含む JSON です。
評価ではプライベートサイドカーを起動し、無害な一時ファイルを書き込み、ポリシー、承認、キル、障害によって作用が阻止されることを確認した後、クリーンアップします。追加のランタイムとして Python 3.9 以降が必要です。レポートについて。
レビュー済みのソースチェックアウトでは、Rust 1.85 以降とネイティブの C コンパイラー/リンカーが必要です。
cargo install --path . --locked --bin deadbolt
deadbolt --version
deadbolt drill
対応する Python クライアント 2.0.0 は公開済みです。 対応する Rust パッケージ 2.0.0 も公開済みです。 Cargo から CLI を、またはアプリケーション環境に Python クライアントをインストールしてください。
cargo install n11-deadbolt --version 2.0.0 --locked --bin deadbolt
# In your application's virtual environment:
python -m pip install 'n11-deadbolt-client==2.0.0'
Rust に組み込む場合は、deadbolt = { package = "n11-deadbolt", version = "=2.0.0" } を使用し、アプリケーション独自のロックファイルをコミットしてください。Python wheel に含まれるのはクライアントであり、エンジンではありません。Node は引き続きバンドルされたソースモジュールです。インストールと検証。
インテグレーションを選択する
| 使用する実行環境 | 最小限のインテグレーション | こちらから開始 |
|---|---|---|
| Rust アプリケーション | 埋め込みストアと、実際のディスパッチ時のチェック | Rust |
| Python アプリケーション | ローカルサイドカーと、実際の関数を囲む dispatch | Python |
| OpenAI Agents SDK の関数ツール | サイドカーと、保護対象の各関数への @protected_tool | SDK アダプター |
| 自分で運用する FastMCP サーバー | サイドカーと、保護対象のツール本体内の dispatch_async | オフラインでの設定手順 |
| Node またはその他の言語 | ローカルサイドカー。Node クライアントのソースまたは HTTP プロトコル | サイドカー |
| 信頼済みの stdio MCP サーバー | deadbolt mcp-proxy … -- SERVER | MCP |
| デスクトップ MCP クライアント | 検証済みローカルバンドルと非公開のオペレーター設定 | バンドルとエディターの設定方法 |
| Docker で起動する MCP クライアント | ソースからビルドした stdio コンテナーと信頼済みの下流サーバー | Docker |
インストール前に、正確なバンドルとそれに対応する設定を選択してください。空の設定では、読み取り専用のセットアップツールが 2 つ公開されるだけで、保護は有効になりません。設定済みのツールは、信頼済みの下流サーバーから提供されます。バージョン 2 のバンドルを実行するには、固定期限、明示的な更新モード、レビュー済みのオフライン例外が必要です。このバンドルでは、ツールに対する包括的な単発承認を使用します。アクションを個別に指定する許可は提供しません。設定 · エディターガイド。
バージョン付きバンドルは、Smithery と公式 MCP Registryから見つけられます。各エントリーのバージョンとチェックサムを確認してください。ここでの掲載は、ホスト型オペレーターアクセス、別の投稿のマーケットプレイスによる承認、または推奨を意味するものではありません。
副作用が発生する箇所にゲートを設置する
信頼済みの実行環境で実行を作成し、最初にポリシーを設定します。対応する Python クライアントをインストールし、サイドカーを設定したら、次のようにします。
from pathlib import Path
from deadbolt_client import dispatch
outcome = dispatch(
"executor-run-001", "write_file",
lambda: Path("output.txt").write_text("allowed work"),
)
if not outcome["executed"]:
print("Action blocked:", outcome["decision"]["code"])
コールバックの前に新たな許可判定が行われます。拒否された場合、関数本体は呼び出されません。セットアップの全手順では、プロビジョニング、ポリシー、認証情報、トランスポート、エラーについて説明しています。保護対象のすべてのルートをラップしてください。許可をキャッシュしたり、単発の許可判定と実行を分離したりしないでください。ensure が確認するのはレコードの存在であり、稼働状態ではありません。
制御と制限
- ツールと宛先のポリシー、報告された支出の上限、一時停止、クリップ、オペレーターによるキル。
- デフォルトのアイドル TTL は 60 秒です。別のスーパーバイザーが実行を最新状態に保ちます。明示的なアクティビティモードも利用できます。どちらのモードでも、固定期限を延長したり、期限切れまたはキルされた状態を復活させたりすることはできません。稼働状態 · 期限。
- 子孫は祖先の制限に従います。子のポリシーで親のポリシーを拡張することはできません。
- 包括的な単発のツール承認と、コンテンツに紐付けられた API を使用する信頼済みインテグレーション向けのアクションを個別に指定する許可。
- スコープ付き許可認証情報により、ディスパッチとオペレーター制御を分離します。
/spendは引き続きオペレーター専用です。 - SQLite の証跡、JSONL ミラー、エージェントごとのインシデントエクスポート。
- ストアまたはトランスポートで障害が発生した場合、保護対象のディスパッチは拒否されます。不正な応答や成功しなかった応答によって、関数本体が実行を許可されることはありません。
信頼済みの実行環境による通常の許可判定では、ポリシーリストが未設定の場合は制限なしとして扱います。MCP プロキシでは、明示的なツールポリシーが必要です。ディスパッチ前に、実行と子を設定してください。MCP のツール検出では、ポリシーによって拒否されるツールが公開される場合があります。宛先の解析対象は認識されたフィールドであり、任意の引数やネットワークトラフィックは対象外です。宛先ポリシー。
境界を把握する
DeadBolt は、接続された実行経路を保護します。任意のコードをサンドボックス化したり、プロバイダーを停止したり、外部への作用を許可判定とトランザクションとして扱ったりするものではありません。Kill は以後の許可判定をブロックします。実行中の処理を停止するには、エグゼキューターのキャンセルパターンが必要です。MCP 子プロセスは引き続き信頼されたプロセスであり、OS へのアクセス権を持ちます。起動時の処理とツール以外のメソッドは、ツール呼び出しゲートの対象外です。
状態とオペレーター権限は、信頼できないエージェントプロセスの外部に保持してください。データベースへの書き込みやオペレーター CLI の呼び出しが可能なプロセスは、オペレーター権限を持ちます。ソケット認証情報でその権限を制限することはできません。アプリケーションでこうした境界が必要な場合は、OS/サービスの所有権を分離し、OS の送信制御を使用してください。証拠のハッシュはコンテンツを識別します。オペレーターが書き込み可能な記録は、改ざん防止認証ではありません。 信頼性 · HTTP 認証 · パイロットチェックリスト。
開発者向けドキュメント
| 必要な内容 | ガイド |
|---|---|
| 最初に動作するものを作る | クイックスタート、初回評価 |
| バイナリ、クレート、Python のインストール | インストール |
| 組み込み、サイドカー、MCP の接続 | 統合、Python/SDK |
| 最小権限でのディスパッチと機密性の高い操作 | 認証情報、厳密な承認 |
| API とアップグレード時の動作 | HTTP プロトコル、互換性 |
| 拒否やセットアップの問題 | トラブルシューティング、FAQ |
| デプロイ、バックアップ、対応 | 運用、インシデント |
| 評価またはコントリビュート | 技術概要、Hermes のショーケース、コントリビュート |
| バージョンとパッケージング | 変更履歴、リリース手順、サードパーティに関する通知 |
ソースのチェック:cargo test --locked、cargo clippy --all-targets --locked -- -D warnings、
および cargo build --locked --bin deadbolt の実行後に python3 tests/client_contract.py
(Python と Node が必要です)。CI では Rust 1.85、インストール済みの Python/SDK の動作、
ネイティブパッケージもチェックします。これらのチェックに合格しても、アプリケーションの受け入れが確認されたことにはなりません。
通常のバグを報告 するか、非公開のセキュリティ報告をご利用ください。Copyright NextEleven LLC 2026. ライセンス · 通知。Harness は利用者の一つであり、必須要件ではありません。
すでに実行中のローカルコマンドを停止する必要がある信頼されたエグゼキューター向けに、 所有プロセスのキャンセルに関するリファレンスでは、 使い捨ての受け入れテストに対応した POSIX スーパーバイザーのパターンを紹介しています。ゲートをサンドボックスに変更したり、古いパッケージに強制機能を追加したりするものではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。