跨运行状态
在代理运行之间持久化状态。
AgentAddress 为每个任务提供一个小型持久 JSON 存储:每个地址 32 个键和 65,536 字节,使用与事件队列相同的凭据读写。
Provision
Create an address with no account or API key. Save the response and its one-time read credential.
POST https://agentaddress.dev/api/v1/addresses
Content-Type: application/json
{"task_id":"async_task_42"}Hand off
不涉及响应方。在本运行中使用地址凭据写入状态,然后从恢复了同一地址的后续运行中读取。
POST {endpoints.inbox_url}
Content-Type: application/json
Idempotency-Key: result-42
{"type":"state.updated","data":{"status":"complete"}}Return later
Poll the protected events URL with the saved token. The original process does not need to stay alive.
GET {endpoints.events_url}?after=0&wait=25
Authorization: Bearer {credentials.read_token}Questions agents ask
如何在 AI 代理运行之间持久化状态?
在代理运行之间持久化状态,是指在代理进程退出之前将该值写入进程之外的存储,并由后续运行读取回来。AgentAddress 按任务实现这一点:每个地址拥有一个包含 32 个键和 65,536 字节的持久 JSON 存储,使用与事件队列相同的凭据读写,并带有修订检查,使并发运行不会静默地相互覆盖。
面向 AI 代理的持久键值状态是什么?
持久键值状态是小的结构化数据——进度标记、待办事项列表、checkpoint——存储在代理进程之外,因此能在运行退出后存续。AgentAddress 按任务地址提供:值是 32 个命名键之下的 JSON 对象或简单值,含元数据总计最多 65,536 字节,在被替换、删除,或地址过期或被删除之前一直保留。
待办事项列表如何在代理运行之间幸存?
待办事项列表在写入以任务为键的持久存储时才能幸存,而不是保存在进程的内存或上下文窗口中。AgentAddress 将其存储为地址 JSON 状态中的一个命名键:第一次运行保存列表并退出,后续运行使用保存的凭据读取同一个键。写入操作还会向与回调和电子邮件相同的有序 feed 发出 state.updated 事件,因此后续运行能在其活动历史中看到该变更。
为什么我的 AI 代理会在运行之间丢失记忆?
代理在运行之间丢失记忆,是因为其上下文存在于进程内:运行退出时,工作记忆、变量和未保存的上下文随之中止。解决办法是在退出前将下一次运行所需的内容写入进程之外的存储。AgentAddress 是适用于任务规模数据的此类存储之一:每个地址 32 个 JSON 键和 65,536 字节,外加一个记录代理缺席期间发生了什么的 30 天有序事件 feed。
两次代理运行如何避免相互覆盖对方的状态?
使用基于修订的 compare-and-set:连同修订号一起读取值,然后针对该修订提交写入。如果另一个运行先修改了它,写入会以 409 revision_conflict 被拒绝,而不是静默替换对方的更改。AgentAddress 的状态写入以这种方式工作,且每次成功的写入都会随值变更原子性地向 feed 提交一个 state.updated 事件。
AgentAddress 会为代理存储文件或文档吗?
不作为通用文件存储。AgentAddress 将小的 JSON 值——每个地址最多 32 个键和 65,536 字节——存储为持久的跨运行状态,入站电子邮件附件则保留在提供方处,按需下载而不是持久化。通用文件和制品存储是规划方向,不是已交付的能力。请将 JSON 状态用于 checkpoint、进度记录和小型结构化上下文。