AWS 教程介绍使用 Amazon Bedrock AgentCore 构建智能文档处理系统,串联分类、提取、验证与学习。方案旨在减少人工干预,并在无需手动配置模板的情况下处理新文档格式。
IDC 的研究表明,文档相关问题每年给组织造成的损失相当于每位信息工作者 19,732 美元,并使生产力下降 21.3%。需要接收数百家供应商发票的组织,经常面临不同开票方采用不同版式、且版式可能在没有通知的情况下发生变化的问题。在这样的规模下,基于模板的系统需要持续维护。员工可能花费多达 30% 的时间处理文档相关任务,而手动录入数据的错误率在 1%–4% 之间。传统的智能文档处理(IDP)解决方案能够减轻部分负担,但需要针对每种文档格式进行大量前期配置,而且当不同供应商的文档版式出现差异时,系统就会失效。
本文将介绍如何使用 Amazon Bedrock AgentCore 构建基于智能体的 IDP 系统,在尽量减少人工干预的情况下,对业务文档进行分类、提取、验证,并从中学习。Amazon Bedrock AgentCore 是一个支持使用任意框架或模型,大规模构建、连接和优化智能体的平台。你的智能体能够自动处理新的文档格式,例如供应商发票、采购订单、保险理赔申请和贷款申请。读完本文后,你将能够:
许多 IDP 流水线要求你预先为每种文档格式定义模板、提取规则和验证逻辑。当新供应商发送一份采用不同版式的采购订单时,流水线就会失效。这带来了三个核心挑战:
基于智能体的方法可以应对这些挑战。AI 智能体会自动分析每份文档、生成提取指令、验证结果,并从纠正中学习,取代静态模板。随着时间推移,系统会建立一个文档格式知识库,让你只需进行极少的额外配置,就能处理相似文档。
在本解决方案中,八个专用智能体通过运行在 Amazon Bedrock AgentCore 上的两个基于图的工作流协作。
下图展示了使用 Strands Agents 构建的多智能体工作流图。Strands Agents 是一个用于构建 AI 智能体的开源 SDK。
图 1:多智能体编排工作流图
下图展示了该解决方案的基础设施架构。
图 2:AWS 上基于智能体的 IDP 基础设施架构
按照以下步骤,将解决方案的基础设施和 Web UI 部署到你的 AWS 账户。
部署此解决方案需要满足以下条件:
克隆仓库并设置环境:git clone https://github.com/aws-samples/agenticidp-guidance.git cd agenticidp-guidance uv venv source .venv/bin/activate uv pip install -r requirements.txt cd ui/orchestrator npm install cd ../..
git clone https://github.com/aws-samples/agenticidp-guidance.git
cd agenticidp-guidance
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
cd ui/orchestrator
npm install
cd ../..
部署堆栈:uv run deploy.py --admin-email your-email@example.com
uv run deploy.py --admin-email your-email@example.com
这会部署六个 AWS CloudFormation 堆栈:Core(S3、Cognito、DynamoDB)、Gateway(Lambda 工具、AgentCore Gateway)、Aurora(Amazon Aurora DSQL)、Agent(AgentCore runtime、容器)、UI Orchestrator(API 端点)和 Modern UI(通过 Amazon CloudFront 提供的 React 应用)。部署大约需要 15–20 分钟。
在 CloudFormation 控制台中检查每个堆栈是否都显示 CREATE_COMPLETE,以确认部署成功。
部署完成后,你会收到一封电子邮件,其中包含 CloudFront URL、用户名和临时密码。
登录 Web UI,然后选择 Process Document。
从 infrastructure/sample_data/purchase_orders/training/ 上传一份示例采购订单。
文档随即进入智能体工作流:Analyzer 智能体提取文本,并识别发送方和文档类型。Matcher 智能体在向量存储中搜索相似文档。对于新的文档类型,训练工作流会生成提取指令、提取数据、验证数据,并保存指令供后续使用。对于已知文档类型,自动化工作流会使用已有指令提取数据并进行验证。
在 Review Jobs and Instructions 选项卡中查看结果,核对提取的数据、验证结果和生成的指令。
假设你上传了新零售商 Two Wheel Store 的第一份采购订单。Matcher 智能体搜索向量存储,没有找到相似文档,于是将任务转入训练工作流。
Analyzer 智能体使用 Amazon Textract 提取文档原始文本:
# PURCHASE ORDER
FROM: Two Wheel Store
Order #: PO-2026-0102-2584
Date: 2026-01-02
## Items Ordered
AC-021 Advanced Computer Qty: 1 $75.61
Colors: cr4321 @ $75.61
...
SB-004 Folding Classic Qty: 8 $9634.32
Colors: cb8901 I Sizes: S @ $1204.29
TOTAL: $14931.54
Instructions 智能体根据模式生成提取提示词,Extractor 智能体则生成结构化 JSON:
{
"po_number": "PO-2026-0102-2584",
"retailer_name": "Two Wheel Store",
"order_date": "2026-01-02T00:00:00Z",
"line_items": [
{ "sku": "AC-021", "product_name": "Advanced Computer", "quantity": 1, "unit_price": 75.61, "line_total": 75.61 },
{ "sku": "SB-004", "product_name": "Folding Classic", "quantity": 8, "unit_price": 1204.29, "line_total": 9634.32 }
],
"order_total": 14931.54
}
Validator 智能体根据模式检查结果,但验证未通过:
validation_status: INVALID
error: 'SB-004' does not match '^AB-[A-Z]{2}-\d{3}$'
供应商的 SKU 格式(SB-004)与 Acme Bikes 的内部格式(AB-SB-004)不一致。Instructions Fixer 智能体诊断出这一格式差异,并在提取提示词中添加一条明确的 SKU 转换规则:为供应商 SKU 添加 AB- 前缀。第二轮处理时,七个明细项均成功通过验证,Save Instructions 智能体将优化后的提示词持久化到向量存储中。首次运行的端到端耗时为 3 分 49 秒。
示例:已知文档类型(自动化工作流)
当 Two Wheel Store 的第二份采购订单到达时,Matcher 智能体找到首次运行时保存的指令,置信度得分为 3.946(阈值为 3.7),并将任务路由到自动化工作流:
Extractor 智能体直接应用已保存的指令,因此编排器会跳过提示词生成步骤。训练过程中学到的 SKU 转换规则会自动生效(EL-002 → AB-EL-002、HB-071 → AB-HB-071、PD-002 → AB-PD-002)。
三个明细项在第一轮就通过了验证,订单总额为 5,979.19 美元。
端到端处理耗时从首次运行的 3 分 49 秒缩短至 1 分 30 秒。
使用交互式聊天
控制面板提供了用于排查问题的聊天界面:
询问“你有哪些工具”,查看可用的智能体能力。
询问“列出指令”,查看已保存的提取指令。
询问“任务 XXXX 的状态是什么”,查看处理进度。
询问“任务 XXXX 出了什么问题,我们该如何更新指令?”,诊断失败原因。
了解准确率如何随时间提升
系统通过两个反馈循环持续改进:
训练循环:当 Instructions Fixer 智能体在验证失败后优化提取提示词时,改进后的指令会被保存,并在处理类似文档时复用。
处理循环:当 Troubleshooter 智能体修复提取错误时,它会提供详细分析,帮助识别文档格式变化中的规律。
更换模型时,请使用 Amazon Bedrock AgentCore 提供的 AgentCore Evaluations 能力,确认提取质量仍然符合要求。该解决方案已经使用 AgentCore Observability,因此具备所需的监测埋点。
该解决方案基于无服务器资源和按需资源运行,不产生闲置成本,因此你只需按实际用量付费。对于在美国东部(弗吉尼亚北部)区域每月训练 10 份文档、处理 1,000 份文档的工作负载,预估费用约为每月 58 美元。通过 Amazon Bedrock 进行的基础模型(FM)推理约占总成本的 85%,每份文档约为 0.055 美元。实际成本主要取决于为各个智能体分配的模型。模型选择集中配置在 agents/orchestratorgraph/utils/config.py 中,因此你可以为简单任务使用成本较低的模型,在需要时使用能力更强的模型。详细定价请参阅 Amazon Bedrock 定价页面。
根据你的使用场景定制解决方案
该解决方案提供了一个采购订单处理用例,其中包含一家虚构自行车公司的合成数据集、预构建的 JSON 模式,以及一个验证 Lambda 函数,用于将提取的数据与模拟 ERP 数据库中的产品和供应商记录进行核对。要处理自己的文档,你必须将随附的模式和验证逻辑替换为自己的实现。
定义文档模式
为每种文档类型创建一个 JSON 模式,定义你想要提取的字段。agents/orchestratorgraph/doc_schema/purchase_order_schema.json 中的示例采购订单模式可供参考。你的模式应明确指定字段名称、数据类型,以及各字段是文档中明确给出的,还是根据上下文推断得出的。
构建验证流程
随附的验证器会根据 Aurora DSQL 中的合成供应商表和产品表检查采购订单数据。在生产环境中,你需要构建符合自身业务规则的验证流程。例如:
发票验证器可以将供应商 ID 与应付账款系统中的记录进行核对,并验证各明细项金额之和是否与发票总额一致。
合同验证器可以验证文档是否包含必需条款,以及日期和合同各方名称是否与你的记录一致。
理赔验证器可以将保单号、保障限额和索赔人信息与保单管理系统中的记录进行核对。
要添加新的验证器,请创建一个 Lambda 函数,使其接收提取出的 JSON,并返回通过或失败的结果及详细错误信息,然后将其注册为 AgentCore Gateway 中的工具。实现方式可参考 gateway/tools/po_validator_tool/。
agents/orchestratorgraph/prompts/ 中的智能体提示词使用了采购订单相关术语。请更新这些提示词,使其符合你的文档类型和提取要求。Orchestrator 智能体、Validator 智能体和 Instructions 智能体都包含针对特定文档类型的表述,需要相应调整。
在训练和运行基于智能体的智能文档处理(IDP)系统时,请牢记以下建议。
从有代表性的样本入手:训练期间,为每种文档类型上传 5–10 份文档,其中应包含存在格式变化的边界情况,以构建可靠的提取指令。
使用业务规则验证:将验证器连接到 Aurora DSQL 中的参考数据(供应商列表、产品目录),尽早发现提取错误。
监控智能体性能:使用 AgentCore Observability 和 CloudWatch 跟踪执行路径、识别瓶颈,并持续衡量提取准确率。
逐步添加文档类型:为每种新的文档类型创建 JSON 模式和对应的验证 Lambda 函数,其余工作由智能体完成。
为生产环境添加护栏:应用 Amazon Bedrock Guardrails,对智能体输出执行内容过滤和基于依据的核查。在处理保险理赔或贷款申请等敏感文档类型时,这一点尤为重要。
查阅 OWASP 大语言模型十大安全风险:构建使用大语言模型(LLM)的应用程序时,请参考《OWASP 大语言模型与生成式 AI 应用十大安全风险》中的安全注意事项。
重要提示:运行清理操作前,请先导出需要保留的数据。destroy.py 脚本会永久删除已处理的文档(S3)、任务历史记录(DynamoDB)、验证数据(Aurora DSQL)以及学习到的提取指令(向量存储)。
为避免持续产生费用,请删除已部署的资源:
uv run destroy.py
在控制台中确认以下六个 CloudFormation 堆栈均已删除:AgenticIDP-Core-Dev、AgenticIDP-Gateway-Dev、AgenticIDP-Aurora-Dev、AgenticIDP-Agent-Dev、AgenticIDP-UIOrchestr-Dev 和 AgenticIDP-ModernUI-Dev。
本文介绍了如何使用 Amazon Bedrock AgentCore 构建能够自我改进的文档处理系统,让各司其职的 AI 智能体协作,对业务文档进行分类、提取、验证,并从中学习。这种基于智能体的方法能够自动适应新的文档格式,并通过反馈循环持续提高准确率,以自主学习取代手动模板配置。
部署示例解决方案,并使用随附的采购订单样本进行测试。
通过创建 JSON 模式和验证规则,添加你自己的文档类型。
探索如何将提取的数据集成到 ERP、CRM 或内容管理工具等下游系统中。
要进一步了解本文使用的服务和模式,请参阅以下资源:
要深入了解该解决方案使用的智能体框架,请参阅《Strands Agents SDK:深入解析智能体架构与可观测性》。
要了解 AgentCore Gateway 如何将 API 转换为兼容智能体的工具,请参阅《Amazon Bedrock AgentCore Gateway 简介:变革企业 AI 智能体工具开发》。
要了解模型上下文协议(MCP)的背景及其与 AWS 服务的集成方式,请参阅《释放模型上下文协议(MCP)在 AWS 上的潜力》。
要了解智能体如何跨会话保留上下文,请参阅《Amazon Bedrock AgentCore Memory:构建具备上下文感知能力的智能体》。
有关 Amazon Bedrock AgentCore 各项能力的详细信息,请参阅 Amazon Bedrock AgentCore 文档。
如果你需要有关构建文档处理解决方案的专家指导,AWS Professional Services 和 AWS Partners 可以提供帮助。