AWS用Spring AI构建Bedrock自主智能体生产范式
摘要:AWS发布基于Spring AI与Amazon Bedrock AgentCore的Java智能体参考实现,覆盖工具调用、短长期记忆、弹性重试、规则评估及多智能体编排,并以ARM64容器和Terraform完成云端部署。其核心价值是把依赖注入、ChatClient、Advisors和Actuator等Spring工程习惯接入模型无关的AgentCore基础设施;文中同时提供单智能体旅行助手与五类专家智能体文档处理系统,但结构化输出、防护规则和评测闭环仍有生产化完善空间。
AWS发布了一套基于Java、Spring AI与Amazon Bedrock AgentCore的自主智能体参考实现,覆盖从模型调用、工具执行和会话记忆,到弹性治理、多智能体协作及云端部署的完整链路。其目标不是推出新的基础模型,而是为既有Spring技术栈补齐智能体进入生产环境后所需的运行时、身份、记忆和治理能力。
参考实现包含两套系统:单智能体旅行助手用于展示工具调用、SSE流式输出和会话记忆;IDP系统则通过分类器将文档路由给法律、按揭、保险、税务和通用五类专家智能体,再由规则引擎决定告警、阻断或人工复核。两者均以Spring Boot 4.1、Spring AI 2.0和spring-ai-agentcore 2.0构建。
智能体能力如何落到Spring组件
该方案把自主智能体拆成规划、工具使用和记忆三项能力。Spring AI的ChatClient负责模型交互,@Tool把Java方法暴露为工具,Advisors则在请求进入模型前注入记忆或安全上下文,结构化结果则映射为Java Record。
工具调用采用典型的模型—工具—模型闭环。工具定义随上下文发送给基础模型,模型返回函数名和结构化参数后,Spring AI本地完成参数绑定与方法执行,再把执行结果回填给模型继续决策。这意味着外部API、数据库和代码执行环境必须被视为不可信执行边界;工具描述宜清晰声明参数约束、幂等性和副作用,且高风险动作不能只依赖模型自行决定是否执行。
示例还说明了流式传输中的一个工程细节:纯文本响应可以直接流式返回,但包含多参数工具调用时,先通过阻塞式call()完成工具参数绑定,再把最终结果分块发送更为可靠。前者降低首Token延迟,后者牺牲部分流式实时性换取参数确定性。
AgentCore运行时与记忆机制
@AgentCoreInvocation将Spring方法映射为AgentCore Runtime约定的POST /invocations与GET /ping接口,并处理JSON、SSE帧和健康状态。/ping返回Healthy或HealthyBusy;长任务若未报告繁忙状态,托管运行时可能在缩容时中断正在执行的请求。
AgentCore Memory通过Advisor模式接入Spring AI。短期记忆负责当前会话内的上下文延续,长期记忆则异步提取和整合四类信息:语义事实、用户偏好、对话摘要与情景记忆。异步提取避免记忆写入阻塞当前响应,但也会引入信息可见性延迟、错误事实固化和数据保留成本。
会话隔离必须由服务端可信身份驱动。示例使用actor:session形式组织记忆,其中actor应由经验证的OAuth 2.0或JWT身份派生,而不能直接信任客户端提交的sessionId,否则可能出现跨用户读取或污染记忆的风险。
多智能体协作并非简单并发
IDP系统采用三种协调模式。Router只负责分类和分发,不承载领域逻辑;Evaluator在专家结果返回后执行确定性规则;Parallel fan-out则并发调用多个专家,理论墙钟延迟由最慢的单次调用决定,而不是所有调用耗时之和。
规则引擎使用SpEL读取提取结果,可配置INFO、WARN、ALERT和BLOCK等级。告警服务可替换为Amazon SNS、Slack或邮件实现,BLOCK则把文档送入人工审核。把模型判断与业务规则分层是值得借鉴的设计:模型负责从非结构化输入中抽取候选信息,规则引擎负责执行可审计的确定性政策。
不过,示例的SpEL规则引擎是进程内评估器,不是Step Functions一类持久化工作流引擎。它适合低延迟、低状态复杂度场景,但复杂审批、补偿事务、长时间任务和跨服务状态仍需要外部编排系统。
工程权衡:简化抽象与真实可靠性
架构采用无状态应用、可变基础设施配置和统一ARM64镜像,兼顾Graviton成本与Amazon EKS的可移植部署路径。AgentCore Runtime可缩容至零,主要变动成本仍来自基础模型Token消耗,而CloudWatch与ECR只占较小部分。
生产可靠性方面,示例为模型调用加入Resilience4j指数退避重试、熔断器和超时,并对HTTP 429配额响应进行重试。工程上仍需注意:非幂等工具在重试时可能重复执行,因此重试策略应只自动覆盖读取操作;写操作需要幂等键、请求去重或补偿机制。
安全控制分为身份、权限、运行时和内容四层。AgentCore Runtime默认使用IAM认证,面向用户的服务应增加Cognito等JWT授权器;执行角色只授予ECR拉取、Bedrock调用、日志写入及指定Memory资源权限。示例中的GuardrailService只是轻量预检查,生产环境应在每次模型调用前固定启用Amazon Bedrock Guardrails,覆盖内容过滤、敏感信息处理、拒答主题和grounding检查,而不是依赖客户端传入开关。
可观测性由Micrometer Observation、结构化JSON日志和Prometheus指标组成,但文章明确说明追踪采样器与自动化评测反馈闭环尚未实现。换言之,它展示了遥测接口,却没有证明系统已经具备可用于模型、提示词和路由规则发布的可靠回归体系。
部署建议与评测边界
部署流程使用Terraform创建ECR、IAM角色和AgentCore Runtime,CI构建linux/arm64镜像并以不可变标签推送。已有Kubernetes平台的团队也可以在同一镜像上运行EKS,通过IRSA绑定最小权限身份。
文章以Claude Sonnet 4.5验证结构化输出,但Spring AI的Record Schema注入属于尽力而为:不同模型家族可能返回不符合Schema的内容。对合同、票据或理赔字段等高风险抽取,应采用原生Schema约束、Java Bean Validation、失败重试以及抽样人工复核,不能只依赖提示词中的字段说明。
官方示例没有给出端到端延迟、Token成本、工具成功率、分类准确率或人工复核率等可比数据,因此无法仅依据文章判断AgentCore相较自建容器、EKS或其他智能体运行时的单位经济性。正式上线前应建立至少四项评测:工具参数正确率、端到端任务成功率、每个成功任务的Token与延迟成本、安全违规拦截率。
对Java团队而言,这套实现的价值在于无需放弃既有依赖注入、配置管理、Actuator、Micrometer和CI/CD习惯。真正需要迁移的,是从“一次模型调用”转向“具备身份边界、状态治理、可观测性和评测门禁的分布式执行系统”。
—— 完 ——消息来源:AWS Machine Learning Blog (2026-11-12)
主题标签: #Amazon Bedrock AgentCore #Spring AI #Java智能体 #多智能体编排 #工具调用
编辑部与事实核查说明:本篇专刊由智客前沿资讯管线根据官方技术公告、学术论文及开源工程文档整理编译,经算法实体核验与人工编辑审校后发布。若发现技术事实纰漏,欢迎依据勘误方针或一键向编辑部发送勘误反馈。
社区整体评论区