LLM Application Engineering·中级·14 分钟

Structured Output Contract Lab

模型返回了看起来完全合法的 JSON,生产仍然失败——因为语法从来都不是完整 Contract。

CONTRACT FAILURE

合法 JSON,不等于合法业务对象。

你负责 LLM 抽取接口与订单工作流之间的边界。

抽取结果可以正常 parse,但空 items 数组违反下游业务不变量;三次盲目重试只增加延迟,没有让 Consumer 更安全。

目标

设计一个能在输出进入下游之前拒绝结构错误与语义错误的 Contract。

风险

弱 Contract 会把概率性输出转化成确定性的生产事故。

一句话理解

可靠的 Structured Output 需要同时约束 Shape、Semantic、Repair 和 Partial State,而不是只在 Prompt 里要求“输出 JSON”。

正在加载 Mission Engine…

关键要点

Shape ≠ Semantic

JSON Schema 无法表达全部业务不变量。

Repair 是 Policy

重试需要证据和停止条件。

Streaming 是 State

Partial Output 必须有 Consumer 语义。

MENTAL MODEL

Contract 不只是输出 Shape。

能够 Parse 只证明语法成立,不证明业务语义成立。

可靠 Structured Output 需要显式 Schema、领域语义验证、有界 Repair,以及清晰的 Streaming Partial-State 规则。模型负责提出数据,应用负责拥有 Contract。

  • 对 Contract 做版本化,而不是静默漂移。
  • 结构验证之后继续验证业务不变量。
  • Repair Loop 必须有停止规则,避免错误无限放大。

LEARNING CONTEXT

可复用的 Mental Model

能够 Parse 只证明语法成立,不证明业务语义成立。

未看过

本次练习的 CONCEPT

  • concept-structured-output-contractStructured Output 是应用契约
  • concept-streaming-backpressureStreaming 与 Backpressure
  • concept-model-vs-runtime-fact模型声称 vs Runtime 事实

建议补充前置

进入这起事故前,没有必须完成的已发布前置内容。

迁移这个模型

下游新增一个必填业务不变量时,如何升级 Contract 而不让旧 Consumer 静默失效?

查看完整学习路径

下一步:Capability Boundary

把相同的 Contract 思维应用到 Tool 与 MCP Capability。

进入 MCP Mission