摘要:本文基于 Datawhale 开源项目jev-cookbook第 10 章「TypeSafe 架构模式实验」整理而成,用真实 TypeSafe API(Jev 模型)逐一验证官方文档中的四种架构模式——推测性扇出、置信度门控路由、复合评分、意图路由。全文以「原理 → 代码 → 结果解读」的方式展开,全部使用中文场景与中文提示词,帮助你理解如何用「AI 驱动的软件」范式构建可靠、可控、可观测的智能应用。
原文仓库:datawhalechina/jev-cookbook
原文 Notebook:10 · TypeSafe 架构模式实验
官方文档:docs.typesafe.ai/patterns(中文镜像)
关键词:TypeSafe、System One、架构模式、推测性扇出、置信度门控、复合评分、意图路由
一、前言:为什么聊「架构模式」而不是「提示词技巧」
过去两年,大多数人与大模型交互的方式是「写提示词、拿回复」。但在生产环境里,你真正需要的往往不是一段流畅的文本,而是一个类型化的决策:这条工单该归到哪一类?用户是不是在要求退款?这条消息要不要转人工?
TypeSafe 提出的System One正是为此而生:它借鉴卡尼曼《思考,快与慢》中「系统 1」的概念——快速、直观、不生成推理过程——只返回类型化的决策和概率(约 150ms 量级)。它有两个关键性质:
- 校准(calibrated):概率经过优化以反映真实的不确定性(注意:校准是在成组预测上度量的,不保证单个答案一定正确);
- 受限输出:答案空间由你通过原语定义,模型只能在给定选项里表态。
由此衍生出三种软件架构的分野:
| 架构 | 特点 |
|---|---|
| 传统软件 | 简单原语构成的复杂决策树;可靠但读不懂非结构化数据 |
| LLM 智能体 | 自行选择下一步;有人监督时不错,每次循环都带来新的脱轨风险 |
| AI 驱动的软件 | 代码负责确定性工作并掌控控制流;模型只出现在需要可编程常识、需要解读非结构化数据的地方,每个 AI 任务保持原子且受限 |
本文要讲的四种架构模式,全部是「AI 驱动的软件」这一范式的展开。官方概要五条是总纲:
- 把控制流、确定性规则和副作用保留在代码中;
- 把宽泛的判断拆解为狭窄的、类型化的问题,给出明确的 instructions 与 criteria;
- 只给每个问题提供它所需的上下文;
- 利用概率与置信度来行动、请求人工审核或升级处理;
- 把相互独立的问题一起提出,然后在代码中组合它们的答案。
二、核心概念速览
在进入模式之前,先用最小篇幅建立共同语言。
2.1 请求模型:状态 + 问题 → 类型化答案
状态(state)是你要求模型评估的内容——一条客服消息、一段文字,或应用当前的状况。可以把它想象成「呈给专家小组做判断的材料」:
| 格式 | 适用情形 | 示例 |
|---|---|---|
| 字符串 | 一条消息、一篇文章 | "我的卡被重复扣款了。" |
| 对象 | 具名字段、相关记录 | {"message": "...", "order_id": "A-104"} |
| 数组 | 一系列消息或记录 | ["Hi", "客户号 TS1337", "我的卡被重复扣款了"] |
每个请求里,所有问题看到的是同一个状态,被独立评估,答案以你选的 ID 返回。
2.2 三种问题原语
| 原语 | 回答什么 | 返回 |
|---|---|---|
| Choice | 这些选项中的哪一个? | choice+probabilities+confidence |
| Score | 落在量表的哪一级? | score+legend+probabilities+confidence |
| Noul | 这是否为真? | noul(0–1,「是」的概率本身,无 confidence)</ |