S79:最小跨层连接:Data→Runtime、Runtime→Trace 或 Eval→Release Record
最小跨层路径不是让两个模块“能调用”,而是用一个明确 contract、correlation id、失败语义和可观测证据,说明数据或状态如何穿过 2~3 层。
内容类型:预习教材(不代表已完成)
日期:2027-02-09
阶段:P2 · AI Systems Engineering 90
总路线:Day 169
周次节奏:W12 · 周二最小实现
状态:教材已备;学习未完成
一句话定义
最小跨层路径不是让两个模块“能调用”,而是用一个明确 contract、correlation id、失败语义和可观测证据,说明数据或状态如何穿过 2~3 层。
学习目标
- 从 data→runtime、runtime→trace、eval→release record 中选一条,只实现最小 happy path 和一个 failure path。
- 定义 schema、version、idempotency/correlation、timeout、error 和 provenance,不用隐式字符串约定。
- 能用一条 trace/event 重建哪个输入、哪个版本、哪个结果经过了该路径。
核心知识
Data→runtime 路径的 contract 至少含 data/artifact id、schema version、content hash、classification、purpose、created_at 与 expiry。runtime 不应只接收原文,而要检查版本、用途和数据新鲜度。如果 artifact 已过期或 hash 不符,应返回可区分的 stale/tampered 错误,而不是通用“模型失败”。
Runtime→trace 路径要在 request root 下关联 model call、retrieval、tool、policy、human escalation 和 result。trace 不应无限写 prompt/文档原文,应优先记 hash、size、classification、version、latency、token/cost 与 error category,对敏感内容使用受控引用。correlation id 应穿过 async boundary,但不应携带客户 PII。
Eval→release record 路径要将 run identity、candidate/baseline bundle、dataset/scorer version、metrics/slices、status 和 artifact links 映射到发布记录。发布记录不应只复制结果数字,而要引用 immutable eval artifact,防止后续重跑覆盖当时证据。planned、running、completed、failed 要分开,失败运行不应被默默排除。
无论选哪条路径,都只需一个端到端样例。端到端不意味着经过所有层,而是选定范围内从输入到可观察输出不靠人工揣测。
机制与推导
接口可写成 envelope:
{messageId, correlationId, causationId, schemaVersion, producer, producedAt, payloadRef, classification, purpose}
消费者在写入副作用前用 message/idempotency key 去重。超时不等于失败:上游未收到回应时,下游可能已完成,所以重试必须幂等,状态不明时需 query/reconcile 而非盲目再执行。学习路径可用 no-op 或内存存储模拟,不需真实消息中间件。
最小练习或观察
- 选一条路径,写输入、输出、schema、错误、幂等/correlation 和不保证的事项。
- 用一个合成样例走 happy path,保存 id/version/hash 而非敏感原文。
- 从 stale data、timeout、duplicate message、eval failure 中选一个 failure,写预期错误类别和处理。
- 若运行,检查一个 correlation id 能否找到全路径;若未运行,只保留 sequence 设计。
- 不加第二条路径、不安装平台,连通一条就停止。
常见误区与边界
- 模块能相互调用就称为完整路径,没有 schema、version 和 failure semantics。
- correlation id 中嵌入客户账号、邮箱或钱包地址,扩大日志泄露。
- timeout 后无条件重试可写工具,制造重复工单或交易。
- 为可观测而在 trace 记录全部 prompt、文档与 tool output。
- 本路径只证明合成范围内的接口理解,不证明生产可靠性。
系统 / 金融 / Web3 连接
文档调查可将 artifact id、case-purpose 和 evidence version 传给 runtime,但 trace 只记受控引用。Web3 可将 simulation result 作为有 expiry 的 artifact 传给预览 runtime;如果进入签名前已过期,必须重新 simulation,不能使用旧结果。
自检问题
- 跨层路径为什么同时需 schema version 和 correlation id?
- timeout 为什么不能被简单解释为下游未执行?
- trace 应记哪些元数据,哪些内容应留在受控存储?
- 你的一个 failure path 是否会被明确分类和处理?
专业课程对齐
- OpenTelemetry Documentation:精读 context propagation、traces、metrics/logs 和 resource attributes,映射 correlation 与跨层证据。
- Temporal Documentation:精读 durable workflows、activities、retries、timeouts 与 idempotency 边界,校准 failure path。
- MLflow Documentation:选读 runs、artifacts、tracking 与 registry,用于 eval→release record 路径的 immutable evidence reference。
深入学习提示
选 runtime→trace 就主读 OTel,选超时/重试就主读 Temporal,选 eval→release 就主读 MLflow;其余只查概念。不要为了“专业”同时引入三个运行时,将当前路径的 contract 和 failure 说清就足够。
学后填写区
- 选择的跨层路径:
- contract / envelope:
- happy path / failure path:
- 实际观察(未运行留空):
- 明确不保证的事项: