@local/dsh-cue-bank
Cross-session memory cue bank for DeepSeek Harness: builds a persistent event-cue library (keywords, user language idiosyncrasies) and re-activates remembered event details on topic switches, mirroring human episodic recall.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:itr-del/dsh-cue-bank说明文档
阅读完整 README ↗2. 触发时机可配置
| 配置 | 默认 | 说明 |
|---|---|---|
topic.switchDetection | true | 开启话题切换检测 |
topic.switchThreshold | 0.25 | 关键词重合度低于此值视为切换(0~1) |
topic.scanEveryTurn | false | 每轮都扫描(灵敏但开销大);false 时只在切换时扫描 |
3. 匹配算法:双模式可配置
| 模式 | 成本/次唤醒 | 效果 | 适用 |
|---|---|---|---|
keyword(TF 加权穷举) | 0(纯本地) | 词面重合准确,语义弱 | 无外部 key |
vector(向量余弦) | ≈ ¥0.000025(见下) | 语义匹配强 | 有 embedding key |
auto(默认) | — | 有 key 用向量,否则降级关键词 | 推荐 |
⚠️ DeepSeek 官方 API 不提供 embedding 端点(见 issue #806),向量模式走 OpenAI 兼容接口(默认 SiliconFlow
BAAI/bge-m3)。库向量在写入时预计算并缓存,唤醒时只编码 1 条 query,不重复计费。
成本估算(bge-m3 / SiliconFlow,2026-08 行情):
- 单次唤醒:编码 query ~50 tokens ≈ ¥0.000025(每 1 万次话题切换约 ¥0.25)
- 写入时:每轮 1 次嵌入(可忽略)
- 关键词模式:零外部成本
完整配置项
| 键 | 默认 | 说明 |
|---|---|---|
storageRoot | '' | 空 = $DSH_HOME/storages/cue-bank |
matchMode | auto | auto | keyword | vector |
embedding.baseURL | https://api.siliconflow.cn/v1 | OpenAI 兼容端点 |
embedding.apiKeyEnv | SILICONFLOW_API_KEY | API key 环境变量名 |
embedding.model | BAAI/bge-m3 | 嵌入模型 |
embedding.dimensions | 1024 | 向量维度 |
embedding.timeoutMs | 5000 | 嵌入超时 |
topic.switchDetection | true | 话题切换检测开关 |
topic.switchThreshold | 0.25 | 切换阈值(关键词重合度) |
topic.scanEveryTurn | false | 每轮扫描 |
topic.maxKeywords | 10 | 每轮提取关键词数 |
inject.enabled | true | 唤醒注入开关 |
inject.maxCues | 3 | 最多注入几条记忆 |
inject.maxDetailChars | 400 | 单条细节截断长度 |
extract.enabled | true | 建库开关 |
extract.maxKeywordsPerTurn | 12 | 每轮入库关键词数 |
extract.keywordMinLen | 2 | 关键词最小长度 |
extract.userIdiomWindowTurns | 10 | 惯用词统计窗口(轮) |
extract.maxIdiomHints | 5 | 唤醒时最多提示几个惯用词 |
dbg | false | 调试日志 |
向量模式离线验证(未配置真实 key)
用本地 mock OpenAI 兼容 embedding 服务器验证代码路径,未调用任何真实 API:
- ✅ API 调用契约(POST
/embeddings、Bearer auth、OpenAI 兼容格式) - ✅ 余弦相似度算法:相关文本 0.68 vs 无关文本 0.12,阈值 0.3 命中/不误报判定正确
- ✅ 无 key 时
available=false→matchMode: auto自动降级 keyword - ✅ 超时中止(AbortController)错误处理
启用向量模式只需设置 SILICONFLOW_API_KEY 环境变量(或配置 embedding.apiKey),无需改代码或配置。