概述
在快时尚电商行业,产品生命周期短、上新节奏快、营销活动高频、用户咨询激增且多样化。这对智能体的研发效率提出了极高要求,系统必须能 快速迭代、即时上线、稳定支撑大规模交互场景。然而在实际开发中,智能体研发团队往往面临:
- 传统依赖大量查阅与理解产品文档的研发模式,会显著拉低迭代效率,难以满足快时尚电商对业务敏捷性的要求
- 集成多个服务(如模型、工具、知识库)时 部署与配置复杂、极易出错
- 为了保持业务敏捷性,团队需要第一时间获取最佳实践和产品更新,从而持续优化上线效率
- 在大促、上新节点前,调试与问题排查往往成为最大瓶颈
Amazon Bedrock AgentCore MCP Server 正是为此类高敏捷、高复杂度业务场景而生。它提供 实时文档查询、动态配置管理、部署指导、可观测辅助,让智能体研发从“查文档 + 试错”为主的低效流程,转向“自动提示 + 即时验证 + 快速落地”的工程体验。本文将以构建一个快时尚电商智能客服系统为例,展示如何借助 Amazon Bedrock AgentCore MCP Server、Amazon Bedrock、Strands Agents 与 Kiro,实现智能体的极速构建与稳定交付。
什么是 Amazon Bedrock AgentCore MCP Server 及其价值
Model Context Protocol (MCP) 是一个开放标准,用于连接AI模型与外部工具和数据源。Amazon Bedrock AgentCore MCP Server 提供三大核心能力:
- 智能文档检索:无需离开开发环境即可搜索和获取AgentCore文档
- 部署管理指导:提供运行时、Memory、网关的配置和部署最佳实践
- 实时问题解决:在开发过程中快速获取解决方案
传统开发流程 vs MCP加速流程对比:
| 开发环节 |
传统方式 |
使用MCP Server |
| 查找API文档 |
打开浏览器搜索,切换窗口 |
在IDE中直接查询,秒级响应 |
| 配置参数 |
手动查阅文档,复制粘贴 |
MCP提供配置模板和示例 |
| 问题排查 |
搜索引擎查找,论坛提问 |
MCP提供针对性解决方案 |
| 学习最佳实践 |
阅读长篇文档 |
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或更高版本
- AWS CLI 2.0或更高版本,并已配置有效的AWS凭证
- 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
第四部分:本地测试智能客服系统
在部署到AWS之前,我们可以先在本地测试智能客服系统,确保功能正常。
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 本地测试的作用
使用本地开发服务器测试有以下作用:
- 快速迭代:修改代码后自动重启,无需重新部署
- 即时反馈:立即看到代码变更的效果
- 节省成本:在本地测试,不产生AWS调用费用
- 调试方便:可以在终端直接看到日志输出
- 离线开发:不依赖网络连接(除了调用Bedrock模型)
第五部分:部署到AWS AgentCore Runtime
完成本地测试并确认功能正常后,我们可以将智能客服系统部署到AWS AgentCore Runtime。
5.1 部署到AWS
💡 提示:部署前如有疑问,可以在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等外部工具
总结
开发效率提升对比
| 开发阶段 |
传统方式耗时 |
使用MCP Server |
效率提升 |
| 文档查找 |
10-15分钟 |
10-30秒 |
95% |
| 配置编写 |
20-30分钟(试错) |
2-5分钟(模板) |
85% |
| 问题排查 |
30-60分钟 |
5-10分钟 |
85% |
| 学习新功能 |
1-2小时 |
15-30分钟 |
75% |
| 总体开发时间 |
4-6小时 |
1-2小时 |
60-70% |
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 带来的开发加速能力,大幅简化了智能体应用的开发与运维流程。
*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。
本篇作者
AWS 架构师中心: 云端创新的引领者
探索 AWS 架构师中心,获取经实战验证的最佳实践与架构指南,助您高效构建安全、可靠的云上应用

|
 |