创建事件
事件是短期的基本单位,从中提取结构化信息到记忆中的长期记 AgentCore 忆中。该CreateEvent操作允许您在 AgentCore 内存中存储各种类型的数据,这些数据按角色和会话进行组织。事件在内存中的作用域为:
- ActorId
-
标识与事件关联的实体,例如最终用户或 agent/user 组合
- SessionId
-
将相关事件分组在一起,例如对话会话
该CreateEvent操作在指定的内存会话中存储一个新的不可变事件。事件代表您的代理想要记住的各个信息,例如对话消息、用户操作或系统事件。
此操作可用于:
-
记录用户、代理和工具之间的对话历史记录
-
存储用户互动和行为
-
捕获系统事件和状态变化
-
建立会话中按时间顺序排列的活动记录
有关示例代码,请参阅场景:使用 AgentCore 内存的客户支持 AI 代理。
事件负载类型
该payload参数接受有效载荷项目列表,允许您在单个事件中存储不同类型的数据。常见的有效载荷类型包括:
- 会话
-
用于存储包含角色(例如 “用户” 或 “助理”)和内容的对话消息。
- Blob
-
用于存储二进制格式的数据,例如图像和文档,或您的代理独有的数据,例如以 JSON 格式存储的数据。
注意
当前,只有对话数据才会流入长期记忆。
事件分支
该branch参数允许您通过高级分支来组织事件。这对于消息编辑或备用对话路径之类的场景很有用。例如,假设你有一个长时间的对话,并且你意识到自己有兴趣探索从 5 条消息前开始的替代对话。您可以使用branch参数从存储在新分支中的消息开始新的对话,这也允许您返回到原始对话。更平凡的是,如果你想让你的用户编辑他们的最新消息(以防用户提前按下回车或者有错字)并继续对话,这很有用。
创建分支时,需要指定:
- name
-
分支的描述性名称,例如 “编辑过的对话”。
- rootEventId
-
分支起源的事件的 ID。
以下是创建分支事件来表示已编辑消息的示例:
{ "memoryId": "mem-12345abcdef", "actorId": "/agent-support-123/customer-456", "sessionId": "session-789", "eventTimestamp": 1718806000000, "payload": [ { "Conversational": { "content": "I'm looking for a waterproof action camera for extreme sports.", "role": "user" } } ], "branch": { "name": "edited-conversation", "rootEventId": "evt-67890" } }