explore_tree:DSH 工作区共享的研究轨迹树

前言

在 DSH(DeepSeek Harness)里做长周期研究时,推理过程、工具调用和结论往往散落在主对话里:换会话或开子代理后,很难一眼看到「目标—步骤—假设—证据—死路」整条线。手工记笔记或只靠对话滚动,既占上下文,也不利于同一工作区里多会话对齐。下面介绍社区插件 explore_tree(包名 dsh-explore-tree):它旁路订阅会话事件,把研究过程落成一棵可观测的树,并提供固定工具读写与 GUI 页签,而不写入主对话、不触发主对话。

这是什么

explore_tree 由维护者 fxxxysh-andy 发布,在 SkillHub 目录中归类为工作流;仓库简介为「Research trajectory tree plugin for DeepSeek Harness (DSH)」。一句话定位:给 DSH 研究工作区提供共享研究树——以推理链提取为主、只取关键想法;模型通过 explore_tree / explore_tree_record 读写在树;人在会话上栏「研究轨迹」页签查看,自动绑定当前会话工作区,无需手动选目录。同一 workspace 下所有会话与子代理共用一棵树,数据落盘在 .explore-tree/。

设计强调:系统提示段保持静态、工具面固定,动态图状态只出现在工具返回值里,避免破坏前缀缓存;对错都留痕,节点只标信息类型与状态,不做自动好坏判定。

核心功能

树结构与自动产生

树以 parentId 单树为主,辅以 edges 表示旁支关系(如 supports、contradicts、refines 等共 8 种)。节点 kind 包括 goal、topic、question、hypothesis、step、action、evidence、decision、dead_end、conclusion、artifact、note 等;状态含 open、active、done、abandoned。

旁路流程:从推理思维链切出有信息量的想法,从工具调用补动作与产物;完整记录依赖自动提取、journal.jsonl 操作流水,以及模型的显式 explore_tree_record。

模型侧观测与记录

只读工具 explore_tree 支持多种 action,例如:

action 作用(摘要)
overview 目标、焦点、最近节点、未决、死路、产物、结论(默认汇总当前会话节点)
trunk / brief 主干摘要或 ≤400 字研究简报,适合接续长期研究
frontier 下一步建议(验证/收敛 + 换轨)与 avoid 死路
walk 沿当前分支展开路径、子节点、缺口与下一步模板
team 与 Agent Teams 协作时的树侧租约与任务关联(无 Team 插件时降级)
stats / find / node / path / tree / subtree 统计、搜索、单节点、路径与子树(子树可限 depth)

写入工具 explore_tree_record 用于显式记录(语义优先于自动提取),例如新增假设、一次建多层子节点、或 link 旁支关系。

DSH 内可视化

安装并刷新后,会话上栏会出现 研究轨迹 页签(conversation.view,排在记忆与预览之间)。页签使用当前会话的 session.cwd 对应工作区;画布为自上而下卡片树,支持主干/研究切换、搜索、按 kind 过滤;显示偏好可在 设置 → 研究轨迹 调整(如自动刷新、紧凑模式、仅本会话等),存于 localStorage(explore-tree.prefs.v1)。

使用约定(README 静态版要点)

  1. 开新方向前先看 overview;接续研究先 trunk/brief。
  2. 失败记 dead_end 并写原因;frontier 会避开,有新证据才建议 reopen。
  3. 多路径时优先能证伪当前假设的最小实验。
  4. 节点标题宜短,摘要写理由与证据。
  5. 不要为同步图而改系统提示或工具面顺序。

更细的设计契约见仓库 docs/design.md。

安装与启用

前置:DSH 已安装(README 写明在 DSH 0.2.1-rc.5 上验证),Node.js ≥ 20,pnpm 可用。当前包版本见仓库 package.json(撰写时资料为 0.26.3),许可证 MIT。

方式 A:脚本安装(推荐)

先在 scratch profile 验证,再装到正在使用的 web profile:

# 1) 先装到一个 scratch profile 验证(不碰正在用的 GUI)
node scripts/install.mjs --profile explore-scratch --create
node scripts/smoke.mjs --profile explore-scratch --boot --port 0 --path /explore-tree/health

# 2) 验证通过后装到当前 web profile(live 拾取,无需重启 GUI)
node scripts/install.mjs --profile web
node scripts/status.mjs --profile web

脚本会写 bundle patch、备份 package.json / pnpm-lock.yaml,并执行 dsh plugin --profile <p> add link:<repo> 等步骤。卸载示例:

node scripts/uninstall.mjs --profile web

上述 node scripts/*.mjs 需在插件源码根目录下执行(安装脚本会执行 dsh plugin --profile <p> add link:<repo>,<repo> 为你本机上的插件路径)。

方式 B:手工安装

dsh plugin --profile web add link:C:/path/to/explore-tree

并在该 profile 的 cordis.patch.yml 中按仓库 cordis.patch.yml 插入一行:id: explore-tree, name: dsh-explore-tree, config: {}。

说明:dsh plugin add 会更新 profile 的 package.json 并触发 pnpm 安装;改宿主 src/** 需下次启动宿主才加载;改 lib/client.js 可由 HMR 拾取(刷新页面即可)。

典型用法

读:概览与下一步

开轮或换题目前,先拉一份当前研究摘要:

explore_tree({ "action": "overview" })
// → { ok, action: "overview", text: "……目标/焦点/最近/未决/死路/建议……" }

需要收敛到当前分支时:

explore_tree({ "action": "walk" })

写:显式记假设与证据

explore_tree_record({
  "action": "add",
  "kind": "hypothesis",
  "title": "缓存未命中是因为工具面顺序变化",
  "summary": "依据:上一轮工具列表顺序不同;验证:比对两次请求前缀。",
  "parentId": "n4",
  "children": [
    { "kind": "evidence", "title": "两次请求前缀长度不同", "summary": "diff 显示 system 段多了 214 字节" },
    { "kind": "decision", "title": "先固定工具面顺序再复测" }
  ]
})

旁支关系示例:

explore_tree_record({
  "action": "link", "from": "n4", "to": "n7",
  "edgeKind": "contradicts", "note": "两者对同一现象给出相反解释"
})

复杂课题可先建 topic 再挂 question/hypothesis 等叶根;接续时用 trunk 或 brief(宿主可在有 goal 时轮首注入 brief 增量)。

人在 GUI 侧

安装后刷新 DSH Web UI,打开任意绑定工作区的会话,点上栏 研究轨迹 即可查看与当前 workspace 共享的图;不必在页签里再选一次工作区路径。

适用场景与注意

适合谁:在同一 DSH 工作区里做多轮推理、多会话或多子代理协作的研发、排查、文献式探索——需要「研究图」可观测、可检索、可显式标注死路与结论,又希望少占主对话上下文的人。

权限与安全:插件以当前 DSH 进程权限运行,会读写工作区下的 .explore-tree/。安装前请阅读仓库源码与 MIT 许可证,确认 link: 路径指向你信任的来源。

生态说明:DSH 采用「一切皆插件」思路;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。仓库 GitHub 星标以目录页展示为准(资料线索为 0)。

结尾

explore_tree 把研究工作区里的推理与工具痕迹旁路收成一棵树,用固定工具读写、用页签可视化,并在同一 workspace 内共享状态。若要进一步核对安装步骤与 action 列表,以仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