按需渐进展开工具,让长会话保持精简
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/6 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Cplay00/dsh-diffusion-preset.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
Diffusion Mode(扩散模式)智能体预设,以及 DeepSeek Harness 的渐进式调用目录工具。
README
由 DeepSeek 最新模型翻译生成DeepSeek Harness 扩散模式预设
中文说明
扩散模式 (Diffusion Mode) 是专为 DeepSeek Harness (dsh) 打造的渐进式工具与技能展开预设。
💡 设计哲学:从极简起步,向全能扩散
传统智能体会话中,系统通常一开始就把几十甚至上百个工具的完整 Schema 和全部系统提示词注入模型。这往往导致:
1. 初始提示词极其庞大:首轮就消耗数千至上万 token,拖慢首字响应速度,还增加 API 成本;
2. 上下文拥挤、注意力分散:工具定义太多,模型在简单任务下容易产生调用幻觉,指令也被稀释;
3. 极简模式与全量模式难以两全:纯极简模式搞不定复杂任务,标准模式又太臃肿。
扩散模式用「调用目录 → 渐进展开 → 动态收敛」解决这一困境:
- 初始极简:默认开放文本读取 read、文件写入 write、基础 Shell(Bash/PowerShell)、图片查看器及 call_directory;只有实际注册的工具可见,PTC 另保留执行传输工具。
展开完整文档(README 剩余 1 节)
DeepSeek Harness 扩散模式预设
中文说明
扩散模式 (Diffusion Mode) 是专为 DeepSeek Harness (dsh) 打造的渐进式工具与技能展开预设。
💡 设计哲学:从极简起步,向全能扩散
传统智能体会话中,系统通常一开始就把几十甚至上百个工具的完整 Schema 和全部系统提示词注入模型。这往往导致:
1. 初始提示词极其庞大:首轮就消耗数千至上万 token,拖慢首字响应速度,还增加 API 成本;
2. 上下文拥挤、注意力分散:工具定义太多,模型在简单任务下容易产生调用幻觉,指令也被稀释;
3. 极简模式与全量模式难以两全:纯极简模式搞不定复杂任务,标准模式又太臃肿。
扩散模式用「调用目录 → 渐进展开 → 动态收敛」解决这一困境:
- 初始极简:默认开放文本读取 read、文件写入 write、基础 Shell(Bash/PowerShell)、图片查看器及 call_directory;只有实际注册的工具可见,PTC 另保留执行传输工具。简单读写直接开始,编辑、搜索等能力按需展开;
- 自适应动态发现:根据当前 Harness 宿主内实际安装注册的所有可调用内容(内置核心工具、MCP 外部服务、已安装社区插件与领域技能)自适应聚类,无需外部硬编码;
- 能力发现:call_directory 返回当前注册的工具、技能和分类;已可用工具可直接调用,已知名称可直接挂载,检索不是前置要求;
- 精确挂载:默认按工具的精确名称挂载,不自动带出兄弟工具、团队工具或整个插件。技能加载默认只提供说明;伴生依赖与领域推断均可显式配置;
- 分类浏览:用 category 检索分类候选,再用 names 选择当前操作需要的精确名称。分类别名和 names: [""] 仍支持显式整组展开;
- 安全门禁拦截:强化 tools/pre-execute 监听门禁,模型误调未解锁工具时,拦截执行并返回当前状态、检索及挂载语法;
- 动态收敛:重型任务完成后,可通过 unload 卸载特定工具,或用 reset 一键重置回极简状态,让长程会话保持干爽。
🚀 核心特性
- 🎯 双预设支持:同时提供 扩散模式(标准版) 与 扩散模式(PTC 版),无缝适配 Native Function Call 与 Programmable Tool Calling。
- 🔍 关键词检索:
- call_directory({ query: "..." }) 返回匹配候选,不挂载或执行工具;
- 智能支持中英文同义词(如搜索 "文档" 自动联想 doc/docx/office/file,搜索 "表格" 联想 excel/xlsx/sheet,搜索 "爬虫" 联想 crawl/extract 等)。
- ⚡ 检索后精准调用:
- call_directory({ category: "file-search" }):只读浏览文件和代码搜索工具。
- call_directory({ names: ["read", "grep"] }):只挂载读取与搜索工具。
- call_directory({ names: ["subagent"] }):已注册同名工具时只挂载它,不带出团队工具。
- call_directory({ category: "subagent" }):只读浏览委派分类,再选择需要的工具;团队与工作流另行选择。
- call_directory({ names: [""] }):任务确需全部能力时完整展开。
- 🔄 动态卸载收敛:
- call_directory({ action: "unload", names: [...] }):阶段性任务结束后精准卸载,收缩上下文。
- call_directory({ action: "reset" }):重置会话回极简原点。
- 📡 按当前会话动态发现:每次目录调用都读取当前作用域内实际注册的工具与技能,避免复用其他会话的目录。宿主可显式开启文档导出,仓库内的 CATALOG.md 保留为静态架构说明。
📦 安装方式
在 DeepSeek Harness 终端中执行:
dsh plugin add Cplay00/dsh-diffusion-preset
安装完成后,在新建会话的预设下拉列表中选择 「扩散模式」 或 「扩散模式 (PTC)」 即可启用。
🛠️ 工具速查:call_directory
💡 核心心智:把 call_directory 当成你的「按需能力管家 / 智能应用商店」。
平时只保留最轻量的基础工具(避免上下文臃肿与模型幻觉);遇到具体任务时,随时「搜一搜、装上它」,用完随时卸载。
🌟 30 秒直观上手:最自然的调用三步法
无论人类查阅还是指导模型工作,整个生命周期的核心流程都极其自然:
已有工具直接用,未知能力再发现。 默认 read 可直接读取文本,无需先检索或挂载。下面以 read 演示完整协议,适用于自定义初始工具集未包含它,或需要查看完整参数说明的情况;默认配置下可直接跳到第三步。call_directory 提供扩展能力发现,已有工具调用与已知名称挂载不以检索为前提。
① 搜工具 (lookup) ② 装工具 (detail) ③ 去干活 (直接调用) "我需要读文件" ➜ "把 read 挂载上" ➜ "调用 read 读取具体路径"
1. 第一步:搜一搜 (lookup) —— 纯只读探索,不改动任何环境状态: {"action": "lookup", "query": "read file"}
2. 第二步:装上它 (detail) —— 从返回的候选中挑出需要的工具,按名字精准挂载: {"action": "detail", "names": ["read"]}
挂载成功后,系统会贴心返回该工具的完整参数 Schema,告诉你下一步该怎么调用。
3. 第三步:去干活 —— 像调用普通工具一样,直接发起目标工具调用(把具体文件路径等业务参数传给目标工具,而不是传给 call_directory)。
4. 按需收拢 (unload / reset) —— 阶段结束后再评估是否卸载;小型、可复用的工具可以保留,不必每次读取后都多调用一次清理。
初始工具可以直接调用,已知工具名称可以直接挂载;lookup 提供只读检索,catalog 提供分类概览。预设仅说明这些操作的作用,不规定专用工具、终端、技能或协作能力的使用顺序。具体调用仍遵循实际注册说明、用户/工作区规则及宿主权限。
按分类查看原生描述与兜底说明
分类浏览示例:向 call_directory 传入:
{"action":"lookup","category":"file-search"}
返回的候选优先使用 Harness 的有效工具 Schema 描述;该字段为空白时,再读取工具注册本身的描述。技能使用注册的技能描述。单工具详情保留原生描述和完整参数 Schema,不用预设分类文案改写工具的用途。
当前 Harness 不提供独立分类描述,分类作为中性导航:存在原生说明时,概览仅显示分类 ID、工具数量和说明入口,具体用途由候选自身描述表达,不把某个服务商的文案升级为整类介绍,也不额外叠加预设操作路线。只有整类缺少原生说明时,才展示预设标题、摘要及单一分类的 Category Notes 兜底说明。guidance 与 categoryGuidance 的自定义文案也遵循这一优先级。分类 ID、别名、来源过滤和挂载范围不受影响;检索仍然只读。
🎭 两种模式如何调用?Native vs PTC 对照
| 特性 | 标准版 (Native Function Call) | 代码版 (PTC / run_code) |
| 运作模式 | 经典的原生工具调用(对话式一问一答) | 在 JavaScript 沙盒中写代码执行批量操作 |
| 如何查/挂载 | 发起原生工具调用:call_directory({...}) | 在 run_code 中执行:await tools.call_directory({...}) |
| 挂载后如何使用 | 在下一次模型请求中,直接发起目标工具的 Native Call(例如 read),无需用户再发消息 | 在下一次 run_code 中,通过 await tools.read(...) 调用新绑定 |
| 为什么是“下一次” | Native 模式下当前这一轮模型已在生成,新工具在下一轮才加入工具栏 | PTC 的执行环境在单次 run_code 开始时已初始化,动态加载的 SDK 绑定在下一次执行生效 |
极简调用代码对照:
- Native 示例:
- 第 1 步检索:call_directory({"action":"lookup","query":"read file"})
- 第 2 步挂载:call_directory({"action":"detail","names":["read"]})
- 第 3 步执行:直接调用目标工具 read({"file_path":"src/index.js"})
- PTC 示例(已确认 read 存在;未知能力先检索。文件路径和参数以任务及实际 Schema 为准):
- 第一次 run_code(挂载): // 动态挂载需要的工具 const res = await tools.call_directory({ action: "detail", names: ["read"] });
console.log(res.report);
- 第二次 run_code(直接尽情使用): // 此时 tools.read 已经就绪,可配合 JS 逻辑批量处理 const content = await tools.read({ file_path: "src/index.js" });
console.log(JSON.stringify(content));
🔍 逐个细致分析:5 大动作 (Actions) 深度剖析
call_directory 一共提供 5 个核心动作,分工明确、职责单一:
| 动作 (action) | 核心效果 | 典型传参示例 | 适用场景与贴心提示 |
| lookup | 只读检索候选 | {"action":"lookup","query":"表格 excel"} | 安全探路:支持中英文同义词联想、空格多关键词匹配。纯只读,绝不会误挂载任何工具。 |
| detail | 精准挂载 / 激活技能 | {"action":"detail","names":["read"]} | 解锁能力:挂载指定工具并立即返回其参数规范;挂载技能则加载专业工作流 SOP 指导。 |
| catalog | 查看分类大纲 | {"action":"catalog"} | 全局俯瞰:查看当前环境有哪些功能分类(文件、设计、网页检索等),以及每个分类包含多少工具。 |
| unload | 动态卸载工具 | {"action":"unload","names":["edit"]} | 减负瘦身:卸载临时引入的工具;初始工具保持可用,是否包含 read 可通过 initialTools 配置。 |
| reset | 一键重置初始 | {"action":"reset"} | 全局归零:一键恢复到刚启动时的极简工具集,抹平所有临时变更。 |
细致要点分析:
1. lookup(只读检索)的细节:
- 多词联合匹配:空格分隔的关键词必须在同一个候选上同时满足。例如 query: "文档 excel" 查找同时涉及两者的能力。读取和编辑是不同操作,不要简单拼成 read edit file;可分别检索,或浏览文件分类后选择所需工具。
- 中英文同义词自动联想:搜 "表格" 会自动关联 excel、xlsx、sheet;搜 "爬虫" 会自动关联 crawl、extract。
- 平滑分页:默认返回前 20 条,通过 limit 与 offset 进行翻页(例如 {"action":"lookup","query":"read","offset":20})。
- 名称 A–Z 排序:先匹配候选,再将工具与技能合并,按名称 A–Z 排序后分页;精确命中、分类、来源或可用状态不额外提前。初始工具也可检索,标为 [Unlocked],无需重复挂载。分类概览按 ID 排序,挂载、卸载及技能返回列表也按名称排序。
2. detail(挂载)的细节:
- 单工具挂载:如 names: ["read"]。系统会返回该工具的完整参数 Schema,此时模型在下一步就可以精准传参,无需猜测。
- 加载领域技能 ([Skill]):当检索结果标有 [Skill] 时,在名称前加上 skill: 前缀传入(如 names: ["skill:docx"]),系统会返回该技能的专业 SOP 流程指南。
- 整类与通配符挂载:若明确需要某分类的全部工具,可以传功能分类名 names: ["web-search"] 或通配符 names: ["vendor_"],甚至 names: [""] 全开。整组选择会挂载匹配的全部工具,增加相应 Schema 上下文。
3. unload 与 reset(收拢)的细节:
- 按收益收拢,无需在每次微小操作后频繁卸载;在某个完整阶段(如完成了逆向分析、网页抓取等)结束后顺手卸载,收益最高。
📋 参数规格与智能推断规则
call_directory 的参数设计兼顾了规范性与极大的人性化容错(即使不写 action 也能心领神会):
| 字段 | 类型 | 作用说明 | 智能默认 / 缺省行为 |
| action | string | 显式指定五种动作之一;显式动作优先。 | 省略时自动推断:• 非空 names ➜ detail(挂载)• 否则非空 query 或 category ➜ lookup(检索)• 均未提供 ➜ catalog(大纲) |
| query | string | 搜索关键词(如 "git commit"、"文档")。 | 仅用于 lookup 检索,支持中英文同义词。 |
| names | string[] 或 string | 要挂载或卸载的能力名称,如 ["read"]、["skill:docx"]。 | 示例使用数组,兼容字符串。非空名称优先于 category;lookup / catalog 忽略此字段。业务参数传给目标工具。 |
| category | string | 功能分类 ID 或别名(如 "file"、"design"、"web-search"),也支持当前候选返回的完整来源 ID 或来源族。 | 在 lookup 时作为分类过滤条件;在 detail/unload 且未提供 names 时作为整类操作目标。 |
| offset | integer | 翻页偏移量(从 0 开始,默认为 0)。 | 仅在 lookup 时生效。 |
| limit | integer | 每页返回的候选数量上限(默认 20)。 | 仅在 lookup 时生效,带关键词时上限 20,无关键词分类浏览时上限 100。 |
💡 贴心提示:所有字段均可省略,用不到的字段直接不写即可,无需传入空字符串或空数组。
🗺️ 常用分类与中英文别名速查表 (Aliases Cheat Sheet)
以下是默认的分类别名,可由配置替换;对应服务是否可用,以当前目录为准。工具精确名称与别名重名时,精确名称优先。
| 常用中英文别名 (Aliases) | 规范分类 ID | 包含的核心能力与用途 |
| fs / file / 文件 / 代码 | file | 基础文件读写、路径解析、工作目录操作 |
| 文件搜索 / 代码搜索 | file-search | 文件名查找、代码正则检索 (Grep) |
| task / todo / 任务 / 待办 / 计划 | task | 任务规划、澄清与待办管理;目标、后台任务和定时任务分别属于 goal、job、schedule |
| subagent / 子智能体 | subagent | 独立子智能体派发与委托 (subagent, subagent_fork) |
| team / teams / 团队 | team | 多 Agent 团队协作与任务板 (spawn_teammate 等) |
| terminal / 终端 / shell | terminal | Shell 命令执行、交互式终端会话与长命令执行 |
| web / search / tavily / crawl / extract / 网页 / 搜索 / 抓取 / 爬虫 / 调研 | web-search | 网页搜索、搜索引擎查询、URL 获取、正文提取、站点映射、爬虫与调研;跨服务商统一检索 |
| dev / git / worktree | dev | Git 工作树操作与宿主管理;普通 Git 命令仍可使用终端 |
| office / univer / 文档 / 表格 | office | 办公文档、表格的读写、交互、渲染与导出 |
| browser / chrome / 浏览器 | browser | 会话内浏览器自动化与页面操作 |
| image / canvas / 图片 / 生图 | image | AI 图像生成、图像编辑与无限画布工作台 |
| memory / 记忆 / 持久化 | memory | 跨会话持久化知识库与记忆图谱 |
| market / 插件市场 | market | DSH 插件市场浏览、安装与更新管理 |
| ssh / 远程 / 服务器 | ssh | SSH 远程主机连接、终端与集群管理 |
| taskboard / 看板 | task-board | 项目任务看板与 GitHub 集成 |
| rea / reverse / 逆向 / 反编译 | reverse-engineering | 二进制逆向工程、静态反编译与固件分析 |
| design / opendesign / 设计 / 原型 | design | UI/UX、设计系统、原型与设计资产;按当前注册工具选择设计服务 |
| goal / 目标 | goal | 长期目标追踪 |
| job / jobs / 后台任务 | job | 后台任务状态、输出与停止 |
| schedule / 定时 | schedule | 创建与管理定时任务 |
| workflow / 工作流 | workflow | 工作流编排与迭代 |
| skill | skill | 技能加载器与运行时依赖定位 |
| skills / 技能 | skills | 当前作用域可检索的技能指引 |
| session / 会话 | session | 按实际契约检索会话、事件与谱系 |
| ppt / presentation / 幻灯片 | presentation | 幻灯片预览、提案与评审 |
| sidebar | sidebar | 工作区面板导航 |
| ui / card | artifact | 成果卡片和结构化界面展示 |
| desktop / computer-use / 桌面控制 | computer-use | 桌面交互与自动化 |
| resources | resources | URI 资源及模板发现与读取 |
| ops / 运维 | ops | 批量操作与运维能力发现 |
| notify / 通知 | notify | 通知发送与展示 |
| security / 安全 | security | 安全策略检查与诊断 |
分类 ID 表达用途,工具名称保持宿主原名。design 不绑定某一设计产品,web-search 合并内置网页搜索与获取、以及已知搜索/抓取服务;是否存在某种能力取决于当前实例注册的工具。browser 用于交互式页面操作,file-search 用于本地文件检索,成果卡片归入 artifact,避免与联网检索混淆。
来源与旧 ID 兼容:候选同时标注功能分类和来源,例如 web-search; source: mcp:tavily。旧完整 ID(如 core:web、plugin:univer、mcp:tavily、mcp:open-design)保留来源选择语义,检索、显式挂载与卸载只作用于该来源,不会扩大到合并后的整类;其中 core:web 兼容原有的网页工具及 present。通用功能 ID 浏览与精确名称挂载示例:
{"action":"lookup","category":"web-search","query":"crawl"}
需要限定服务商时,使用 category: "mcp:tavily"。names: ["web-search"] 是显式整类挂载,可能包含多个服务商;检索结果不会自动触发这一操作。尚未配置功能映射的服务保留 mcp:<server> / plugin:<prefix> 来源分组,通过 sourceCategories 可归入现有或自定义功能分类。
📦 返回值结构与诊断解读 (Response & Report)
每次调用 call_directory,都会返回一个标准的对象结构。无论人类还是 LLM,直接阅读 report 字段即可获取最直观的信息:
{
"stage": "detail",
"unlocked": ["read"],
"unloaded": [],
"loadedSkills": [],
"report": "..."
}
- report(自然语言结果):
- 检索时:展示匹配的工具与技能列表,清晰标注 [Unlocked](已可用)或 [Locked](待挂载),并说明可见性与调用语义;
- 挂载单工具时:展示新解锁工具的完整参数 Schema,告知下一步调用该工具的具体参数格式;
- 遇到歧义或找不到时:列出相关问题,提示继续检索或使用完整分类 ID;调用成功不代表每个请求名称都已匹配。
- stage:实际生效的动作(如 "lookup"、"detail")。
- unlocked / unloaded:挂载或卸载状态记录;可包含已可用项或 "" 全量标记,数组长度不是新增工具数。reset 不会清除历史中的技能正文。
- loadedSkills:本次加载成功的技能指引列表。
⚙️ 通用配置与兼容边界
本项目是 DSH 预设,依赖 DSH 的工具、技能、作用域及会话事件协议;不宣称能直接运行于任意 Agent 框架。分类按功能命名,已知服务映射和别名用于归并同类能力,不要求安装对应服务。
Native 与 PTC 预设都显式声明工具呈现模式,不受宿主默认模式影响。目录按当前作用域实际注册的工具与技能生成,不依赖本机用户名、安装目录、模型服务商或固定的 MCP 服务。
PTC 的目录、翻页、挂载、卸载与守卫示例都用 await tools.call_directory(...),在 run_code 内执行;新挂载的绑定在下次 run_code 时生效。预设不规定专用工具、SDK、JavaScript 或终端之间的优先级。
示例显式指定 action,兼容已有的省略写法。lookup 误传 names 时会说明该字段被忽略。单工具详情保留完整 JSON 参数 Schema(含嵌套约束),目标操作是独立调用。unload 与 reset 只改变工具可见性,不规定清理时机,也不改变会话历史、用户范围或审批要求。
通用检索词扩展为能力词,不额外加入特定服务商名称。精确名称、功能分类及来源选择器保留原有匹配范围;所有匹配结果统一按名称 A–Z 展示,不按相关度或服务商加权。
协作能力与契约
预设只负责能力发现与调用说明,不建议何时委派、是否并行、选独立子智能体还是团队,也不规定团队规模。初始提示把当前作用域实际注册的工具按分类 ID 统一列出,按 A–Z 排序,不单独突出协作能力;完整参数仍按需挂载。已知名称可直接挂载,多词检索无匹配不代表工具不存在。
相关工具挂载后,补充其上下文和控制范围:subagent 使用独立任务上下文,subagent_fork 继承已完成的会话历史,spawn_teammate 创建持久团队成员。当前轮输入遵循启动工具的实际契约。team 分类检索也能发现已注册的共享控制工具 list_agents、send_message、interrupt_agent,保留它们原有的分类、来源和原生说明;按名称只挂载所选工具,显式整类挂载仍按分类自身的工具集合执行。
已分配成员保留必要的身份和宿主规则。工具控制范围以注册契约为准,Team 专用控制不代表独立子智能体控制;inactive 状态本身不证明已得到有效结果。用户/工作区规则、只读要求及审批边界持续有效。
Windows 默认开放已注册的 pwsh。如果宿主也注册了 win_bash,可在 terminal 分类中找到它,或用 call_directory({ action: "detail", names: ["win_bash"] }) 直接挂载。win_bash 仅在完整访问模式下执行。
guide: false 可关闭运行时说明;目录尾部说明由 usageReminder 独立控制。用户自定义提示词和工具原生说明保留原文,预设不通过过滤它们实现中性化。
运行时配置与兼容条件
工具 Schema 与可识别的原生操作说明同步按需展开:组合说明跟随组内已挂载工具,卸载后收起。图片默认配置仅在生成/编辑工具可用时注入,画布状态跟随相关图片/画布能力。权限与审批策略、已分配成员身份及未知提示段落保留宿主规则。
兼容宿主须提供 tools.view(scope)(返回含 visible: Map 的视图)、tools.register、systemPrompt.section、skills.list/get、workingDirectory.ensure、Cordis 的事件及 effect 生命周期。预设隔离还依赖 DSH 的 dsh.scope 与工具层 layers.scoped/chainLayers;PTC 另外要求宿主提供 run_code 运行器和 @deepseek-ai/dsh-agent-tool-presentation。工具呈现插件也用于 Native 预设,以覆盖宿主默认值。完整预设的内置插件必须能由该 DSH 安装解析。
支持的 DSH 客户端版本为 >=0.2.1-rc.3 <0.3.0,包括此范围内的 alpha 和 RC 预发布版本。Native 和 PTC 的会话创建已在 Windows 上验证,覆盖 0.2.1-rc.3、0.2.1-rc.4、0.2.1-rc.5 和 0.2.2-rc.1。Linux/macOS 的 shell 分支由 process.platform 选择。
将运行时选项放入 dsh-diffusion-preset/runtime-v2 插件的 config;旧入口 /runtime 使用同一实现。Native 与 PTC 预设各自配置,mode 分别保留 native 或 ptc。
| 运行时选项 | 行为 |
| initialTools | 替换默认初始工具集。仅实际注册的工具会出现;call_directory 始终保留,PTC 还保留 run_code 与 structured_output 传输工具。 |
| categories | 替换精确工具分类,格式为 { "custom": { "title": "Custom", "summary": "...", "guidance": "兜底说明,可省略", "tools": ["tool_name"] } }。分类 ID 使用小写;标题、摘要和说明在缺少原生说明时兜底展示。 |
| aliases | 替换别名映射;{} 清除默认别名。目标为分类 ID 或工具名称。 |
| pluginFamilies | 替换已知插件规则,支持 id、prefix、exact(名称数组)、title、summary、可选 guidance;[] 清除特判。其他带下划线的工具按首段前缀分组。 |
| sourceCategories | 替换来源到功能分类的映射,例如 { "mcp:my-search": "web-search", "mcp:my-design": "design" };{} 清除默认来源映射。精确 categories.tools 规则和匹配到的 pluginFamilies 分类优先;插件规则的 id 为其功能分类,source 可选,用于保留来源选择器。未知来源继续独立显示,不猜测其能力。 |
| mcpDescriptions | 替换 MCP 服务说明映射。未知服务仍按 mcp__<server>__<tool> 命名发现。 |
| categoryGuidance | 按完整分类 ID 设置缺少原生描述时的兜底说明,例如 { "mcp:my-server": "该来源提供已注册的服务操作,参数和效果由 Schema 定义" };已有原生描述时不叠加。单项设为 false 或空字符串关闭该分类说明,整体 false 关闭所有分类说明。不会创建分类或挂载工具。 |
| companionGroups | 默认 []。只有显式配置后才展开伴随工具组;重叠的组会递归展开,可能扩大挂载范围。 |
| skillCompanions | 默认 {}。显式声明技能对应的依赖,如 { "my-skill": ["read"] };按分类声明依赖会挂载整类。 |
| inferSkillCompanions | 默认 false。设为 true 后按技能领域关键词推断依赖,可能展开整个领域;开启后可能扩大挂载范围。 |
| guide | false 关闭系统提示中的运行时说明;目录中的分类说明由 categoryGuidance 独立控制。 |
| usageReminder | 自定义目录尾部说明,或用 false 关闭;默认只说明分类、排序和挂载语义,不推荐分类、工具或服务商。 |
例如运行时配置:
mode: native
initialTools: [read, write, bash, pwsh, read_image]
companionGroups: []
skillCompanions:
my-report-skill: [read, write]
guide: false
usageReminder: false
集合和映射选项均为整体替换,不是增量合并;配置只选择已注册能力,不会安装工具或技能。技能来源完全使用 DSH 注册的服务商,不再探测固定的应用安装目录。
工具前缀展开必须显式带 ,例如 names: ["vendor_*"];普通工具名称精确匹配。完整解锁后仍能卸载单项,卸载状态会随目录调用结果写入 Native/PTC 会话日志。reset 重置工具可见性,不会删除已经进入对话历史的技能正文。
工具名称与分类别名重名时,准确工具名在挂载和卸载中均优先。修改挂载状态的调用不声明为可并行执行;只读目录与检索调用可并行。显式 action 在执行及界面展示中具有相同优先级。
可选的宿主目录导出
默认不向工作区写入文件。在宿主插件 dsh-diffusion-preset 的 config 中显式开启:
exportCatalog: true
catalogPath: Diffusion Mode Call Directory.md
catalogPath 可为绝对路径,或相对当前工作区的路径,父目录须已存在。每次刷新都会重新解析工作区。只覆盖带本插件生成标记的文件;已有普通文件保持不变并报告错误。导出反映宿主作用域,不会混入任意会话私有工具;会话完整目录请使用该会话的 call_directory()。宿主也支持上表的目录分类、初始工具及提示选项;两处配置互相独立。
验证范围
- 本地测试脚本、测试报告和缓存不纳入 Git 跟踪,也不随仓库发布。
- npm run sync:仅打印静态架构信息,不连接正在运行的 DSH,也不表示预设已完成实机验证。
- 真实 DSH 的工具 Schema、SDK 挂载、插件加载兼容性仍应在目标 DSH 版本中验证。
- 模拟上下文、直接调用工具执行函数或重复运行 fixture,只能证明对应单元行为,不能当作真实模型驱动的 Native/PTC 会话。报告应注明代码版本、模式、作用域、证据来源和未验证部分;常驻引导长度以实际组装并发送的内容为准。
- 判断可用状态时,比较调用当时的工具声明、目录结果和挂载事件;当前可见工具可能来自后续挂载,不能据此反推初始工具集。
- 常驻引导约 1,200 字符、小任务总调用不超过 20 次、额外挂载不超过 5 个可作优化参考,不是硬门槛;最终回复不设字符限制,也不为减少调用而省略必要验证。
Diffusion Mode 是 DeepSeek Harness (dsh) 的渐进式披露预设与运行时。
💡 核心理念:最小起点,渐进扩展
传统 AI 智能体工作流会预先注入几十个工具的完整 Schema 和大量系统指令。这浪费 token 预算,也让模型在简单任务上分散注意力。
Diffusion Mode 从轻量基线起步(文本读取 read、文件写入 write、shell、图片读取,以及 call_directory;PTC 还保留自己的传输层)。可用工具可直接调用,已知名称可直接挂载,目录提供发现与可见性操作,但不规定工具、服务商或顺序。匹配的工具和技能按名称 A–Z 排序后再分页,不做相关性或服务商加权。分类总览按分类 ID 排序;挂载、卸载和返回的技能列表也按名称排序。初始工具仍可搜索为 [Unlocked],无需挂载。初始集可配置,且只显示已注册的工具。
🌟 核心亮点
- 轻量的首轮上下文:减少前置工具 Schema;实际节省的 token 取决于安装环境和配置。
- 动态作用域发现:自动检查、归类并整理当前 harness 中实际安装的工具和技能,不依赖外部硬编码。
- 能力发现:lookup 返回已注册的候选,但不挂载;直接调用可用工具、直接挂载已知名称仍然支持。
- 默认精确挂载:只挂载选中的名称。自动伴随组、技能依赖映射、领域推断都需要主动开启。分类和通配符仍可显式展开整组。
- 高效只读查询:多语言搜索,支持同义词扩展,返回匹配的候选和简明摘要。查询不会输出庞大的参数 schema 或技能正文。
- 执行守卫:执行前拦截已锁定的工具调用,在派发之前报告可见性状态和 lookup/mount 语法。
- 动态卸载:支持 action: "unload" 和 action: "reset",在长周期会话中精简 token。
- 双预设架构:在 Native Function Calling 和 PTC(Programmable Tool Calling)两种环境下开箱即用。
📦 安装
支持的 DSH 客户端需满足 >=0.2.1-rc.3 <0.3.0,包括该范围内的 alpha 和 RC 版本。
dsh plugin add Cplay00/dsh-diffusion-preset
启动会话时选择 "Diffusion Mode" 或 "Diffusion Mode (PTC)"。
调用约定
Native 模式下,调用已注册的 call_directory 工具,传入 JSON 参数对象。PTC 模式下,调用 run_code,在其 code 中执行 await tools.call_directory(args);新挂载的绑定要在下一次 run_code 调用中使用。
为清晰起见,请使用明确的 action:{"action":"lookup","query":"read file"} 发现候选;{"action":"detail","names":["read"]} 挂载选中的工具。然后按 read 的实际 schema 单独调用它。挂载不会执行任何业务操作。names 中的分类和通配符会刻意选中整组;要精确挂载和卸载,请选择确切的名称。
已注册的工具和技能描述优先于预设的分类文案。概览使用中性的分类 ID 和工具/技能数量;lookup/detail 展示每个可调用项自身的描述,不会把某个服务商的措辞提升为共享的分类摘要。只有没有任何已注册描述的分类,才会使用预设标题、摘要和聚焦的 Category Notes 作为回退描述。有效 schema 描述为空时,回退到工具注册信息。design、web-search 这类功能分类保留来源元数据,完整的旧版来源 ID 仍只按服务商选择。guidance 和 categoryGuidance 用于自定义回退配方;categoryGuidance: false 可禁用它们。这些设置永远不会挂载工具或安装服务。
省略 action 时,若 names 非空则选中 detail;否则若 query 或 category 非空则选中 lookup;否则选中 catalog。显式指定的 action 优先。查看 report 了解未匹配的名称、歧义和技能失败;目录调用成功并不保证每个请求的名称都匹配上了。参数和示例见完整参考。
📄 License
MIT © Cplay00预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Cplay00/dsh-diffusion-preset
按需渐进展开工具,让长会话保持精简
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份人设,统一管理多个 coding agent。
★ 1,374已汉化DSH
74.1
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
认识论循环Clearailhc/clearai-dsh
你的研究,长成一个本体。
★ 689已汉化DSH
67.8
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。