[控场AI]
· 5 分钟阅读· 2,790 字

Bedrock为Claude模型上线结构化输出

Bedrock为Claude模型上线结构化输出

Bedrock 为全部 Claude 模型补上结构化输出,终结 JSON 解析胶水代码。

Amazon Bedrock 宣布为平台上所有 Anthropic Claude 模型提供结构化输出支持,覆盖 bedrock-runtime 与 bedrock-mantle 两个端点。该能力通过 JSON Schema 输出格式与严格工具使用两条路径实现,让模型直接返回 schema 合规的 JSON,开发者无需再编写正则清洗、重试与后处理逻辑。此次更新的关键在于能力对齐:Anthropic 原生 API 早已具备类似能力,如今企业客户在满足合规、区域部署与统一云账单要求的同时,不必牺牲格式可靠性。文章同时提醒,schema 只保证结构合规而不保证语义正确,业务层仍需保留抽检规则;schema 设计也应从核心字段起步逐步收紧。受益场景集中在数据抽取管道、Agent 工具调用与强类型后端对接。

从「解析地狱」到结构化交付:Bedrock 给 Claude 补上了关键一环

调用大模型返回 JSON,是几乎每个 AI 应用开发者都踩过的坑:模型偶尔漏字段、偶尔多写解释性文字、偶尔把数字塞进字符串里。为了拿到一份能直接喂给下游系统的数据,工程团队不得不堆上正则清洗、重试逻辑和后处理校验。Amazon Bedrock 最新的更新正在试图终结这套繁琐流程——它为平台上所有 Anthropic Claude 模型提供了结构化输出(Structured Outputs)支持,覆盖 bedrock-runtime 与 bedrock-mantle 两个端点,开发者可以直接获得符合预定义结构的、schema 合规的 JSON。

这次更新具体解决什么

按照官方说明,该能力通过 JSON Schema 输出格式与严格工具使用(strict tool use)两条路径实现。前者让模型按开发者给定的 JSON Schema 生成响应,后者则在工具调用场景中确保参数严格符合声明的结构。两种方式都指向同一个目标:模型返回的内容可以直接被程序消费,而不需要自定义解析器、重试逻辑或后处理环节。

对熟悉 Claude API 的开发者来说,结构化输出并不陌生:Anthropic 早前已在自家 API 上提供类似能力。此次更新的意义在于把这一能力铺到 Bedrock 的全部 Claude 模型上。企业客户往往因为合规、区域部署或统一云账单等原因选择通过 Bedrock 调用模型,能力对齐意味着他们不必再在「用原生 API 拿结构化输出」和「用 Bedrock 满足企业要求」之间做取舍。

JSON Schema 是一种用来描述和校验 JSON 数据结构的标准规范,由 IETF 在 draft 系列文档中定义,现已成为跨语言、跨平台的通用契约格式。它通过 type、properties、required、enum、additionalProperties 等关键字声明字段名称、数据类型、是否必填、取值范围以及是否允许额外字段,因而既能被程序用作校验器,也能被模型用作生成模板。Bedrock 的结构化输出正是把 JSON Schema 作为「格式合同」交给模型:模型在解码阶段被引导只生成符合该 schema 的 token 序列,从源头降低格式漂移的概率。理解 schema 的能力边界也很重要——它约束的是语法层结构,例如某个字段必须是字符串或枚举值之一,但不会判断该字段的内容是否与事实相符。因此实践中常把 schema 拆成两层:一层约束机器可读的骨架,另一层由业务代码做语义抽检。

严格工具使用(strict tool use) 是工具调用场景下的一种约束模式。在常规工具调用中,模型会输出一个包含工具名与参数对象的调用请求,参数结构由提示词或工具定义描述,但模型仍可能漏传必填参数、传入多余字段或把类型写错(例如把整数写成字符串)。严格工具使用要求在工具定义中附带 JSON Schema,并在调用时强制模型输出完全符合该 schema 的参数对象,平台侧会对不符合的调用进行拦截或纠正。对 Agent 系统而言,这意味着下游函数可以按声明好的签名直接执行,而不必在入口处写大量防御性判断。它与 JSON Schema 输出格式的区别在于作用对象:前者约束的是工具调用的参数负载,后者约束的是普通文本响应体,但两者共用同一套 schema 表达能力。

对工程实践的真实影响

结构化输出最直接的价值是压缩了「胶水代码」的体积。过去一个典型的信息抽取流水线大致是:调用模型 → 尝试 JSON 解析 → 失败则重试或让模型自我修复 → 校验字段 → 落库。引入 schema 约束后,解析失败的频率大幅下降,重试分支可以被砍掉,代码路径变短也意味着线上故障面变小、延迟更可预测。

它同时改变了提示词的写法。以往开发者需要在 prompt 里反复强调「只返回 JSON,不要包含任何解释」,还要给出格式示例;现在结构由 schema 承载,提示词可以更聚焦于任务本身。这对多模型切换尤其友好——同一份 schema 可以复用到不同 Claude 版本上,减少因模型升级引起的格式回归测试。

Amazon Bedrock 是 AWS 的托管式生成式 AI 服务,通过统一 API 向开发者提供多家模型厂商的模型,包括 Anthropic Claude、Amazon Titan、Meta Llama 等。文中提到的 bedrock-runtime 与 bedrock-mantle 是 Bedrock 的两个服务端点:前者是面向推理调用的主端点,承载 InvokeModel、Converse 等接口;后者是较新的端点形态,用于承载部分新能力的调用路径。企业选择 Bedrock 的典型理由包括数据不离开指定区域、与 IAM 和 CloudWatch 等云服务集成、统一账单与配额管理,以及满足行业合规要求。正因为这些诉求,Bedrock 上的能力是否与模型厂商原生 API 对齐,会直接影响企业架构决策——结构化输出补齐后,企业无需再为了格式可靠性而绕开 Bedrock 直连厂商。

需要留意的边界

官方描述强调的是「符合已定义结构」,并不意味着语义层面的正确性也被一并保证。schema 能约束字段是否存在、类型是否匹配、枚举值是否合法,但字段内容是否抽取正确,仍取决于模型对任务的理解。开发者依然需要为业务逻辑层准备校验规则,只是这层校验从「格式兜底」退化为「语义抽检」,工作量与紧急程度都不同。

另一个实际问题是 schema 的设计成本。把复杂的业务对象完整表达为 JSON Schema 并非零成本,过于严格或嵌套过深的 schema 可能压缩模型的表达空间,反而影响产出质量。通常的建议是从核心字段起步,逐步收紧约束,而不是一次性把整个数据库表结构搬进 schema。

谁最该关注这次更新

受益最明显的是三类场景:一是数据抽取与清洗管道,需要把非结构化文本稳定转成表记录;二是 Agent 与工具调用系统,参数结构的可靠性直接决定后续动作能否执行;三是需要对接强类型后端服务的应用,如工单系统、CRM 同步与自动化报表。对这些团队而言,结构化输出减少的不只是代码量,还有对「模型今天是否听话」的不确定性焦虑。

从平台竞争的角度看,Bedrock 此举是把原本的差异化能力变成基础配置。当主流云平台的模型网关都支持 schema 约束后,开发者选型的考量会进一步回到模型质量、价格与生态集成上,而格式可靠性将逐渐被视为理所当然的默认项。

#Amazon Bedrock#Claude 结构化输出#Structured Outputs#JSON Schema#严格工具使用#bedrock-runtime#Anthropic Claude
分享:

相关推荐