AWS博客详解AI-DLC开发范式,提供SQL生成ER图和多Agent代码安全分析两个参考实现,含Kiro和Claude Code落地步骤。
采用 Amazon Bedrock AgentCore 与 Kiro 等编码智能体构建 AI 驱动开发生命周期(AI-DLC)的工程团队,常面临概念框架与可工作代码之间的鸿沟。Amazon Bedrock AgentCore 是一项用于大规模构建、连接和优化智能体的服务,支持任意框架或模型。AI-DLC 将 AI 定位为软件开发生命周期中的核心协作角色,负责处理日常执行工作,而人类保留对关键决策的监督权。本文通过可工作的参考实现来弥合这一鸿沟。
本文将深入讲解两个参考实现的架构、设计决策和关键代码模式,展示如何使用 Amazon Bedrock AgentCore、Kiro 和本地智能体编码工具构建 AI-DLC 构建阶段模式。第一个实现通过 AgentCore 运行时(Amazon Bedrock AgentCore 的一项能力)从 SQL 模式生成 Mermaid 实体关系图。第二个实现通过多智能体架构提供自动化代码安全分析,该架构使用了 AgentCore Gateway(Amazon Bedrock AgentCore 的一项能力)和 AgentCore memory(Amazon Bedrock AgentCore 的一项能力),并集成了外部工具。这两个实现共同展示了如何构建能保持人类介入治理、同时加速交付的 AI 驱动工作流。这两个实现的完整部署说明均链接在各自的 GitHub 仓库中。
AI-DLC 构建阶段将 AI 定位为架构提案者、实施计划生成器、代码生产者和部署产物创建者,团队成员实时为技术决策提供澄清说明。本文描述的实现直接映射到这一模式:
自动化产物生成:智能体接收结构化输入(SQL 模式文件),创建详细计划,生成输出(Mermaid ER 图),并将结果存储以供人工审核。
持续代码质量执行:多智能体系统分析通过 CI/CD 管道推送的代码,生成安全评估、 CVE 检查和政策合规报告,为人工决策提供依据。
两个系统共享一个基于 AgentCore 的通用架构基础,展示了团队如何从模块化、可管理的组件组合 AI 驱动的工作流。
这个 AWS Samples 项目使用 Amazon Bedrock AgentCore 上的智能体 AI 工作流,从 SQL 模式文件自动生成 Mermaid ER 图。开发人员将 SQL 代码提交后,Amazon S3 触发器与基于 AWS Lambda 函数的工作流调用 AgentCore 运行时,解析 DDL 并生成保存回 Amazon S3 的 .mmd 图。该系统仅读取模式元数据(表、约束和外键),从不读取行数据,因此是模式到图自动化的干净参考。
管理不断演进的 SQL 模式的数据库团队需要最新的实体关系文档。手动创建 ER 图耗时巨大,且文档经常与实际模式脱节。当模式变更通过 Pull Request 落地时,团队需要更新的图,但不希望在开发流程中增加手动文档步骤。
该系统使用无服务器、事件驱动架构,包含以下组件:
图 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 memory:提供持久化会话上下文,保留期为 90 天,支持跨先前分析的语义搜索和增量模式理解。
输出存储:生成的 .mmd 图文件保存到 Amazon S3 的专用前缀下,元数据追踪源文件和生成时间戳。
工作流按以下步骤进行:
SQL 文件通过手动或 CI/CD 管道上传到 Amazon S3。
Lambda 触发器读取文件内容并通过 Cognito OAuth 进行身份验证。
触发器使用 SQL 内容作为负载调用 AgentCore 运行时智能体。
智能体分析模式并识别表、列、约束和外键关系,然后生成完整的 Mermaid erDiagram。
图保存到 Amazon S3,分析会话存储在 AgentCore memory 中。
智能体实现使用 BedrockAgentCoreApp 运行时包装器和 @app.entrypoint 装饰器来注册处理程序:
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from bedrock_agentcore.memory import MemoryClient
from strands import Agent
from strands.models import BedrockModel
app = BedrockAgentCoreApp()
model = BedrockModel(model_id="us.anthropic.claude-sonnet-4-5-20250929-v1:0", region_name="us-west-2")
erdiagram_agent = Agent(model=model)
memory_client = MemoryClient(region_name="us-west-2")
@app.entrypoint
async def generate_er_diagram(payload: Dict[str, Any]) -> Dict[str, Any]:
sql_content = payload.get("sql_content", "")
file_name = payload.get("file_name", "unknown_file.sql")
# Generate diagram, store in memory, save to S3
...
关键设计决策包括:
分块处理:将大型 SQL 文件拆分为可管理的段,独立分析后再合并为统一图。这可以处理包含数百个表的模式而不会超出上下文限制。
结构化提示:智能体使用系统化分析提示,在生成图语法之前先提取表、列、数据类型、主键和外键关系。
OpenTelemetry 追踪:每个步骤都配有检测点和属性,提供处理时长、分块数量和错误归属的可观测性。
完整实现(包括 OpenAI Codex 技能和 MCP 服务器集成)可在 sample-to-create-mermaid-entity-diagrams-from-sql-using-agentic-ai-on-agentcore 仓库中获取。
这个无服务器代码安全分析解决方案使用 Amazon Bedrock AgentCore 自动扫描 Python 或 Java 代码中的安全漏洞、依赖项中的 CVE 风险和政策违规。当代码从 GitLab 管道推送到 Amazon S3 时触发分析。然后基于 Strands 的智能体使用 Amazon Bedrock 上的 Anthropic Claude Sonnet 模型评估代码。它调用在 AWS Lambda 上运行的 Model Context Protocol(MCP)工具进行 CVE 和政策检查。(关于各区域的模型可用性,请参阅按模型划分的区域可用性。)结果(包括 1 到 10 的质量评分和建议)存储在具有语义搜索功能的 AgentCore memory 中,并通过实时、基于会话的 Web 仪表板呈现。Amazon Cognito 提供身份验证,AgentCore Observability(Amazon Bedrock AgentCore 的一项能力)和 Amazon CloudWatch 提供监控。
安全合规的代码审查需要涵盖 CVE 数据库、组织编码策略和语言特定安全模式的专业知识。手动安全审查会在交付管道中造成瓶颈,而标准在团队间的不一致应用会导致代码质量参差不齐。
该解决方案通过多智能体架构提供自动化代码安全分析,用于开发阶段之间的安全软件交接:
图 2:自动化代码安全分析的多智能体架构
代码文件通过手动或 CI/CD 管道上传到 Amazon S3 存储桶。AWS Lambda 触发器检测新上传并使用 OAuth2 身份验证启动 AgentCore 分析工作流。
AgentCore Gateway 与 MCP 工具:Gateway 协调对外部工具集成的调用:
Policy Check Lambda:根据组织特定的安全策略验证代码。
CVE Database Check Lambda:扫描依赖项文件中的已知漏洞。
AgentCore 运行时(Strands 框架):核心分析智能体执行深度代码审查,包括结构评估、逻辑质量评估、内存和性能分析、安全问题检测以及最佳实践合规性检查。
AgentCore memory:存储分析结果,支持语义搜索功能,可进行历史对比和趋势分析。
Dashboard Lambda:提供 Web UI 服务,支持基于会话的结果展示,可在文件、违规项和质量指标之间进行搜索和多标签页导航。
多维度分析:系统从结构质量、算法效率、安全态势和标准合规性等多个维度评估代码,输出质量评分并附带具体建议。
Memory 策略:三种自主管理的 Memory 策略服务于不同需求:
语义策略:存储详细的代码分析结果、CVE 扫描结果和策略违规记录,可通过上下文检索。
汇总策略:维护聚合指标和趋势,用于 Dashboard 可视化。
用户偏好策略:跨会话追踪 Dashboard 布局和筛选偏好。
详见 AgentCore memory strategies。
语义策略:存储详细的代码分析结果、CVE 扫描结果和策略违规记录,可通过上下文检索。
汇总策略:维护聚合指标和趋势,用于 Dashboard 可视化。
用户偏好策略:跨会话追踪 Dashboard 布局和筛选偏好。
详见 AgentCore memory strategies。
通过 AgentCore Gateway 的 MCP 工具集成:该功能允许智能体在分析过程中按需调用外部工具(策略检查器、CVE 扫描器),无需将工具调用或外部 API 逻辑硬编码到智能体本身。
分析智能体遵循与解决方案 1 相同的 AgentCore 运行时模式,并额外增加了通过 AgentCore Gateway 路由的 MCP 工具调用:
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from bedrock_agentcore.memory import AgentCoreMemory
from strands import Agent
from strands.models import BedrockModel
app = BedrockAgentCoreApp()
model = BedrockModel(model_id="us.anthropic.claude-sonnet-4-5-20250929-v1:0", region_name="us-west-2")
analysis_agent = Agent(model=model, tools=[analyze_code, check_quality])
memory = AgentCoreMemory(namespace="code-analysis")
@app.entrypoint
async def analyze_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", "")
# Analyze code, store results in memory, return quality score
...
智能体接收来自 AWS Lambda 触发器的代码内容,使用基础模型(FM)执行多维度分析,然后按需通过 AgentCore Gateway 调用外部工具(策略检查器、CVE 扫描器)。结果持久化到 AgentCore memory,供 Dashboard 检索和历史对比。
关键设计决策包括:
多智能体分离:代码分析智能体仅专注于质量评估。策略检查和 CVE 扫描委托给专用的 AWS Lambda 函数,通过 AgentCore Gateway 调用,使每个组件保持单一职责且可独立更新。
基于会话的结果持久化:每次分析运行在 AgentCore memory 中创建一个唯一会话。Dashboard 通过会话 ID 检索结果,使开发者能够对多次代码提交的质量评分进行对比。
Gateway 介导的工具调用:外部工具通过 MCP 在 AgentCore Gateway 中注册,而非直接调用。这解耦了智能体与工具实现细节,允许在无需修改智能体代码的情况下添加新工具。
完整实现可参考 sample-agentic-secure-software-handoffs 仓库。
集成本地智能体工具:Kiro、OpenAI ChatGPT Codex 和 Claude Code
AgentCore 为部署的事件驱动型智能体工作负载提供云端运行时,而开发工作流本身则受益于在开发者工作站上实现 AI-DLC 模式的本地智能体工具。
Kiro 智能体和 Skills
Kiro 通过结构化规范和自定义智能体技能支持 AI-DLC 的 inception 和 construction 阶段:
规范驱动开发:Kiro 将自然语言需求转换为带验收标准的结构化规范,然后根据这些规范生成实施计划。这直接对应于 AI-DLC 模式——由 AI 创建计划并在执行前寻求人工验证。
自定义技能:团队可以定义可复用的 Kiro 智能体技能,将组织标准(编码模式、安全要求、架构规范)编码其中,使 AI 生成的代码始终符合企业质量基准。
智能体任务执行:Kiro 的智能体模式处理多文件实施任务,具备自主工具使用能力(文件创建、终端命令、搜索),同时在每个规范检查点保持人工审查环节。
OpenAI ChatGPT Codex(MCP 服务器和 Skills)
该仓库还包含一个 OpenAI Codex 集成,演示了相同的 ER 图生成工作流如何通过 MCP 和自定义技能扩展到其他编码智能体:
实时数据库 Schema 访问的 MCP 服务器:本地 stdio 模式的 MCP 服务器通过 INFORMATION_SCHEMA 连接 Codex 与 MySQL 或 Amazon Aurora MySQL 数据库。服务器暴露三个工具(schema_summary、generate_er_markdown 和 generate_mermaid),允许 Codex 查询表结构、列、索引和外键关系,而不访问表行数据。
自定义 Codex 技能:一个 SKILL.md 文件将 ER 图生成工作流编码为可复用的 Codex 技能,引导智能体完成 Schema 分析和图表创建,保证质量一致性。
安全凭证管理:数据库凭证从 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 construction 阶段产生的架构规范。
代码审查和重构:本地智能体根据项目规则和自定义指令执行第一轮审查,在代码进入 CI/CD 流水线之前捕获问题。此时安全软件交接系统提供权威安全分析。
组合工作流
使用这些工具的典型 AI-DLC bolt(短周期高强度工作循环)遵循以下模式:
Inception(Kiro):将业务需求转化为带验收标准的规范。团队在群组阐述会话中验证 AI 生成的规范。
Construction(Claude Code 和 Kiro):生成实施代码、部署脚本和测试套件。本地智能体处理文件生成和迭代优化,Kiro 负责任务编排。
Validation(AgentCore):代码通过 CI/CD 推送触发自动化安全分析。多智能体系统在合并前提供质量评估。
Operations(AgentCore):生产智能体(如 ER 图生成器)在 AgentCore 运行时上持续运行,由事件触发,以完全可观测的方式规模化处理工作负载。
基于这些系统的实施经验,我们推荐以下实践:
分离智能体职责:每个智能体设计为单一、职责明确的单元。ER 图智能体仅生成 ER 图。可组合性来自编排,而非将单个智能体过度负载。
使用 AgentCore memory 保持上下文连续性:持久化 memory 使智能体能够从之前的交互中学习、将当前分析与历史基线对比,并在不同会话间维持状态而无需重新处理。
从第一天起就接入 OpenTelemetry:追踪为智能体行为、处理时长和失败模式提供可见性。这对于调试提示词有效性和识别性能瓶颈至关重要。
将配置存储在 Parameter Store 中:配置与代码解耦。Cognito 凭证、Memory ID、模型选择和桶名称都应在运行时可获取。
对大输入实现分块处理:设计智能体处理超出模型上下文窗口的输入时,通过拆分、独立分析然后合并结果的方式来应对。
使用 Cognito M2M 身份验证保证安全:使用 OAuth2 客户端凭证流进行服务间通信。避免硬编码凭证或长期令牌。
通过 CI/CD 集成,而非手动上传:在生产环境中,将智能体连接到仓库事件(合并请求、流水线阶段),而不是要求手动上传文件。此处展示的 S3 触发模式可直接迁移到 GitLab webhook 或 GitHub Actions 集成。
为生产环境智能体输出应用 Amazon Bedrock Guardrails:配置内容过滤策略、拒绝主题检测和 grounding 验证,确保智能体生成的响应符合负责任 AI 标准。对于代码分析智能体,护栏可以阻止包含不安全代码模式或虚构 CVE 引用的输出。对于图表生成智能体,grounding 检查会验证输出是否准确反映了源 schema。将护栏与自动化评估流水线相结合,持续监控智能体行为,并标记与预期输出质量之间的偏差。
AI-DLC 方法论在有具体实现模式支撑时才变得实用。Amazon Bedrock AgentCore 提供了运行时基础设施(容器化智能体、持久化内存、安全网关和外部工具集成),而 Kiro 和 Claude Code 等本地工具则加速了开发工作流本身。
从 SQL 转 ER-Diagram 示例开始,部署你的第一个 AgentCore 智能体。按顺序执行部署脚本,然后使用安全软件交接示例,通过多智能体协作、MCP 工具集成和 CI/CD 驱动的触发器来扩展这一模式。
想深入了解,请参阅《将 AI 智能体从概念验证迁移到生产环境:Amazon Bedrock AgentCore 实战》,该教程 complementary 讲解了如何将智能体扩展到生产规模。完整的 API 详情、API 参考和配置指南,请参阅 Amazon Bedrock AgentCore 文档。