coordination.lease模块 02Resource leases and queues
一次只为一个智能体持有一个资源,租约会自行失效,需要等待的智能体则排队。
coordination.lease 授予一个智能体对资源的独占租约。第二个提出请求的智能体会被拒绝,并被告知持有者的名字和需要退避多久。每个资源有自己的租约权威,因此租约不会被授予两次,从不释放的租约会过期。
coordination.lease模块 02一次只为一个智能体持有一个资源,租约会自行失效,需要等待的智能体则排队。
coordination.lease 授予一个智能体对资源的独占租约。第二个提出请求的智能体会被拒绝,并被告知持有者的名字和需要退避多久。每个资源有自己的租约权威,因此租约不会被授予两次,从不释放的租约会过期。
REST 路由和租约权威只接受 resource 和 actorDid。MCP 模式接受 ttlMs,但它在创建租约之前被丢弃,所以每个租约都运行 30,000 毫秒。提前释放或再次获取可延长。
resourceactorDidleaseid、resource、holder、expiresAtMs、、 和 。提交 resource 和 actorDid。经过认证的智能体只能以自己的身份请求。请求会发到该资源的租约权威。
空闲的资源返回 { ok: true, lease }。已被持有的返回 lease_held,带有持有者和退避时间。会形成等待环的请求返回 。
请按下运行(或者 ⌘/Ctrl + Enter),即可为左侧的请求签名。
首次运行时,系统会在此浏览器中为您创建一个免费的测试密钥:7 天之内大约可以调用 35 次,无需注册账户。回执会返回到这里,并使用已经公开发布的公钥进行验证,整个过程完全无需信任我们。
一个符合 API 接受格式的请求,以及模块返回格式的示例响应。
POST /api/v1/acp/coordination/lease Authorization: Bearer av_workspace_•••• Content-Type: application/json { : , : }
两个发布智能体请求 lock:deploy/production。一个得到租约,另一个被告知谁持有以及何时重试。
智能体获取租约后死亡。租约失效,定时器将其收回,队列中的下一个智能体可以再次请求。
智能体 A 持有一个资源并等待 B 的,而 B 在等待 A 的。第二个请求被作为 deadlock 拒绝,并指明 waitingOn。
模块是对一件狭窄事情的强力保证。请仅在其确切范围内依赖它。
deadlock 拒绝,而不是永远排队。资源的语义类别决定什么会冲突。对可并发读取的资源进行的两次读取互不排斥,而写入或删除排斥一切。
释放使持有者的信任分提高 0.5,未释放就过期则降低 5。这两个信号是租约权威发出的。
授予会向账本写入一个 coordination.lease 事件。写入是尽力而为的,因此账本中断不会阻止租约。
使用工作区 API 密钥作为 Bearer 令牌进行认证。基础 URL 为 https://api.intramedial.com。
/api/v1/acp/coordination/lease请求对资源的独占租约。/api/v1/acp/coordination/release释放调用方持有的租约。scopenonceconditionsreasonlease_held,或请求会形成等待环时为 deadlock。holderstampedelease_held 时:admitted 为放行的等待者数量,waitMs 为需要退避的时间。waitingOndeadlock 时:持有者自己正在等待的资源。leaseIdrelease:要释放的租约。过期的 id 会被拒绝。deadlockrelease 释放租约,并给持有者的信任分加 0.5。任其过期的租约由定时器收回,并扣 5 分。
拒绝带有 stampede.waitMs,它随等待者数量增长。GET /api/v1/acp/coordination/wait 返回队列。
{
"ok": false,
"reason": "lease_held",
"holder": "did:web:acme.example:agent:release",
"stampede": {
"admitted": false,
"waitMs": 50
}
}五十个智能体想要同一个文件。每次拒绝返回随队列增长的 waitMs,因此重试会分散开,而不是猛烈冲击。
coordination.admit 说明该动作是否被允许。civics.presence 报告状态,用 civics.claims 声明您的意图。negotiate.propose。ttlMs,每个租约都使用默认值。ttlMs。release 接受 resource 和 actorDid,以及可选的 leaseId。MCP 模式没有 leaseId。coordination/admit 算作协调动作。/api/v1/acp/coordination/waitcoordination.lease.acquire以 MCP 操作请求租约。coordination.lease.release以 MCP 操作释放租约。coordination.wait以 MCP 操作读取等待队列。trust.get15civics.claims20Resource claims office让智能体在获取租约之前声明它即将处理的工作,并在两个声明冲突时开立案件。metering.snapshot21Metered usage by workspace按计量项查看平面为您的工作区计了什么数,以及每个计数对应哪个计费计量项。coordination.approve05Human approval queue扣住有风险的写入或删除,直到已登录的真人批准,并让他们看到智能体、资源和动词。dual-control.scopes22Two-person dual control在平面最具破坏性的动作运行之前,要求两位不同的管理员,并查看紧急破玻璃封印是否完好。