Components / Thinking & Reasoning

Thinking + Reasoning

思考态 + 推理文本展开:句子流式浮现,结束折叠为「Thought for Ns」可回看。优先级 P0,已移植(1:1 aicss.dev)。

① 活体演示

thinking 中句子逐条浮现(视口封顶 180px、软遮罩自动上滚);「成功」折叠为 Thought for Ns,点击可展开回看。四态:running(workbench.thinking 累积中)/ ok(思考结束)/ error(run 失败中断)/ empty(无 thinking 事件)。

② 对比台

左:wb-ui 活体(演示句循环);右:aicss.dev 原站截图存档(2026-08-13 采集,可滚动)。

wb-ui 活体
aicss.dev 原站截图(design/reference/aicss/thinking-reasoning/screenshot.png)
aicss.dev thinking-reasoning 原站截图

③ 真实字段说明

thinking-state 同源消费 workbench.thinking(契约 3.C.1):本组件是思考态的展开形态——thinking-state 是标签,本组件加推理正文流。字段真源:packages/contracts/workbench-events.mjs:36-77;reducer apps/web/index.html:6782。分句/分段由宿主处理(真实事件是整段累积文本,无逐句字段——演示的逐句节奏为上游演示行为)。

事件 type字段驱动行为
workbench.thinkingpayload.text推理正文(累积追加 → push());出现即 running(header shimmer)
workbench.run.statuspayload.statusfailed/cancelled → error;completed → ok(折叠为 Thought for Ns)
workbench.assistant.completedpayload.text回答已产出 → 思考结束(ok)
(无 thinking 事件)empty 态:组件不渲染

脱敏样本:与 thinking-state 同源,见 fixtures/thinking-state.ndjson(真实解析器输出,含 workbench.thinking 全文)。

④ 用在 workbench 哪个位置

接入点:apps/web/index.html:7518 thinkingFoldInner(text)——与 thinking-state 同一接入点,作为其展开形态(契约 3.D.3):思考进行中 header shimmer + 正文流式浮现;结束后折叠为「Thought for Ns」,替代现状 details.thinking-fold 的「思考中… N 字」summary + 静态正文。渲染链路:timelineParts → patchTimeline → thinkingFoldHtml(:7524) → thinkingFoldInner(:7518)。只换渲染层,不动 reducer。

⑤ 复制即用代码

引入 tokens + 组件 CSS/JS。全部相对路径、零依赖。

<link rel="stylesheet" href="design/wb-ui/lib/tokens.css">
<link rel="stylesheet" href="design/wb-ui/lib/components/thinking-reasoning.css">
<script src="design/wb-ui/lib/components/thinking-reasoning.js"></script>
// 真实接入:workbench.thinking payload.text 累积 → 按段 push
var h = WbUI.thinkingReasoning.render(el);
h.push(paragraph);          // 每收到一段 thinking 文本
h.set("ok");                // 思考结束(折叠为 Thought for Ns)
h.set("error");             // run failed/cancelled → Thinking interrupted

// 演示节奏(上游 700-900ms/句循环)
WbUI.thinkingReasoning.render(el, { sentences: ["…", "…"] }).demoLoop();
Ported from aicss.dev/components/thinking-reasoning, fetched 2026-08-13. Internal use only(上游无 license 声明,对外使用前须确认授权——docs/86 R1)。