📢 转载信息
原文作者:Amazon Web Services
Amazon Bedrock AgentCore Runtime 现已支持有状态 MCP(模型上下文协议)客户端功能,能够实现此前在无状态实现中无法完成的交互式、多轮智能体工作流。对于开发 AI 智能体的开发者而言,当工作流需要在执行过程中暂停以征求用户澄清、请求大语言模型(LLM)生成内容,或在长运行操作期间提供实时进度更新时,传统的无状态 MCP 服务器往往无能为力。通过引入 MCP 规范中的三项客户端功能,我们解决了这些限制:
- 启发式交互(Elicitation):在执行过程中请求用户输入。
- 采样(Sampling):请求客户端生成 LLM 内容。
- 进度通知(Progress notification):流式传输实时更新。
这些功能将单向的工具执行转变为 MCP 服务器与客户端之间的双向对话。
从无状态到有状态的 MCP
AgentCore 最初对 MCP 服务器的支持采用的是无状态模式:每个传入的 HTTP 请求都是独立的,调用之间没有共享上下文。这种模式部署简单,适用于仅接收输入并返回输出的工具服务器。然而,它存在一个基本约束:服务器无法维护跨请求的对话线程,无法在工具调用过程中要求用户澄清,也无法在工作进行时向客户端报告进度。
有状态模式移除了这一约束。当您以 stateless_http=False 运行 MCP 服务器时,AgentCore Runtime 会为每个用户会话预置一个专用的微型虚拟机(microVM)。该微型虚拟机在会话生命周期内保持持久(最长 8 小时),并在会话之间实现 CPU、内存和文件系统的隔离。
三大核心客户端功能
1. 启发式交互:服务器发起的请求
启发式交互允许服务器暂停执行,通过客户端从用户处收集结构化输入。工具可以在工作流的恰当时机提出目标明确的问题,例如收集偏好设置、确认决策或获取依赖于先前结果的数据。
2. 采样:服务器发起的 LLM 生成
采样机制允许服务器通过客户端请求 LLM 完成任务。这使得服务器端的工具逻辑能够在无需持有自身模型凭证的情况下,利用大语言模型的能力。客户端负责转发请求并返回生成结果,这种方式保留了对模型使用的控制权。
3. 进度通知:实时反馈
通过 ctx.report_progress(progress, total),服务器可以在长运行操作中报告增量进度。客户端可以据此渲染进度条或状态指示器,让用户在处理复杂任务时保持知情,避免界面长时间无响应。
结论
通过这些功能,您可以构建能够与用户进行结构化对话、利用客户端 LLM 生成内容并提供实时任务可见性的 MCP 服务器。所有这些都运行在由 AgentCore Runtime 提供支持的受管、隔离基础设施之上,极大地提升了 AI 智能体的生产应用能力。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区