DSH Ultra:独立按钮,普通 Agent 自动决策辅助,或单会话 2–5 路 Max…
36.6/100
综合分
10
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Kayou-31/dsh-ultra-mode该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@dsh-external/dsh-ultra-mode(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 08:20:56
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 120 处,展示前 106 条)
- 读取本地文件lib/memory-host.js:90
if (existsSync(target) && lstatSync(target).isSymbolicLink()) - 读取本地文件lib/memory-host.js:90
if (existsSync(target) && lstatSync(target).isSymbolicLink()) - 读取本地文件lib/memory-host.js:92
if (!existsSync(target)) - 写入本地文件lib/memory-host.js:93
mkdirSync(target, { recursive: false, mode: 0o700 }); - 写入本地文件lib/memory-host.js:101
writeFileSync(descriptor, JSON.stringify(value)); - 写入本地文件lib/memory-host.js:107
renameSync(temporary, filename); - 读取本地文件lib/memory-host.js:488
this.ownership = existsSync(this.ownershipFile) ? JSON.parse(readFileSync(this.ownershipFile, 'utf8')) : { projectId: this.projectId, rootId: parent.i - 读取本地文件lib/memory-host.js:488
this.ownership = existsSync(this.ownershipFile) ? JSON.parse(readFileSync(this.ownershipFile, 'utf8')) : { projectId: this.projectId, rootId: parent.i - 读取本地文件lib/memory-host.js:1014
if (existsSync(scanFile)) { - 写入本地文件lib/memory-host.js:1410
mkdirSync(path.dirname(filename), { recursive: true }); - 写入本地文件lib/memory-host.js:1411
writeFileSync(filename, file.content, { mode: 0o600 }); - 写入本地文件lib/evidence.js:81
mkdirSync(this.recordDirectory, { recursive: true }); - 读取本地文件lib/evidence.js:98
for (const name of readdirSync(this.recordDirectory).sort()) { - 读取本地文件lib/evidence.js:116
const encoded = readFileSync(path.join(this.recordDirectory, name), 'utf8'); - 读取本地文件lib/evidence.js:189
const stats = lstatSync(filename, { bigint: true }); - 写入本地文件lib/evidence.js:209
writeFileSync(fd, canonical({ pid: process.pid })); - 删除本地文件lib/evidence.js:219
unlinkSync(lock); - 读取本地文件lib/evidence.js:227
const owner = JSON.parse(readFileSync(lock, 'utf8')); - 删除本地文件lib/evidence.js:234
unlinkSync(lock); - 删除本地文件lib/evidence.js:250
unlinkSync(lock); - 写入本地文件lib/evidence.js:262
writeFileSync(fd, encoded, 'utf8'); - 写入本地文件lib/evidence.js:266
renameSync(temporary, destination); - 读取本地文件lib/context-archive-store.js:247
const parent = lstatSync(this.directory); - 写入本地文件lib/context-archive-store.js:252
mkdirSync(this.archiveDirectory, { mode: 0o700 }); - 读取本地文件lib/context-archive-store.js:258
const stats = lstatSync(this.archiveDirectory); - 读取本地文件lib/context-archive-store.js:275
const stats = lstatSync(file); - 读取本地文件lib/context-archive-store.js:284
encoded = readFileSync(fd, 'utf8'); - 写入本地文件lib/context-archive-store.js:342
writeFileSync(fd, encoded, 'utf8'); - 删除本地文件lib/context-archive-store.js:359
unlinkSync(temporary); - 读取本地文件lib/knowledge-host.js:23
if (!existsSync(directory)) - 读取本地文件lib/knowledge-host.js:25
const stat = lstatSync(directory); - 读取本地文件lib/knowledge-host.js:74
if (typeof profileContext?.dir !== 'string' || !path.isAbsolute(profileContext.dir) || !existsSync(profileContext.dir) || !lstatSync(profileContext.di - 读取本地文件lib/knowledge-host.js:74
if (typeof profileContext?.dir !== 'string' || !path.isAbsolute(profileContext.dir) || !existsSync(profileContext.dir) || !lstatSync(profileContext.di - 读取本地文件lib/knowledge-host.js:84
if (typeof raw.root !== 'string' || !path.isAbsolute(raw.root) || !existsSync(raw.root) || !lstatSync(raw.root).isDirectory()) - 读取本地文件lib/knowledge-host.js:84
if (typeof raw.root !== 'string' || !path.isAbsolute(raw.root) || !existsSync(raw.root) || !lstatSync(raw.root).isDirectory()) - 读取本地文件lib/knowledge-store.js:101
stat = lstatSync(cursor); - 写入本地文件lib/knowledge-store.js:107
mkdirSync(cursor, { mode: 0o700 }); - 读取本地文件lib/knowledge-store.js:113
stat = lstatSync(cursor); - 读取本地文件lib/knowledge-store.js:143
lstatSync(manifest); - 读取本地文件lib/knowledge-store.js:151
lstatSync(manifest); - 读取本地文件lib/knowledge-store.js:156
if (readdirSync(this.recordsDirectory).some(name => name.endsWith('.json'))) - 读取本地文件lib/knowledge-store.js:167
const stat = lstatSync(file); - 写入本地文件lib/knowledge-store.js:218
writeFileSync(fd, canonical({ pid: process.pid, createdAt: this.clock() }), 'utf8'); - 删除本地文件lib/knowledge-store.js:224
unlinkSync(file); - 写入本地文件lib/knowledge-store.js:244
writeFileSync(fd, encoded, 'utf8'); - 写入本地文件lib/knowledge-store.js:257
renameSync(temporary, file); - 删除本地文件lib/knowledge-store.js:263
unlinkSync(temporary); - 读取本地文件benchmarks/lib.mjs:20
for (const entry of (await readdir(current, { withFileTypes: true })).sort((a, b) => a.name.localeCompare(b.name, 'en'))) { - 读取本地文件benchmarks/lib.mjs:22
const stat = await lstat(filename) - 读取本地文件benchmarks/lib.mjs:36
let content = await readFile(filename) - 读取本地文件benchmarks/lib.mjs:44
for (const entry of (await readdir(casesRoot, { withFileTypes: true })).sort((a, b) => a.name.localeCompare(b.name, 'en'))) { - 读取本地文件benchmarks/lib.mjs:47
const manifest = JSON.parse(await readFile(path.join(directory, 'case.json'), 'utf8')) - 写入本地文件benchmarks/lib.mjs:74
await mkdir(path.dirname(destination), { recursive: true }) - 读取本地文件benchmarks/lib.mjs:75
await writeFile(destination, await readFile(filename), { flag: overlay ? 'w' : 'wx' }) - 写入本地文件benchmarks/lib.mjs:75
await writeFile(destination, await readFile(filename), { flag: overlay ? 'w' : 'wx' }) - 写入本地文件benchmarks/lib.mjs:84
await mkdir(target, { recursive: false }) - 写入本地文件benchmarks/lib.mjs:95
await writeFile(path.join(target, '.ultra-benchmark.json'), JSON.stringify(metadata, null, 2) + '\n', { flag: 'wx' }) - 执行外部命令来自配置/变量benchmarks/lib.mjs:134
const processResult = spawnSync(process.execPath, [workerPath, path.resolve(item.directory, item.grader), candidate], { - 写入本地文件benchmarks/lib.mjs:179
await mkdir(base, { recursive: true }) - 读取本地文件src/context-archive-store.ts:225
const parent = lstatSync(this.directory) - 写入本地文件src/context-archive-store.ts:227
if (create) try { mkdirSync(this.archiveDirectory, { mode: 0o700 }) } catch (error) { if ((error as NodeJS.ErrnoException).code !== 'EEXIST') throw er - 读取本地文件src/context-archive-store.ts:228
const stats = lstatSync(this.archiveDirectory) - 读取本地文件src/context-archive-store.ts:241
const stats = lstatSync(file) - 读取本地文件src/context-archive-store.ts:248
encoded = readFileSync(fd, 'utf8') - 写入本地文件src/context-archive-store.ts:289
try { writeFileSync(fd, encoded, 'utf8'); fsyncSync(fd) } finally { closeSync(fd) } - 删除本地文件src/context-archive-store.ts:295
} finally { unlinkSync(temporary) } - 写入本地文件src/evidence.ts:121
mkdirSync(this.recordDirectory, { recursive: true }) - 读取本地文件src/evidence.ts:136
for (const name of readdirSync(this.recordDirectory).sort()) { - 读取本地文件src/evidence.ts:149
const encoded = readFileSync(path.join(this.recordDirectory, name), 'utf8') - 读取本地文件src/evidence.ts:200
const stats = lstatSync(filename, { bigint: true }) - 写入本地文件src/evidence.ts:216
try { fd = openSync(lock, 'wx'); writeFileSync(fd, canonical({ pid: process.pid })); fsyncSync(fd); break } - 删除本地文件src/evidence.ts:221
try { unlinkSync(lock) } catch { } - 读取本地文件src/evidence.ts:226
const owner = JSON.parse(readFileSync(lock, 'utf8')) - 删除本地文件src/evidence.ts:229
if ((probe as NodeJS.ErrnoException).code === 'ESRCH') { unlinkSync(lock); continue } - 删除本地文件src/evidence.ts:236
finally { closeSync(fd); unlinkSync(lock) } - 写入本地文件src/evidence.ts:247
writeFileSync(fd, encoded, 'utf8'); fsyncSync(fd); closeSync(fd); fd = undefined - 写入本地文件src/evidence.ts:248
renameSync(temporary, destination) - 读取本地文件src/knowledge-host.ts:38
if (!existsSync(directory)) return false - 读取本地文件src/knowledge-host.ts:39
const stat = lstatSync(directory) - 读取本地文件src/knowledge-host.ts:70
if (typeof profileContext?.dir !== 'string' || !path.isAbsolute(profileContext.dir) || !existsSync(profileContext.dir) || !lstatSync(profileContext.di - 读取本地文件src/knowledge-host.ts:70
if (typeof profileContext?.dir !== 'string' || !path.isAbsolute(profileContext.dir) || !existsSync(profileContext.dir) || !lstatSync(profileContext.di - 读取本地文件src/knowledge-host.ts:77
if (typeof raw.root !== 'string' || !path.isAbsolute(raw.root) || !existsSync(raw.root) || !lstatSync(raw.root).isDirectory()) throw new Error('Invali - 读取本地文件src/knowledge-host.ts:77
if (typeof raw.root !== 'string' || !path.isAbsolute(raw.root) || !existsSync(raw.root) || !lstatSync(raw.root).isDirectory()) throw new Error('Invali - 读取本地文件src/knowledge-store.ts:115
try { stat = lstatSync(cursor) } catch (error) { - 写入本地文件src/knowledge-store.ts:117
try { mkdirSync(cursor, { mode: 0o700 }) } catch (mkdirError) { if ((mkdirError as NodeJS.ErrnoException).code !== 'EEXIST') throw mkdirError } - 读取本地文件src/knowledge-store.ts:118
stat = lstatSync(cursor) - 读取本地文件src/knowledge-store.ts:143
try { lstatSync(manifest) } catch (error) { - 读取本地文件src/knowledge-store.ts:147
try { lstatSync(manifest) } catch (error) { - 读取本地文件src/knowledge-store.ts:149
if (readdirSync(this.recordsDirectory).some(name => name.endsWith('.json'))) throw new Error('Missing profile binding for existing records') - 读取本地文件src/knowledge-store.ts:159
const stat = lstatSync(file) - 写入本地文件src/knowledge-store.ts:194
writeFileSync(fd, canonical({ pid: process.pid, createdAt: this.clock() }), 'utf8') - 删除本地文件src/knowledge-store.ts:197
} finally { closeSync(fd); unlinkSync(file) } - 写入本地文件src/knowledge-store.ts:209
writeFileSync(fd, encoded, 'utf8') - 写入本地文件src/knowledge-store.ts:215
renameSync(temporary, file) - 删除本地文件src/knowledge-store.ts:218
try { unlinkSync(temporary) } catch (error) { if ((error as NodeJS.ErrnoException).code !== 'ENOENT') throw error } - 读取本地文件src/memory-host.ts:104
if (existsSync(target) && lstatSync(target).isSymbolicLink()) throw new Error('Evidence refuses a linked storage directory') - 读取本地文件src/memory-host.ts:104
if (existsSync(target) && lstatSync(target).isSymbolicLink()) throw new Error('Evidence refuses a linked storage directory') - 写入本地文件src/memory-host.ts:105
if (!existsSync(target)) mkdirSync(target, { recursive: false, mode: 0o700 }) - 读取本地文件src/memory-host.ts:105
if (!existsSync(target)) mkdirSync(target, { recursive: false, mode: 0o700 }) - 写入本地文件src/memory-host.ts:112
try { writeFileSync(descriptor, JSON.stringify(value)); fsyncSync(descriptor) } finally { closeSync(descriptor) } - 写入本地文件src/memory-host.ts:113
renameSync(temporary, filename) - 读取本地文件src/memory-host.ts:398
this.ownership = existsSync(this.ownershipFile) ? JSON.parse(readFileSync(this.ownershipFile, 'utf8')) : { projectId: this.projectId, rootId: parent.i - 读取本地文件src/memory-host.ts:398
this.ownership = existsSync(this.ownershipFile) ? JSON.parse(readFileSync(this.ownershipFile, 'utf8')) : { projectId: this.projectId, rootId: parent.i - 读取本地文件src/memory-host.ts:770
if (existsSync(scanFile)) { - 写入本地文件src/memory-host.ts:1081
mkdirSync(path.dirname(filename), { recursive: true }); writeFileSync(filename, file.content, { mode: 0o600 }) - 写入本地文件src/memory-host.ts:1081
mkdirSync(path.dirname(filename), { recursive: true }); writeFileSync(filename, file.content, { mode: 0o600 })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-llm@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval@deepseek-ai/schemastery@deepseek-ai/dsh-agent-loop给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(71 字)↓
DSH Ultra:独立按钮,普通 Agent 自动决策辅助,或单会话 2–5 路 Max 并发与实时跨路决策;完整中文文档与可复现业务测试。
README
由 DeepSeek 最新模型翻译生成DSH Ultra Mode
一起研究,带着证据继续。
面向 DSH 的多代理协作、项目记忆与决策辅助插件让不同路线交换线索,让长任务保留进度,让结论有原文可查。
下载三个插件包 · 完整源码 · 中文发布说明与验证 · 更新记录
当前版本:Ultra 0.7.0 / Memory 0.2.0 / Decision 0.2.0。 本次适配 DSH 0.2.1-rc.3,加入五层工程记忆、条件召回和模型主动进度查询。三包从同一套核心源码构建;Ultra-Memory 独立仓库 同时发布完全相同的 Memory TGZ。历史压缩、阶段归档和跨项目知识仍默认关闭。
认识项目 · 选择安装包 · 功能一览 · 快速开始 · 常用命令 · 升级与兼容 · 常见问题 · 开发文档
这是什么
复杂任务常常需要几个方向一起调查,也需要在很多轮之后记得:最初要做什么,哪些事已经完成,哪些结论还只是猜测。
Ultra 把协作、项目状态和原文检索放在同一个任务里。主智能体可以派发子任务、接收消息、续接已有子代理;需要深入研究时,你可以手动选择 2~5 路,再由一个 decision 协调进展与实施。任务留下的证据和状态可以按来源查回,减少反复解释和凭摘要猜测。
- 你来选择协作方式:普通 Team、只读决策辅助或手动多路线,分别控制。
展开完整文档(README 剩余 1 节)
DSH Ultra Mode 一起研究,带着证据继续。 面向 DSH 的多代理协作、项目记忆与决策辅助插件让不同路线交换线索,让长任务保留进度,让结论有原文可查。 下载三个插件包 · 完整源码 · 中文发布说明与验证 · 更新记录 当前版本:Ultra 0.7.0 / Memory 0.2.0 / Decision 0.2.0。 本次适配 DSH 0.2.1-rc.3,加入五层工程记忆、条件召回和模型主动进度查询。三包从同一套核心源码构建;Ultra-Memory 独立仓库 同时发布完全相同的 Memory TGZ。历史压缩、阶段归档和跨项目知识仍默认关闭。 认识项目 · 选择安装包 · 功能一览 · 快速开始 · 常用命令 · 升级与兼容 · 常见问题 · 开发文档 这是什么 复杂任务常常需要几个方向一起调查,也需要在很多轮之后记得:最初要做什么,哪些事已经完成,哪些结论还只是猜测。 Ultra 把协作、项目状态和原文检索放在同一个任务里。主智能体可以派发子任务、接收消息、续接已有子代理;需要深入研究时,你可以手动选择 2~5 路,再由一个 decision 协调进展与实施。任务留下的证据和状态可以按来源查回,减少反复解释和凭摘要猜测。 - 你来选择协作方式:普通 Team、只读决策辅助或手动多路线,分别控制。 - 进度有明确状态:区分计划、执行和验证,保留约束、阻塞与下一步。 - 结论有来源可查:搜索、分页读回并核验引文,来源不可访问时标注缺口。 - 能力按需组合:完整 Ultra,或独立 Memory、独立 Decision。 选择安装包 大多数用户只安装 Ultra 完整包即可。 三包是三个功能选择,不要求全部启用。 | 安装包 | 适合你,如果…… | 包含的能力 | | Ultra 0.7.0 | 想在一个入口使用完整协作与研究流程 | Team、模型池、决策辅助、手动 2~5 路、项目证据、上下文管理及可选知识库 | | Memory 0.2.0 | 主要需要长任务的证据检索与进度管理 | 项目证据、可选压缩与阶段归档、显式授权知识库;不创建模型或子代理 | | Decision 0.2.0 | 想保留普通主智能体,再增加协作与复核 | Team、模型池、可选只读 decision 辅助及证据支持;没有手动多路线入口 | 支持单包、Memory+Decision 和 Ultra+Memory。Ultra 与 Decision 可以同时安装,但同一 scope 只能主动启用一个协调插件。/ultra off 或 /decision off 只关闭任务模式,不能替代停用重复 bundle。 组合时证据配置优先级为 Memory > Ultra > Decision,共享一份服务,授权范围不会合并扩大。详见 安装组合与回滚。 功能一览 | 能力 | 当前可以做什么 | | Team 协作 | 派发、发消息、续接、等待、中断和查询子任务;父智能体可继续工作 | | 协作模型池 | 从 DSH 已配置的模型中选择候选,声明擅长与适用场景;保留权限与深度限制 | | 决策辅助 | 普通主智能体负责执行,独立只读旁路提供建议 | | 多路线研究 | 手动选择 2~5 个 Max worker,由额外一个 Max decision 规划、协调和实施 | | 项目状态 | 保存目标、限制、进度、阻塞、决策和下一步,区分计划与验证 | | 工程记忆 | 目标约束、当前进度、决策、历史证据和未完成事项分层注入;关键词条件召回与来源追踪 | | 主动查看 | ultra_memory_status 提供概览、关联、证据三级读取,支持版本比较和分页 | | 原文检索 | 关键词搜索、分页读回、连续引文校验;来源不完整时明确标注 | | 可选上下文管理 | 先持久化证据与恢复入口,再替换旧工具正文;可显式开启已完成阶段归档 | | 可选知识库 | 同一配置档下按真实项目目录授权发布、读取与撤销,默认不跨项目共享 | | 可选决策治理 | 在既有 decision 调用中记录意图、诊断与验收,模型判断与宿主证明分开 | 研究 worker 与辅助 decision 只读。最终实施受既有人类授权和宿主审批约束;检索内容、代理消息和模型建议不会成为新的权限来源。 快速开始 1. 下载并安装 1. 确认 DSH Host 为 0.2.1-rc.3、0.2.1-rc.2 或 0.2.0-rc.2。新版能力建议使用 0.2.1 系列。 2. 从 发布页 选择所需 TGZ,核对同页 SHA256SUMS.txt。源码 ZIP 用于开发。 3. 在宿主插件管理页通过本地包入口安装,启用对应 bundle。升级前结束运行任务,保留旧 TGZ 和配置档配置。 4. 完整退出并重启 DSH,让 Host 与客户端一起加载新版本。 | 包 | bundle 名称 | 配置节点 | | Ultra | @dsh-external/dsh-ultra-mode | ultra-mode | | Memory | @dsh-external/dsh-ultra-memory | ultra-memory | | Decision | @dsh-external/dsh-ultra-decision | ultra-decision | 安装使用已构建的 TGZ,无需用户单独安装开发 SDK。手动配置时保留原有 bundle 列表,按 安装指南 追加对应项。 2. 从普通协作开始 在新会话中开启 Team,继续由普通主 Agent 推进任务: /team on 然后给出实际任务,例如:“检查这次接口改动,把实现和测试分开审查,汇总有文件依据的问题;先不要修改。” Team 与 Ultra 分别开关。添加模型池候选不会自动创建代理,空池保留宿主原有继承行为。 3. 按需增加研究路线 完整 Ultra 支持手动选择: /ultra assist /ultra 2 /ultra off 分别用于普通主 Agent+辅助、两路研究+decision,以及关闭后续任务的 Ultra 模式。路线数不含 decision;多路线和额外辅助会增加模型消耗。 压缩、已完成阶段归档、决策治理和跨项目知识库均需显式配置。开启压缩前确认原生日志、token meter 和恢复入口可用,并保证同一历史只有一个压缩管理者。 常用命令 | 命令 | 适用包 | 行为 | | /team on、/team off、/team | Ultra、Decision | 开启、关闭或查询普通协作 | | /ultra assist 或 /ultra 1 | Ultra | 普通主 Agent+只读 Max 辅助 | | /ultra 2~/ultra 5 | Ultra | 指定数量的 Max worker+一个 Max decision | | /ultra on | Ultra | 恢复已选模式;新会话首次并发默认 3 路 | | /ultra off | Ultra | 关闭后续任务的自动 Ultra | | /decision on、/decision off | Decision | 单独控制只读辅助旁路 | Memory 通过模型工具 ultra_memory_search、ultra_memory_get 检索。Team 的六个工具及事件等待规则见 协作说明。 升级与兼容 本版扩展三包 engines.dsh 和原生 peer 范围,以官方 rc.3 SDK 构建和验证。没有更改证据存储格式、增加后台功能或自动迁移历史。 精确结果见 本版验证报告。 全局知识仍要求原生 profileContext.dir。压缩和阶段归档要求原生持久化、恢复工具与唯一管理者;缺少能力时拒绝相应操作。旧宿主的基础兼容不等于具备所有新版能力。 升级时保留 .dsh-ultra/v1、宿主原始日志及配置档知识目录。已有 arc_ 归档检查点需要兼容读取器;降级前核对恢复条件,不能直接用不识别它的版本续作。详见 恢复与回滚。 常见问题 需要同时装三个包吗? 通常不用。完整 Ultra 已包含主要能力;希望分别配置记忆和普通协作时,可选 Memory+Decision。 Ultra Memory 和 Memory-Continuity 有什么区别? Ultra Memory 面向工程任务的证据、上下文与项目进度;Memory-Continuity 面向人物、经历、关系、承诺和人工成长审阅。本版借鉴其分层、条件选择和可追溯结构,在工程记忆中独立实现;不连接运行时、不合并存储,也不要求安装 M-C。详见 Ultra-Memory 使用说明。自动召回为关键词匹配,查询返回记录状态;本轮没有验证真实模型收益或两个插件共同管理同一会话的兼容性。 会默认调用更多模型吗? 新会话的 Team、Ultra 和 Decision 额外旁路默认关闭。Memory 自身不创建模型;索引与确定性压缩没有默认摘要模型调用。显式启用协作、辅助或多路线后,会使用宿主配置的模型并产生正常用量。 压缩后能保证完全不丢信息吗? 不能保证模型效果无损。插件保留可访问原文与恢复入口,记录来源和覆盖缺口;模型如何使用它们是另一层问题。历史“约 65K”和“14/30”只属于特定实验,完整结果与失败保存在 0.6.0 发布记录 和 实验说明。 这次包含真实模型和桌面安装验收吗? 本次用原生 SDK、脚本化本地响应和实际插件包验证兼容性。没有新增付费模型实验,也没有完成 rc.3 Electron 桌面的安装、交互或长时间运行验收。历史成绩不计入本版结果。 开发文档 建议使用 Node.js 22;本版在 22.23.3 验证,锁文件固定 rc.3 SDK。安装依赖可能访问 npm。跑完整原生用例要指定 SDK 根目录,避免跳过: npm ci --ignore-scripts npm run typecheck npm run build $env:DSH_ULTRA_TEST_SDK = (Resolve-Path node_modules).Path npm test npm run test:benchmarks 根目录 src/ 是共同核心,npm run build 同时生成三包及来源清单。附属包的 core-src 与 lib 是派生产物,不要分别修改。运行时无需引用开发仓库。 架构 · 模型池 · 证据与上下文 · 决策治理 · 知识库 · 测试指南 · 贡献 · 安全约定 项目采用 BSD-3-Clause 许可。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Kayou-31/dsh-ultra-mode
DSH Ultra:独立按钮,普通 Agent 自动决策辅助,或单会话 2–5 路 Max…
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目