AI News HubLIVE
站内改写3 分钟阅读

使用 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 基础设施。

来源AWS Machine Learning Blog作者: Biswanath Mukherjee

在 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。

从终端执行以下步骤:

  1. 克隆仓库:git clone https://github.com/aws-samples/sample-amazon-bedrock-agentcore-memory-mcp-server.git
  1. 创建 Python 虚拟环境并安装依赖:
cd sample-amazon-bedrock-agentcore-memory-mcp-server
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
  1. 创建 Amazon Bedrock AgentCore Memory 资源并生成 Kiro 代理配置:python3 setup_bedrock_agentcore_memory.py。系统会提示选择用户 ID 或项目 ID 作为参与者标识符。
  1. 配置 Kiro 代理:将生成的配置文件复制到 ~/.kiro/agents/~/.kiro/hooks/,设置执行权限。
  1. kiro_memory 代理设置为默认代理:在 ~/.kiro/settings/cli.json 中添加 {"chat.defaultAgent": "kiro_memory"}
  1. 登录 Kiro CLI:使用 kiro-cli login --use-device-flow,选择使用 Builder ID 免费使用,完成登录流程。
  1. 在 Kiro CLI 中输入 /mcp 查看配置的 MCP 服务器,输入 /tools 列出可用工具。可用的工具包括:clear_all_datadelete_sessionget_direct_conversation_historyget_memory_statsget_server_configget_session_detailslist_sessionssearch_conversation_historysearch_memoriesstore_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 服务器提供了全面的工具,用于存储和检索对话上下文、监控内存使用情况,以及管理持久化记忆基础设施。凭借智能检索、自然语言时间范围和级联回退策略等功能,用户可以可靠地访问对话历史,无需重复提供上下文信息。