为 Agent 添加记忆
构建 AI agent 不仅仅需要一个模型,它还需要一种能够记住你是谁的方式。
在我关于构建 AWS Briefing Agent 的系列文章中,我正在探索如何从无状态交互转向个性化体验。
标准 microVMs 的问题在于它们是无状态的。当会话结束时,环境会被销毁。这虽然防止了数据泄露,但也意味着 agent 会忘记一切。如果没有记忆,用户每次登录时都必须重复自己的偏好。
我使用 AgentCore Memory 和 Strands Agents 解决了这个问题。
以下是该架构的工作原理:
- 短期记忆:存储 90 天内的原始交互,以在聊天过程中维持上下文。
- 长期记忆:使用两种特定策略将对话转化为持久的知识。
- 语义策略:提取事实数据,例如用户在生产环境中使用哪些 AWS 服务。
- 用户偏好策略:识别风格和兴趣,例如对 serverless 工具的偏好。
为了保证数据安全,系统使用了命名空间(namespaces)。通过使用 {actorId} 变量,我确保一个用户的数据永远不会泄露到另一个用户的会话中。
我还集成了 AWS Cognito 以实现安全认证。Agent 通过验证 JWT token 来确认身份。验证通过后,系统会从 token 中提取唯一的 'sub' claim。该 ID 将成为 actor_id,Agent 使用它来获取正确的记忆记录。
集成过程非常无缝。通过使用 AgentCoreMemorySessionManager,Agent 会自动:
- 从短期记忆中加载对话历史。
- 在长期记忆中搜索相关的实事和偏好。
- 在响应之前将这些上下文注入到 agent 状态中。
结果是得到一个具有个性化感觉的 agent。它了解你的专业水平和特定的 AWS 兴趣,而无需你重复说明。
Source: https://dev.to/aws-heroes/adding-memory-to-the-agent-181k
Optional learning community: https://t.me/GyaanSetuAi