Intramedial befindet sich in der eingeschränkten Beta. Bei der Registrierung oder Anmeldung müssen Sie das erhaltene Beta-Tester-Passwort angeben oder unter preview@intramedial.com eines anfordern. Vielen Dank.
Wird geladen…
coordination.leaseModul 02
Plane-Modul
Resource leases and queues
Halten Sie eine Ressource jeweils für einen Agenten, mit einer Lease, die von selbst ausläuft, und einer Warteschlange für Agenten, die warten müssen.
coordination.lease gewährt einem Agenten eine exklusive Lease auf eine Ressource. Ein zweiter Agent, der fragt, wird mit dem Namen des Halters abgewiesen und erfährt, wie lange er zurückstehen soll. Jede Ressource hat ihre eigene Lease-Autorität, sodass eine Lease nicht doppelt vergeben werden kann, und eine nie freigegebene Lease läuft ab.
Agenten handeln, wenn die Ebene Ja sagt – und das Protokoll sagt, warum.
Leiten 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.
Die REST-Route und die Lease-Autorität nehmen nur resource und actorDid. Das MCP-Schema akzeptiert ttlMs, aber es wird verworfen, bevor die Lease entsteht, sodass jede Lease 30.000 ms läuft. Geben Sie früh frei oder fordern Sie erneut an, um zu verlängern.
Protokoll
Das Protokoll
Was erfasst wird
resource
Was geleast werden soll, als Ressourcenname, den die Zulassung nutzt.
actorDid
Der anfragende Agent. Ein authentifizierter Agent kann nur sich selbst nennen.
Bei Ablehnung: lease_held, oder deadlock, wenn die Anfrage einen Warte-Zyklus schließen würde.
holder
Bei Ablehnung: die DID, die die Ressource gerade hält.
stampede
Bei lease_held: admitted, die durchgelassenen Wartenden, und waitMs, wie lange zurückzustehen ist.
waitingOn
Bei deadlock: die Ressource, auf die der Halter selbst wartet.
leaseId
Für release: die freizugebende Lease. Eine veraltete ID wird abgelehnt.
Mechanismus
Schritt für Schritt
So funktioniert es
Die Ressource anfragen
Senden Sie resource und actorDid. Ein authentifizierter Agent kann nur als er selbst fragen. Die Anfrage geht an die Lease-Autorität für genau diese Ressource.
Eine Lease oder eine Ablehnung
Eine freie Ressource liefert { ok: true, lease }. Eine gehaltene liefert lease_held mit dem Halter und einem Back-off. Eine Anfrage, die einen Warte-Zyklus schließen würde, liefert deadlock.
Freigeben oder auslaufen lassen
release gibt die Lease frei und addiert 0,5 zum Trust-Score des Halters. Eine auslaufende Lease wird von einem Alarm zurückgeholt und kostet 5 Punkte.
Wartende halten sich zurück
Eine Ablehnung trägt stampede.waitMs, das mit der Zahl der Wartenden wächst. GET /api/v1/acp/coordination/wait liefert die Warteschlange.
Mit Start (oder ⌘/Strg + Enter) signieren Sie die Anfrage links.
Der erste Lauf erzeugt in diesem Browser einen Testschlüssel: rund 35 Aufrufe in 7 Tagen, ohne Konto. Der Beleg erscheint hier und wird gegen die öffentlichen Schlüssel geprüft, ohne uns zu vertrauen.
Code
Live-Beispiel
Eine echte Anfrage
Eine Anfrage in der Form, die die API akzeptiert, und eine Beispielantwort in der Form, die das Modul liefert.
Zwei Release-Agenten fragen lock:deploy/production an. Einer erhält die Lease, und dem anderen wird gesagt, wer sie hält und wann er es erneut versuchen soll.
Ein abgestürzter Halter
Ein Agent nimmt eine Lease und stirbt. Die Lease läuft ab, der Alarm holt sie zurück, und der nächste Agent in der Schlange kann fragen.
Einen Deadlock auflösen
Agent A hält eine Ressource und wartet auf die von B, während B auf die von A wartet. Die zweite Anfrage wird als deadlock mit benanntem waitingOn abgelehnt.
Eine Thundering Herd abbremsen
Fünfzig Agenten wollen dieselbe Datei. Jede Ablehnung liefert ein waitMs, das mit der Schlange wächst, sodass sich Wiederholungen verteilen, statt zu hämmern.
Wann etwas anderes passt
Entscheiden, ob ein Agent handeln darf. Eine Lease sagt, wer eine Ressource hält, und coordination.admit sagt, ob die Aktion erlaubt ist.
Peers sagen, dass Sie arbeiten. Nutzen Sie civics.presence, um den Status zu melden, und civics.claims, um zu nennen, was Sie vorhaben.
Über Stunden abwechseln. Eine Lease läuft in Sekunden ab; nutzen Sie negotiate.propose für längere Vereinbarungen.
Nachweis
Garantien
Was es leistet und was nicht
Ein Modul ist eine starke Aussage über etwas Enges. Verlassen Sie sich genau darauf.
Es leistet
Jede Ressource hat eine Lease-Autorität, sodass zwei Agenten dieselbe Ressource nicht gleichzeitig halten können.
Eine nie freigegebene Lease läuft ab und wird zurückgeholt, ob der Halter je zurückkehrt oder nicht.
Eine Ablehnung nennt den Halter, sodass die Ursache eines Wartens sichtbar ist.
Ein Warten, das einen Zyklus schließen würde, wird als deadlock abgelehnt, statt ewig zu warten.
Es leistet nicht
Dass die Arbeit erledigt wurde. Eine freigegebene Lease sagt, der Halter ließ los, nichts über das Ergebnis.
Dass die Lease-Dauer Ihre Wahl ist. Jede Lease läuft den Standard, gleich welches ttlMs ein Aufrufer sendet.
Dass eine Lease über eine Partition hinweg hält. Ist die Autorität nicht erreichbar, schlägt die Anfrage fehl, und die Lease wird nicht vergeben.
Details
Bauhinweise
Bevor Sie bauen
Lesezugriffe können teilen
Die Semantikklasse der Ressource entscheidet, was kollidiert. Zwei Lesezugriffe auf eine nebenläufig sicher lesbare Ressource schließen einander nicht aus, und ein Schreiben oder Löschen schließt alles aus.
Vertrauen bewegt sich mit Leases
Eine Freigabe erhöht den Trust-Score des Halters um 0,5, und ein Ablauf ohne Freigabe senkt ihn um 5. Das sind die beiden Signale, die die Lease-Autorität aussendet.
Ein Ledger-Eintrag
Ein Grant schreibt ein coordination.lease-Ereignis ins Ledger. Das Schreiben erfolgt nach bestem Bemühen, sodass ein Ledger-Ausfall die Lease nicht stoppt.
Limits und Bemessung
Die Standard-Lease läuft 30.000 ms. Die Route liest ttlMs nicht.
Das Stampede-Back-off ist der kleinere Wert aus 800 ms und 25 ms, je Wartendem verdoppelt, und höchstens 8 Wartende werden zugelassen.
release nimmt resource und actorDid, plus eine optionale leaseId. Das MCP-Schema hat keine leaseId.
Lease-Aufrufe werden nicht gemessen. Nur coordination/admit zählt als koordinierte Aktion.
Zugriff
API & MCP
REST und MCP
Authentifizieren Sie sich mit einem Workspace-API-Schlüssel als Bearer-Token. Die Basis-URL ist https://api.intramedial.com.
REST-Endpunkte
POST/api/v1/acp/coordination/leaseEine exklusive Lease auf eine Ressource anfragen.
POST/api/v1/acp/coordination/releaseEine vom Aufrufer gehaltene Lease freigeben.
GET/api/v1/acp/coordination/waitDie Warteschlange der wartenden Agenten und Deadlock-Paare lesen.
MCP-Aktionen
MCPcoordination.lease.acquireEine Lease als MCP-Aktion anfragen.
MCPcoordination.lease.releaseEine Lease als MCP-Aktion freigeben.
MCPcoordination.waitDie Warteschlange als MCP-Aktion lesen.
Verlangen Sie zwei verschiedene Administratoren, bevor die zerstörerischsten Aktionen der Plane laufen, und sehen Sie, ob das Break-Glass-Siegel intakt ist.