使用 Amazon Bedrock AgentCore 的 AI 驱动开发生命周期

采用人工智能驱动开发生命周期 (AI-DLC) 的工程团队通常很难将概念转化为工作代码。本文将介绍 Amazon Bedrock AgentCore、Kiro 和 Claude Code 上的两个参考实现:一个 SQL 到 ER 图表生成器和一个将 AI-DLC 构建阶段付诸实践的多代理代码安全分析器。

来源:亚马逊云科技 _机器学习

采用 AI 驱动开发生命周期 (AI-DLC) 以及 Amazon Bedrock AgentCore 和 Kiro 等编码代理的工程团队经常会遇到概念框架和工作代码之间的差距。 Amazon Bedrock AgentCore 是一项用于使用任何框架或模型大规模构建、连接和优化代理的服务。 AI-DLC 将人工智能定位为整个软件开发生命周期的中心协作者,负责处理例行执行,而人类则保留对关键决策的监督。这篇文章通过工作参考实现弥补了这一差距。

本文介绍了两个参考实现背后的架构、设计决策和关键代码模式,这两个参考实现演示了使用 Amazon Bedrock AgentCore、Kiro 和本地代理编码工具的 AI-DLC 构建阶段模式。第一个使用 AgentCore 运行时(Amazon Bedrock AgentCore 的一项功能)从 SQL 架构生成 Mermaid 实体关系图。第二个通过多代理架构提供自动化代码安全分析,该架构使用 AgentCore Gateway(Amazon Bedrock AgentCore 的一项功能)、AgentCore 内存(Amazon Bedrock AgentCore 的一项功能)以及外部工具集成。它们共同说明了如何构建人工智能驱动的工作流程,在加速交付的同时保持人机参与的治理。两种实现都链接到各自 GitHub 存储库中的完整部署说明。

AI-DLC构建模式的实践

