S80:组件复用图:Generator、Registry、Runtime、MCP、Trace 与 HITL
复用不是把旧文件引入新项目,而是确认旧组件的 contract、state、failure、security 和 evidence 语义与新案例一致,并显式记录哪些部分可原样使用、需 adapter 或不应复用。
内容类型:预习教材(不代表已完成)
日期:2027-02-10
阶段:P2 · AI Systems Engineering 90
总路线:Day 170
周次节奏:W12 · 周三引导练习
状态:教材已备;学习未完成
一句话定义
复用不是把旧文件引入新项目,而是确认旧组件的 contract、state、failure、security 和 evidence 语义与新案例一致,并显式记录哪些部分可原样使用、需 adapter 或不应复用。
学习目标
- 从 generator、registry、runtime、MCP、trace、HITL 中选最多 2~3 个现有组件。
- 为每个组件写 purpose、inputs/outputs、state、dependencies、failure、permissions 和 evidence。
- 将 reuse 分类为 direct、adapter、pattern-only、do-not-reuse,避免隐式假设进入新路径。
核心知识
Generator 的可复用语义不只是函数参数,还包括 prompt/template version、model/provider、decoding、structured output schema、timeout、retry 和内容处理。Registry 应记 artifact identity、version/hash、lineage、stage/status 与 compatibility,不应被简化为一个名称到文件的 map。
Runtime 负责调度、state、tool calls、timeouts、retries、cancellation 与 result assembly。复用 runtime 时要问它的恢复语义是什么:进程重启后是从 checkpoint 继续、重放事件还是全部重跑?外部工具若已执行,重跑是否会重复副作用?
MCP 提供 client/server、resources、prompts、tools 等协议原语,但不自动提供业务授权、最小权限、数据 purpose 或 human approval。复用 MCP server 前需检查 tool description/schema、credential boundary、egress、超时、错误与日志。Trace 需 correlation、span hierarchy、release/artifact id 和数据最小化,不应将所有原文作为便捷 debug 信息。
HITL 不只是 await approval,还需 queue、risk tier、evidence snapshot、decision rights、timeout/fallback、override 和 appeal。如果新案例的决定权或时限不同,只复用 UI 可能传递错误语义。
复用审查的关键产出是差异表,而不是依赖列表。每个组件写原始假设、新案例条件、差异、adapter/control 与尚未验证事项。
机制与推导
可将复用可行性写成:
reuse_fit = contract_fit ∩ state_fit ∩ failure_fit ∩ security_fit ∩ evidence_fit
只要一项不匹配,就需 adapter、降级为 pattern-only 或不复用。复用节省的不只是代码时间,还包括已理解的 failure/evidence;但旧假设若没被显式化,也会将 hidden coupling 带入新项目。
最小练习或观察
- 从仓库现有资产选 2~3 个组件,不因“已经有”就全部加入。
- 每个组件填一张 contract card:purpose、I/O、version、state、failure、permissions、observability。
- 填 direct/adapter/pattern-only/do-not-reuse 和理由,至少标一个不复用部分。
- 若实际连接,只连入 S79 的一条路径;未运行时只画 adapter 边界。
- 产出“复用了什么 / 未复用什么 / 为什么”清单,不追求复用率。
常见误区与边界
- 同语言、同接口或同仓库就认为语义可复用。
- 只检查 happy path,没有检查 retry、timeout、重复副作用和恢复。
- 把 MCP 协议互操作性等同于授权与安全。
- 为提高复用率而添加不需要的 registry/runtime/platform 层。
- “代码存在”不等于它已运行、已验证或适合当前案例。
系统 / 金融 / Web3 连接
同一 HITL 组件从普通文档摘要迁移到可疑交易报送时,decision rights、SLA、证据快照和 appeal 必须重新定义。Web3 中,通用 tool connector 可复用连接和 schema 模式,但涉及签名的权限、预览、人工确认和 chain-specific 验证不应从只读工具直接继承。
自检问题
- direct reuse 需要哪五类 fit?
- MCP 解决的是什么,明确不解决什么?
- 为什么复用清单必须包含“未复用”?
- 哪个旧假设最可能在新案例中成为 hidden coupling?
专业课程对齐
- Model Context Protocol 文档:精读 architecture、clients/servers、tools/resources 与 security/trust 边界,校准 MCP 组件复用。
- OpenTelemetry Documentation:精读 context propagation、traces、metrics/logs 和 semantic conventions,审查 trace 组件的通用与领域属性。
- MLflow Documentation:选读 tracking、artifacts、registry 和 lineage,将 registry 从简单文件表提升为版本与证据语义。
深入学习提示
不要通读三份文档。你选了哪个组件,就主读对应官方材料,其他只用于检查跨层接口。阅读后必须能新增一条 contract/failure/security 差异,否则不需将该材料写入笔记。
学后填写区
- 选择的 2~3 个组件:
- direct / adapter / pattern-only / do-not-reuse:
- contract 与 failure 差异:
- 实际连接(未运行留空):
- 未复用与未验证项: