DeepSeek Harness Code Mode 子调用渲染:Trajectory 的 subtool 交错单元与 Waterfall 的真实计时子泳道

发布时间:2026/9/18 10:01:43

DeepSeek Harness Code Mode 子调用渲染:Trajectory 的 subtool 交错单元与 Waterfall 的真实计时子泳道 DeepSeek Harness Code Mode 子调用渲染Trajectory 的 subtool 交错单元与 Waterfall 的真实计时子泳道【免费下载链接】deepseek-harnessDeepSeek Harness: Everything is a Plugin.项目地址: https://gitcode.com/gh_mirrors/de/deepseek-harness本文围绕 DeepSeek Harness下称 Harness中 Code Mode 子调用的分析视图渲染这一具体功能展开它记录了 Trajectory 与 Waterfall 两个结构 计时视图如何从把一次run_code回合压成单个不透明 Tool 单元格演进为交错嵌套的subtool单元与带真实墙钟时间wall time的子泳道sub-lane。读完本文你可以掌握该功能的完整决策脉络问题、方案、被否决的备选、后果并能对照仓库源码逐条核对布局折叠、时长计算、运行中态渲染与测试固化方式。背景run_code 回合在分析视图中的黑盒问题Harness 的客户端提供三种查看会话的方式对话视图chat与两个分析视图——Trajectory轨迹与 Waterfall瀑布图。后者的全部意义在于结构与计时把一次会话拆成可度量时间成本的单元序列。在 Code Mode 之前的 UI 迭代中chat 视图已经拿到了嵌套子行nested sub-rowsrun_code回合内部的每一次子工具调用sub-call都以嵌套行的形式呈现。但 Trajectory 与 Waterfall 仍然把一个run_code回合渲染成一个不透明的 Tool 单元格 / 一根 node-count 条形既不展示任何子调用结构也不展示每个子调用的墙钟耗时——尽管此时底层的 start/settle 时间对dispatch 时间对已经在记录。决策记录特别强调了一个设计纪律Waterfall 子泳道被刻意推迟到 start/settle 时间对存在之后才实现因为没有真实计时的 span 就是一种谎言原文a span without real timing would have been a lie。这为后文 Waterfall 泳道的三种计时溯源provenance标签埋下伏笔。完整的决策记录见 Code Mode sub-calls in the trajectory and waterfall viewsAgent Note该记录的状态为implemented归档于 2026-07-28属于 Code Mode UI 技术栈的最后一个 PR。决策总览决策记录给出的最终方案一句话概括Trajectory在父 Tool 单元格之后交错插入subtool单元格。Waterfall在归属轮次行下方绘制真实计时的子泳道。两者共享同一数据通道都通过标准的快照snapshothook 读取子调用索引——不新增任何 wire 数据、不新增 store因此回放replay与实时live按构造完全一致地渲染。在决策记录中该数据源被称为快照的codeDispatches索引。从当前源码结构看这份索引以子调用树subCalls的形式挂载在两个位置tool-result节点与运行中running的调用记录上它由 tool 定义对tool/code-dispatch-start与tool/code-dispatch两类事件折叠而成参见 trajectory-tool-definition.ts。Code Mode 的生产侧则位于核心工具包的 ptc.ts从源码结构看run_code的派生事件即在此产生。Trajectory父 Tool 单元格之后交错 subtool 单元布局折叠三条父单元路径都接子调用Trajectory 的布局折叠layout fold从快照取得子调用索引后对每一个callId拥有 dispatch 的 Tool 单元格在其后按启动顺序交错插入每个子派生一个subtool单元格且索引在整个交错过程中保持连续。决策记录点名的三类父单元——assistant 块内调用、孤儿结果orphan results、运行中调用——在当前源码中均可逐一对应全部汇聚到同一套交错逻辑assistant 块内调用assistant 节点展开后经withSubCalls包装见 layout.ts孤儿 tool-result 节点先铺父 Tool 单元格再对node.subCalls展开子单元见 layout.ts运行中调用同样先铺父单元格再对其call.subCalls展开见 layout.ts。交错与重编号的核心实现是withSubCalls它先给每个单元格写入连续递增的index紧接着把该单元格的全部子调用推入输出序列随后单元格的编号自然顺延——这正对应记录中indexes stay sequential across the interleave的要求见 layout.ts。子调用单元时长、运行中态与递归嵌套expandSubCalls负责把一组子调用变成subtool单元格见 layout.ts。三个关键行为已结算settled子调用的时长是 start/settle 时间对timeSeconds: durationSeconds(sub.time, sub.callTime)即结算时刻减启动时刻运行中unsettled子调用显示 em dash—timeSeconds置null沿用原生 in-flight 惯例绝不显示伪造的 0 或空值源码注释原话是 a running (unsettled) or pre-pair log entry shows the em dash见 layout.ts递归扁平化子调用若自身又是run_code即子调用之下还有子调用其孙级调用会紧随其父之后继续展开callId采用p1:code:1:code:1式的层级命名。视觉识别Sub 标签 28px 缩进新的subtool单元格种类佩戴Sub标签business tint 配色并有 28px 缩进使嵌套关系一眼可读。样式实现与决策记录一一对应/* run_code sub-dispatch cells: the business tint plus an indent so the nesting under the parent Tool cell reads at a glance. */ .tagSubtool { color: color-mix(in srgb, var(--dsw-alias-state-warn-label) 62%, var(--dsw-alias-label-tertiary)); background: color-mix(in srgb, var(--dsw-alias-state-warn-tertiary) 58%, var(--dsw-alias-bg-layer-1)); } .root[data-kindsubtool] { padding-left: 28px; }见 TrajectoryCell.module.css。Waterfall归属轮次行下的真实计时子泳道按决策记录Waterfall 侧的方案是deriveSubSpans把子调用索引折叠成每个轮次turn一组泳道且全部使用真实计时父级 dispatch 窗口定义为最早一次子调用启动 → 最晚一次子调用结算first start → last settle每条泳道的 offset 与 width 都是该窗口的比例值因此并行子调用由该技术栈的第三个 PR 引入在图上可见地相互重叠每条泳道携带timing溯源标签这是span 不得撒谎纪律的直接体现measured观测到了完整时间对running结算尚待settle pending泳道以降低不透明度延伸覆盖到窗口末端unknown只有结算时刻的重放窗口callTime: null——泳道以空心绘制悬停标题为 duration unknown绝不伪造 0 ms泳道绘制在归属轮次条形行下方缩放进一个固定的泳道预算lane budget。需要说明的是在当前仓库快照中Waterfall 侧的deriveSubSpans实现未能于 client 包内检索到同名符号后续重构可能已更名或迁移因此本节内容以决策记录为准描述其设计而 Trajectory 侧的实现与测试则可在当前源码中逐条核对。这一turn 级条形仍用 node-count 占位、子泳道却是真实墙钟时间的刻意的对比正是后果一节中首个真实计时渲染的来源。备选方案及其否决理由决策记录完整保留了三条被否决的路径其否决逻辑值得设计类似分析视图的读者借鉴。备选一把子调用并入轮次 span 的节点计数给现有条形加权否决理由这会恰好隐藏掉本技术栈要展示的结构且 node-count 加权在偏差台账deviation ledger中早已被标记为占位符stand-in即台账第 3 项拿占位手段承载结构信息本末倒置。备选二用独立的子调用面板替代视图内嵌套否决理由该技术栈已经稳定的 UX 是在所有视图中都嵌套在父单元之下独立面板会与 chat 视图分叉并把选中selection逻辑的工作量翻倍double the selection plumbing。备选三把 Waterfall 泳道推迟到 P-III 时长泳道重设计否决理由子泳道计时当下就是真实的start/settle 对已存在且窗口比例渲染方式与轮次级泳道未来如何重设计相互独立推迟只会搁浅该技术栈的计时回报timing payoff。后果与落地验证对既有行为的影响Waterfall 承载了客户端首个真实墙钟时间渲染。轮次条形仍是 node-count 占位——这个对比是刻意的并由悬停标题hover titles明确标注避免用户误读Trajectory 单元格索引开始计入子调用因此 Code Mode 回合的#N编号总量会增长——这是交错渲染的直接副作用阅读轨迹编号时需知悉。测试与快照如何固化这些行为决策记录列出了规格specs固化的清单交错顺序与时长、运行中 em-dash 分支、窗口比例offsets/widths、运行中泳道的延伸、unknown-timingsettle-only泳道、以及轮次行下方渲染出的泳道构建后客户端的 Code Mode fixture 快照则额外固化两个标签页组装后的完整渲染带真实 0.8s 时长的子单元格、measured泳道。其中 Trajectory 侧的用例在当前源码中可以直接核对位于 layout.client.spec.tsx 的run_code sub-dispatch cells组交错顺序与真实时长父run_code单元格callTime: 6200结算9000之后依次插入两个 settled 子调用断言单元格种类序列为[message, tool, subtool, subtool]索引序列为[1, 2, 3, 4]跨交错连续且时长精确到timeSeconds: 16300→7300与0.57300→7800运行中子调用一个未结算的grep子调用渲染为subtool单元且timeSeconds: null即 em dash 分支递归扁平化子run_code之下的叶子调用紧随其父出现callId为p1:code:1:code:1索引仍保持[1, 2, 3, 4]。构建后客户端的 Code Mode fixture 快照可参见 snapshots/web/ptc-round其中包含 Code Mode 回合的工具 schema 期望值Trajectory 视图自身的组件与快照构建逻辑位于 ui-trajectory 包含 trajectory-snapshot-builder.ts。小结这篇决策记录展示了 Harness 客户端分析视图演进中一个典型的数据先行、渲染随后案例先有 chat 视图的子调用嵌套与 start/settle 时间对采集待真实计时就位后Trajectory 与 Waterfall 才通过同一份快照数据无新 wire、无新 store把子调用结构与时机补全到结构与时序视图里。其可复用的工程要点有三用窗口比例而非绝对值绘制并行泳道使重叠可见用 measured / running / unknown 三态溯源标签杜绝伪造时长以快照一致性保证 live 与 replay 渲染相同。这些约束连同被否决方案的论证都已固化进上述决策记录与测试用例可直接作为同类 Agent 轨迹可视化的参考实现。【免费下载链接】deepseek-harnessDeepSeek Harness: Everything is a Plugin.项目地址: https://gitcode.com/gh_mirrors/de/deepseek-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/18 10:01:43