AI-DLC 构建阶段让 AI 提出架构、生成实施计划、生成代码和创建部署工件,团队成员实时提供技术决策的澄清。此处描述的实现直接映射到此模式:

  • 自动工件生成:代理接收结构化输入(SQL 架构文件)、创建详细计划、生成输出(Mermaid ER 图)并存储结果以供人工审核。
  • 持续代码质量执行:多代理系统分析通过持续集成和持续交付 (CI/CD) 管道推送的代码,生成安全评估、常见漏洞和暴露 (CVE) 检查以及为人类决策提供信息的策略合规性报告。
  • 两个系统共享一个基于 AgentCore 的通用架构基础,展示了团队如何从模块化、可管理的组件组成人工智能驱动的工作流程。

    解决方案 1:SQL 架构到 ER 图生成

    此 AWS Samples 项目使用 Amazon Bedrock AgentCore 上的代理 AI 工作流程从 SQL 架构文件自动生成 Mermaid ER 图。开发人员签入 SQL 代码后,Amazon Simple Storage Service (Amazon S3) 触发器和基于 AWS Lambda 函数的工作流程会调用 AgentCore 运行时,该运行时会解析数据定义语言 (DDL) 以生成保存回 Amazon S3 的 .mmd 图表。它只读取模式元数据(表、约束和外键),从不读取行数据,这使其成为模式到图自动化的干净参考。

    业务挑战

    管理不断发展的 SQL 模式的数据库团队需要当前的实体关系文档。手动创建 ER 图非常耗时,而且文档经常偏离实际模式。当架构通过拉取请求发生变化时,团队需要更新图表,而无需向开发工作流程添加手动文档步骤。

    架构

    系统采用无服务器、事件驱动的架构,具有以下组件:

    图 1:用于 SQL 架构到 ER 图生成的事件驱动架构

  • 工作流程如下:
  • S3 事件触发器:上传到 Amazon S3 存储桶的 SQL 文件会触发启动分析工作流程的 AWS Lambda 函数。
  • 身份验证:Amazon Cognito 提供 OAuth2 机器对机器 (M2M) 身份验证。客户端凭证存储在 AWS Systems Manager Parameter Store 中。
  • AgentCore 运行时:使用 Strands 框架构建的容器化代理在 AgentCore 运行时上运行。该代理通过 Amazon Bedrock 使用 Claude Sonnet 4 来解析 SQL DDL 语句并生成 Mermaid ER 图语法。 (有关 AWS 区域的型号可用性,请参阅按型号划分的区域可用性。)
  • AgentCore 内存:提供有效期为 90 天的持久会话上下文,并支持跨先前分析的语义搜索和增量模式理解。
  • 输出存储:生成的.mmd 图表文件以专用前缀保存到 Amazon S3,元数据跟踪源文件和生成时间戳。

  • SQL 文件上传到 Amazon S3(手动或通过 CI/CD 管道)。
  • Lambda 触发器读取文件内容并通过 Cognito OAuth 进行身份验证。
  • 触发器使用 SQL 内容作为负载来调用 AgentCore 运行时代理。
  • 代理分析架构并识别表、列、约束和外键关系。然后它会生成一个完整的美人鱼图。
  • 图表保存到 Amazon S3,分析会话存储在 AgentCore 内存中。
  • 实施细节

    代理实现使用 BedrockAgentCoreApp 运行时包装器和 @app.entrypoint 装饰器来注册处理程序:

    from bedrock_agentcore.runtime import BedrockAgentCoreApp

    从 bedrock_agentcore.memory 导入 MemoryClient

  • 自股进口代理
  • 从strands.models导入BedrockModel
  • 应用程序 = BedrockAgentCoreApp()

    模型= BedrockModel(model_id =“us.anthropic.claude-sonnet-4-5-20250929-v1:0”,region_name =“us-west-2”)

    erdiagram_agent = 代理(模型=模型)

    Memory_client = MemoryClient(region_name="us-west-2")

    @app.entrypointasync defgenerate_er_diagram(payload: Dict[str, Any]) -> Dict[str, Any]:sql_content = Payload.get("sql_content", "")file_name = Payload.get("file_name", "unknown_file.sql")# 生成图,存储在内存中,保存到S3...关键设计决策包括:分块处理:大型 SQL 文件被分成可管理的段,独立分析,然后合并为统一的图表。这可以处理具有数百个表的模式,而不会超出上下文限制。结构化提示:代理使用系统分析提示,在生成图表语法之前提取表、列、数据类型、主键和外键关系。OpenTelemetry 跟踪:每个步骤都使用跨度和属性进行检测,提供对处理持续时间、块计数和错误归因的可观察性。完整的实现(包括 OpenAI Codex 技能和 MCP 服务器集成)可在 example-to-create-mermaid-entity-diagrams-from-sql-using-agentic-ai-on-agentcore 存储库中找到。解决方案 2:安全软件切换安全合规性代码审查需要跨 CVE 数据库、组织编码策略和特定于语言的安全模式的专业知识。手动安全审查会在交付管道中造成瓶颈,并且跨团队标准应用的不一致会导致代码质量参差不齐。该解决方案通过多代理架构提供自动化代码安全分析,以实现开发阶段之间的安全软件切换:关键功能

    此无服务器代码安全分析解决方案使用 Amazon Bedrock AgentCore 自动扫描 Python 或 Java 代码中的安全漏洞、依赖项中的 CVE 风险以及策略违规。当代码从 GitLab 管道推送到 Amazon S3 时,会触发分析。然后,基于 Strands 的代理使用 Amazon Bedrock 上的 Anthropic Claude Sonnet 模型评估代码。它调用在 AWS Lambda 上运行的模型上下文协议 (MCP) 工具来进行 CVE 和策略检查。 (有关按区域划分的模型可用性,请参阅按模型划分的区域可用性。)结果(包括从 1 到 10 的质量分数和建议)通过语义搜索存储在 AgentCore 内存中,并通过基于会话的实时 Web 仪表板显示。 Amazon Cognito 提供身份验证,AgentCore Observability(Amazon Bedrock AgentCore 的一项功能)和 Amazon CloudWatch 提供监控。

  • 图 2:用于自动化代码安全分析的多代理架构
  • 代码文件上传到 Amazon S3 存储桶(手动或通过 CI/CD 管道)。 AWS Lambda 触发器检测新上传并使用 OAuth2 身份验证启动 AgentCore 分析工作流程。
  • 具有 MCP 工具的 AgentCore 网关:网关协调对外部工具集成的调用:
  • 策略检查 Lambda:根据组织特定的安全策略验证代码。
  • CVE 数据库检查 Lambda:扫描依赖文件中是否存在已知漏洞。
  • AgentCore运行时(Strands框架):核心分析代理执行深度代码审查,包括结构评估、逻辑质量评估、内存和性能分析、安全问题检测以及最佳实践合规性。
  • AgentCore内存:存储分析结果,具有语义搜索功能,支持历史比较和趋势分析。
  • Dashboard Lambda:提供 Web UI,提供基于会话的结果以及跨文件、违规和质量指标的搜索和多选项卡导航。

    分析代理遵循与解决方案 1 相同的 AgentCore 运行时模式,并添加了通过 AgentCore 网关路由的 MCP 工具调用:

    from bedrock_agentcore.runtime import BedrockAgentCoreApp

    从 bedrock_agentcore.memory 导入 AgentCoreMemory

  • 自股进口代理
  • 从strands.models导入BedrockModel
  • 应用程序 = BedrockAgentCoreApp()模型= BedrockModel(model_id =“us.anthropic.claude-sonnet-4-5-20250929-v1:0”,region_name =“us-west-2”)Analysis_agent = Agent(模型=模型,工具=[分析代码,检查质量])内存= AgentCoreMemory(命名空间=“代码分析”)@app.entrypointasync def parse_uploaded_code(payload: Dict[str, Any]) -> Dict[str, Any]:file_content = Payload.get("file_content", "")file_name = Payload.get("file_name", "unknown.py")session_id = Payload.get("session_id", "")# 分析代码,将结果存储在内存中,返回质量分数...Agent从AWS Lambda触发器接收代码内容,使用基础模型(FM)进行多维度分析,然后根据需要通过AgentCore Gateway调用外部工具(策略检查器、CVE扫描器)。结果将持久保存到 AgentCore 内存中,以进行仪表板检索和历史比较。多代理分离:代码分析代理仅专注于质量评估。策略检查和 CVE 扫描委托给通过 AgentCore Gateway 调用的专用 AWS Lambda 函数,从而保持每个组件的单一用途和独立可更新性。完整的实现可在sample-agentic-secure-software-handoffs 存储库中找到。Kiro 特工和技能OpenAI ChatGPT Codex(MCP 服务器和技能)

    基于会话的结果持久性:每次分析运行都会在 AgentCore 内存中创建一个唯一的会话。仪表板通过会话 ID 检索结果,允许开发人员比较多个代码提交的质量分数。

    网关介导的工具调用:外部工具使用 MCP 通过 AgentCore Gateway 注册,而不是直接调用。这将代理与工具实现细节分离,并允许在不修改代理代码的情况下添加新工具。

    虽然 AgentCore 为已部署的事件驱动代理工作负载提供云运行时,但开发工作流程本身受益于在开发人员工作站实现 AI-DLC 模式的本地代理工具。

  • Kiro 通过结构化规范和自定义代理技能支持 AI-DLC 启动和构建阶段:
  • 规范驱动的开发:Kiro 将自然语言需求转换为具有验收标准的结构化规范,然后根据这些规范生成实施计划。这直接映射到人工智能创建计划并在执行前寻求人类验证的 AI-DLC 模式。
  • 自定义技能:团队可以定义可重用的 Kiro 代理技能,对组织标准(编码模式、安全要求、架构指南)进行编码,以便 AI 生成的代码始终满足企业质量标准。
  • 代理任务执行:Kiro 的代理模式通过自主使用工具(文件创建、终端命令、搜索)处理多文件实施任务,同时在每个规范检查点保持人机交互审核。

    该存储库还包括 OpenAI Codex 集成,演示了相同的 ER 图生成工作流程如何通过 MCP 和自定义技能扩展到其他编码代理:

  • 用于实时数据库架构访问的 MCP 服务器:基于 stdio 的本地 MCP 服务器通过 INFORMATION_SCHEMA 将 Codex 连接到 MySQL 或 Amazon Aurora MySQL 数据库。服务器公开了三个工具(schema_summary、generate_er_markdown 和generate_mermaid),允许 Codex 查询表结构、列、索引和外键关系,而无需访问表行数据。
  • 自定义 Codex 技能:SKILL.md 文件将 ER 图生成工作流程编码为可重用的 Codex 技能,指导代理以一致的质量进行模式分析和图表创建。
  • 安全凭证管理:从 AWS Secrets Manager 检索数据库凭证,并强制执行 TLS 验证,遵循 AgentCore 实施中使用的相同安全模式。
  • Claude Code(当地代理)

    Claude Code 作为本地命令行代理运行,补充 AgentCore 部署:

  • 快速原型设计:在部署到 AgentCore 运行时之前,开发人员使用 Claude Code 在本地迭代代理逻辑、测试提示并验证工具集成模式。
  • 基础设施即代码生成:Claude Code 生成部署脚本、Dockerfile、AWS Identity and Access Management (IAM) 策略和 AWS CloudFormation 模板。这些工件遵循 AI-DLC 构建阶段产生的架构规范。
  • 代码审查和重构:本地代理根据项目规则和自定义指令执行首次审查,在代码进入 CI/CD 管道之前发现问题,其中安全软件移交系统提供权威的安全分析。
  • 组合工作流程

    使用这些工具的典型 AI-DLC 螺栓(短而密集的工作周期)遵循以下模式:

  • 最佳实践
  • 结论
  • 关于作者
  • 阿吉亚·班纳吉
  • Inception (Kiro):将业务需求转换为具有验收标准的规范。该团队在生物阐述会议中验证人工智能生成的规格。

    构建(Claude Code 和 Kiro):生成实现代码、部署脚本和测试套件。本地代理处理文件生成和迭代细化,而 Kiro 管理任务编排。

  • 验证 (AgentCore):通过 CI/CD 推送的代码会触发自动安全分析。多代理系统在合并前提供质量评估。
  • 操作 (AgentCore):生产代理(如 ER 图生成器)在 AgentCore 运行时上连续运行,由事件触发,大规模处理工作负载并具有完全可观察性。
  • 基于这些系统的实施,我们建议采取以下做法:
  • 单独的代理关注点:为每个代理设计一个单一的、明确定义的职责。 ER 图代理仅生成 ER 图。可组合性来自编排,而不是来自单个代理的超载。
  • 使用 AgentCore 内存实现上下文连续性:持久内存允许代理从之前的交互中学习,将当前分析与历史基线进行比较,并在会话之间维护状态而无需重新处理。
  • 从第一天起就配备 OpenTelemetry 的仪器:跟踪提供对代理行为、处理持续时间和故障模式的可见性。这对于调试即时有效性和识别性能瓶颈至关重要。
  • 将配置存储在 Parameter Store 中:将配置与代码分离。 Cognito 凭证、内存 ID、模型选择和存储桶名称都应该可以在运行时检索。
  • 对大型输入实施分块处理:设计代理通过拆分、独立分析和合并结果来处理超出模型上下文窗口的输入。
  • 通过 Cognito M2M 身份验证确保安全:使用 OAuth2 客户端凭据流进行服务到服务通信。避免硬编码凭据或长期令牌。

    通过 CI/CD 集成,而不是手动上传:在生产中,将代理连接到存储库事件(合并请求、管道阶段),而不需要手动文件上传。此处显示的 S3 触发模式直接转换为 GitLab webhook 或 GitHub Actions 集成。

    将 Amazon Bedrock Guardrails 用于生产代理输出:配置内容过滤策略、拒绝主题检测和基础验证,以确保代理生成的响应符合负责任的 AI 标准。对于代码分析代理,护栏可以阻止包含不安全代码模式或幻觉 CVE 引用的输出。对于图表生成代理,接地检查验证输出是否准确反映源模式。将护栏与自动评估管道相结合,以持续监控代理行为并标记与预期输出质量的偏差。

    当得到具体实施模式的支持时,AI-DLC 方法变得实用。 Amazon Bedrock AgentCore 提供运行时基础设施(容器化代理、持久内存、安全网关和外部工具集成),而 Kiro 和 Claude Code 等本地工具则加速开发工作流程本身。

    从 SQL-to-ER-Diagram 示例开始部署您的第一个 AgentCore 代理。按顺序遵循部署脚本,然后使用安全软件切换示例通过多代理协调、MCP 工具集成和 CI/CD 驱动的触发器来扩展模式。

    拉姆帕坦吉

    库纳尔·戈什

    Ananth Kommuri

    要深入了解,请参阅使用 Amazon Bedrock AgentCore 将您的 AI 代理从概念验证转移到生产,以获取将代理扩大到生产规模的补充演练。有关完整服务的详细信息、API 参考和配置指南,请参阅 Amazon Bedrock AgentCore 文档。

    Arghya 是旧金山湾区 AWS 的高级解决方案架构师,专注于帮助客户采用和使用 AWS 云来实现大数据、数据湖、流式处理和批量分析、生成式 AI 和代理式 AI 解决方案。

    Ram 是旧金山湾区 AWS 的高级解决方案架构师。他帮助农业、保险、银行、零售、医疗保健和生命科学、酒店业和高科技垂直行业的客户在 AWS 云上成功运营业务。他专注于数据库、分析和机器学习。

    Kunal 是 AWS 的高级解决方案架构师。他热衷于在 AWS 上构建高效且有效的解决方案,特别是涉及生成式 AI、分析、数据科学和机器学习。除了家庭时光,他还喜欢阅读、游泳、骑自行车和看电影。

    Ananth 是位于旧金山湾区的 AWS 的高级解决方案架构师。 Ananth 通过 AWS 上的数据分析、AI/ML 和 IoT 解决方案帮助客户提高运营效率。