成就与游戏化插件:按回合、工具调用、会话、连续天数与编码行为(编辑/读取/测试)解锁徽章,带徽章墙、解锁 toast 与 ctx.achievements SDK。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:luumod/dsh-achievements
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness 成就/游戏化插件:跨会话的成就徽章系统——自动累计回合、工具调用、会话数与连续天数,解锁时弹 toast,设置页有完整徽章墙,并提供
ctx.achievements服务。零核心改动。本仓库是 Blaczz/dsh-achievements 的 fork,在其基础上新增行为成就、ctx.achievementsSDK 与分享层。
English | 简体中文
DeepSeek Harness(DSH) 的游戏化插件:它默默统计你的真实使用(回合、工具调用、会话、连续天数),达到里程碑即解锁成就,实时弹 toast 庆祝,在设置页展示徽章墙。状态跨会话持久化(存在 DSH 主目录),所有统计走官方 session/event 事件缝(turn/end、tool/call、tool/result),不改动任何核心代码。
✨ 内置成就(48 个)
成就分两条产品线。七条长期成长线各含五档,稀有度严格 普通 → 罕见 → 稀有 → 史诗 → 传说(新增里程碑 XP 为 10 / 30 / 75 / 175 / 400):
| 成长线 | 普通 | 罕见 | 稀有 | 史诗 | 传说 |
|---|---|---|---|---|---|
| 🎬 回合 | 1 | 25 | 50 | 100 | 500 |
| 🔧 工具调用 | 1 | 25 | 100 | 500 | 2000 |
| 💬 会话 | 1 | 10 | 50 | 200 | 500 |
| 🌅 活跃天数 | 1 | 7 | 30 | 100 | 365 |
| 📖 文件读取 | 10 | 100 | 500 | 2500 | 10000 |
| ✏️ 文件修改 | 1 | 10 | 50 | 250 | 1000 |
| 🧪 测试运行 | 1 | 10 | 50 | 250 | 1000 |
另有特殊成就:连续天数(streak-3 / streak-7)、早期额外节点 ten-turns,以及 10 个单会话行为徽章:
| 成就 | 条件 |
|---|---|
| 🔁 似曾相识 | 同一文件修改 5 次 |
| 🕳 兔子洞 | 第一次修改前读取 20 个文件 |
| 💣 先斩后奏 | 第一次测试前修改 8 个文件 |
| 🔥 终于通了 | 测试失败 5 次后成功 |
| 🎰 这次一定 | 同一测试命令连续失败 5 次 |
| 🎯 一发入魂 | 只改一次,首次测试即通过 |
| 📚 图书管理员 | 单会话读取 30 个不同文件 |
| 🌱 出门走走 | 单会话工具调用 100 次 |
| 🦴 依赖考古学家 | 读取依赖目录(node_modules / site-packages / vendor)下的文件 |
| 🗿 巨佬模式 | ≤5 次工具调用内完成 读→改→测 且通过 |
长期计数(turns、toolCalls、sessions、activeDays、fileReads、fileEdits、testRuns)都落在 profile 上,不依赖 64 个会话保留窗口。升级旧状态时,缺失计数会尽可能从仍保留的近期会话恢复为“可证明下界”,已满足的长期里程碑会静默补解锁一次(不会连续弹 toast)。
📦 安装
前置:DSH(dsh web 可运行)、Node ≥ 22.19、pnpm。
# GitHub 安装(预构建 lib/ 已提交,无需 allowBuilds)
dsh plugin --profile web add "github:luumod/dsh-achievements#main"
# 本地目录安装
cd dsh-achievements && npm install --legacy-peer-deps && npm run build
dsh plugin --profile web add ./dsh-achievements
安装后重启 dsh web,然后正常使用——完成第一个回合即解锁第一个成就。
🎮 使用
- 重启后正常对话、让 agent 干活:
- 回合完成、工具调用、新会话、每日活跃都会累计;
- 解锁新成就时右下角弹出 toast;
- 设置 → 🏆 成就:七个长期计数(回合/工具调用/会话/活跃天数/读取次数/修改次数/测试)加独立的连续天数行,七条
/5成长路线,以及分“成长里程碑 / 特殊行为”的徽章墙(已解锁带时间戳,未解锁置灰)。
🔌 开发者:ctx.achievements SDK
从宿主插件注册自定义成就(内置与第三方走同一条求值路径):
export const inject = ['achievements']
export function apply(ctx: Context): void {
ctx.achievements.register({
id: 'python-first-run',
icon: '🐍',
title: { zh: '蟒蛇出洞', en: 'First Python Run' },
description: { zh: '首次运行 Python', en: 'Run Python for the first time' },
rarity: 'uncommon',
xp: 20,
scope: 'session',
evaluate: ctx => ({ unlocked: ctx.session.toolCalls >= 1 }),
})
}
也可注册整个 Pack:ctx.achievements.registerPack({ id, version, name, achievements })。重复 id 会抛异常。完整指南见 docs/SDK.md,示例见 examples/python-pack.ts。
浏览器侧,其它客户端插件通过 ctx.achievementsState.refresh() / ctx.achievementsState.unlockedIds() 读取状态。
🛠️ 本地开发
npm install --legacy-peer-deps
$env:DSH_NODE_MODULES = "$env:USERPROFILE\.dsh\profiles\node_modules"
npm run setup:dsh-workspace
npm run verify # ★ 一键门禁:clean + typecheck + test + build
npm test # vitest(引擎解锁规则/连击/幂等 + manifest 契约)
目录结构
dsh-achievements/
├── package.json # dsh.bundle.patch + dsh.client 双契约
├── cordis.patch.yml # bundle 补丁层
├── tsdown.config.ts # client bundle(__ModuleLoader__.load + 纯度门禁)
├── scripts/ # build / clean / setup-dsh-workspace / verify
├── src/
│ ├── achievements.ts # ★ 纯成就引擎(applyEvent / BUILTIN_ACHIEVEMENTS,可单测)
│ ├── state.ts # 状态持久化(DSH 主目录 JSON)
│ ├── index.ts # 宿主半:事件钩子 + HTTP API + 设置
│ └── client/ # 浏览器半
│ ├── index.ts # apply:ctx.achievements 服务 + 轮询 + 槽位注入
│ ├── achievements-client.ts # 状态 API 客户端
│ ├── badge-panel.tsx # 徽章墙(settings.section)
│ └── toast.ts # 解锁 toast(零依赖 DOM)
└── tests/ # 引擎 + manifest
🧩 生态定位
- 填补空白:DSH 生态此前无统一成就/徽章系统(仅
dsh-daily-progress有连胜/完成率),社区调研明确点名"暂无真正游戏化任务/成就/等级系统"。 - 技术路线:宿主走官方事件缝(
session/event+tools/result)驱动纯引擎;浏览器半走 client 插件(settings.section+ 轮询状态 API),与dsh-soundscape同一套双面包范式。 - 零核心改动:只读事件 + 自有状态文件 +
ctx.effect注册。
⚖️ License
MIT © 2026 Blaczz(上游)。本仓库是 Blaczz/dsh-achievements 的 fork,在其基础上新增行为成就、ctx.achievements SDK 与分享层;若上游 PR 合并,本 fork 将归档并让位于原仓库。独立社区插件,与 DeepSeek Harness 无关。
链接
同类插件
Nagi-ovo/dsh-ads★ 421
2005 年中文站点风格的整活广告插件:侧栏广告/信息流/角落弹窗 + 假关闭叉,素材全虚构。
vlln/whale-girl★ 173
桌面宠物(QQ 宠物形态):右下角悬浮、可拖拽/投喂/玩耍。
PC2005-cloud/dsh-pet#dsh-pet★ 48
DSH Web UI 桌面宠物:25 个透明动画、屏幕漫游、点击反应与拖拽,附可复现的素材生成链。
Awu12277/dsh-stock-watch★ 22
A 股自选股实时行情盯盘插件:在 DeepSeek Harness(DSH)Web 界面的右上角显示一个可折叠弹窗,实时监控自选股行情、切换分组、查看分时与 K 线、设置买卖目标价。
lhh010/dsh-minigames★ 18
右侧小游戏面板:18 款离线小游戏,等模型回复时的摸鱼神器。
hellodigua/dsh-emoji★ 17
为 AI 回复自动添加表情。