领域专家管上下文,Agent 跑任务用 TaoToken Key

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 10:01:43

Shell脚本编程基础与实战技巧

1. Shell脚本基础编程概述作为一个在Linux环境下工作多年的系统管理员,我深刻体会到Shell脚本在日常工作中的重要性。Shell脚本就像一把瑞士军刀,能够自动化处理各种重复性任务,从简单的文件操作到复杂的系统管理,几乎无所不能。S…

2026/9/18 10:01:43

SpringBoot+Vue电商系统毕设全攻略:从数据库设计到部署答辩

每逢毕业季,总会被同一个问题刷屏:“学长,基于springbootvue的电商平台系统怎么做?”这句话我在私信里已经回复过不下百次。SpringBoot加Vue,确实是当前Java方向毕设里最稳的组合,但“稳”不等于“容易”。…

2026/9/18 11:01:58

通达信恶庄洗盘指标建模与选股实战指南

简介:本资源是一份面向股票技术分析初学者与通达信公式编写进阶用户的实战型指标源码文档,聚焦于识别主力资金洗盘行为并辅助筛选潜在启动标的。文档完整提供「恶庄洗盘」主图指标与配套选股公式两套通达信源码,含A0–A6、B0–B3共10余个核心…

2026/9/18 11:01:58

MySQL常用命令指南:连接、字符集与DDL建表避坑

