dsh-session-title

DSH PLUGIN工具与能力

仓库 icrefin/dsh-session-title · npm dsh-session-title

工具与能力 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

为 DeepSeek Harness 会话按实际完成的工作自动命名,并随后续轮次持续更新标题,取代只取首条提示的旧方式。

一句话选型结论

按资料字段整理

dsh-session-title 是工具与能力类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类工具与能力 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 1 复刻 0 · 未关闭 issue 1
最近更新 2026-11-08 创建于 2026-11-02
README 11.1 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:icrefin/dsh-session-title#v0.4.1
  1. 1
    确认版本与运行环境

    Node.js 要求 >=24.9.0;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求>=24.9.0来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@~4.1.0、@deepseek-ai/dsh-client-locale@0.2.2-rc.3 等 10 个需要同时安装的同级依赖
npm 包名dsh-session-title可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-session-title:让 DeepSeek Harness 会话标题跟随真实工作

  • 按实际任务生成会话标题
  • 工作摘要折叠事件日志
  • 三重门控决定何时改名
  • 尊重用户手动命名
  • 设置页选择模型与节奏

适用场景

记忆

上游标签

cordis-plugindeepseekdeepseek-harnessdshdsh-pluginllmnamingprovidersession-titletypescript

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-11-09): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✕ 未通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 插件目录树加载失败
  • L5.3_HTTP_SERVED HTTP 服务响应

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 需要同时装好同级依赖,漏装会启动失败。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在工具与能力场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-session-title当前 L4 · 沙盒安装通过 低风险 1 未标注 有
huashu-design 未做沙盒验证 未标注 3.0 万 未标注 有
loopx 未做沙盒验证 未标注 6,233 未标注 无
agy-staff 未做沙盒验证 未标注 870 未标注 有
dsh-startup-screen 未做沙盒验证 未标注 633 未标注 有
minara-skills L4 · 沙盒安装通过 中风险 360 未标注 有

仓库档案

工具与能力
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方icrefin仓库 dsh-session-title · 默认分支 main
分类工具与能力productivity
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue1 / 0 / 1收录时的数值,非实时
创建 / 更新2026-11-02 · 2026-11-08最后推送 2026-11-14
本站收录2026-11-05首次进入本站目录的时间

README 全文

11.1 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-session-title

会话标题跟随这段会话真正做过的工作,而不是启动它的第一句提示词。
English | 简体中文








DeepSeek Harness 按第一句提示词给会话命名,然后就到此为止。对只问一句话
的会话来说这没什么;对任何一个真实会话来说都错了:标题在侧边栏上挂了一个小
时,工作却已经从「新建一个插件……」走到提供方、调度器、测试套件,再到一个
tarball 安装包。本插件按会话实际做过的任务给它命名,并随着后续回合把工作
继续往前推,让名字跟上。

针对 dsh 0.2.2-rc.3(桌面端)测试。

Before, after fourteen turns of work:      After:
Create a new plugin that                   Session-title provider with turn scheduler

这里的「基于任务」指什么

人写的提示词说的是被要求做什么。会话日志说的是实际做了什么:被改过
的文件、跑过的命令、跟踪过的待办、了结这一回合的那个回答。本插件把这份日志
折叠成一份小的工作摘要,再请模型据此给这段工作命名:

{
"currentTitle": "Build a title provider",
"totalTurns": 4,
"toolCallCount": 31,
"turns": [
{
"turn": 3,
"prompt": "Add the update scheduler",
"work": ["write: src/scheduler.ts", "read: lib/index.js", "bash: Run the test suite"],
"outcome": "Scheduler gates on progress, rest, and novelty."
}
]
}

有两个工具调用被单独处理,因为它们本身就写着任务名:todo_write 变成它记录
的待办列表,exit_plan_mode 变成那份计划的标题。其余调用各贡献一行「工具:
目标」式的小结,优先取调用自身的标注(bash 的 description、一个文件路径、
一个搜索模式),而不是原始 JSON。

它是怎么接进去的

会话标题本来就由 harness 正经掌管:dsh-session-title 负责调度、取代
(supersession)、归一化,以及持久的 session/title 事件,并通过
ctx.sessionTitle.register() 只接受一个提供方。本插件就是这个提供方,外加
随包提供的那个提供方从不做的部分:

部件 文件 职责
提供方 src/provider.ts 把日志折叠成摘要,在字节上限内组织成框架,通过共享的 dsh-session-title-llm 执行器发一次辅助模型调用
摘要 src/digest.ts 把 turn/start、人类的 user/message、tool/call、assistant/message、turn/end 纯函数式地折叠成逐回合的工作
提示词 src/prompt.ts 指令、JSON 框架、到 maxInputBytes 的确定性裁剪、单行回答解析
调度器 src/scheduler.ts 判断一次改写什么时候值得发一次调用
目录路由 src/routes.ts 告诉设置页这台宿主提供哪些提供方和模型
设置页 src/client/ Settings → Session titles:选定命名模型和改写节奏
补丁 cordis.patch.yml 停用随包提供的第一句提示词提供方,插入本插件的这一行

因为一个会话只有一个提供方,bundle 的补丁会在插入替代行之前,先关掉随包提供
的 session-title-llm 那一行。移除这个 bundle,下次重启就会恢复随包提供的
提供方。

标题什么时候会被改写

三道闸门,必须全部通过,这样标题既不会来回抖动,也不会白白花掉一次模型调用:

  1. 有进展 —— 一个已完成的回合(turn/end),或运行中的回合内已完成
    minStepsBetweenUpdates 个步骤。很长的一个回合也照样能拿到当前标题。
  2. 有间隔 —— 距上次尝试已过 minUpdateIntervalMs。
  3. 有新颖度 —— 摘要指纹(回合、工具调用、提示词)与当前标题所描述的那份
    工作已经不同。

用户自己改过名的会话不动:服务会把那个标题标记为 user 来源并钉住,调度
器从不解除这种钉住。子会话(subagent fork)会被跳过,除非打开
includeChildSessions。

提供方还继承了服务自带的 first-prompt 自动节奏,所以一个全新的会话能从它的
第一句提示词很快拿到第一个名字——之后交给调度器接手。

怎么选命名模型

一次标题只跑一个很小的辅助请求,所以它可以用比对话更小、更便宜的模型。
Settings → Session titles 掌管这个选择:

  • 跟随各会话自己的模型(默认)—— 会话自己记录的那次请求所用的路由。
  • 始终使用同一个模型 —— 钉死的提供方和模型,从运行中宿主公布的目录里挑。
    模型控件接受宿主能解析的任何 id,所以某个提供方没有列出的模型照样能用。

这一页还编辑标题长度的目标和改写节奏。每个字段都是易变(volatile)的:设置
传输层写入 Host 文档,Loader 就地更新运行中的那一行,提供方在下次标题请求时读
到当前值。不用重启,不用重新挂载,设置也不会多出第二份副本——这一页读写的
Config,与 profile 补丁用的是同一个。

模型列表是宿主的事实,所以这一页通过一条只读的回环路由
GET /api/dsh-session-title/catalog 向宿主询问,该路由列出
ctx.llm.listProviders() 以及每个提供方公布的模型。取列表失败的提供方仍然会
被列出,并附上原因;这一页随后回退到自由文本输入。

Settings
Session titles        ← this page
Naming model        ○ follow the session  ● pin provider + model
Title length        words / CJK characters
When a title is revised
turns · steps · interval · boundaries · subagent sessions

配置

每个字段都是一个行设置;设置页实时编辑它们,profile 补丁设定初始值。下面这些
就是 bundle 补丁随包发布的值。

字段 默认值 含义
targetWords 6 非 CJK 标题的目标长度
targetCjkCharacters 12 CJK 标题的目标长度
maxInputBytes 8192 组织好后的摘要的字节上限
maxOutputTokens 2048 输出上限(一道防止跑飞的保险,同时给推理留出空间)
timeoutMs 30000 一次标题调用的端到端截止时间
provider, model — 可选的显式路由;要么两个都给,要么都不给。省略即继承会话自己记录的路由
maxTurnsInDigest 10 摘要里带多少个最近的回合
minTurnsBetweenUpdates 1 触发一次改写所需的已完成回合数
minStepsBetweenUpdates 2 回合中途改写所需的已完成步骤数
minUpdateIntervalMs 120000 两次尝试之间的最小间隔
updateOnTurnEnd, updateOnStepEnd true 哪些边界算作可改写的机会
includeChildSessions false 是否也给子代理会话命名

成本。 每次改写一个辅助请求,受 maxInputBytes 和 maxOutputTokens 约束,
用该路由最低的推理档位。主对话不增加任何 token,也没有额外延迟:标题服务在主
请求之后做这件事,只追加一条仅入日志的 session/title 事件。工作没变就永远不
会触发调用。

安装

pnpm check            # typecheck, build, tests
scripts/install.sh    # packs dist/dsh-session-title-0.4.0.tgz

把 tarball 装进运行 harness 的那个 profile:

cd ~/.dsh/profiles/desktop
pnpm add file:/absolute/path/to/dsh-session-title-0.4.0.tgz

