AI 简明手册
DeepSeek Harness 源码解读 · 工具系统为什么模型输出与界面展示要分开

为什么模型输出与界面展示要分开

它要解决什么

工具返回值是带 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。

来源与核验

  1. [repo] DeepSeek Harness 官方源码(固定 revision)
  2. [official] DeepSeek Harness 官方介绍

Revision:0a53fb55bea101816fa226bb964ae2bed71c343b · 核验日期:2026-08-31