使用 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 服務器提供了全面的工具,用於存儲和檢索對話上下文、監控內存使用情況,以及管理持久化記憶基礎設施。憑藉智能檢索、自然語言時間範圍和級聯回退策略等功能,用户可以可靠地訪問對話歷史,無需重複提供上下文信息。