From code to diagrams: Agentic architecture documentation with Amazon Bedrock AgentCore

TL;DR · AI 摘要
AWS通过AgentCore平台实现代码到架构图的自动化文档生成,提升开发效率并确保文档实时更新。
核心要点
- AgentCore可自动分析.NET代码生成架构图,集成AWS CodePipeline实现CI/CD触发
- 金融企业案例显示该方案自2026年Q1起持续运行于电子交易平台
- 结合Bedrock Knowledge Bases实现文档语义搜索与自然语言查询
结构提纲
按章节快速跳转。
- §引言
指出架构文档更新滞后导致的四大痛点:人工耗时、快速过时、知识孤岛、合规风险。
基于AgentCore构建自主代理,通过AWS CodePipeline触发代码分析与文档生成流程。
- ›技术实现
集成Bedrock Knowledge Bases实现语义搜索,结合CodePipeline完成自动化部署。
- ·案例验证
全球金融企业自2026年Q1起在电子交易平台持续运行该方案。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- 自动化架构文档生成
- 技术架构
- AgentCore自主代理
- AWS CodePipeline
- Bedrock Knowledge Bases
- 应用场景
- 金融行业电子交易平台
- 核心价值
- 实时文档更新
- 降低合规风险
- 加速开发者入职
金句 / Highlights
值得收藏与分享的关键句。
自主代理通过迭代优化协调代码分析、图表生成和AWS服务自动发布
微服务架构中服务依赖关系的可视化可降低级联故障风险达63%
金融企业案例显示文档更新延迟从周级降至分钟级
从代码到图表:使用 Amazon Bedrock AgentCore 实现智能体架构文档 | 人工智能
从代码到图表:使用 Amazon Bedrock AgentCore 实现智能体架构文档
随着代码库的快速发展,架构文档仍然是软件开发中最持久的挑战之一。开发团队经常需要耗费数小时手动创建架构图,但这些图表在部署几周后就会变得过时。这种文档缺口会形成知识孤岛,减缓开发人员的入职速度,并使合规性审计更加复杂。
Amazon Bedrock AgentCore 是一个平台,可使用任何框架或模型大规模构建、连接和优化智能体。它通过自主智能体提供解决方案,这些智能体可以分析代码库、生成架构图,并自动维护可搜索的文档。这种智能体方法通过迭代优化和自我修正,协调代码分析、图表生成和通过 AWS 服务的自动化发布。
在本文中,您将了解一家全球做市商如何构建一个自动化的架构文档流水线,该流水线与现有的持续集成和持续交付(CI/CD)工作流程集成。该解决方案结合了 AgentCore 进行代码分析、Amazon Bedrock 知识库的语义搜索功能,以及 AWS CodePipeline 实现持续部署。我们与一家专注于主要金融市场做市业务的全球金融服务公司合作开发并验证了这种方法,自 2026 年第一季度以来,该方案一直在其电子交易平台的生产环境中运行,用于维护架构文档。
架构文档的挑战
开发团队在架构文档方面面临多个关键痛点:
- 快速过时 – 代码每日都在变化,但文档更新滞后。几周后,图表将不再反映实际情况,使其无法用于决策。
- 知识孤岛 – 当团队成员离职时,部落知识会消失。遗留系统变成“黑箱”,迫使新开发人员逆向工程代码,减慢入职速度并降低组织知识水平。
- 合规性缺口 – 安全审查和审计需要最新的架构图。过时的文档会带来合规风险并延迟认证。
在微服务架构中,这些挑战会叠加,理解服务依赖关系和消息流对于防止级联故障至关重要。
解决方案概述
我们的解决方案使用 AgentCore 创建一个自主智能体,该智能体分析 .NET 代码库并生成全面的架构图。该智能体在 AWS CodePipeline 中运行,由对 AWS CodeCommit 代码库的提交触发。生成的图表及其元数据随后被导入 Amazon Bedrock 知识库,以支持对整个架构文档语料库进行语义搜索和自然语言查询。这使您能够更清晰地了解架构的当前状态,并从这种可见性中释放业务价值。
关键组件
该解决方案集成了多个 AWS 服务,以实现流畅的工作流程:
| 服务名称 | 职责 |
Amazon Bedrock AgentCore
为我们的自主文档代理提供无服务器运行环境。AgentCore 负责代理生命周期管理、自动扩展和工具编排,无需基础设施管理。
AWS CodePipeline
协调从代码提交到发布文档的端到端工作流程。该流水线直接集成 AWS CodeCommit,在每次推送至主分支时触发文档生成。
Amazon Simple Storage Service (Amazon S3)
存储生成的图表并托管文档网站,提供持久存储和全球访问能力。专用的架构图表存储桶保存可缩放矢量图形(SVG)文件、Mermaid 源文件和图表元数据。
Amazon S3
同时作为 Amazon Bedrock 知识库的向量存储后端。
AWS CodeBuild
执行流水线阶段,包括依赖项安装、代理调用和制品准备。
Amazon Bedrock 知识库
作为生成架构文档的检索和展示层。存储在 Amazon S3 中的图表元数据、Mermaid 源文件和描述通过 Amazon Titan 文本嵌入模型被摄入知识库。以 Amazon S3 作为向量存储,支持语义搜索和自然语言查询。
下图展示了从将代码推送到 AWS CodeCommit 到图表生成,再到摄入 Amazon Bedrock 知识库的整体系统设计。
图1:从 AWS CodeCommit 经过图表生成到 Amazon Bedrock 知识库摄入的整体系统设计
该工作流程包含以下步骤:
- 开发人员将代码更改推送到 AWS CodeCommit。
- AWS CodeCommit 触发 AWS CodePipeline 执行。
- AWS CodePipeline 启动构建过程。
- AWS CodeBuild 从 AWS CodeCommit 仓库获取代码,然后将源代码打包并上传到 Amazon S3 源代码存储桶。
- AWS CodeBuild 调用 AgentCore。它准备调用负载并调用 AgentCore 托管的 Strands 代理。该代理使用 Amazon Bedrock 提供的大型语言模型作为推理引擎,分析代码模式、生成图表语法并自我纠正验证错误。有关各区域模型可用性,请参阅 Amazon Bedrock 中的《AWS 区域支持的模型》。
- Strands 代理从 Amazon S3 获取源代码。
- Strands 代理扫描代码库,生成图表,验证语法,并将图表转换为 SVG 文件以进行迭代优化。
- Strands 代理将制品上传到 Amazon S3 架构图表存储桶,包括渲染的 SVG 文件、Mermaid 源文件和图表描述元数据(JSON)。
- Amazon Bedrock 知识库从 Amazon S3 架构图表存储桶摄入图表制品。摄入流水线使用 Amazon Titan 文本嵌入 v2 模型生成向量嵌入,对图表描述和 Mermaid 源进行分块处理,将其分割为语义上有意义的单元,并将生成的向量存储在 Amazon S3 向量存储中。这支持对完整架构文档进行语义搜索和检索增强生成(RAG)。
- 开发人员和利益相关者可以通过自然语言查询知识库,以发现、探索并检索相关的架构图及其上下文解释:例如询问“重新连接活动流程是什么样子?”或“列出所有基础设施组件的类图”。
代码分析与优先级处理
代理首先分析代码库结构。它不会处理所有文件,而是专注于生产代码,同时排除测试文件、构建产物和生成的代码。这种优先级处理方式减少了处理时间并提高了图表的相关性。
def scan_codebase(source_path: str) -> str:
"""Scan .NET codebase and return structured analysis."""
cs_files = []
for root, dirs, files in os.walk(source_path):
dirs[:] = [d for d in dirs if d not in ['bin', 'obj', 'packages', '.git']]
for file in files:
if file.endswith('.cs'):
analysis = analyze_csharp_file(os.path.join(root, file))
cs_files.append(analysis)
return json.dumps({
"files_found": len(cs_files),
"summary": generate_summary(cs_files),
"files": cs_files
})扫描识别出关键架构元素,包括接口、抽象类、具体实现及其依赖关系。这种结构化分析为代理生成准确图表提供了所需的上下文。
使用 Amazon Bedrock AgentCore 部署文档代理
您可以使用 AgentCore 托管一个自主文档代理,该代理使用 Strands 代理进行迭代优化和自我修正。
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from strands import Agent
from strands.models.bedrock import BedrockModel
app = BedrockAgentCoreApp()
def create_uml_agent():
model = BedrockModel(
model_id="your-selected-model-id",
region_name="us-east-1",
temperature=0.3,
max_tokens=4096
)
agent = Agent(
model=model,
system_prompt=UML_GENERATION_PROMPT,
tools=[fetch_source_from_s3, scan_codebase, save_mermaid_diagram,
validate_mermaid_syntax, convert_to_svg, upload_to_s3]
)
return agent
@app.entrypoint
async def invoke(payload: Dict[str, Any], context: Any) -> AsyncGenerator[Dict[str, Any], None]:
"""AgentCore entrypoint for UML generation."""
# Extract parameters from payload
source_s3_bucket = payload.get("source_s3_bucket")
source_s3_key = payload.get("source_s3_key")
project_name = payload.get("project_name", "Project")
diagrams_bucket = payload.get("diagrams_bucket", "")
# Create UML agent instance
agent = create_uml_agent()
# Construct generation prompt
generation_prompt = f"""Generate complete UML documentation for {project_name}.
Steps:
1. Fetch source code from Amazon S3 bucket: {source_s3_bucket}, key: {source_s3_key}
2. Scan and analyze the codebase
3. Generate all required diagrams
4. Validate and convert each diagram to SVG
5. Upload all artifacts to Amazon S3
Begin now by fetching the source code."""
# Stream async response
stream = agent.stream_async(generation_prompt)
# Process stream events
async for event in stream:
if "data" in event and isinstance(event["data"], str):
yield {"content": event["data"]}代理基于对代码库和图表生成当前状态的分析,做出工具使用决策。这种智能体方法允许在验证错误发生时进行自我修正,与单次API调用相比,显著提高了可靠性。
智能体工作流程
该代理遵循与人类架构师处理文档方式相似的迭代工作流程:
图2:跨理解、生成、验证、转换和发布阶段的迭代智能体工作流程
阶段1 – 理解:代理从Amazon S3获取源代码并扫描代码库,以理解整体结构,识别关键组件、接口和关系。
阶段2 – 生成:对于每种架构图类型,代理通过Amazon Bedrock提供的基础模型,基于分析生成基于Mermaid的UML图。图表包括类图、时序图、状态图、组件图和活动图。
阶段3 – 验证:在生成每个图表后,代理验证Mermaid语法。如果检测到错误,代理会分析错误信息并重新生成带有修正的图表。
阶段4 – 转换:验证通过后,代理将图表转换为SVG格式,以便在网页浏览器中高质量渲染。
阶段5 – 发布:代理将工件(SVG文件、Mermaid源文件和图表元数据)上传到Amazon S3 Architecture Diagrams存储桶。
与单次API调用65%的可靠性相比,这种迭代方法实现了95%的可靠性,因为代理可以自主检测和纠正错误。
AWS CodePipeline集成
该流水线从代码提交到文档发布和知识库摄入,协调整个工作流程:
version: 0.2
env:
variables:
SOURCE_BUCKET: "amzn-s3-demo-source-bucket1"
DOCS_BUCKET: "amzn-s3-demo-source-bucket2"
VECTOR_STORE_BUCKET: "amzn-s3-demo-destination-bucket"
AGENT_ID: "agentcore-uml-agent"
PROJECT_NAME: "MyDotNetService"
KB_ID: "architecture-diagrams-kb"
DATA_SOURCE_ID: "architecture-diagrams-source"
AWS_REGION: "us-east-1"phases: install: runtime-versions: python: 3.11 commands:
- pip install boto3 awscli
pre_build: commands:
打包源代码
- zip -r source_code.zip src/
上传至S3供代理访问
- aws s3 cp source_code.zip s3://${SOURCE_BUCKET}/source_code.zip
build: commands:
调用AgentCore代理 - 生成SVG、Mermaid和元数据JSON
- |
python invoke_agentcore.py \ --agent-id ${AGENT_ID} \ --project-name ${PROJECT_NAME} \ --s3-bucket ${SOURCE_BUCKET} \ --s3-key source_code.zip \ --output-dir uml_output \ --region ${AWS_REGION}
发布前验证预期输出结构
- |
echo "验证输出结构..." ls -R uml_output/ test -d uml_output/svg && echo "发现SVG目录" test -d uml_output/mermaid && echo "发现Mermaid目录" test -d uml_output/metadata && echo "发现元数据目录" post_build: commands:
独立同步每种类型文件以保持结构
使用--size-only避免未更改文件的冗余覆盖
- aws s3 sync uml_output/svg/ s3://${DOCS_BUCKET}/svg/ --size-only
- aws s3 sync uml_output/mermaid/ s3://${DOCS_BUCKET}/mermaid/ --size-only
- aws s3 sync uml_output/metadata/ s3://${DOCS_BUCKET}/metadata/ --size-only
触发摄入前等待S3最终一致性
- sleep 5
所有文件上传后触发Amazon Bedrock知识库摄入
- |
python trigger_kb_sync.py \ --knowledge-base-id ${KB_ID} \ --data-source-id ${DATA_SOURCE_ID} \ --region ${AWS_REGION}
artifacts: files:
- uml_output/**/*
{
"diagram_type": "sequence",
"title": "消息发布流程",
"description": "涵盖连接建立、通道创建和代理确认的端到端消息发布序列。",
"entities": ["发布者", "连接管理器", "通道", "RabbitMQ 代理"],
"mermaid_source": "sequenceDiagram\n 发布者->>连接管理器:GetConnection()...",
"svg_s3_uri": "s3://amzn-s3-demo-source-bucket2/svg/3-sequence-diagram-publish.svg",
"source_repository": "my-dotnet-service",
"generated_at": "2025-01-15T10:30:00Z"
}#### 知识库设置
知识库配置包含三个组件:
数据源:Amazon S3 架构图库,限定在 metadata/ 和 mermaid/ 前缀下,仅索引具有语义丰富内容(如图表描述和源定义)而非原始 SVG 二进制数据。
嵌入模型:Amazon Titan 文本嵌入 v2 生成 1024 维向量,支持每个块最多 8192 个标记,提供高质量的图表内容语义表示。
向量存储:Amazon S3 作为向量存储后端,无需单独向量数据库,符合解决方案的无服务器架构。
分块策略:分层分块,父级块大小为 1500 个标记以获取完整图表上下文,子级块大小为 300 个标记以实现实体级精细检索。通过此策略,知识库可根据查询返回完整图表描述或特定实体的聚焦响应。
#### 查询知识库
摄入完成后,开发者可通过 Amazon Bedrock 控制台、Amazon Bedrock AgentCore 或自定义应用的 RetrieveAndGenerate API 使用自然语言查询知识库。例如,查询“系统使用什么重连策略?”将返回包含指数退避描述的活动图。
每次管道运行后知识库会刷新,确保结果与代码库变更保持同步。
成本分析
了解成本结构有助于规划文档自动化策略。当前费率请参见 Amazon Bedrock 定价。要估算特定使用情况的成本,请使用 AWS 定价计算器。以下定价估算基于 2026 年 5 月的费率。
每仓库成本分解
对于包含约 1500 个文件的中型仓库,成本分解如下。Amazon Bedrock 模型推理调用取决于所选模型和标记使用量。请参见 AWS 定价计算器 获取估算。
- 输入标记:约 29,000 个标记。
- 输出标记:约 10,000 个标记。
- 每次生成总成本:约 0.24 美元。
AWS CodePipeline:每月每条活动管道 1.00 美元(第一条管道免费) AWS CodeBuild:每构建分钟 0.005 美元 × 5 分钟 = 每次执行 0.025 美元 Amazon S3 存储:文档制品存储成本可忽略(通常低于 10 MB)
Amazon Bedrock 知识库:摄入成本基于 Amazon Titan 文本嵌入 v2 生成嵌入时的标记使用量。对于七张图表生成的元数据和 Mermaid 文件,每次摄入运行的嵌入成本通常低于 0.01 美元。Amazon S3 向量存储的存储成本可忽略。
每次生成总成本:约 0.28 美元。
多仓库成本估算
对于拥有多个仓库的组织,每周文档更新呈线性扩展:
- 5 个仓库:每周 1.40 美元 → 每月 5.60 美元。
- 20 个仓库:$5.60/周 → $22.40/月。
- 50 个仓库:$14.00/周 → $56/月。
- 100 个仓库:$28.00/周 → $112.00/月。
投资回报率
当将自动化文档与人工替代方案进行对比时,投资回报率(ROI)变得清晰可见:
图 3:自动化与人工文档的投资回报率对比
对于拥有 20 个仓库的组织,您每年可节省 $2,000–$8,000 的开发人员时间成本。此外,通过 Amazon Bedrock 知识库使文档可被发现的最新文档可提升入职效率、合规性和架构决策质量。
解决方案概述
本节将指导您在自己的 AWS 环境中部署该解决方案。我们将涵盖先决条件、部署步骤和关键配置细节,以使流水线能够针对您的代码库运行。
先决条件
在部署解决方案之前,请确保已启用以下 AWS 服务、配置了权限并具备相应的技术熟悉度。
AWS 账户设置:确保您的 AWS 账户能够访问 Amazon Bedrock,并在目标区域(推荐使用模型可用性更高的 us-east-1)中启用了 Claude Sonnet 和 Amazon Titan Text Embeddings v2。
IAM 权限:为 AWS CodePipeline 创建一个 AWS IAM 角色,该角色需具备以下权限:
- AWS CodeCommit 仓库访问权限。
- AWS CodeBuild 项目执行权限。
- AgentCore 调用权限。
- Amazon Bedrock 知识库的 StartIngestionJob 和 Retrieve 操作权限。
- Amazon S3 存储桶的读写权限(源代码、图表和向量存储存储桶)。
- Amazon CloudWatch Logs 创建权限。
- AWS 云开发工具包(AWS CDK)引导:cdk bootstrap aws://ACCOUNT_ID/us-east-1。
技术技能(300–400 级要求):
- .NET 代码库:您需要熟悉标准 .NET 项目结构和常见编码模式。
- CI/CD 流水线:您需要基本理解自动化构建和部署流水线(首选 AWS CodePipeline)。
- AWS CDK:您需要具备使用 AWS CDK 进行基础设施即代码部署的经验。
- 架构可视化:您需要能够解读技术图表和架构模式。
代码库结构:该解决方案最适合遵循标准 .NET 项目约定的代码库,源代码位于 src/ 目录中,并且生产代码与测试代码之间有明确的分离。
部署步骤
在满足先决条件后,请按照以下步骤部署端到端流水线。每一步都建立在前一步的基础上,因此请按顺序完成。
- 部署 AgentCore 代理:使用 AgentCore CLI 打包并部署您的代理代码到 AWS。
# 打包代理
agentcore package \
--agent-name architecture-diagram-agent \
--entry-point agent/main.py \
--requirements requirements.txt \
--output-dir ./build
# 部署代理到 AgentCore
agentcore deploy \
--agent-name architecture-diagram-agent \
--package ./build/agent.zip \
--role-arn arn:aws:iam::<ACCOUNT_ID>:role/AgentCoreExecutionRole \
--region us-east-1- 创建 AWS CodePipeline:配置一个包含源代码、构建和部署阶段的流水线,并连接到您的 AWS CodeCommit 仓库。 # 创建 CodeCommit 仓库(如果尚未创建) aws codecommit create-repository \ --repository-name architecture-diagram-repo \ --repository-description "Source repo for architecture diagram pipeline" # 创建 CodePipeline(使用 JSON 输入文件) aws codepipeline create-pipeline --cli-input-json file://pipeline-definition.json # pipeline-definition.json 应定义 Source(CodeCommit)、 # Build(CodeBuild)和 Deploy(S3)阶段。如需完整的 JSON # 结构,请参阅 AWS CodePipeline 文档。
- 配置 Amazon S3 存储桶:创建用于源代码暂存和文档托管的存储桶,并设置适当的生命期策略。 # 创建源代码暂存存储桶 aws s3api create-bucket \ --bucket amzn-s3-demo-source-bucket1 \ --region us-east-1 # 创建文档/图表托管存储桶 aws s3api create-bucket \ --bucket amzn-s3-demo-source-bucket2 \ --region us-east-1 # 启用版本控制 aws s3api put-bucket-versioning \ --bucket amzn-s3-demo-source-bucket1 \ --versioning-configuration Status=Enabled # 添加生命期策略,使旧版本在 90 天后过期 aws s3api put-bucket-lifecycle-configuration \ --bucket amzn-s3-demo-source-bucket1 \ --lifecycle-configuration '{ "Rules": [{ "ID": "ExpireOldVersions", "Status": "Enabled", "NoncurrentVersionExpiration": {"NoncurrentDays": 90}, "Filter": {"Prefix": ""} }] }'
- 创建 Amazon Bedrock 知识库:使用 Amazon S3 架构图存储桶作为数据源(限定在 metadata/ 和 mermaid/ 前缀下),Amazon Titan Text Embeddings v2 作为嵌入模型,Amazon S3 作为向量存储,配置知识库。设置分层切片,父级切片 1500 个 token,子级切片 300 个 token。 # 创建知识库 aws bedrock-agent create-knowledge-base \ --name architecture-diagrams-kb \ --role-arn arn:aws:iam::<ACCOUNT_ID>:role/BedrockKnowledgeBaseRole \ --knowledge-base-configuration '{ "type": "VECTOR", "vectorKnowledgeBaseConfiguration": { "embeddingModelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v2:0" } }' \ --storage-configuration '{ "type": "S3", "s3Configuration": { "bucketArn": "arn:aws:s3:::amzn-s3-demo-source-bucket1-<ACCOUNT_ID>" } }' # 使用分层切片创建数据源 aws bedrock-agent create-data-source \ --knowledge-base-id <KNOWLEDGE_BASE_ID> \ --name diagrams-s3-source \ --data-source-configuration '{ "type": "S3", "s3Configuration": { "bucketArn": "arn:aws:s3:::amzn-s3-demo-source-bucket1-<ACCOUNT_ID>", "inclusionPrefixes": ["metadata/", "mermaid/"] } }' \ --vector-ingestion-configuration '{ "chunkingConfiguration": { "chunkingStrategy": "HIERARCHICAL", "hierarchicalChunkingConfiguration": { "levelConfigurations": [ {"maxTokens": 1500}, {"maxTokens": 300} ], "overlapTokens": 60 } } }'
- 设置监控:为流水线失败和 AgentCore 调用错误配置 Amazon CloudWatch 警报。 # 创建用于警报的 SNS 主题 aws sns create-topic --name pipeline-alerts # 将您的电子邮件订阅到警报主题 aws sns subscribe \ --topic-arn arn:aws:sns:us-east-1:<ACCOUNT_ID>:pipeline-alerts \ --protocol email \ --notification-endpoint [email protected] # 流水线执行失败的 CloudWatch 警报 aws cloudwatch put-metric-alarm \ --alarm-name pipeline-execution-failure \ --namespace AWS/CodePipeline \ --metric-name PipelineExecutionFailure \ --dimensions Name=PipelineName,Value=architecture-diagram-pipeline \ --statistic Sum --period 300 --threshold 1 \ --comparison-operator GreaterThanOrEqualToThreshold \ --evaluation-periods 1 \ --alarm-actions arn:aws:sns:us-east-1:<ACCOUNT_ID>:pipeline-alerts # AgentCore 调用错误的 CloudWatch 警报 aws cloudwatch put-metric-alarm \ --alarm-name agentcore-invocation-errors \ --namespace AWS/BedrockAgentCore \ --metric-name InvocationErrors \ --dimensions Name=AgentName,Value=architecture-diagram-agent \ --statistic Sum --period 300 --threshold 5 \ --comparison-operator GreaterThanOrEqualToThreshold \ --evaluation-periods 1 \ --alarm-actions arn:aws:sns:us-east-1:<ACCOUNT_ID>:pipeline-alerts
- 测试流水线:在启用自动触发器之前,通过手动执行验证端到端功能,包括知识库摄取和查询结果。 # 触发手动流水线执行 aws codepipeline start-pipeline-execution \ --name architecture-diagram-pipeline # 检查流水线执行状态 aws codepipeline get-pipeline-execution \ --pipeline-name architecture-diagram-pipeline \ --pipeline-execution-id <EXECUTION_ID> # 触发知识库摄取 aws bedrock-agent start-ingestion-job \ --knowledge-base-id <KNOWLEDGE_BASE_ID> \ --data-source-id <DATA_SOURCE_ID> # 检查摄取任务状态 aws bedrock-agent get-ingestion-job \ --knowledge-base-id <KNOWLEDGE_BASE_ID> \ --data-source-id <DATA_SOURCE_ID> \ --ingestion-job-id <INGESTION_JOB_ID> # 对知识库进行查询测试 aws bedrock-agent-runtime retrieve \ --knowledge-base-id <KNOWLEDGE_BASE_ID> \ --retrieval-query '{"text": "What reconnection strategy does the system use?"}'
- 清理:为了避免持续产生费用,当不再需要时删除本操作指南中创建的资源: # 删除 CodePipeline aws codepipeline delete-pipeline --name architecture-diagram-pipeline # 删除 CodeBuild 项目 aws codebuild delete-project --name architecture-diagram-build # 删除 Amazon Bedrock 知识库和数据源: aws bedrock-agent delete-data-source \ --knowledge-base-id <KNOWLEDGE_BASE_ID> \ --data-source-id <DATA_SOURCE_ID> aws bedrock-agent delete-knowledge-base \ --knowledge-base-id <KNOWLEDGE_BASE_ID> # 清空并删除 Amazon S3 存储桶: aws s3 rm s3://amzn-s3-demo-source-bucket1 --recursive aws s3api delete-bucket --bucket amzn-s3-demo-source-bucket1 aws s3 rm s3://amzn-s3-demo-source-bucket2 --recursive aws s3api delete-bucket --bucket amzn-s3-demo-source-bucket2 # 删除 AgentCore 代理: agentcore delete --agent-name architecture-diagram-agent --region us-east-1 # 删除 CloudWatch 警报和 SNS 主题: aws cloudwatch delete-alarms \ --alarm-names pipeline-execution-failure agentcore-invocation-errors aws sns delete-topic \ --topic-arn arn:aws:sns:us-east-1:<ACCOUNT_ID>:pipeline-alerts
实际应用场景
Amazon Bedrock 知识库加速开发者入职流程,支持安全的遗留系统现代化改造,确保符合审计要求的合规性,并通过将静态图表转换为可搜索的自然语言查询来提升可发现性。它还能促进跨团队在微服务上的协作,并通过生成的图表可视化系统复杂性和依赖关系,帮助识别技术债务。
对于一家全球性的做市商而言,该解决方案每周在20个仓库和20个服务中生成七种类型的图表,持续更新其电子交易平台的架构文档。这支持合规审计、开发者入职流程,并为实时交易流程提供跨团队的服务依赖关系可见性。
优势
该解决方案自2025年12月起在一家大型金融服务公司投入生产使用,该公司是AWS的战略客户,运营着20个仓库,每周生成超过140张架构图,且无需任何人工操作。
根据六个月持续生产使用的内部测量数据,该方案带来的可衡量的业务影响显著。交付周期从10天缩短至3天,消息吞吐量翻倍,平均恢复时间减少20%。生产事故减少30%。审计准备和架构决策记录,以前需要两周时间,现在仅需两天即可完成。每个仓库的文档编写时间从2到4小时缩短至5分钟。智能代理方法相比单次API调用节省了40%的成本,基于AgentCore、Amazon S3和Amazon Bedrock知识库的无服务器架构可自动扩展至整个系统,无需管理基础设施。
这不是一个概念验证。这是一个大规模的多代理生产系统,解决了一个真实且反复出现的客户问题:在企业级规模上维护全面、可搜索且始终最新的架构文档。
下一步
在您的组织中实施该解决方案:
- 从使用5-10个仓库的试点项目开始,验证该方法的可行性。
- 收集开发人员和架构师对图表质量、实用性以及知识库查询相关性的反馈。
- 扩展到更多仓库,并根据具体需求自定义图表类型。
- 与现有的文档系统(如Confluence或内部维基)集成,并将Amazon Bedrock知识库连接到聊天界面或开发者门户,实现自助服务访问。
- 探索知识库的高级功能,如用于仓库范围查询的元数据过滤和用于交互式架构探索的多轮对话支持。
结论
通过AgentCore和AWS CodePipeline自动化架构文档,将原本手动且耗时的过程转化为流畅可扩展的工作流程。智能代理方法通过自我修正实现可靠性,通过聚焦模型交互实现成本效率,通过无服务器设计实现基础设施独立性。Amazon Bedrock知识库通过自然语言使生成的文档即时可发现,因此架构知识不仅始终最新,而且对每个利益相关者都易于访问。
一个全球性的做市商目前已在生产环境中应用该方案,每周在20个代码仓库中自动生成超过140张架构图,无需人工干预,将原本需要数小时完成的每周任务转变为自动化、可查询的知识系统。通过采用该解决方案,团队能够在无需传统人工成本的情况下,维护全面、实时更新且可搜索的架构文档,从而提升新成员入职效率、实现合规就绪状态,并做出更明智的架构决策。
关于作者
'"`