Amazon Bedrock Claude Structured Outputs 将 JSON 强制约束纳入生成过程
据 AWS 称,Amazon Bedrock Claude structured outputs 现已覆盖两个 Bedrock 端点,将 JSON 格式强制约束从应用层修复转移到模型生成阶段。结构化输出会将响应限制在声明的格式内,为开发者在语言模型与下游软件之间提供更清晰的契约。这项变化解决了格式失败问题,但开发者仍需负责解读并处理返回的信息。
AWS 于 2026 年 10 月 19 日宣布扩大支持范围。其核心承诺面向那些需要维护自定义代码、修复格式错误响应或再次请求模型尝试的团队。这类工作会挤占应用真正目的所需的精力:提取有用信息、路由请求或协调操作。
Google Gemini 也提供基于模式的响应,为行业树立了有参考价值的标准。当前的直接压力落在仍将模型输出视为需要清理的不可预测文本的应用团队身上。他们如今需要决定:哪些修复可以淘汰、哪些检查仍有必要,以及如何区分这些责任。
Amazon Bedrock Claude Structured Outputs 覆盖两个端点
AWS 表示,该功能覆盖了 bedrock-runtime 和 bedrock-mantle 端点上所有可用的 Anthropic Claude 模型。端点是应用发送请求所通过的服务地址。因此,此次公告既涉及集成覆盖范围,也涉及响应格式。
此次发布将 JSON Schema 输出格式与严格工具使用相结合。JSON Schema 描述预期的数据结构,而严格工具使用则将声明的结构应用于模型生成的工具参数。AWS 在其 Claude structured outputs 公告中介绍了这两种机制。
运营层面的变化在于,开发者可以请求强制执行的结构,而不必反复要求模型遵循格式指令。
只要模型处于更大的软件流程中,这一区别就很重要。阅读响应的人可以忽略一句开场白,或识别出明显的格式错误。但期待特定记录的软件通常需要对接收内容有更明确的约定。
在这一约定下,先前编写的修复逻辑值得重新审视。有些代码存在的唯一原因,是模型偶尔会用解释性文字包裹响应。另一些代码则用于处理缺失信息、服务故障,或需要更多证据的决策。这些类别需要区别对待。
这一公告为审查累积的复杂性提供了理由。它并不意味着每个应用都有同样的清理负担。已经使用其他强制输出机制的团队,与完全依赖提示词的团队面临不同的迁移决策。
跨端点的覆盖范围对于维护多条集成路径的组织也很重要。一个功能若只通过部分基础设施提供,可能需要单独的实现或例外处理。更广泛的可用性提供了让预期响应契约更一致的机会。
不过,端点名称不应让人以为其周边能力完全相同。AWS 的推理端点比较明确确认两个端点都支持结构化输出,同时也区分了它们更广泛的功能。该比较列出了 Runtime 的跨区域推理,以及 Mantle 的服务器端工具执行。
这一区别让这则新闻保持在恰当的视角中。组织在选择端点时,仍需考虑应用如何运行。对响应功能的共享支持,并不能消除关于执行、权限、对话管理或部署位置的决策。
“所有 Claude 模型”这一表述同样需要结合其可用性限定来理解。读者不应将公告解读为每个模型都存在于每个区域的承诺。相关问题仍然是:目标模型与功能能否在实际部署路径上协同工作。
对于现有 Bedrock 客户而言,这主要是简化既有集成的机会。对于新项目而言,它改变了一项架构假设:响应结构可以成为一项服务能力,而非应用修复工作。
压力转向维护 JSON 修复代码的团队
最直接的压力对象是维护防御性格式代码的工程团队。JSON 是一种用于交换结构化数据的文本格式,常将模型响应与普通应用逻辑连接起来。当这一连接失败时,开发者必须同时排查模型和周边软件。
当服务已经提供所需契约时,原生结构强制约束会使格式处理工作更难以证明其合理性。
以一个示例性的支持请求路由应用为例。其模型读取客户消息,并生成类别、紧急程度评估和说明。路由系统随后将该记录发送至相应队列。
格式失败会使路由系统根本无法读取记录。分类错误则会生成可读取、但判断错误的记录。两者都会干扰工作流,但需要不同的补救措施。
通过重试来修改引号可以解决第一个问题,却无法保证客户请求确实属于所选队列。将两类失败视为同一问题,会让可靠性报告的信息价值下降。
因此,Amazon Bedrock Claude structured outputs 的实际价值部分在于组织层面。团队可以将涉及响应契约的失败与涉及解释判断的失败区分开来。当应用行为异常时,这种区分会让责任归属更清晰。
基础设施团队可以调查请求失败或响应不完整的问题。应用团队可以审查提取字段是否反映原始内容。业务负责人则可以决定某项分类是否值得自动执行。
这种划分也改变了团队评估既有中间件——即连接服务的软件——的方式。只负责修复响应语法的组件,其角色会变得更有限。协调工作流、管理权限或保留证据的组件,则仍有独立的用途。
目前没有依据可以宣布整个开发者工具类别已经过时。许多集成完成了格式处理以外的有用工作。有意义的问题是,每一层是否仍在应对应用实际会遇到的失败。
企业买家在审查供应商演示时也应采用同样的区分。一个干净的记录证明某项集成可以生成可用的形式,但并不能证明该记录准确反映来源,或能支撑合理的决策。
这种区分对于知识工作流尤其重要。一份文档可能包含相互矛盾的日期、模糊的责任归属,或后来被其他来源更正的陈述。格式良好的结果可能保留这些问题,也可能用整齐的字段掩盖它们。
将提取功能连接到可搜索的知识库的团队,应保留访问底层证据的能力。结构化记录帮助软件组织信息,源文件则帮助人们判断这种组织是否反映了实际写下的内容。
因此,最有力的商业论证将明确哪些工程工作会消失,以及释放出的注意力将投向何处。“更少的格式修复”是可以评估的具体主张。“可靠的自动化”则需要更全面地说明准确性、例外情况和操作控制。
受约束生成改变集成契约
受约束解码会在生成过程中限制模型可选择的输出,使其始终与所请求的结构兼容。重要转变发生在响应到达应用之前。开发者不再仅仅依赖模型愿意遵循格式指令。
在生成过程中执行约束,是在应对格式变化的根源,而不是在每次响应交付后进行修复。
提示词可以用谨慎的语言描述所需结构。但该指令仍使应用依赖于响应是否遵守描述。生成约束则会将描述中受支持的部分转化为对模型可输出内容的限制。
这正是该功能值得关注的原因,而不只是另一个响应格式设置。应用与模型的关系发生了变化。它不再接受任意文本后尝试恢复出一条记录,而是通过明确的契约请求一条记录。
这一区别并不意味着普通 JSON 解析会消失。解析会将返回文本转换为应用代码可以使用的对象。可移除的负担是从格式错误输出中进行自定义恢复,而非读取结构化数据这一基本操作。
Anthropic 的结构化输出行为将响应格式与严格工具输入区分开来。开发者可以独立使用这些机制,也可以结合使用。其文档还指出,拒绝响应和输出长度限制是应用必须处理的例外情况。
这种划分对于既生成报告又请求执行操作的应用很重要。最终报告具有响应契约,提议的工具调用则具有输入契约。强制执行其中一项,并不会自动确立另一项。
以一个示例性的文档处理工作流为例:它提取发票信息,并提出匹配的账户分录。提取结果需要可预测的字段,提议的操作则需要接收函数能够理解的参数。
业务仍然需要判断发票是否属于选定账户。这个问题取决于证据和业务规则。一个包含有效账户标识符的字段,并不能证明该标识符对应正确的客户。
因此,严格工具使用改善了生成提议与可执行软件之间的边界。它为接收系统提供了更可预测的对象以供检查。授权仍是另一个独立决策:拟议操作是否应当继续执行。
模式设计也因此成为产品决策。必填字段可以表明应用期待某项信息,但来源未必包含该信息。设计者需要明确的方法来表示不确定性或证据缺失。
否则,整齐的契约可能鼓励一种误导性的界面。应用看似完整,因为每个预期位置都有值。读者可能忽略该值究竟来自来源,还是来自缺乏支持的推断。
相关的设计问题是:当证据不完整时,这条记录意味着什么。能够容纳不确定性的模式,让下游软件有机会作出恰当响应。隐藏不确定性的模式,则让该软件拥有更少有用的选择。
这是格式改进与产品质量相遇之处。结构约束使声明的契约更加可靠。它也会让该契约的弱点更具后果,因为其他系统可以更顺畅地消费其输出。
AWS 加入向声明式输出契约发展的更广泛趋势
Google 的 Gemini structured outputs 文档同样描述了受所提供 JSON Schema 约束的响应。该能力被定位于提取、分类,以及面向工具的结构化输入。因而,AWS 的公告属于模型集成领域既有的发展方向。
竞争焦点正转向契约的质量与覆盖范围,而不是模型是否能够模仿 JSON。
这比将结构化输出视为一种独特的模型智能主张更有参考价值。生成预期的结构形态与理解复杂文档,是两种不同的能力。服务提供商可以改进前者,而并不意味着其在后者上建立了优势。
对买家而言,这改变了比较流程。一份看起来正确的示例响应,并不足以作为选择平台的依据。相关比较应包括实际 schema、实际文档和实际部署要求。
服务提供商支持的 schema 子集之所以重要,是因为生产环境中的契约不只有字段名称。一些应用需要有边界的值、严格受控的文本或复杂关系;另一些则只需要具有可预测类型的相对简单记录。
这些应用不应接受相同的兼容性评估。一项功能或许适合直接的分类任务,却可能需要为要求更高的数据契约投入额外工作。宽泛的营销表述无法回答这一特定于应用的问题。
独立研究提供了一种有用的评估组织方式。JSONSchemaBench research 考察了效率、约束覆盖范围和生成输出质量。这些维度提供的框架,比统计成功解析的响应数量更全面。
这项研究不应被描述为对今年 10 月这次 Bedrock 发布的基准测试。它支持的是一种评估方法,而非对新公告表现的定论。AWS 需要发布版本相关的证据,才能支持这种更强的结论。
对于企业团队而言,效率涉及生成可用结果所需的资源和时间。覆盖范围涉及系统是否遵守预期契约。质量则涉及返回内容是否满足任务需求。
这些维度彼此交互,但并不会相互归并。一条可读却包含错误客户名称的记录,仍然是糟糕的结果。一项准确的提取如果反复无法满足应用所需的契约,同样会带来运营工作。
因此,直接的竞争压力落在薄弱的集成假设上。围绕“礼貌提问,再进行修复”构建的系统,如今有了另一种原生替代方案。团队需要说明,为何每一项保留的修复或转换仍应存在于其架构中。
这并不要求仅凭结构化输出支持来选择服务提供商。既有基础设施、模型适配性和运营要求依然相关。但这确实要求将响应契约视为平台的一部分,而非附带的提示词行为。
对 AWS 而言,这项公告扩大了 Claude 既有分发渠道的实用性。对客户而言,关键问题是所选择的部署是否能够支持其应用实际需要的契约。这比笼统宣称哪种模型能写出更干净的 JSON 更具可操作性。
Schema 合规仍留下准确性与文档问题
此次发布在 AWS 自身文档中存在一个具体的验证缺口。公告和端点比较说明都描述了 Mantle 支持。但通用的 Bedrock structured-output guide 仍称,Mantle 上的 Messages API 会拒绝相关格式化参数。
这些说法相互矛盾。较新的公告和明确的端点说明报告了支持范围的扩大,但并未解释与指南之间的冲突。开发者应在将文档示例视为可互换之前,先验证预期的请求路径。
现有证据支持已报告的扩展,但相互冲突的指南限制了读者对每项部署细节作出高度确信推断的能力。
同一份指南描述的是受支持的 JSON Schema 子集,而非不受限制的支持。其中将数值边界和字符串长度约束列为不支持的功能。它还描述了语法编译和缓存,这使 schema 复杂度与请求行为相关。
这些细节收窄了“schema 合规”的含义。生产 schema 可以表达服务并不执行的要求。应用需要区分被强制执行的结构,与仍需自行负责的要求。
例如,一个示意性的排程系统可能预期数值型时长处于允许的业务范围内。接收到一个数字,证明其类型成立;要证明该时长可接受,则需要在某处强制执行相应约束。
这与事实准确性不同。一个时长可以符合业务范围,却仍然错误地表述源文档。一项完整的可靠性评估必须同时保留这两个问题,而不是把成功验证当作最终结果。
AWS 的公告本身也将拒绝和 token 限制列为需要处理的情况。token 限制约束了生成输出的数量。如果生成在完成前停止,应用不能假定自己已收到承诺的完整记录。
这些例外之所以重要,是因为应用是通过完整的服务交互来接触响应的。响应正文、完成状态和下游动作同属一个运营序列。只查看正文,会掩盖决定下一步行动所需的信息。
适当的应对方式是有针对性的简化。原生强制执行已覆盖格式化要求,且自身测试支持该决定时,团队可以移除格式修复。但对于执行不完整、不受支持的要求或不准确的解释,仍应保留检查。
安全边界同样需要保持独立。一个结构正确的指令,仍可能请求执行用户无权进行的操作。接收系统需要独立实施访问控制,而不应取决于所提议参数与其 schema 的匹配程度。
还存在衡量风险。迁移后,仪表盘可能显示解析失败减少,却忽略了提取质量的变化。一项更干净的技术指标可能让工作流看起来更健康,却无法证明业务结果有所改善。
因此,买家应在错误真正产生影响的层面索取证据。若应用负责路由请求,就应检查路由决策;若应用提取义务,就应将这些义务与来源进行比对。格式化成功是这项工作的有用基础,但其角色应有清晰边界。
Bedrock 推出后应关注什么
未来几个月应会澄清这一扩展在实际部署中的表现。最有用的信号涉及文档一致性、应用性能以及现有修复代码的命运。每一项都提供了检验该公告实际价值的不同方式。
最有力的证据将显示哪些工作得以消失,同时仍能保留准确结果与受控操作。
首先,关注 AWS 是否会协调其相互矛盾的 Mantle 指引。通用指南、端点比较和可运行示例之间的一致性,将增强人们对所述覆盖范围的信心。持续存在的分歧则会让集成验证继续留在客户的关键路径上。
这是一个具体的发布信号,而不是对未公开路线图的预测。文档应让开发者无需逆向分析冲突指令,就能识别受支持的请求。清晰的示例也会让故障更易于诊断。
模型和区域资格同样属于这一观察范围。当团队能够找到其目标部署及其限制时,宽泛的公告才具有运营上的实用价值。准确的兼容性信息会增强扩展支持的价值。
其次,关注使用代表性应用工作负载的评估。有用的结果应区分格式化失败、响应不完整、提取值错误和操作失败。将它们合并为单一成功率,会掩盖系统究竟改善了哪一部分。
性能报告还应区分新 schema 与复用 schema。编译带来的条件不同于常规请求。频繁更改契约的应用,需要与这种行为相匹配的证据。
同样的原则适用于文档难度。干净的示例能够证明功能在受控场景中有效。杂乱的输入则揭示周边工作流能否处理缺失信息、歧义和相互冲突的证据。
显示格式化失败减少且任务准确性未下降的结果,将强化迁移的理由。显示人工修复持续存在的结果,则需要更仔细地审视 schema 设计、不受支持的约束或集成选择。仅凭一场打磨精致的演示,无法推断出任何一种结果。
第三,关注团队能否淘汰现有的格式化代码,而不在其他地方重建同等复杂度。移除恢复循环的迁移,带来了具体的维护收益。仅仅将循环迁移到其他位置的迁移,则值得更谨慎的评估。
最有说服力的说明应描述被移除代码原本做什么,以及现在由什么机制承担这项责任。它还应识别为事实正确性和安全执行而保留的检查。这种区分能让开发人员和买家都理解工程改进的意义。
Amazon Bedrock Claude structured outputs 为团队提供了一个理由,重新评估灵活的语言生成与可预测的软件输入之间这一熟悉的折中。眼前的机会比“在任何地方实现可靠自动化”的承诺更狭窄,也更具可操作性。它关乎将受支持的格式化保证迁入服务之中。
从一个你已了解其格式化失败情况的工作流开始。使用其在实践中遇到的文档和例外情况,将现有修复负担与新的响应契约进行比较。保留将提取值与其来源关联的证据,并在具有重要后果的操作周围保留授权检查。记录哪些失败消失、哪些仍然存在、哪些变得更容易诊断。随后,用这些结果判断更广泛的迁移是否服务于应用需求。你的团队能否移除格式化工作,同时让剩余的可靠性责任更容易被看见?



