付与の変更を先にテストする
ポリシーのコピーで付与を削除または追加し、プローブを実行し、変更の前後の各判定を読み取ります。
drills.counterfactual
ポリシーのコピーで付与を削除または追加し、プローブを実行し、変更の前後の各判定を読み取ります。
drills.counterfactual付与を削除しようとしていて、どのエージェントが何を失うかを知りたい場合です。Intralockは、各プローブを、現状のポリシーと、変更を適用したコピーの両方に対して評価します。モデルは動作せず、ワークスペースは何も変わりません。
policies.propose 動作する最小のスコープ。より広いToolsスコープでも動作しますpolicies.propose権限コードはキーをINTRAMEDIAL_KEYから読み取ります。キーはシェルやシークレットストアに保管し、コミットするファイルには入れないでください。サインインした人が必要な呼び出しにはキーを使えず、コンソールが実行します。
pack_counterfactualは組み込みです。付与g-houseを削除し、did:aがrepo:mainを読み取るプローブを行うため、自分のものを書く前にレスポンスの形を確認できます。ドリルのワークフローがバインドされ、forceInlineがない場合、回答はworkflowId付きのqueued: trueです。
drills.counterfactualdrills-counterfactualcurl -sS -X POST https://api.intramedial.com/api/v1/acp/drills/counterfactual \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"packId": "pack_counterfactual"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/drills/counterfactual", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
packId: "pack_counterfactual",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/drills/counterfactual",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"packId": "pack_counterfactual",
},
timeout=30,
)
print(res.status_code, res.json())各プローブにはbeforeとafterがあります。allowではgrantIdが示され、denyではno_grantやcycleなどのreasonとdetailが示されます。beforeとafterは最初のプローブについて説明します。
{
"packId": "pack_counterfactual",
"dropped": "g-house",
"droppedIds": ["g-house"],
"added": [],
"probes": [
{
"probe": { "principal": "did:a", "resource": "repo:main", "action": "read", "nowMs": 1793523600000 },
"before": { "allow": true, "grantId": "g-house", "protectedClass": "none" },
"after": { "allow": false, "reason": "no_grant", "detail": "did:a lacks read on repo:main" }
}
],
"llm": false
}削除するgrantIds、または仮定の付与を表すaddGrantsと、重要なprobesを送ります。循環を形成する仮定の付与は、適用されずにスキップされます。
curl -sS -X POST https://api.intramedial.com/api/v1/acp/drills/counterfactual \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"grantIds": [
"g-house"
],
"probes": [
{
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write"
}
]
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/drills/counterfactual", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
grantIds: ["g-house"],
probes: [
{
actorDid: "did:web:acme.example:agent:billing",
resource: "repo:payments/main",
action: "write",
},
],
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/drills/counterfactual",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"grantIds": ["g-house"],
"probes": [
{
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
},
],
},
timeout=30,
)
print(res.status_code, res.json())転載元の資料: /docs/drills-counterfactual
台帳は追記専用で、Merkleルートのもとでシールされます。エントリの時刻はIntramedial自身のクロックによるもので、署名付きバンドルは公開鍵を使ってオフラインで確認できます。
apply: falseでマンデートをコンパイルし、付与される内容とpreviewDigestを読み取ってから、プレビューしたものをそのまま適用します。
mandates.compile固定された6つのIntralockシナリオを実行し、それぞれの結果を読み取り、ドリルが自動で繰り返されるよう頻度を設定します。
drills.frtインストール済みのLensを、送信したデータに対して実行し、その検出結果を読み取り、保存された結果をダイジェストとともに保管します。
lenses.runレシピ集にレシピを追加したときだけ、短いメールを1通。ほかのメールは送らず、どのメールからも配信停止できます。
アカウントは不要です。attestルートで7日間に35回まで呼び出せ、レシートはテストレシートとして明示されます。続けたくなったら、そのときに登録してください。