然后把 "dsh-session-title" 加进该 profile package.json 的
dsh.profile.bundles(紧跟其他插件 bundle 之后)。重启 Harness:bundle 层
是在启动时组合的,所以那个替换标题提供方的补丁在重启时生效,而不是在重新加载
时生效。已有会话会保留当前标题,直到它们的下一个回合完成;有了新的工作,它们
就会被重新命名。

验证

  • pnpm test(78 个用例)拿录制下来的事件形状跑摘要,拿字节上限跑框架与裁
    剪,拿假计时器跑调度器,并让提供方走真实的共享执行器(只有适配器流是假
    的),包括它记录的那条一模一样的 session/title-llm-request 记录。设置页由
    真实组件在 jsdom 中渲染并驱动:钉住会原子地写入提供方与模型这一对,跟随会把
    两者一起清空,非法数字永远到不了宿主。目录路由由真实的回环 HTTP 服务器
    伺服。
  • test/manifest.spec.ts 和 test/bundle.spec.ts 断言各处的 id 一致(包名、
    行 id、导出的 name、客户端 bundle id),断言补丁停用了
    session-title-llm,并断言构建出的客户端 bundle 以包名注册、且没有再打进一
    份 React。
  • 目视检查——侧边栏里某一行的标题会变——需要把插件装进一个运行中的 Harness。
    测试套件并不声称覆盖这一点。

已知限制

  • 一个会话只有一个提供方。 一个 profile 如果还启用了上游的标题提供方
    bundle(dsh-experimental-session-titles-bundle),就会组合出两个提供方,
    本插件的这一行会在挂载时带着那条提示直接报错。
  • 标题的变化是改写,不是实时游标。 改写要等闸门放行;一个忙碌的会话可能
    在长达 minUpdateIntervalMs 的时间里显示一个略旧的名称。
  • 「是否仍然准确」由模型判断。 提示词要求模型保留一个已经够用的标题,只在
    工作有实质变化时才改;那是一条指令,不是语义校验。
  • 摘要溢出即拒绝。 装不进 maxInputBytes 的摘要会直接失败而不是被截断,
    上一个标题会一直沿用到下次改写。

贡献

欢迎提交 Issue 和 Pull Request——开发环境的搭建方式和 sign-off 要求见
CONTRIBUTING.md。安全类问题请按
SECURITY.md 所述私下报告。

许可证

MIT —— 见 LICENSE。

> 如果你的侧边栏终于读起来像一份工作日志,一颗 ⭐ star 能帮更多 DSH 用户发现它。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-session-title 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:icrefin/dsh-session-title#v0.4.1` 即可。对应的 npm 包名是 `dsh-session-title`。

dsh-session-title 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-session-title 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-session-title 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-session-title 需要什么运行环境?

Node.js >=24.9.0;需要同时安装 @deepseek-ai/cordis@~4.1.0、@deepseek-ai/dsh-client-locale@0.2.2-rc.3、@deepseek-ai/dsh-client-ui-settings@0.2.2-rc.3、@deepseek-ai/dsh-host-webserver@0.2.2-rc.3、@deepseek-ai/dsh-llm@0.2.2-rc.3。环境不满足时安装会失败,建议先确认本机版本。

dsh-session-title 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-session-title 有哪些功能?

按实际任务生成会话标题、工作摘要折叠事件日志、三重门控决定何时改名、尊重用户手动命名、设置页选择模型与节奏。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
工具与能力
按星标排序,可作替代方案

huashu-design

huashu-design

在 DeepSeek Harness 里说一句话,就能拿回可交付的设计:网页、App 原型、可编辑 PPTX、动画与信息图,自带 84 种风

未标注验证等级 3.0 万 星

loopx

loopx

LoopX 是面向长周期 Agent 的本地优先控制平面,作为 DSH plugin 为 DeepSeek Harness 提供持久目标、证

未标注验证等级 6,233 星

agy-staff

agy-staff

把 Google Antigravity CLI 作为快速 Gemini 员工接入 DSH,提供子代理侧边栏、编排模式与多种角色技能。

未标注验证等级 870 星

dsh-startup-screen

dsh-startup-screen

DeepSeek Harness 的启动界面与启动动画插件。

未标注验证等级 633 星

dsh-blender-plugin

dsh-blender-plugin

让 AI 模型通过直连 TCP 通道实时驱动 Blender 的 DSH plugin:15 个工具覆盖视口取帧、任意角度渲染、内循环搜索、

未标注验证等级 211 星

icrefin 的其它插件

6 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-11-09。