
八 Agent 自学习文档处理:把“学会新格式”做成可验证的图工作流
2026 年 10 月 14 日,AWS 发布自学习智能文档处理方案:八个专用 Agent 在两条基于 Strands Agents 的图工作流中协作。Analyzer 提取文本并识别类型,Matcher 用向量相似度寻找既有格式;遇到新格式时,Instructions、Extractor、Validator、Instructions Fixer 和 Save Instructions 生成并验证抽取指令;已知格式则直接抽取,失败时由 Troubleshooter 修复本次结果。
“自学习”容易被误解为在线训练模型。这里真正被学习并复用的是经过验证的抽取指令与格式知识。它比直接更新模型参数更容易审计、回滚和按租户隔离。
多 Agent 的价值来自不同状态转移承担不同责任,而不是给同一提示换八个角色名。
用类型化状态定义工作流
图中的节点不应通过自然语言聊天传递全部信息。定义稳定状态,使每个 Agent 只读写自己负责的字段:
class DocumentState(TypedDict):
job_id: str
source_uri: str
content_hash: str
sender: str | None
doc_type: str | None
match_id: str | None
match_score: float | None
instruction_version: str | None
extracted: dict[str, Any] | None
validation_errors: list[dict]
attempts: int
status: Literal["new", "training", "validated", "failed"]
每次节点执行都记录输入状态版本、输出 patch、模型/提示版本和工具轨迹。失败恢复时从最后一个已提交节点继续,而不是重新 OCR 和重复调用所有 Agent。
路由必须由可测条件决定
Matcher 返回的不应只是“看起来相似”,而是候选格式、相似度、关键特征匹配和阈值决策。阈值过低会错误复用旧指令,过高则频繁进入昂贵训练分支。
def route_after_match(state: DocumentState) -> str:
if state["match_id"] and (state["match_score"] or 0) >= 0.92:
return "extract_known"
return "train_new_format"
def route_after_validation(state: DocumentState) -> str:
if not state["validation_errors"]:
return "save_instructions"
if state["attempts"] >= 3:
return "human_review"
return "fix_instructions"
阈值要按文档类别校准。银行账号或金额字段的错误代价远高于备注文本,应使用字段级置信度和硬校验,不能用平均分掩盖关键字段失败。
Validator 必须尽量确定性
Validator Agent 可以解释异常,但 schema、类型、总额平衡、日期范围、供应商白名单等规则应由代码执行。让另一个模型“看一眼是否正确”,会让训练闭环同时受两个随机系统影响。
def validate_invoice(x: dict) -> list[str]:
errors = []
if Decimal(x["subtotal"]) + Decimal(x["tax"]) != Decimal(x["total"]):
errors.append("TOTAL_MISMATCH")
if not re.fullmatch(r"[A-Z0-9-]{6,32}", x["invoice_no"]):
errors.append("BAD_INVOICE_NO")
return errors
业务规则来自受控数据库并版本化。Agent 只看到必要的失败码与有限证据,避免把完整客户数据写进 prompt。
指令库需要像模型注册表一样治理
Save Instructions 不能把任何一次通过的结果直接设为全局模板。记录适用租户、发送方、文档类型、样本哈希、schema 版本、验证集表现和生效状态。新指令先处于 candidate,用多份历史文档回放,达到阈值后才晋升为 active。
已知格式抽取失败时,Troubleshooter 只修正本次结果,而 Instructions Fixer 修改可复用规则。两者必须分开,否则一张异常发票就可能污染之后所有任务。模板回滚也要保留旧版本和命中历史。
八个 Agent 仍需要一个确定性骨架
EventBridge 负责触发,DynamoDB 保存 job,AgentCore Runtime 承载图,Gateway 将 Lambda 暴露为 MCP 工具,Identity 提供机器身份,Observability 关联轨迹。这些基础设施不应由 Agent 临时决定。
生产指标包括:首次出现格式的人工处理率、已知格式直通率、字段级准确率、每份文档 Agent 调用数、指令晋升/回滚率和跨租户误命中率。多 Agent 自学习系统只有在“学到了什么、依据什么通过、影响哪些后续任务”都可重建时,才比传统模板系统更可靠。