5つのファイル規定条項からテスト済みポリシーへ
すべてのポリシーは実装した条項または確認済みの回答を引用します。モデル文書には Mermaid ロール継承図と各ポリシーの根拠が含まれます。
- ファイルストアに直接インポート可能な
.spdl(spctl checkで検証済み)。 - 部署、場所、データ分類、金額に関する ABAC 条件。
- 許可、拒否、承認境界を網羅した実行可能なテストケース。
Speedle AI · 2つの連携する方向性
AI を活用してアクセスポリシーを設計・管理・検証し、同じポリシーを AI 自身にも適用:AI エージェント向けの MCP 認可、権限を考慮した RAG、最小特権。両方向とも明確で強制力のあるポリシー決定に基づいています。
オープンソースの Speedle 認可エンジン上に構築されています。
Use AI to manage access
人間のアクセス管理を支援する AI:ポリシー文書を SPDL に変換するオープンソーススキル、ポリシーの設計・管理・検証を行う Speedle MCP のプレビュー、および計画中の AI リスク検知アプローチ。
Speedle ポリシーモデラー · オープンソース Agent Skill利用可能
就業規則や規制文書を読み込み、明記されていない箇所について質問し、結果を RBAC + ABAC ポリシーとしてモデル化する Agent Skill。推測でルールを作成することはありません。
5つのファイルすべてのポリシーは実装した条項または確認済みの回答を引用します。モデル文書には Mermaid ロール継承図と各ポリシーの根拠が含まれます。
.spdl(spctl check で検証済み)。英語 + 中国語どちらの実行例も架空の就業規則から開始し、テスト済みのモデルで完了します。それぞれローカルの PMS および ADS に対して spctl check と全 37 件の認可ケースに合格しています。
entity としてモデル化された給与計算サービスアカウント。このパッケージは Agent Skills 形式に準拠しています:name と description のフロントマターを含む SKILL.md、リファレンス、スクリプト、サンプルが含まれます。その形式をサポートするすべてのエージェントで動作します。一般的なインストールの場合は、エージェントのスキルディレクトリにスキルフォルダーをコピーし、エージェントに就業規則のモデル化を依頼してください。以下の例は、互換性のある2つのエージェントを示しています。
spctl — — spctl check -f policies.spdl で生成された SPDL を検証します。speedle-pms and speedle-ads — — ローカルの Speedle に対してエンドツーエンドの認可テストケースを実行します。scripts/run-cases.py 内のテストケースを実行します。claude plugin marketplace add teramoby/ai.speedle.io
claude plugin install speedle@speedle
# Claude Code で:
/plugin configure speedle@speedle
/speedle:speedle-policy-modeler ./employee-handbook.md
git clone --depth 1 https://github.com/teramoby/ai.speedle.io.git
mkdir -p ~/.agents/skills
cp -R ai.speedle.io/skills/speedle-policy-modeler \
~/.agents/skills/
# Codex CLI または IDE 拡張機能で:
$speedle-policy-modeler ./employee-handbook.md
Speedle MCPプレビュー
@speedle/mcp は npm で公開されています。ローカルの stdio MCP サーバーとして動作する speedle-mcp バイナリを含む 1 つのパッケージです。
checkcheck モードはデフォルトで is_allowed のみを登録し、ADS 設定のみを読み込みます。diagnose、all_granted_roles、all_granted_permissions は、--expose-diagnose、--expose-all-granted-roles、--expose-all-granted-permissions フラグによってオプトインできます。diagnose はセルフホストの Speedle でのみ動作します。サーバーは Speedle Cloud に対しては起動しません。認可に関する質問に回答するのみで、呼び出し側アプリケーションで何かを強制することはありません。
managemanage モードは管理ツールのみを登録し、PMS REST API を介して Speedle ポリシーを設計および管理するための PMS 設定のみを読み込みます。
Node.js 22 以降が必要です。これらの例は公開されているパッケージの README と一致しています。上記の Claude Code プラグインは @speedle/mcp@0.2.1 に固定されています。
npm install @speedle/mcp
npx @speedle/mcp check
npx @speedle/mcp manage
{
"mcpServers": {
"speedle-check": {
"command": "npx",
"args": ["-y", "@speedle/mcp", "check"],
"env": {
"SPEEDLE_ENDPOINT": "http://127.0.0.1:6734",
"SPEEDLE_SERVICE_NAME": "books"
}
}
}
}
{
"mcpServers": {
"speedle-check": {
"command": "npx",
"args": [
"-y",
"@speedle/mcp",
"check",
"--expose-diagnose",
"--expose-all-granted-roles",
"--expose-all-granted-permissions"
],
"env": {
"SPEEDLE_ENDPOINT": "http://127.0.0.1:6734",
"SPEEDLE_SERVICE_NAME": "books"
}
}
}
}
{
"mcpServers": {
"speedle-manage": {
"command": "npx",
"args": ["-y", "@speedle/mcp", "manage"],
"env": {
"SPEEDLE_PMS_ENDPOINT": "http://127.0.0.1:6733"
}
}
}
}
AI はより多くの次元や関係性を横断して、単一のルールでは見落とされがちなリスクを発見できます。これは Speedle が探究および構築している方向性であり、既存のリリース機能ではありません。ポリシーが拒否権を保持します:リスクシグナルによって監視や保護を強化することはできますが、拒否を許可に変更することはありません。
ターゲットフローを見るControl what AI can access
AI システムがデータ、モデル、ツール、他のエージェントと接するあらゆる場所に適用される Speedle のポリシーエンジン:モデル提供前の構築フェーズ、および提供・動作中の運用フェーズ。これらはソリューションパターンであり、特定の ML やエージェントプラットフォームとの既成連携機能ではありません。
コンセプト
各領域にはアプリケーション内の執行ポイントがあります。動作を実行する前に Speedle に問い合わせ、その回答を執行します。
ソリューションパターン
領域ごとに1つの文と1つの代表的なルール。各チェックに必要な属性を含む完全な SPDL 例は、パターンページにあります。
ビルド · 01 データとトレーニング
トレーニングジョブはデータセットを読み取り、チェックポイントを書き込みます。同意とリージョンはデータセットごとにチェックされ、制限されたデータがトレーニングに入ることはありません。
grant role training-pipeline read expr:^/datasets/ if consent == true && data_region == job_region
ビルド · 02 モデルリリース
登録、承認、昇格、ロールバックは個別の操作であり、自分がトレーニングしたモデルを承認することはできません。
deny role release-manager approve expr:^/models/ if trained_by == request_user
実行 · 03 推論と RAG
リトリーバーはドキュメントの内容がプロンプトに入る前に各ドキュメントについて問い合わせるため、モデルにはユーザーが閲覧を許可されたもののみが表示されます。
grant role tenant-user retrieve expr:^/collections/ if doc_tenant == user_tenant && doc_label in user_clearances
実行 · 04 ユーザーに代わって動作するエージェント
エージェントは委任トークンのスコープ内でチェックされ、その後委任ユーザーが現在の権限でチェックされます。
grant entity triage-agent in-time if request_time < token_expires
実行 · 05 ツール呼び出し (MCP)
すべてのツール呼び出しは実行前にチェックされ、引数はポリシーが制限できる属性になります。
grant role billing-agent call /tools/issue-refund if amount <= 100 && customer_verified == true
実行 · 06 エージェント間呼び出し (A2A)
各ホップがチェックされ、呼び出し先は呼び出し元がすでに保持しているスコープのみを受け取ることができます。
grant role planner-agent call /agents/researcher if IsSubSet(requested_scopes, caller_scopes) && hops <= 2
実行 · 07 常設特権ゼロ · セルフホスト
適切な発行と制御が行われている場合、ジャストインタイムで有効期間の短いトークンにより常設特権ゼロのパターンを実現できます。Speedle では ZSP 戦略をポリシーとして定義し、すべてのリクエストで適用できます:SPDL で記述した時間枠と条件内でのみアクセスが存在します。
grant role agent-runtime invoke /api/orders if expires_at > issued_at && expires_at - issued_at <= 600 && issued_at <= request_time + 60 && not_before <= request_time + 60 && request_time < expires_at && TokenUnused(token_id)
横断的関心事
アイデンティティ、監査、リスクマッピング、境界は、構築と運用のすべての領域に適用されます。
アイデンティティ統合
Speedle は認可決定ポイントです。認証は IdP または OAuth 認可サーバーから行われ、ユーザーとエージェントの両方に適用されます。MCP 認可は OAuth 上に構築されます。アプリケーションは検証されたアイデンティティをプリンシパル(ユーザー、グループ、エンティティ)にマッピングしてから Speedle に問い合わせます。
監査と説明可能性
Speedle の diagnose API は決定、理由、有効なロール、およびどのポリシーがなぜ一致したかを含む検証されたポリシーを返します。アプリケーションはエージェントおよび委任した人間とともに各決定をログに記録します。診断はポリシーとリクエストの詳細を公開するため、信頼できる運用者に限定してください。
リスクマッピング
OWASP Top 10 for LLM Applications 2025 では過剰なエージェンシー(Excessive Agency)を挙げています:タスクが必要とする以上の機能、権限、または自律性を持つエージェントです。エージェントごとのロール、ツールごとのチェック、タスクと時間にバインドされた委任、および高リスクのアクションに対する人間の承認により、この3つをそれぞれ絞り込みます。
境界
Speedle はプロンプトインジェクションの検出、モデルの入出力フィルタリング、モデルやデータセットのサプライチェーン検証は行いません。これらには専用の管理策を使用してください。侵害された、または誤導されたエージェントができることを制限します:プロンプトの内容に関わらず、ポリシー外のすべてのリクエストに対して Speedle は拒否を返します。
エコシステム
オープンソースの認可エンジンと可読性の高い SPDL ポリシー言語。
ホスト型Speedle Cloudまもなく公開Speedle ポリシーエンジン上に構築された開発者向けホスト型認可。
統合Speedle SDK決定 API 向けの Python、Go、Java、C#、Rust、Node.js クライアント。
from speedle import Auth, Client
with Client(backend="speedle", endpoint="http://localhost:6734",
auth=Auth.none(), service_name="docs") as speedle:
allowed = speedle.is_allowed("alice", "get", "/docs/public")
# docs サービスが alice に get /docs/public を許可すると True になります
簡単な例です。SDK ドキュメントでは、各言語クライアント、リクエストモデル、エラー処理について説明しています。Node.js クライアントは npm で公開されています:npm install @speedle/sdk。
オープンソース · オープンな探求
今後の例作りにご協力ください。アプリケーションが保護を必要とするデータセット、モデル、ツール、エージェントワークフローを共有してください。
Speedle は Oracle Speedle から発展し、Universal Permissive License (UPL) 1.0 のもとでオリジナルの開発者によってメンテナンスが続けられています。プロジェクトのストーリーを読む。