
AIエージェントの行動境界に対するポータブルなセキュリティルール
エージェントに、読んで理解できる境界を。検証可能な判断を手に入れよう。
概要 · クイックスタート · 仕組み · SDK · CLI · ポリシー · ドキュメント · 仕様
HushSpec は、AI エージェントが動作する際のセキュリティ制御に関するオープン仕様です。 ポリシーを YAML で記述し、Rust、TypeScript、Python、または Go で評価して、 各判断をその背後にあるポリシーに結びつけるレシートを生成します。
エージェントが実際に触れるもの、すなわちファイル、ネットワーク、シェル、ツール、ブラウザ、
コード実行をカバーします。仕様はルールとその意味を定義し、ランタイムは
HushGuard または独自の統合を通じて境界を強制します。
| 宣言 | 強制 | 証明 |
|---|---|---|
| 再利用可能なベースポリシーと明示的な権限を持つ、レビュー可能な YAML。 | アクション実行時点での一貫した allow、warn、deny の判断。 | 判断レシート、ポリシー署名、検証可能なログ。 |
仕様 1.0.0 は安定版です。 ドキュメント形式、評価セマンティクス、正規形、 およびワイヤフォーマットは 1.x シリーズで凍結されています。契約とそのテストカバレッジについては、 バージョニングポリシー と SDK 適合性マトリクス を参照してください。
1.0 SDK リリースはまだ公開されていません。実装、認定、リリースの証拠については デリバリーステータス を参照してください。
実験的な 外部適合性コントローラー は、キャプチャされた実行ファイルを L0-L3 コーパスに対してテストし、その入力、 出力、およびアイデンティティを保持します。Go アダプターはファーストパーティの立ち上げであり、 独立したエンジンやランタイム境界の認定ではありません。
実験的な 信頼された呼び出しコーディネーター は、ホスト認定された MCP ツールとその効果を 1 つの認証済みポリシースナップショットに対して検証し、 永続的な許可証を記録してからディスパッチします。その分離されたコーディングパイロットは、 実際の編集、ブロックされた操作、クラッシュの証拠をテストします。これはスコープされた ファーストパーティのデモンストレーションであり、外部採用や一般的な MCP 封じ込めではありません。
このチェックアウトから h2h CLI をビルドします:
cargo install --path crates/hushspec-cli --locked
これを policy.yaml として保存します。認証情報を保護し、ネットワークアクセスを制限し、
ツールがファイルを書き込んだりコードをプッシュしたりする前に確認を求めます。
hushspec: "1.0.0"
name: production-agent
rules:
forbidden_paths:
patterns: ["**/.ssh/**", "**/.aws/**", "/etc/shadow"]
egress:
allow: ["api.openai.com", "*.anthropic.com", "api.github.com"]
default: block
tool_access:
allow: [file_read, search]
block: [shell_exec, run_command]
require_confirmation: [file_write, git_push]
default: block
検証してから、3 つの判断を試します:
h2h validate policy.yaml
h2h eval policy.yaml --type egress --target api.openai.com
# allow
h2h eval policy.yaml --type tool_call --target shell_exec
# deny
h2h eval policy.yaml --type tool_call --target file_write
# warn: confirmation required
これらのコマンドはアクションを評価するものであり、実行するものではありません。eval は
allow で 0、deny で 1、warn で 4 を終了コードとして返します。ランタイムはアクションを
ディスパッチする前に判断を処理する必要があります。エージェントに組み込む →
| 方法 | インストール |
|---|---|
| Cargo | cargo install hushspec-cli |
| Homebrew | brew install backbay-labs/tap/h2h |
| npm | npm install -g @hushspec/cli |
| ビルド済みバイナリ | GitHub Releases、チェックサムと来歴証明付き |
パッケージ化されたインストーラーは、リリースパイプラインが対応するアーティファクトを 公開していることに依存します。上記のソースインストールは、このチェックアウトから直接ビルドします。
スキャフォールドされたポリシーとテストスイートについては、h2h init --preset default を実行してください。
完全なワークフローについては 初めてのポリシーガイド を参照してください。
HushGuard はポリシーをロードし、評価、強制モード、確認、レシートシンク、およびオブザーバーを
統合します。ツールをディスパッチする前に enforce を呼び出します:
import { HushGuard } from '@hushspec/core';
const guard = HushGuard.fromFile('./policy.yaml');
guard.enforce({ type: 'tool_call', target: 'shell_exec' });
// Throws HushSpecDenied under the quickstart policy.
必要な署名検証に失敗したポリシーは、拒否されたガードを生成します:
すべてのアクションは __hushspec_policy_unverified__ で拒否されます。ホットリロードに失敗した場合、
最後の有効なポリシーが有効なまま維持されます。不明なフィールドと無効なドキュメントは
明示的に拒否されます。
強制境界はランタイムの責任です。HushSpec は、それを構築するための ポータブルなポリシー契約と SDK プリミティブを提供します。 ランタイム統合ガイド →
監査された評価は、解決済みポリシーを受け取り、その正規の content_hash、判断、アクターコンテキスト、
ルールと検出のトレース、および強制処分を含むレシートを返します。アクションコンテンツは、
生のコンテンツを埋め込むことなく、そのハッシュとバイトサイズで表現されます。
# Inspect the receipt for one evaluated action.
h2h eval policy.yaml --type egress --target api.openai.com --format receipt
証拠はランタイムを超えて伝播できます:
| アーティファクト | 検証できること |
|---|---|
| ポリシー署名 | 解決済みポリシー(継承されたルールを含む)に署名したキー。 |
| 判断レシート | どのポリシーと記録されたルール結果が判断を生成したか。 |
| レシートログ | エントリ間のハッシュリンク。最初に壊れたリンクは行で特定される。 |
| ポリシーバンドル | ポリシーを記述する in-toto ステートメントに対する DSSE アテステーション。 |
Ed25519 署名は解決済みポリシーのコンテンツハッシュをカバーするため、ファイルを再フォーマットしても
署名は保持されますが、継承されたルールを変更すると無効になります。署名、レシート検証、
およびバンドル検証は 4 つの SDK すべてで利用可能です。Rust では signing フィーチャー、
Python では signing エクストラが必要です。
4 つの SDK にわたる 1 つのポリシー言語。共有コーパスは、実装間で評価、 正規バイト、ポリシーハッシュ、およびレシートフォーマットをチェックします。
1.0 が公開されるまでは、このソースチェックアウトを使用してください。以下のレジストリコマンドは 今後のリリース用であり、現在利用可能な 1.0 パッケージではありません。
| SDK | 公開後のレジストリインストール | リファレンス |
|---|---|---|
| Rust | cargo add hushspec | Crate |
| TypeScript | npm install @hushspec/core | Package |
| Python | pip install hushspec | Package |
| Go | go get github.com/backbay-labs/hush/packages/[email protected] | Module |
Go SDK リリースはネストされた packages/go/v1.0.0 タグを使用します。
署名には、Rust では hushspec = { version = "1.0", features = ["signing"] }、
Python では pip install "hushspec[signing]" を使用してください。