🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

超级协作模式 Kayou-31/dsh-ultra-mode

DeepSeek Harness
Kayou-319 天前有提交已提供中文文档扫描:含敏感能力

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
装得上吗
静态安装检查有提示项,装前建议看一眼 README
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 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
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 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 许可。
预览分享卡片长什么样 ↓Kayou-31/dsh-ultra-mode
分享 · DeepSeek Harness Hub
Kayou-31/dsh-ultra-mode

DSH Ultra:独立按钮,普通 Agent 自动决策辅助,或单会话 2–5 路 Max…

这是你的仓库?认领条目

回到顶部