Eine Grant-Änderung zuerst testen
Entfernen oder ergänzen Sie einen Grant in einer Kopie der Richtlinie, prüfen Sie sie mit Probes und lesen Sie jedes Urteil vor und nach der Änderung.
drills.counterfactual
Entfernen oder ergänzen Sie einen Grant in einer Kopie der Richtlinie, prüfen Sie sie mit Probes und lesen Sie jedes Urteil vor und nach der Änderung.
drills.counterfactualLeiten Sie Agent-Aktionen, Inhalts-Hashes, API-Checks, DNS-Abfragen, Webhooks, LLM-Aufrufe und Git-Commits über Intramedial – für einen signierten Beleg, den jeder prüft, ohne uns zu vertrauen.
Sie wollen einen Grant entfernen und wissen, welcher Agent was verliert. Intralock wertet jede Probe gegen die Richtlinie, wie sie steht, und gegen eine Kopie mit Ihrer Änderung aus. Es läuft kein Modell, und im Workspace ändert sich nichts.
policies.propose der kleinste, der geht; ein breiterer Tools-Scope geht auchpolicies.propose, die ein Drill brauchtDer Code liest den Schlüssel aus INTRAMEDIAL_KEY. Halten Sie ihn in Ihrer Shell oder Ihrem Secret Store, nie in einer Datei, die Sie committen. Aufrufe, die eine angemeldete Person brauchen, können keinen Schlüssel verwenden: Die Konsole führt sie aus.
pack_counterfactual ist eingebaut. Es entfernt den Grant g-house und prüft did:a beim Lesen von repo:main, sodass Sie die Antwortform sehen, bevor Sie Ihre eigene schreiben. Mit gebundenem Drill-Workflow und ohne forceInline lautet die Antwort queued: true mit einer workflowId.
drills.counterfactualdrills-counterfactual
curl -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())Jede Probe hat ein before und ein after. Ein Allow nennt seine grantId; ein Deny gibt einen reason wie no_grant oder cycle und ein detail. before und after beschreiben die erste Probe.
{
"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
}Senden Sie grantIds zum Entfernen oder addGrants für hypothetische Grants und die relevanten probes. Ein hypothetischer Grant, der einen Zyklus bilden würde, wird übersprungen, nicht angewendet.
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())Kopiert aus: /docs/drills-counterfactual
Das Ledger ist Append-only und unter Merkle-Roots versiegelt. Die Zeit eines Eintrags ist Intramedials eigene Uhr, und ein signiertes Bundle lässt sich offline mit dem veröffentlichten Schlüssel prüfen.
Kompilieren Sie ein Mandat mit apply: false, lesen Sie die Grants, die es erteilen würde, und seinen previewDigest, und wenden Sie dann genau das an, was Sie angesehen haben.
mandates.compileFühren Sie die sechs festen Intralock-Szenarien aus, lesen Sie das Ergebnis jedes einzelnen und legen Sie einen Rhythmus fest, damit sich der Drill von selbst wiederholt.
drills.frtFühren Sie eine installierte Lens über die gesendeten Daten aus, lesen Sie ihre Befunde und behalten Sie das gespeicherte Ergebnis mit seinem Digest.
lenses.runEine kurze E-Mail, wenn wir neue Rezepte ergänzen. Sonst keine Mail, und Sie melden sich aus jeder Nachricht ab.
Kein Konto nötig: 35 Aufrufe in 7 Tagen auf den Attest-Routen, Belege als Testbelege markiert. Registrieren Sie sich, wenn Sie weitermachen wollen.