为什么模型输出与界面展示要分开
它要解决什么
工具返回值是带 schema 的结构化 JSON。模型文本与 UI 卡片都是其纯函数投影。持久化只存投影,回放可复现展示,重建不了值。
源码给出的答案
schema 校验后
schema 校验后,render 投影模型内容,presentResult 生成六种 card 标签。UI 只认 card,不认工具名。render 与 presentResult 必须纯函数,因实时输出与回放都要执行且结果须一致。
[repo]
accept 时换 content 和换 value 二选一
accept 时换 content 和换 value 二选一。换 content 只改展示,值不变;换 value 重过 schema 并重算投影。要真正隐藏值必须换 value 或 block。投影失败转成 isError。search 卡强制带 truncated 和 total。
[repo]
收益与代价
想对模型隐藏返回内容,该换 content 还是 value: 必须换 value 或 block。换 content 只改展示,程序仍能拿到原始值。
为什么 presentationMeta 也要求纯函数: 实时输出与回放两条路径都要运行,必须产生相同结果。
别把取舍当成定律
本页结论对应 revision
0a53fb55bea101816fa226bb964ae2bed71c343b。文件位置、命名和默认行为可能随版本变化,引用实现细节时应同时记录 commit。
来源与核验
- [repo] DeepSeek Harness 官方源码(固定 revision)
- [official] DeepSeek Harness 官方介绍
Revision:0a53fb55bea101816fa226bb964ae2bed71c343b · 核验日期:2026-08-31