dsh-llm-probe
No description
- Stars
- 0
- Language
- TypeScript
- Created
- Oct 15, 2026
- Updated
- Oct 15, 2026
Introduction
dsh-llm-probe
一句话:把任意 OpenAI 兼容端点当测量装置跑实验——只回读数,正文落盘不进上下文。
为什么值得用:手写脚本跑实验的根因是正文会灌爆上下文(一次 30 条 prompt 的回复就能吃掉几万 token)。本插件只把读数带回上下文(调用数/失败数/延迟分位/字符数分布/正文 sha256/落盘路径),正文写进 JSONL 留给事后分析。配 llmprobe_calib 的「标定先行」——在测因变量之前先验证「档位真的构成梯度」(这一条是三轮实验作废换来的纪律)。
工具
llmprobe_run:对任意 OpenAI 兼容端点跑一批 prompt(prompts × reps),只回读数:调用数/失败数/延迟分位/字符数分布/正文 sha256/落盘路径——模型正文写进 JSONL 落盘、不进上下文(今晚手写 8 个脚本的根因就是正文会灌爆上下文)。给 extract 正则时额外回抽取值的分布统计。端点不可达 ⇒ ok:false + 原因(不是空结果)。llmprobe_calib:标定先行(今晚三轮实验作废换来的第一纪律):在测因变量之前,先验证「档位真的构成梯度」。对每档一个条件(如不同的 system),跑同一批探针,算各档指标均值与档间最大差 disp,再与调用者显式给定的无分辨力线比较,回三态裁决:has-resolution / no-resolution / apparatus-down。noiseFloor 必填且无默认——判据不可代填。
生态契约
依据《DSH 插件生态倡议书》三条原则:组合优先 / 声明清晰 / 兼容优先。
- 依赖 service(
inject):tools—— 组合行装载时等待这些 service - 贡献面:工具
llmprobe_run·llmprobe_calib;slot 无;service 无 - 组合行 id:
agent-llm-probe - Fabric manifest:
dsh-plugin.json(RFC 0001 v0.1 Draft 形状)——id=com.jonah791.llm-probe,required = (无),optional = (无) - Fabric 入口:
src/fabric.ts→lib/fabric.js(骨架,不依赖 DSH/Cordis;Fabric SDK 发布后填充实现)
⚠ 不是认证:Fabric 目前只有文档草案(无正式 schema、无 SDK、无 conformance 套件),因此不得声称本插件 「通过 Fabric 认证」或「已符合 Fabric 标准」。对齐的是 RFC 0001 的 manifest 形状 + 可机械校验的明文规则;
dsh-plugin.json的$schema是自证 draft 的占位,Phase 0 发布 canonical identifier 后替换。
组合片段(cordis.patch.yml):
- insert:
- id: agent-llm-probe
name: dsh-llm-probe
config: {}
能力边界(诚实声明)
本插件与宿主同进程、全权限运行。「能力声明」用于兼容判断、用户确认与审计,不构成安全沙箱——不要把它当权限边界。 本插件不导入其他插件或宿主的内部路径(组合优先),也不覆盖别人的内部实现。
两个面,别混淆
- Fabric 契约面:
dsh-plugin.json+src/fabric.ts(host entrypoint)。这是前瞻声明——Fabric 目前只有 RFC Draft, 没有正式 schema / SDK / conformance 套件,官方docs/plugin-development.md明示其尚不能作为依赖或发布目标;$schema是自证 draft 的.invalid占位(RFC §14-1 未定 canonical identifier),不是 schema 校验通过,也不是认证。 - DSH/Cordis 面(非标准扩展路径):
src/index.ts+cordis.patch.yml——本插件现在真正可运行的形态。tools不在 Fabric v0.1 的 capability 表内(v0.1 只有 host.info / log / 生命周期取消 +storage.local/commands/messages.observe), 故这属标准之外的扩展路径:不得当作可移植 API,也不得成为 Fabric entrypoint 的依赖。
构建与挂载
pnpm build
# 挂载到 web profile(dsh plugin-manager 或 plugin_mount)
快速开始
1) 装依赖:
"dsh-llm-probe": "link:E:/alice/self-plugins/dsh-llm-probe"
2) 挂组合:
- id: agent-llm-probe
name: dsh-llm-probe
config: {}
3) 30 秒验证:llmprobe_run {url: "http://127.0.0.1:8095/v1/chat/completions", model: "qwen3.8-27b", prompts: ["1+1="], maxTokens: 8} → 应返回读数(调用数/延迟/字符数/sha256/落盘路径)而不是模型正文;给一个不存在的 URL 再试 → 应 ok:false + 原因(不是空结果)。
配置
| 项 | 默认 | 说明 |
|---|---|---|
outDir | $DSH_HOME/llm-probe | JSONL 落盘目录(正文写这里,不进上下文) |
⚠ 端点 URL 无默认值——必须每次显式给(防误打生产端点)。
落盘与自证
| 文件 | 何时写 | 内容 |
|---|---|---|
<outDir>/<label>-<ts>.jsonl | 每次 llmprobe_run | 每行一条:prompt / 回复正文 / 延迟 / 字符数 / sha256;正文不进上下文 |
一条命令答五问:
tail -1 "$DSH_HOME/llm-probe/"*.jsonl
# ① 跑的是哪个构建 → 见 package.json version 与 lib mtime
# ② 谁发起 → 该行的 label
# ③ 断在哪一段 → 行数 < 请求数 = 有调用失败(读数里 failureCount 会报)
# ④ 结果质量 → 正文 sha256 与字符数分布
# ⑤ 耗时与预算 → 延迟分位
生效判据与回退
判据:行为级——llmprobe_run 返回读数而非正文;llmprobe_calib 对无梯度的档位返回 no-resolution(三态互不掩盖)。
回退:① git revert + 重建 + 预检重启;② patch 行 disabled: true;③ 无状态,停用即完全静默。
测试
cd self-plugins/dsh-llm-probe && npm test
31 条用例(跑一次得到):覆盖读数统计(调用数/失败数/延迟分位/字符分布/sha256)· extract 正则抽取与无匹配计数 · 端点不可达 ⇒ ok:false + 原因(不是空结果)· 标定三态裁决(has-resolution / no-resolution / apparatus-down)· noiseFloor 缺失时拒绝。无需网络(走注入的假 fetch)。
设计要点
- 只回读数:正文落盘、不进上下文——这是本插件存在的全部理由(手写脚本的根因就是正文灌爆上下文)。
- 标定先行:先证「档位构成梯度」再测因变量——三轮实验作废换来的第一纪律;
noiseFloor必填无默认(判据不可代填)。 - 三态互不掩盖:
has-resolution/no-resolution/apparatus-down—— 「测不出」与「装置坏了」是两件事。 - 端点不可达即响亮失败:
ok:false+ 原因,绝不返回空结果(空结果会被读成「测了但没有效果」)。
相关文档
docs/semantic.md—— 权威契约(定位/反定位 · 验收表)- 中心仓:alice-digital-life(本插件归 认知层)
- 相关技能:
llm-measurement-instrument(把 LLM 当测量装置时的偏差操纵与判据校准)
License
MIT © jonah791
本插件属于爱丽丝 DSH 自研插件生态(alice-digital-life · 73 个插件 · 8 个模块):单一职责、独立仓库、独立可用。