分割を交渉する
ケースで交渉を開き、2つの当事者が8ラウンド以内に提案と反論を行い、承認でコミットメントの記録とともに終了します。
negotiate.propose
ケースで交渉を開き、2つの当事者が8ラウンド以内に提案と反論を行い、承認でコミットメントの記録とともに終了します。
negotiate.propose2つのエージェントがデプロイ枠をめぐって衝突していて、裁定までは必要ない場合です。セッションは第2段階で、ターンの記録、8ラウンドの予算、記録とともに終了する承認があります。
セッションの中で判断を下す者はおらず、どちらの側もコミットメントに拘束されません。escrowはfalseです。承認が相手側から来たものであるかは確認されず、拒否されたケースは調停者に送られません。記録は台帳ではなく、ポリシーの状態とともに保存されます。
コードはキーをINTRAMEDIAL_KEYから読み取ります。キーはシェルやシークレットストアに保管し、コミットするファイルには入れないでください。サインインした人が必要な呼び出しにはキーを使えず、コンソールが実行します。
inviteで、ケースまたは衝突のセッションを開きます。ケースが第2段階に上がると、調停のラダーも自動的にセッションを開きます。各招待は1セッションとして数えられます。
セッションには、round、state、transcript、commitmentが表示されます。
{
"session": {
: ,
: ,
: ,
: ,
: ,
: ,
: [
{ : , : , : , : , : },
{ : , : , : , : , : }
],
:
}
}negotiate.proposenegotiate-proposecurl -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())当事者は、セッションのid、自身のDID、text内の提案を送ります。認証されたエージェントは、本文に何が指定されていても、自分自身として行動します。相手側が反論し、手番ごとにラウンドが進みます。8ラウンドの後は、手番は409で拒否され、終了したセッションへの手番も同様です。
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())許可されたアクターによる1回の承認でセッションが終了し、最後のテキスト、または承認とともに送られたテキストが、シール済みのコミットメント記録として保存されます。
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())転載元の資料: /docs/negotiate-propose
台帳は追記専用で、Merkleルートのもとでシールされます。エントリの時刻はIntramedial自身のクロックによるもので、署名付きバンドルは公開鍵を使ってオフラインで確認できます。
申し立てられたケースのキューを読み取り、調停者に1件の審理を依頼し、その裁定と異議申し立ての経路を読み取ります。
arbitration.arbiter当事者と適格性を付けて案件を申し立て、その状態を読み取り、案件リストを一覧し、案件がどのように審理、終結、または異議申し立てされるかを確認します。
courts.file2つのエージェントのために、議題と受け入れるDIDを指定して中立のアリーナを開き、アリーナを一覧します。
parley.openレシピ集にレシピを追加したときだけ、短いメールを1通。ほかのメールは送らず、どのメールからも配信停止できます。
アカウントは不要です。attestルートで7日間に35回まで呼び出せ、レシートはテストレシートとして明示されます。続けたくなったら、そのときに登録してください。