在每条 AI 回复末尾显示本次调用的模型指纹
25.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/6 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Bortor/dsh-fingerprint-show该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 74 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/10) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 显示调用模型指纹
- 侧边栏展示指纹
README
由 DeepSeek 最新模型翻译生成dsh-fingerprint-show
一个 DeepSeek Harness(DSH)插件:捕获每次模型调用的提供方模型指纹(OpenAI 兼容的 system_fingerprint 字段),并在 Web UI 中每条 AI 回复的指标行末尾以纯文本显示。
功能
- 完整指纹文本 — 每条有指标行的 AI 回复末尾以纯文本追加该次调用实际的模型指纹(如 … 127 tok/s · 0123456789abcdef0123456789abcdef),完整不截断、无按钮、无图标、无复制交互;
- 样式与原生一致 — 字体 14px、行高 24px、三级灰色(--dsw-alias-label-tertiary)、10px 圆点间距,与指标文本像素级统一;
- 悬停同步 — 指纹与 时间 · 用时 · 首 token · tok/s 指标文本同生同隐:悬停或聚焦消息时一起淡入,移开一起消失(与框架原生行为相同的 80ms 过渡);
- 历史保留 — 中途切换模型后,每条回复各自标注当时实际生效的部署;
- 悬停提示 — tooltip 显示模型 id、提供方与调用时间;
- 零侵入 — 不修改会话日志、不进入模型上下文、不影响 KV 缓存。
展开完整文档(README 剩余 1 节)
dsh-fingerprint-show
一个 DeepSeek Harness(DSH)插件:捕获每次模型调用的提供方模型指纹(OpenAI 兼容的 system_fingerprint 字段),并在 Web UI 中每条 AI 回复的指标行末尾以纯文本显示。
功能
- 完整指纹文本 — 每条有指标行的 AI 回复末尾以纯文本追加该次调用实际的模型指纹(如 … 127 tok/s · 0123456789abcdef0123456789abcdef),完整不截断、无按钮、无图标、无复制交互;
- 样式与原生一致 — 字体 14px、行高 24px、三级灰色(--dsw-alias-label-tertiary)、10px 圆点间距,与指标文本像素级统一;
- 悬停同步 — 指纹与 时间 · 用时 · 首 token · tok/s 指标文本同生同隐:悬停或聚焦消息时一起淡入,移开一起消失(与框架原生行为相同的 80ms 过渡);
- 历史保留 — 中途切换模型后,每条回复各自标注当时实际生效的部署;
- 悬停提示 — tooltip 显示模型 id、提供方与调用时间;
- 零侵入 — 不修改会话日志、不进入模型上下文、不影响 KV 缓存。
工作原理
DSH 自带的 DeepSeek 适配器把提供方 SSE 翻译成框架内部的 StreamChunk 协议,响应级元数据(包括 system_fingerprint)在这一步被丢弃,因此 llm/stream 瀑布事件里看不到指纹。本插件在两个互补的接缝上工作:
1. fetch 包装(主机侧)— 所有适配器最终都走全局 fetch。插件 tee 每个匹配 chat/completions 的响应体,从 SSE 分支中提取 system_fingerprint,另一分支原样交还适配器。
2. llm/stream 瀑布监听(主机侧)— 提供 (sessionId, model, purpose)。
每次流式调用恰好对应一个提供方请求,观测按「同模型优先、时间最近」关联到进行中的瀑布调用。
3. HTTP 路由(主机侧)— 通过 ctx.webServer.register() 在 Web 服务上暴露 GET <pathPrefix>/api/observations?sessionId=…&limit=…。之所以不用自定义会话事件:持久化读取层会拒绝未知事件类型且 Session.append 不支持 ignorable 标记;Remote 命名空间则需要构建期代码生成。
4. 消息内文本(浏览器侧)— 客户端半区注册 conversation.chat.assistant-actions 槽位条目(定稿 AI 消息的操作条,与复制/分支按钮同区),按时间单调对齐观测与消息——每条消息取「开始于该消息落盘之前、且未被更早消息消费」的最新观测——以纯文本渲染在指标行末尾;可见性与指标文本同步(悬停显示)。样式完全镜像原生时间文本(font-size:14px、line-height:24px、三级灰色、圆点仅右侧 10px 边距、左侧间距由行的 flex gap:10px 提供)。
安装
前置条件:已安装 dsh CLI 与 pnpm。
git clone <this-repo> dsh-fingerprint-show
cd dsh-fingerprint-show
pnpm install # prepare 钩子自动构建 lib/
dsh plugin --profile web add <path-to-checkout> # 插件包目录本身的绝对路径,或 .
注意 add 的参数是插件包目录本身。在仓库目录里执行 add ./dsh-fingerprint-show 会把链接指到不存在的子目录(pnpm 会照常记录依赖但 bundle 层不会生效)。
装好后用 dsh --profile web --dump-config 确认输出里有 == dsh-fingerprint-show 一层。
重启 dsh web 后,发起一次对话;把鼠标移到 AI 回复上,指标行末尾会出现 · 完整指纹 文本。
插件只在 web profile 下激活(依赖其 webServer 服务);headless profile 中保持休眠。也可以用开发模式快速试用:
dsh web --patch ./cordis.patch.yml(需先把 patch 中 name: 改为指向
src/index.ts 的绝对路径)。
配置
在 profile 的 cordis.patch.yml 或 --patch 覆盖层中按 id 覆盖该行配置:
- id: fingerprint-show
config:
pathPrefix: /dsh-fingerprint-show # HTTP 路由前缀 matchPatterns: # 对请求 URL 做子串匹配
- chat/completions
maxObservations: 500 # 进程内环形缓冲容量
注意:patch 会整行替换 config,覆盖时请重述全部需要的键。
诊断
浏览器直接访问 /dsh-fingerprint-show/api/observations(同源)可查看捕获结果:
{
"observations": [ { "fingerprint": "…", "model": "…", "sessionId": "…", "time": 123 } ],
"stats": {
"matchedResponses": 2, // 被拦截的匹配响应数 "capturedFingerprints": 2, // 成功提取指纹数 "parsedChunks": 2, // 解析的 SSE 载荷数 "inflightCalls": 0, // 进行中的瀑布调用数 "totalStored": 2 // 缓冲中观测总数 } } 若 matchedResponses > 0 而 capturedFingerprints = 0,说明提供方响应里没有 system_fingerprint(自建/代理端点常见);lastPayloadSample 会给出最近一次无指纹响应的首个 SSE 载荷样本。
已知限制
- 并发同模型调用(如同时运行的子代理)之间按「时间最近」归因,极端并发下可能归属到相邻调用——但指纹本身标识的是模型部署版本,值始终正确;
- 辅助调用(会话标题、压缩)带 purpose 标记,匹配时排除,不参与消息标注;
- 指纹由提供方返回,非 OpenAI 兼容的自建端点可能不携带该字段(此时不显示);
- 只在有指标行(timing)的消息上显示,无指标文本的消息不显示指纹。
开发
pnpm install
pnpm run build # esbuild → lib/index.js (Node ESM) + lib/client.js (浏览器 lazy-CJS)
pnpm test # 主机流水线 + 客户端 bundle 冒烟测试
客户端半区必须构建为 DSH 模块加载器的 lazy-CJS 工厂形式
(window.__ModuleLoader__.load({id, factory})),见 scripts/build.mjs。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Bortor/dsh-fingerprint-show
在每条 AI 回复末尾显示本次调用的模型指纹
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,928已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目