概述
在快時尚電商行業,產品生命週期短、上新節奏快、營銷活動高頻、用户諮詢激增且多樣化。這對智能體的研發效率提出了極高要求,系統必須能 快速迭代、即時上線、穩定支撐大規模交互場景。然而在實際開發中,智能體研發團隊往往面臨:
- 傳統依賴大量查閲與理解產品文檔的研發模式,會顯著拉低迭代效率,難以滿足快時尚電商對業務敏捷性的要求
- 集成多個服務(如模型、工具、知識庫)時 部署與配置複雜、極易出錯
- 為了保持業務敏捷性,團隊需要第一時間獲取最佳實踐和產品更新,從而持續優化上線效率
- 在大促、上新節點前,調試與問題排查往往成為最大瓶頸
Amazon Bedrock AgentCore MCP Server 正是為此類高敏捷、高複雜度業務場景而生。它提供 實時文檔查詢、動態配置管理、部署指導、可觀測輔助,讓智能體研發從 “查文檔 + 試錯” 為主的低效流程,轉向 “自動提示 + 即時驗證 + 快速落地” 的工程體驗。本文將以構建一個快時尚電商智能客服系統為例,展示如何藉助 Amazon Bedrock AgentCore MCP Server、Amazon Bedrock、Strands Agents 與 Kiro,實現智能體的極速構建與穩定交付。
📢限時插播:無需管理基礎設施,利用亞馬遜技術與生態,快速集成與部署生成式AI模型能力。
✨ 精心設計,旨在引導您深入探索Amazon Bedrock的模型選擇與調用、模型自動化評估以及安全圍欄(Guardrail)等重要功能。
⏩快快點擊進入《多模一站通 —— Amazon Bedrock 上的基礎模型初體驗》實驗構建無限, 探索啓程!
什麼是 Amazon Bedrock AgentCore MCP Server 及其價值
Model Context Protocol (MCP) 是一個開放標準,用於連接AI模型與外部工具和數據源。Amazon Bedrock AgentCore MCP Server 提供三大核心能力:
- 智能文檔檢索:無需離開開發環境即可搜索和獲取AgentCore文檔
- 部署管理指導:提供運行時、Memory、網關的配置和部署最佳實踐
- 實時問題解決:在開發過程中快速獲取解決方案
傳統開發流程 vs MCP加速流程對比:
Amazon Bedrock AgentCore MCP Server在整個開發流程中的作用
開發流程 MCP Server的加速作用
─────────────────────────────────────────────────
1. 需求分析 → 搜索類似案例和最佳實踐
2. 技術選型 → 獲取框架對比和集成指南
3. 架構設計 → 查詢配置選項和限制
4. 編碼實現 → 獲取代碼模板和示例
5. 配置部署 → 部署檢查清單和命令
6. 測試調試 → 問題排查和日誌查看
7. 性能優化 → 優化建議和配置調整
8. 運維監控 → 監控指標和告警配置
接下來,我們將通過實際案例展示MCP Server如何加速開發。
第一部分:安裝Amazon Bedrock AgentCore MCP Server
1.1 前置條件
在開始之前,請確保您的環境滿足以下要求:
- Python 3.10或更高版本
- Amazon CLI 2.0或更高版本,並已配置有效的亞馬遜雲科技憑證
- uv包管理器(用於運行MCP服務器)
1.2 安裝uv包管理器
首先安裝uv包管理器,這是運行MCP服務器的必要工具:
# Windows (使用PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# 或使用pip安裝
pip install uv
1.3 配置MCP服務器
創建或編輯MCP配置文件:
- Windows:
%USERPROFILE%.kiro\settings\mcp.json - macOS/Linux:
~/.kiro/settings/mcp.json
{
"mcpServers": {
"awslabs.amazon-bedrock-agentcore-mcp-server": {
"command": "uvx",
"args": ["awslabs.amazon-bedrock-agentcore-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
配置成功之後,可以在Kiro的MCP SERVERS欄目裏看到awslabs.amazon-bedrock-agentcore-mcp-server:
第二部分:使用Amazon Bedrock AgentCore MCP Server加速開發流程
Amazon Bedrock AgentCore MCP Server不僅是一個文檔查詢工具,它更是一個開發加速利器,通過MCP協議提供秒級響應,將原本需要在瀏覽器、文檔網站、論壇之間切換的工作流,整合到開發環境中, 與開發流程緊密融合的即時知識響應 。在開始編碼之前,讓我們看看Amazon Bedrock AgentCore MCP Server如何在實際開發中提供幫助。
場景1:不確定如何開始
開發者問題:”我想用Strands Agents構建客服系統,但不知道從哪裏開始”
通過MCP Server查詢:
# 在IDE中通過AI助手調用MCP Server
query = "strands agents integration example"
# MCP Server立即返回相關文檔和代碼示例
MCP Server返回:
- Strands Agent完整代碼模板
- 與AgentCore集成的最佳實踐
- 部署配置示例
節省時間:從30分鐘文檔閲讀 → 2分鐘獲取關鍵信息
場景2:配置Memory管理
開發者問題:”客服系統需要記住用户對話歷史,如何配置?”
通過MCP Server查詢:
# 查詢Memory配置指南
manage_agentcore_memory()
MCP Server返回:
- Memory配置代碼模板
- retrieval_config參數説明
- STM/LTM選擇建議
節省時間:從反覆試錯 → 直接使用正確配置
場景3:部署前檢查
開發者問題:”代碼寫好了,部署需要注意什麼?”
通過MCP Server查詢:
# 獲取部署指導
manage_agentcore_runtime()
MCP Server返回:
- 部署前檢查清單
- 常見錯誤及解決方案
- CLI命令完整流程
節省時間:從部署失敗重試 → 一次性成功部署
這種即時知識獲取能力,讓開發者無需在文檔中反覆查找,就能專注於業務邏輯,並始終跟上產品功能的最新變化。
第三部分:構建智能客服系統
3.1 項目初始化
首先創建項目目錄並設置Python虛擬環境:
mkdir intelligent-customer-service
cd intelligent-customer-service
# 創建虛擬環境
python -m venv .venv
# 激活虛擬環境
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
# 安裝必要依賴
pip install "bedrock-agentcore-starter-toolkit>=0.1.21" strands-agents boto3
3.2 利用 MCP 加速智能體構建
在 Kiro 中,開發者可以通過自然語言提出需求,Kiro 會基於 Amazon Bedrock AgentCore MCP Server 自動協助生成所需的智能體應用架構與代碼。以下示例展示瞭如何利用 Amazon Bedrock AgentCore MCP Server 與 Amazon Bedrock 生態快速構建一個可運行的智能客服智能體。
我們將基於以下組件搭建示例系統:
Amazon Bedrock AgentCore:負責智能體的運行時管理、狀態維護與可觀測性。
Amazon Bedrock 模型平台:提供高性能的基礎模型能力。
Strands Agents:用於定義和編排智能體的對話流與行為邏輯。
示例場景為一個 簡化的購物客服對話系統,包含常見的業務流程(SOP),如下單、退貨、物流查詢、商品諮詢等。為展示清晰的邏輯鏈路,這些 SOP 將以硬編碼方式實現。
智能客服應具備以下能力:
多輪對話理解能力:能夠根據用户連續輸入判斷意圖變化。
基於 SOP 的流程調度:根據識別出的意圖調用對應的業務流程節點。
智能體鏈路展示:在執行過程中體現 AgentCore 的執行鏈路、內存管理與上下文控制。
Strands 流程建模:通過 Strands Agents 將 SOP 與模型推理結合,實現可視化且可維護的對話流程。
藉助上述需求描述,Kiro 會將這些自然語言提示自動轉化為可執行的智能體結構説明,並在 Amazon Bedrock AgentCore MCP Server 的能力加持下,快速生成對應的 購物問題 SOP 定義 與 智能客服代理實現。Amazon Bedrock AgentCore MCP Server 在生成過程中持續提供最新的配置説明、API 用法和最佳實踐, 從而確保交付物在結構與行為上都能精準匹配文檔描述與功能需求 ,並能實現即刻運行測試 。
通過 Amazon Bedrock AgentCore MCP Server 的協助,Kiro 能夠顯著減少樣板代碼與配置時間,使智能客服的構建過程更加快速、標準化與可復現。
3.3 購物問題SOP定義
創建 shopping_sop.py 文件,定義購物相關的標準操作程序:
"""
購物客服標準操作程序 (SOP)
"""
class ShoppingSOP:
def __init__(self):
self.sop_data = {
"訂單查詢": {
"keywords": ["訂單", "查詢", "狀態", "物流", "快遞"],
"response_template": "請提供您的訂單號,我來幫您查詢訂單狀態。訂單號通常是以'ORD'開頭的12位數字。",
"follow_up": "如果您找不到訂單號,可以提供下單時使用的手機號碼或郵箱地址。"
},
"退換貨": {
"keywords": ["退貨", "換貨", "退款", "不滿意", "質量問題"],
"response_template": "我理解您的困擾。請告訴我具體的問題:1) 商品質量問題 2) 尺寸不合適 3) 收到錯誤商品 4) 其他原因",
"follow_up": "退換貨需要在收貨後7天內申請,商品需保持原包裝完好。"
},
"商品諮詢": {
"keywords": ["商品", "產品", "價格", "規格", "參數", "功能"],
"response_template": "我很樂意為您介紹商品信息。請告訴我您感興趣的具體商品名稱或類別。",
"follow_up": "您也可以提供商品鏈接或商品編號,我可以為您提供更詳細的信息。"
},
"支付問題": {
"keywords": ["支付", "付款", "銀行卡", "支付寶", "微信", "優惠券"],
"response_template": "關於支付問題,我來幫您解決。常見支付方式包括:支付寶、微信支付、銀行卡。請描述您遇到的具體問題。",
"follow_up": "如果支付失敗,請檢查網絡連接和賬户餘額,或嘗試更換支付方式。"
},
"物流配送": {
"keywords": ["配送", "快遞", "物流", "送貨", "收貨地址"],
"response_template": "關於配送服務:1) 市內當日達 2) 次日達 3) 標準配送(2-3天) 4) 偏遠地區配送(3-7天)",
"follow_up": "您可以在下單時選擇配送方式,部分商品支持指定配送時間。"
},
"會員服務": {
"keywords": ["會員", "積分", "等級", "權益", "折扣"],
"response_template": "我們的會員體系分為:普通會員、銀卡會員、金卡會員、鑽石會員。不同等級享有不同權益。",
"follow_up": "會員積分可用於兑換商品或抵扣現金,積分有效期為2年。"
}
}
def match_intent(self, user_message):
"""根據用户消息匹配意圖"""
user_message_lower = user_message.lower()
for intent, data in self.sop_data.items():
for keyword in data["keywords"]:
if keyword in user_message_lower:
return intent, data
return "通用諮詢", {
"response_template": "感謝您的諮詢!我是您的專屬客服助手,可以幫您解決訂單查詢、退換貨、商品諮詢、支付問題、物流配送和會員服務等問題。請告訴我您需要什麼幫助?",
"follow_up": "您也可以直接描述遇到的具體問題,我會盡力為您解答。"
}
def get_response(self, intent, sop_data, context=""):
"""生成回覆"""
response = sop_data["response_template"]
if "follow_up" in sop_data and context:
response += f"\n\n補充信息:{sop_data['follow_up']}"
return response
3.4 智能客服代理實現
💡 提示:如果不確定如何配置Strands Agents的Memory集成,可以在Kiro IDE中詢問AI助手”如何配置AgentCore Memory”,AI會自動調用Amazon Bedrock AgentCore MCP Server獲取相關文檔和代碼示例。
創建 customer_service_agent.py 文件:
"""
基於Amazon Bedrock AgentCore和Strands的智能客服系統
"""
import os
import json
from strands import Agent
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from bedrock_agentcore.memory.integrations.strands.config import (
AgentCoreMemoryConfig,
RetrievalConfig
)
from bedrock_agentcore.memory.integrations.strands.session_manager import (
AgentCoreMemorySessionManager
)
from shopping_sop import ShoppingSOP
# 創建AgentCore應用實例
app = BedrockAgentCoreApp()
# 配置參數
MEMORY_ID = os.getenv("BEDROCK_AGENTCORE_MEMORY_ID")
REGION = os.getenv("AWS_REGION", "us-west-2")
MODEL_ID = "global.anthropic.claude-sonnet-4-5-20250929-v1:0"
# 初始化SOP
sop = ShoppingSOP()
# 日誌記錄
app.logger.info(f"智能客服系統初始化完成 - Region: {REGION}, Model: {MODEL_ID}")
@app.entrypoint
def invoke(payload, context):
"""
智能客服主入口函數
Args:
payload: 請求負載,包含用户消息和元數據
context: 運行時上下文
Returns:
dict: 包含回覆內容和元數據的響應
"""
# 提取請求參數
user_message = payload.get("prompt", "")
actor_id = payload.get("user_id", "customer_default")
session_id = getattr(context, 'session_id', None) or payload.get("session_id", "default")
app.logger.info(f"收到客服請求 - User: {actor_id}, Session: {session_id}, Message: {user_message}")
# 配置Memory管理(如果啓用)
session_manager = None
if MEMORY_ID:
try:
memory_config = AgentCoreMemoryConfig(
memory_id=MEMORY_ID,
session_id=session_id,
actor_id=actor_id,
retrieval_config={
# 客户偏好信息
f"/customers/{actor_id}/preferences": RetrievalConfig(
top_k=3,
relevance_score=0.5
),
# 歷史對話記錄
f"/customers/{actor_id}/history": RetrievalConfig(
top_k=5,
relevance_score=0.6
),
# 訂單信息
f"/customers/{actor_id}/orders": RetrievalConfig(
top_k=3,
relevance_score=0.7
)
}
)
session_manager = AgentCoreMemorySessionManager(memory_config, REGION)
app.logger.info(f"Memory管理已啓用 - Memory ID: {MEMORY_ID}")
except Exception as e:
app.logger.warning(f"Memory管理初始化失敗: {e}")
# SOP意圖識別
intent, sop_data = sop.match_intent(user_message)
sop_response = sop.get_response(intent, sop_data, include_follow_up=True)
app.logger.info(f"意圖識別結果: {intent}")
# 構建系統提示詞
system_prompt = f"""你是一個專業、友好的購物客服助手,名字叫小智。
【你的職責】
1. 根據標準操作程序(SOP)為客户提供準確、專業的服務
2. 保持友好、耐心、熱情的服務態度
3. 記住客户的對話歷史和偏好,提供個性化服務
4. 在必要時主動詢問更多信息以更好地幫助客户
5. 對於複雜問題,引導客户提供必要的信息
【當前對話上下文】
- 識別的客户意圖:{intent}
- SOP標準回覆參考:
{sop_response}
【回覆要求】
1. 基於SOP標準回覆,結合客户的具體問題生成個性化回覆
2. 使用温暖、友好、專業的語調
3. 回覆要清晰、具體、可操作
4. 適當使用emoji增加親和力(但不要過度)
5. 如果客户問題不夠明確,禮貌地詢問更多細節
6. 結尾可以詢問是否還有其他需要幫助的地方
【注意事項】
- 不要生硬地複製SOP內容,要自然地融入對話
- 保持回覆簡潔,避免信息過載
- 對於無法解決的問題,建議聯繫人工客服
- 始終保持積極、解決問題的態度
請根據以上要求,為客户提供優質的服務體驗。"""
# 創建Strands代理
try:
agent = Agent(
model=MODEL_ID,
session_manager=session_manager,
system_prompt=system_prompt,
tools=[] # 可以在這裏添加工具,如訂單查詢API、庫存查詢API等
)
app.logger.info("Strands代理創建成功")
# 調用代理處理用户消息
result = agent(user_message)
# 提取回復內容
response_text = extract_response_text(result)
app.logger.info(f"代理回覆生成成功 - 長度: {len(response_text)}")
# 構建響應
return {
"response": response_text,
"intent": intent,
"session_id": session_id,
"user_id": actor_id,
"status": "success",
"metadata": {
"model": MODEL_ID,
"memory_enabled": MEMORY_ID is not None,
"sop_matched": intent != "通用諮詢"
}
}
except Exception as e:
app.logger.error(f"客服代理處理錯誤: {str(e)}", exc_info=True)
# 返回友好的錯誤消息
return {
"response": "非常抱歉,我遇到了一些技術問題。😔\n\n請您稍後再試,或者撥打客服熱線 400-XXX-XXXX 聯繫人工客服。\n\n給您帶來不便,敬請諒解!",
"intent": "error",
"session_id": session_id,
"user_id": actor_id,
"status": "error",
"error": str(e)
}
def extract_response_text(result):
"""
從代理結果中提取回覆文本
Args:
result: Strands代理的返回結果
Returns:
str: 提取的回覆文本
"""
try:
if hasattr(result, 'message') and result.message:
content = result.message.get('content', [])
if content and isinstance(content, list) and len(content) > 0:
return content[0].get('text', str(result))
return str(result)
except Exception as e:
app.logger.warning(f"提取回覆文本失敗: {e}")
return str(result)
# 本地測試入口
if __name__ == "__main__":
print("=" * 70)
print("智能客服系統 - 本地測試模式")
print("=" * 70)
print("\n啓動AgentCore本地服務器...")
print("訪問 http://localhost:8080 進行測試\n")
print("測試命令示例:")
print('curl -X POST http://localhost:8080/invocations \')
print(' -H "Content-Type: application/json" \')
print(' -d '{"prompt": "我想查詢訂單", "user_id": "test_user"}'')
print("\n" + "=" * 70 + "\n")
# 啓動本地服務器
app.run()
創建 requirements.txt 文件:
strands-agents
bedrock-agentcore-starter-toolkit>=0.1.21
boto3
第四部分:本地測試智能客服系統
在部署到亞馬遜雲科技之前,我們可以先在本地測試智能客服系統,確保功能正常。
4.1 配置AgentCore項目
💡 提示:配置前如有疑問,可以在Kiro IDE中詢問AI助手”如何配置AgentCore項目”,AI會調用Amazon Bedrock AgentCore MCP Server獲取詳細的配置指南。
首先需要配置AgentCore項目,生成 .bedrock_agentcore.yaml 配置文件:
# 配置AgentCore項目
agentcore configure -e customer_service_agent.py
# 在配置過程中:
# 1. 執行角色:按Enter自動創建新角色(或選擇已有角色)
# 2. ECR倉庫:按Enter自動創建
# 3. 需求文件:確認requirements.txt
# 4. OAuth配置:輸入'no'
# 5. 請求頭白名單:輸入'no'
# 6. Memory配置:輸入'yes'啓用長期Memory(可選,本地測試可以選'no')
配置完成後,會在當前目錄生成 .bedrock_agentcore.yaml 文件。
💡 注意:本地測試時,如果不需要測試Memory功能,可以在Memory配置時選擇’no’,這樣可以更快啓動和測試。
4.2 啓動本地開發服務器
AgentCore提供了本地開發服務器,支持熱重載功能,方便快速迭代開發。
# 在項目目錄下啓動開發服務器
agentcore dev
預期輸出:
Starting development server with hot reloading
Agent: customer_service_agent
Module: customer_service_agent:app
Server will be available at: http://localhost:8080/invocations
Test your agent with: agentcore invoke --dev "Hello" in a new terminal window
This terminal window will be used to run the dev server
Press Ctrl+C to stop the server
INFO: Will watch for changes in these directories: ['/path/to/project']
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
INFO: Started reloader process [12345] using WatchFiles
INFO: Started server process [12346]
INFO: Waiting for application startup.
INFO: Application startup complete.
💡 提示:開發服務器會自動監聽文件變化。當你修改代碼並保存後,服務器會自動重啓,無需手動重啓。
4.3 使用curl測試本地服務
開發服務器啓動後,打開新的終端窗口,使用curl發送測試請求:
測試1:訂單查詢
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-d '{
"prompt": "你好,我想查詢我的訂單狀態",
"user_id": "customer_001"
}'
預期響應:
{
"response": "您好!我是小智,很高興為您服務。請提供您的訂單號,我來幫您查詢訂單狀態。訂單號通常是以'ORD'開頭的12位數字。\n\n如果您找不到訂單號,也可以提供下單時使用的手機號碼或郵箱地址,我會幫您查找。",
"intent": "訂單查詢",
"session_id": "default",
"status": "success"
}
測試2:退換貨諮詢
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-d '{
"prompt": "我買的衣服尺寸不合適,想要退貨",
"user_id": "customer_001"
}'
預期響應:
{
"response": "我理解您的困擾,很抱歉給您帶來不便。關於退貨,我需要了解一些具體情況:\n\n1) 商品質量問題\n2) 尺寸不合適\n3) 收到錯誤商品\n4) 其他原因\n\n您的情況是尺寸不合適,對嗎?請提供您的訂單號,我會立即為您處理退貨申請。\n\n温馨提示:退換貨需要在收貨後7天內申請,商品需保持原包裝完好。",
"intent": "退換貨",
"session_id": "default",
"status": "success"
}
測試3:多輪對話(帶會話ID)
# 第一輪對話
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-d '{
"prompt": "你好,我是新用户",
"user_id": "customer_002",
"session_id": "session_123"
}'
# 第二輪對話(使用相同的session_id)
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-d '{
"prompt": "我想了解你們的會員服務",
"user_id": "customer_002",
"session_id": "session_123"
}'
4.4 使用agentcore invoke命令測試
除了curl,還可以使用AgentCore CLI命令進行測試:
# 基礎測試
agentcore invoke --dev "我想查詢訂單狀態"
# 指定用户ID
agentcore invoke --dev '{"prompt": "我想退貨", "user_id": "customer_001"}'
# 多輪對話測試
agentcore invoke --dev "你好" --session-id session_456
agentcore invoke --dev "我想了解會員服務" --session-id session_456
4.5 本地測試的作用
使用本地開發服務器測試有以下作用:
- 快速迭代:修改代碼後自動重啓,無需重新部署
- 即時反饋:立即看到代碼變更的效果
- 節省成本:在本地測試,不產生亞馬遜雲科技調用費用
- 調試方便:可以在終端直接看到日誌輸出
- 離線開發:不依賴網絡連接(除了調用Bedrock模型)
第五部分:部署到Amazon AgentCore Runtime
完成本地測試並確認功能正常後,我們可以將智能客服系統部署到Amazon AgentCore Runtime。
5.1 部署到亞馬遜雲科技
💡 提示:部署前如有疑問,可以在Kiro IDE中詢問AI助手”AgentCore部署需要注意什麼”,AI會調用Amazon Bedrock AgentCore MCP Server的manage_agentcore_runtime()工具獲取完整的部署檢查清單和常見問題解決方案。
# 部署到AgentCore Runtime
agentcore deploy
部署過程會:
- 構建Docker鏡像
- 推送到Amazon ECR
- 創建或更新AgentCore Runtime
- 配置IAM角色和權限
- 如果配置了Memory,會自動關聯Memory資源
預期輸出:
Building Docker image...
Pushing image to ECR...
Deploying to AgentCore Runtime...
✅ Deployment successful!
Agent ID: agent-abc123def456
Invoke URL: https://runtime.bedrock-agentcore.us-west-2.amazonaws.com/agents/agent-abc123def456/invoke
5.2 基礎功能測試(快速驗證)
# 測試訂單查詢
agentcore invoke '{"prompt": "我想查詢我的訂單狀態", "user_id": "customer_001"}'
# 測試退換貨諮詢
agentcore invoke '{"prompt": "我買的衣服尺寸不合適,想要退貨", "user_id": "customer_001"}'
5.3 多輪對話測試
# 第一輪對話
SESSION_ID=$(python -c "import uuid; print(str(uuid.uuid4()))")
agentcore invoke '{"prompt": "你好,我是新用户", "user_id": "customer_002", "session_id": "'$SESSION_ID'"}' --session-id $SESSION_ID
# 第二輪對話(同一會話)
agentcore invoke '{"prompt": "我想了解你們的會員服務", "user_id": "customer_002", "session_id": "'$SESSION_ID'"}' --session-id $SESSION_ID
# 第三輪對話(同一會話)
agentcore invoke '{"prompt": "如何成為金卡會員?", "user_id": "customer_002", "session_id": "'$SESSION_ID'"}' --session-id $SESSION_ID
5.4 跨會話Memory持久化測試
AgentCore Memory的一個重要特性是能夠在不同會話之間保持用户信息。
5.4.1 測試Memory功能
測試方法:驗證對話歷史記憶
這個測試驗證系統是否能記住用户的對話歷史:
# 第一步:第一個會話 - 諮詢會員服務
SESSION_ID=$(python -c "import uuid; print(str(uuid.uuid4()))")
agentcore invoke '{"prompt": "你好,我是新用户,想了解會員服務", "user_id": "customer_002"}' --session-id $SESSION_ID
# 第二步:等待30秒
echo "等待30秒讓Memory提取長期記憶..."
sleep 30
# 第三步:新會話 - 引用之前的對話
NEW_SESSION_ID=$(python -c "import uuid; print(str(uuid.uuid4()))")
agentcore invoke '{"prompt": "我之前諮詢過會員服務,現在想知道更多詳情", "user_id": "customer_002"}' --session-id $NEW_SESSION_ID
預期結果:
- 第二個會話中,客服應該能夠識別用户之前諮詢過會員服務
- 客服會基於之前的對話提供更詳細的信息
- 這證明Memory成功保存並檢索了對話歷史
5.4.2 Memory功能説明
AgentCore Memory工作原理:
- 短期記憶 (STM) :當前會話的對話歷史,立即可用
- 長期記憶 (LTM) :跨會話的持久化信息,需要提取時間
- 檢索配置:通過
retrieval_config控制記憶檢索的精度和數量
如果Memory測試失敗:
- 檢查
.bedrock_agentcore.yaml中是否配置了memory_id - 確認在
agentcore configure時選擇了啓用Memory管理 - 查看CloudWatch日誌確認Memory服務狀態
Memory配置優化:
在 customer_service_agent.py 中,可以調整檢索配置:
retrieval_config={
f"/customers/{actor_id}/preferences": RetrievalConfig(
top_k=3, # 檢索前3條相關記憶
relevance_score=0.5 # 相關性閾值(0-1)
),
f"/customers/{actor_id}/history": RetrievalConfig(
top_k=5, # 檢索前5條歷史對話
relevance_score=0.6
),
f"/customers/{actor_id}/orders": RetrievalConfig(
top_k=3,
relevance_score=0.7 # 訂單信息要求更高相關性
)
}
第六部分:監控和優化
6.1 查看系統狀態
💡 提示:遇到問題時,可以在Kiro IDE中詢問AI助手”如何查看AgentCore日誌”或”AgentCore部署失敗怎麼辦”,AI會調用Amazon Bedrock AgentCore MCP Server搜索相關的故障排查文檔。
# 檢查部署狀態
agentcore status
# 查看日誌
aws logs tail /aws/bedrock-agentcore/runtimes/AGENT_ID-DEFAULT --follow
6.2 性能監控
訪問CloudWatch控制枱查看詳細的性能指標:
https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#gen-ai-observability/agent-core
6.3 系統優化建議
- Memory配置優化:根據客服場景調整檢索配置的top_k和relevance_score參數
- 模型選擇:可以根據成本和性能需求選擇不同的Claude模型
- SOP擴展:根據實際業務需求擴展更多的標準操作程序
- 工具集成:集成訂單查詢API、庫存查詢API等外部工具
總結
開發效率提升對比
Amazon Bedrock AgentCore MCP Server的核心價值
即時知識獲取
- 無需離開開發環境
- 秒級響應時間
- 精準的官方文檔
減少上下文切換
- 不需要在瀏覽器和IDE之間切換
- 保持開發流程的連貫性
- 提高專注度
降低學習曲線
- 直接獲取代碼示例
- 最佳實踐指導
- 避免常見錯誤
加速問題解決
- 實時獲取解決方案
- 部署前檢查清單
- 常見問題快速定位
本文實現的完整功能
通過本文的詳細指導,我們成功實現了:
- MCP服務器安裝:正確配置了Amazon Bedrock AgentCore MCP Server
- 功能驗證:通過實際測試確認 Amazon Bedrock AgentCore MCP Server 的價值
- 智能客服構建:基於Strands Agents和AgentCore構建了智能客服系統
- SOP集成:實現了幾類購物場景的標準操作程序
- 多輪對話:支持上下文記憶的連續對話
- Memory持久化:跨會話的長期記憶功能
- 完整測試:測試場景覆蓋所有核心功能
- 部署運維:完成了系統的部署和監控配置
核心要點
Amazon Bedrock AgentCore MCP Server 不僅僅是一個文檔查詢工具,它是一個開發加速利器,通過以下方式顯著提升開發效率:
- 將分散的知識整合到開發環境中
- 提供上下文相關的精準信息
- 減少試錯和重複工作
- 加速從學習到實踐的轉化
在Amazon Bedrock AgentCore MCP Server的加持下,企業能夠更輕鬆地構建出具備可擴展性與可靠性的智能體應用,並能根據實際業務需求進行深度定製與優化。Amazon Bedrock AgentCore 提供的Memory管理、運行時託管與可觀測功能,結合 Amazon Bedrock AgentCore MCP Server 帶來的開發加速能力,大幅簡化了智能體應用的開發與運維流程。
*前述特定亞馬遜雲科技生成式人工智能相關的服務目前在亞馬遜雲科技海外區域可用。亞馬遜雲科技中國區域相關雲服務由西雲數據和光環新網運營,具體信息以中國區域官網為準。
本篇作者
本期最新實驗《多模一站通 —— Amazon Bedrock 上的基礎模型初體驗》
✨ 精心設計,旨在引導您深入探索Amazon Bedrock的模型選擇與調用、模型自動化評估以及安全圍欄(Guardrail)等重要功能。無需管理基礎設施,利用亞馬遜技術與生態,快速集成與部署生成式AI模型能力。
⏩️[點擊進入實驗] 即刻開啓 AI 開發之旅
構建無限, 探索啓程!