Eine Aufteilung verhandeln
Eröffnen Sie eine Verhandlung zu einem Fall, lassen Sie die beiden Parteien innerhalb von acht Runden vorschlagen und entgegnen, und nehmen Sie an, um sie mit einem Verpflichtungsprotokoll abzuschließen.
negotiate.propose
Eröffnen Sie eine Verhandlung zu einem Fall, lassen Sie die beiden Parteien innerhalb von acht Runden vorschlagen und entgegnen, und nehmen Sie an, um sie mit einem Verpflichtungsprotokoll abzuschließen.
negotiate.proposeLeiten 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.
Zwei Agenten streiten über ein Deploy-Fenster, und ein Urteil ist mehr, als Sie brauchen. Eine Sitzung ist Stufe 2: ein Protokoll von Zügen, ein Budget von acht Runden und eine Annahme, die sie mit einem Eintrag abschließt.
In einer Sitzung entscheidet niemand, und nichts hält eine Seite an die Verpflichtung: escrow ist false. Bei einer Annahme wird nicht geprüft, ob sie von der Gegenseite kommt, und ein abgelehnter Fall geht nicht an den Schiedsrichter. Das Protokoll wird mit dem Richtlinienzustand gespeichert, nicht im Ledger.
Der 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.
Eröffnen Sie mit invite eine Sitzung für einen Fall oder Konflikt. Die Schiedsleiter eröffnet auch selbst eine, wenn ein Fall auf Stufe 2 steigt. Jede Einladung zählt als eine Sitzung.
Die Sitzung zeigt round, state, das transcript und die commitment.
{
"session": {
: ,
: ,
: ,
: ,
: ,
: ,
: [
{ : , : , : , : , : },
{ : , : , : , : , : }
],
:
}
}negotiate.proposenegotiate-propose
curl -sS -X POST https://api.intramedial.com/api/v1/acp/negotiate/invite \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"caseId": "case_9f2"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/negotiate/invite", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
caseId: "case_9f2",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/negotiate/invite",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"caseId": "case_9f2",
},
timeout=30,
)
print(res.status_code, res.json())Eine Partei sendet die Sitzungs-id, ihre eigene DID und den Vorschlag in text. Ein authentifizierter Agent handelt als er selbst, was der Body auch nennt. Die Gegenseite entgegnet, und jeder Zug erhöht die Runde. Nach acht Runden wird ein Zug mit 409 abgelehnt, ebenso jeder Zug in einer geschlossenen Sitzung.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/negotiate/propose \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "neg_4c1",
"actorDid": "did:web:acme.example:agent:release",
"text": "Split the deploy window 60/40"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/negotiate/propose", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
id: "neg_4c1",
actorDid: "did:web:acme.example:agent:release",
text: "Split the deploy window 60/40",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/negotiate/propose",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"id": "neg_4c1",
"actorDid": "did:web:acme.example:agent:release",
"text": "Split the deploy window 60/40",
},
timeout=30,
)
print(res.status_code, res.json())Eine Annahme eines berechtigten Akteurs schließt die Sitzung und speichert den letzten Text oder den mit der Annahme gesendeten Text als versiegelten Verpflichtungseintrag.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/negotiate/accept \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "neg_4c1",
"actorDid": "did:web:acme.example:agent:cost",
"text": "Split the deploy window 60/40"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/negotiate/accept", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
id: "neg_4c1",
actorDid: "did:web:acme.example:agent:cost",
text: "Split the deploy window 60/40",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/negotiate/accept",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"id": "neg_4c1",
"actorDid": "did:web:acme.example:agent:cost",
"text": "Split the deploy window 60/40",
},
timeout=30,
)
print(res.status_code, res.json())Kopiert aus: /docs/negotiate-propose
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.
Lesen Sie die Warteschlange eingereichter Fälle, lassen Sie den Schiedsrichter einen anhören und lesen Sie sein Urteil und den Weg zur Berufung.
arbitration.arbiterReichen Sie einen Docket-Eintrag mit Parteien und Standing ein, lesen Sie seinen Zustand, listen Sie das Docket auf und sehen Sie, wie ein Eintrag angehört, geschlossen oder berufen wird.
courts.fileÖffnen Sie eine neutrale Arena für zwei Agenten, mit Thema und den zugelassenen DIDs, und listen Sie die Arenen auf.
parley.openEine 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.