使用 Amazon Bedrock AgentCore Memory 扩展 Kiro CLI 的对话记忆
本文演示如何通过实现一个自定义的模型上下文协议(MCP)服务器,将 Amazon Bedrock AgentCore Memory 集成到 Kiro CLI 中,从而扩展其对话记忆能力。Kiro CLI 是一款终端工具,可用于直接与 Kiro 的 AI 代理交互。Amazon Bedrock AgentCore Memory 是一项全托管服务,允许 AI 代理保留历史交互信息,实现更智能、更具上下文感知的对话。通过自定义 MCP 服务器,Kiro CLI 可以存储和检索对话上下文、监控内存使用情况,并管理底层 Bedrock Agent Core Memory 基础设施。
在 AI 辅助编程中,智能 IDE 如果无法记住之前会话中的上下文,将会大大降低工作效率。开发者往往需要花数天或数周时间处理大型代码库和复杂业务需求,但 IDE 只能记住当前会话,无法回忆对话历史、偏好或额外见解。这导致每次新会话都需重复提供相同的上下文信息,严重影响生产力。
本文演示了如何通过实现一个自定义的模型上下文协议(MCP)服务器,将 Amazon Bedrock AgentCore Memory 集成到 Kiro CLI 中,从而扩展其对话记忆能力。Kiro CLI 是一款终端工具,可直接与 Kiro 的 AI 代理交互。Amazon Bedrock AgentCore Memory 是一项全托管服务,允许 AI 代理保留历史交互信息,实现更智能、更具上下文感知的对话。通过自定义 MCP 服务器,Kiro CLI 可以存储和检索对话上下文、监控内存使用情况,并管理底层 Bedrock Agent Core Memory 基础设施。
解决方案概述
该解决方案由三个主要组件协同工作:
- Amazon Bedrock AgentCore Memory:全托管服务,负责存储和检索对话上下文,提供持久化记忆能力,内置语义搜索。它支持短期工作记忆和长期智能记忆,使 AI 代理能够保留上下文、从交互中学习,并提供个性化体验。
- 自定义 MCP 服务器:通过 MCP 暴露 Amazon Bedrock AgentCore Memory 的能力,使 MCP 兼容客户端可以访问记忆操作。
- Kiro CLI:通过 STDIO 协议连接 MCP 服务器,以存储和检索跨会话的对话历史。
MCP 服务器充当 Kiro CLI 与 Amazon Bedrock AgentCore Memory 之间的桥梁,使 Kiro CLI 能够维护对话历史和上下文。MCP 服务器提供的工具分为三类:
- 会话工具:按主题或时间范围搜索对话历史、使用一致的会话 ID 存储对话、检索完整会话内容、列出之前存储的会话。
- 监控工具:查看内存使用统计信息和 MCP 服务器配置。
- 管理工具:删除特定会话或在需要时清除存储的数据。
该解决方案采用两级检索策略:首先使用 Bedrock AgentCore Memory 的 retrieve_memory_records API 进行语义搜索,实现概念匹配;若失败,则回退到直接的事件级内容匹配,扫描存储在 AgentCore Memory 会话中的原始对话数据。这种级联方法确保无论语义策略是否完成处理,对话都能被检索到。用户可以在提示中使用时间范围,如“最近”、“昨晚”或“昨天”,来查找相关会话。
这种架构使 Kiro CLI 具有上下文感知能力——它能记住用户的偏好、项目细节和工作流程,无需重复提供相同信息。
操作步骤
演示需要以下前提条件:
- 通过 AWS 管理控制台和 AWS CLI 访问 AWS 账户。
- 使用的 IAM 用户必须具有必要的服务调用和资源管理权限,并遵循最小权限原则。
- AWS Builder ID。
- 在桌面/笔记本上安装并配置 Kiro CLI。
从终端执行以下步骤:
- 克隆仓库:
git clone https://github.com/aws-samples/sample-amazon-bedrock-agentcore-memory-mcp-server.git
- 创建 Python 虚拟环境并安装依赖:
cd sample-amazon-bedrock-agentcore-memory-mcp-server
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt- 创建 Amazon Bedrock AgentCore Memory 资源并生成 Kiro 代理配置:
python3 setup_bedrock_agentcore_memory.py。系统会提示选择用户 ID 或项目 ID 作为参与者标识符。
- 配置 Kiro 代理:将生成的配置文件复制到
~/.kiro/agents/和~/.kiro/hooks/,设置执行权限。
- 将
kiro_memory代理设置为默认代理:在~/.kiro/settings/cli.json中添加{"chat.defaultAgent": "kiro_memory"}。
- 登录 Kiro CLI:使用
kiro-cli login --use-device-flow,选择使用 Builder ID 免费使用,完成登录流程。
- 在 Kiro CLI 中输入
/mcp查看配置的 MCP 服务器,输入/tools列出可用工具。可用的工具包括:clear_all_data、delete_session、get_direct_conversation_history、get_memory_stats、get_server_config、get_session_details、list_sessions、search_conversation_history、search_memories、store_conversation。
测试解决方案
Kiro CLI 会根据提示需要自动调用 MCP 服务器,并在每次对话后触发钩子存储会话。示例用法:
- 提问“什么是 AWS DevOps agent?它正式发布了吗?”然后退出会话。
- 重新登录后询问“我们之前关于 AWS DevOps agent 讨论了什么?”Kiro 会通过 MCP 服务器从 Bedrock AgentCore Memory 中检索信息。
- 可以进一步询问集成或定价等后续问题。
清理资源
为演示创建的资源可通过运行 python3 cleanup_bedrock_agentcore_memory.py 删除,并移除代理配置和钩子文件。
结论
本文展示了如何通过自定义 MCP 服务器集成 Amazon Bedrock AgentCore Memory,增强 Kiro CLI 的上下文持久化能力。该自定义 MCP 服务器提供了全面的工具,用于存储和检索对话上下文、监控内存使用情况,以及管理持久化记忆基础设施。凭借智能检索、自然语言时间范围和级联回退策略等功能,用户可以可靠地访问对话历史,无需重复提供上下文信息。