JamJet
JamJet CloudGovernance

ポリシー

Block dangerous tools at runtime. Glob-based rules. Pre-call filter and post-decision check.

ポリシー

ポリシーとは、LLMが呼び出せるツールを制御するルールです。JamJetは、リクエストライフサイクルの2つの時点でポリシーを強制します:リクエストがモデルに到達する前(呼び出し前フィルター)と、モデルが応答した後(決定後チェック)です。両方の強制ポイントは同期的かつプロセス内で実行されるため、ネットワークラウンドトリップは不要です。

3つのアクション

すべてのポリシールールは、globパターンと以下の3つのアクションのいずれかを組み合わせます:

アクション動作
'block'マッチしたツールは、LLMがそれを認識する前にリクエストから除外されます。モデルがレスポンス内でブロックされたツールをリクエストした場合、JamjetPolicyBlockedがスローされます。
'allow'マッチしたツールを明示的に許可します。広範なブロックの後に許可リストを構築する際に便利です。
'require_approval'人間による承認を介してツールをゲートする意図を登録します。下記の現在の制限を参照してください。
import { policy } from '@jamjet/cloud'

policy('block', 'wire_*')             // wire_で始まる名前のツールをすべてブロック
policy('allow', 'wire_read')          // ただしwire_readは明示的に許可
policy('require_approval', 'send_*')  // send_*ツールをゲートする意図(制限を参照)
import jamjet.cloud as jamjet

jamjet.policy('block', 'wire_*')             # wire_で始まるツールをブロック
jamjet.policy('allow', 'wire_read')          # ただしwire_readは明示的に許可
jamjet.policy('require_approval', 'send_*')  # send_*をゲートする意図(制限を参照)

Globパターンのセマンティクス

JamJetはfnmatch形式のglobマッチングを使用します:

パターンマッチマッチしない
wire_*wire_transfer, wire_send, wire_readread_wire
payments.*payments.send, payments.readpayments
*_admindb_admin, user_adminadmin_db
?_transfera_transferab_transfer

*はドットを含む任意の文字列にマッチします。?はちょうど1文字にマッチします。パターンはツール名全体に対してマッチされます(両端で暗黙的にアンカーされます)。

On this page