DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

GrowingPPP /

GrowingPPP/dsh-inquiry-preset

Verified

探究模式:把一个概念变成学习者亲手操作的交互式学习任务(DSH agent preset)

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@25e41096

探究模式 · Inquiry Mode

简体中文 · English

一个 DSH 模式预设:把"有变量可调、有结果可看"的概念,变成一个学习者亲手操作的任务。

探究模式实测:先要一个可证伪的预测,答完才给带滑块的曲线,再让他自己读数

上图是一次真实会话的完整一轮:模型先用普通文字要了两个可证伪的预测("每次动手之前都得先押注, 而且要说出来,心里猜不算"),学习者答完才拿到那张带滑块的实时曲线——整张图只有一个可动的量。 图下的数值表不是装饰:图表渲染失败时它是保底项。

任务单位是单个交互任务,不是一门课。 不建课程树、不排进度、不做题库。它是你在某个概念上"想亲手摸一下"时切进去的模式。


它和已有的东西有什么不同

常见做法 探究模式
产物 讲解 + 题目 一个可以拖的东西 + 一个必须回答的预测
学习机制 看讲解 → 做题 → 判分 预测 → 操作 → 观察 → 对质 → 自己说出规律
结束条件 答对 他用自己的话说出这个关系
判分 LLM 或规则判分 不判分——观察结果是事实,"算不算懂"由他说

市场上做"学习模式"的产品几乎都收敛到 讲解 + 客观题 + 间隔重复。本预设的差异化在形态 A:亲手拖出直觉(下面第 2 节),而不是再做一个刷题器。


安装

# 1) 装围栏渲染器(可选,但强烈建议——没有它就拖不动图)
dsh plugin --profile web add @changfenhuang/dsh-genui

# 2) 装本插件
dsh plugin --profile web add github:GrowingPPP/dsh-inquiry-preset

把 web 换成你实际在用的 profile(桌面端是 desktop;不确定就跑 ls ~/.dsh/profiles)。

装好后新建会话,在模式列表里选 探究模式。如果列表里没有它,重启一次 DSH 宿主再看—— 插件行的变动有时要重启才进运行中的实例。

关于渲染器

它不是硬依赖。没有渲染器时 dsh-ui 围栏退回普通代码块,任务按 SKILL.md 里写好的降级路径 继续成立(改问数值、列选项、手工算)。

但形态 A(带参数滑块、拖动即时重绘的函数图)是本产品的旗舰做法,没有渲染器就用不了。 所以你至少该装一个——任何支持 dsh-ui 围栏的渲染插件都行,上面那个是实测过可用的。

本地开发:改从仓库目录装 bundle(plugin_manager install_bundle,target 传本仓库根的绝对路径), 这样改动能直接反映到会话里;换成 github: 安装则固定在某个 commit。


权限与兼容性

这个预设挂了什么、没挂什么(都可在 cordis.patch.yml 里核对):

内容
注册的工具 skill(按需加载技能)、web_search(联网搜索)
不注册 任何 shell、文件读写、子代理、自动化工具
也不注册 web_fetch(配置里 fetch: false,只搜不抓网页)

也就是说:装它不会给你的会话开任何新的执行面。 它改的是"教学行为", 不是"能做什么"——预设内的工具面比标准模式更窄。

外部服务:只有 web_search 会出去,且发往你自己配置的搜索服务。除此之外不访问任何外部端点。 除非你主动切到别的模式,否则它不会碰你的文件、不会跑命令。

兼容性:

  • DSH:在 0.2.1-alpha.2 和 0.2.0-rc.2(官方 latest)两个版本上都实测通过。 依赖的都是官方包 (dsh-persona / dsh-skill-filesystem / dsh-tool-skill / dsh-tool-web / dsh-compaction-*), 不依赖任何社区插件。

    两个版本之间逐项比对过我们用到的全部配置面:agent-preset 的 Config 字段、 persona.prefix、skill-filesystem.customSkillDirs、tool-web.fetch、三个压缩包的 Config、 以及 !!js 求值器(with (ctx) { return eval(expr) })——六项全部同形。

    在 0.2.0-rc.2 上做了完整一份隔离安装:组装树正确、启动零告警、技能发现探针全通过, 并跑了一轮真实会话(模型先要一个可证伪的预测并要求说出推理,然后才给带滑块与虚线参照的曲线图)。

    注:官方 latest 是 0.2.0-rc.2,而 0.2.1-alpha.* 是更新的一条 alpha 线, 两条线的代码并不相同——上面两个都是实测过的。

  • 平台:只在 macOS + Web profile 上实测过。其他平台未验证(预设本身是声明式的,理论上可移植)。

  • 渲染:旗舰形态需要一个支持 dsh-ui 围栏的渲染插件;没有则降级为纯文字任务。见上一节。

  • 已知限制:

    • 预设的显示名与技能正文是中文
    • 图表组件可能渲染空白(实测踩到过两次),所以形态 B 强制配数值表兜底
    • plot 的表达式语法很窄:自变量只能叫 x、乘法必须写 *、参数只能单个字母—— 写错时什么都不画也不报错
    • 如果你的 profile 只挂了 @deepseek-ai/dsh-base(例如用 dsh plugin add 手工建的最小 profile), 预设会停在 pending (waiting for service: agentPresets)——agentPresets 由 @deepseek-ai/dsh-web-app 提供,dsh-base 不含它。正常走 dsh web 建出来的 profile 两个 bundle 都有,不受影响