1. 连接与基础环境命令:先把门敲开再谈别的很多人学MySQL命令,第一步就走偏了——上来就背SELECT怎么写,结果连自己登的是哪台机器、用的哪个账号、字符集对不对都没搞清楚,后面查出来的数据全是乱码,还以为是数据本身…

2026/9/18 11:01:58

Mininet网络仿真:SDN开发与测试实战指南

1. Mininet 网络仿真平台概述Mininet 是一个轻量级的网络仿真工具,它能够在单台计算机上快速创建包含主机、交换机、控制器和链路的虚拟网络环境。作为一名网络工程师,我经常使用 Mininet 来测试 SDN 控制器、验证网络拓扑和评估网络性能。与物理设备相比…

2026/9/18 11:01:58

Unity Addressable Assets资源交付系统实战指南

1. 项目概述:为什么Addressable Assets不是“另一个资源管理插件”,而是Unity项目架构的分水岭你打开Unity项目,Assets文件夹里塞着几百个Prefab、上千张贴图、几十个场景,打包时发现Build Report里AssetBundle体积忽高忽低&#…

2026/9/18 10:56:58

SCPI参数格式错误导致SRQ超时的根因与快速排查

1. 这不是仪器“死机”,是SRQ信号在悄悄“撒谎”你有没有遇到过这样的场景:用Python或LabVIEW控制一台Keysight频谱仪,发完*OPC?命令后,程序卡在wait_for_srq()这一步,等了30秒、60秒,甚至手动重启GPIB接口…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/18 0:01:09

Google Colab 实战:运行模型、数据加载与报错排查

1. 为什么我劝你先搞懂 Colab 的运行模型1.1 Colab 到底是什么,跟本地跑代码差在哪Google Colab 简单说就是一台跑在浏览器里的 Linux 虚拟机,你打开一个 Notebook,背后就连上了一台带 GPU 的远程机器。你在单元格里敲的每一行 Python&#x…

2026/9/18 0:01:09

C语言数据类型与表达式详解

1. C语言数据与数据类型概述在C语言编程中,数据是程序处理的核心对象。理解数据的分类和特性是掌握C语言的基础。C语言中的数据主要分为四大类:常量、变量、表达式和函数。这些数据类型构成了C语言程序的基本元素,每种类型都有其独特的特性和…

2026/9/18 0:01:09

SQL时间字段指定时间段查询:区间语义、索引与时区避坑

上周排查一个线上问题&#xff0c;用户反馈"昨天的订单一条都没查到"&#xff0c;但数据库里明明躺着两千多条。最后定位下来&#xff0c;不是数据丢了&#xff0c;也不是接口挂了&#xff0c;而是那个查询条件把时间段写成了> 2024-05-20 00:00:00 AND < 2024…

2026/9/16 22:55:57

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/16 22:56:09

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/16 22:56:16

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码