怎么用

切到探究模式,说一个你想搞懂的关系:

我想搞懂阻尼振动里那个阻尼系数到底在干什么

它应该先问你一个具体的、可证伪的预测("你猜 d 从 0.2 加到 1.5,波形会怎样?"),然后才把带滑块的东西给你,最后要你自己说出规律。

如果你发现它一上来就画图、或者直接开始讲解——那是 bug,不是设计。


设计要点

核心循环(skills/inquiry-task/SKILL.md)

预测 → 操作 → 观察 → 对质 → 命名

其中两条是硬性的:

  • 没有预测就没有探究。 要一个具体的、可证伪的预测,并且要他说出来——承诺感来自"在看结果之前必须表态"。说不出预测时,说明缺前置知识,应该回去讲最小必要的那一点,而不是硬给任务。
  • 对质不能滑过去。 猜错了要先问"你按什么推的",针对那个推理修;直接讲正确结论等于把他刚暴露的错误模型又盖回去了。

四种任务形态

形态 往返 用途
A 实时函数探究 零 旗舰。plot 组件自带参数滑块,拖动即时重绘
B 预计算族 零 离散/数据类:多序列图、标签页、可本地过滤的表
C 单点探针 一次 状态无法用表达式表达时,验证一个具体判断
D 本地自检 零 收尾专用,不做主菜

形态 A 能零往返是因为渲染器的 plot 组件内建了参数滑块(params + 拖动即时重绘 + y 轴锁定 + animateTo 动画),不是我们实现的。

硬纪律(六条)

  1. 绝不等待回合——渲染完就结束回合,学习者的操作下一轮从正常输入框回来
  2. 不剧透——观察前任何地方不出现结论,包括组件标题和 explanation 字段
  3. 围栏里只放可操作对象,教学文字放围栏外(保证降级可读)
  4. 没有渲染器就问数值——降级路径必须始终存在
  5. 不硬塞组件——一段话能讲清就别画图
  6. 先讲最小必要概念,再给任务

skills/inquiry-task/references/anti-patterns.md 列了 8 个反模式,前两条(回合空转、剧透)是一票否决级。

为什么"不等待"是第一条

这是从一次真实的失败里学到的:有人真做过交互式学习活动这条路,后来主动砍掉了整条链路,理由是旧的 Question → Reveal 双工具结构"天然重复轮次,并让模型回合在等待用户期间一直处于运行状态"。

围栏是回答的一部分,不是工具调用。模型一旦"等",回合就挂在运行中直到用户点一下——界面显示在思考,其实在发呆。所以:渲染完就结束,把回答交还给普通输入框。


目录

package.json                         dsh-inquiry-preset(bundle 根)
index.js                             入口桩:市场预检要求有入口文件才收
cordis.patch.yml                     预设声明(persona + 4 组子插件)
skills/inquiry-task/
├── SKILL.md                         核心循环 + 硬纪律
└── references/
    ├── task-shapes.md               四形态 + 表达式硬约束 + 降级路径
    └── anti-patterns.md             8 个反模式

tools/probe-skill-dir.mjs            技能被发现链路的逐环探针
docs/demo.png                        上面那张截图
VERIFICATION.md                      实测证据
AGENTS.md                            维护者/AI agent 的工作规范(改这个仓库前先读)

排查"技能没出现"时先跑探针——这条链路上任何一环断了都是静默的(路径错返回空列表、frontmatter 不合规只打一条 warn):

node tools/probe-skill-dir.mjs      # 退出码 0 = 全通过

两个不能动的约束(改包时容易踩)

  1. 不要给 package.json 加 exports 字段。 技能目录路径靠 createRequire(baseUrl).resolve('dsh-inquiry-preset/package.json') 解析,而 exports 一旦存在, 子路径访问默认被封锁,会抛 ERR_PACKAGE_PATH_NOT_EXPORTED——表现是技能静默消失。 若确实要加,必须同时显式导出 "./package.json": "./package.json"。
  2. 不要删 index.js。 它从未被 import,但市场装前预检会从包根解析入口文件 (exports["."] → main → 兜底 index.js),拿不到就判"缺入口文件"并拒收。

状态

已在真实会话中实测通过。 装配层(preset-inquiry → active、组装树正确)、静态层(技能名与 frontmatter 合规、persona 变量引用全部已注册、内嵌 spec 语法合法)、端到端(技能被加载并影响模型 行为、模型先问预测再给图、dsh-ui 围栏渲染成带参数滑块的曲线图)三层全部验过。

首次真实会话测试未发现功能性问题。

详见 VERIFICATION.md。

—/ 5

No ratings yet

Verified DSH bundle

Commit 25e41096c346

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout