dsh-memelens
给 agent 装一双看懂梗的眼睛。Explain Chinese memes to an agent — meaning, origin, freshness, and how to reply.
一个 DeepSeek Harness 插件。
要解决的不是「人看不懂表情包」:AI 已经进了聊天群和评论区,但表情包在它眼里只是一串路径。
装上这个插件,agent 在用户贴图时能拿到:这图什么意思、语气、从哪来、现在还能不能用、能跟什么梗一起用、什么场合别用、以及玩梗/不玩梗两版回复。
自带 key(BYOK):插件不含模型和密钥,你填自己的视觉模型,图只发到你选的那家厂商。
三条设计主线
1. 像人一样记忆,也像人一样遗忘
缓存存的是图,记忆存的是经验。三条人类记忆的规则被显式建模:
- 间隔效应:同一个梗被回想得越多,衰减越慢。见过一次 30 天就淡了,见过五次能撑小半年。
- 遗忘是渐进的,不是开关。强度连续衰减,分「清晰 / 模糊 / 想不起来」三档。
- 想不起来就重新查一遍——查完强度会回来,正好对应人类「复述一遍就记牢」。
| 见过几次 | 半衰期 | 200 天后的强度 |
|---|---|---|
| 1 次 | 30 天 | 0.01(忘了) |
| 3 次 | 63 天 | 0.33(模糊) |
| 5 次 | 78 天 | 0.85(还记得) |
一个反直觉的推论:忘掉是功能,不是缺陷。 一个 2021 年的梗在脑子里保持满格强度,只会让 agent 在 2026 年说错话。
2. 学会梗的组合
组合不是提示词编出来的搭配,是真的被记下来的共现:两个梗在 5 分钟内被先后问到,就算它们一起出现过,本地库累加计数。下次解读时,这些历史会作为参考证据一起交给模型。
模型同时给出「能一起用」和「不能混着用」两类搭配——后者更重要,不同圈层的梗缝合在一起会露馅。
3. 学会「不玩梗」与「玩梗」的界限
每条回复建议都强制给两版:玩梗版和不玩梗版。不会玩梗的人只是无趣,分寸错了的人会得罪人。
boundary:什么场合/对谁能用,什么场合绝对别用risk:地域、性别、政治等冒犯风险,high 时直接不建议顺着玩- 置信度低时,规则自动倒向「别玩,说人话」
流水线
图片 → 指纹 → 记忆检索
├─ 想得起来 → 直接复用(0 成本),并加深记忆
└─ 想不起来/过期 → 视觉模型(你的 key)→ 结论 → 写回记忆
配置
- id: dsh-memelens
name: dsh-memelens
config:
vision:
baseURL: https://ark.cn-beijing.volces.com/api/v3 # 或任何 OpenAI 兼容端点
apiKey: ${env:ARK_API_KEY} # 建议走环境变量
model: doubao-1.5-vision-pro
timeoutMs: 45000 # 可选,默认 45s
maxImageBytes: 4194304 # 可选,默认 4MB
jsonMode: true # 可选,服务端不支持 response_format 就设 false
memory:
halfLifeDays: 30 # 可选,记忆半衰期,见上表
apiKey 支持 ${env:VAR} 插值。三个必填项缺任何一个,插件会关闭而不是抛错,调用时提示你去配。
隐私
- 图只发往你自己配置的端点,本插件不经任何第三方中转。
- 同一张图第二次调用走记忆,不再外发。
- 不落盘用户原图;库里只存结构化结论和指纹。
- 别整张聊天截图丢进来:先裁到表情包本体,超过
maxImageBytes会被拒绝并提示。
当前状态
| 环节 | 状态 | 说明 |
|---|---|---|
| 记忆模型(间隔效应 / 衰减 / 遗忘) | ✅ | src/memory.js |
| 两层次本地库(图→梗→卡片) | ✅ | src/store.js |
| 梗的组合(本地共现统计) | ✅ | src/store.js |
| 界限与两版回复 | ✅ | src/answer.js + 提示词 |
| 视觉模型调用(OpenAI 兼容) | ✅ | src/providers/openai-compat.js |
宿主工具注册 meme_explain |
✅ | src/index.js |
| 以字搜梗(来源与去处的实证) | ⏳ | 调研完成,待接入,见 research/retrieval/ |
| 感知哈希(抗压缩 / 水印) | ⏳ | 当前指纹是 sha256,转发压缩后会失配 |
| 纯画面梗(图上没字) | ⚠️ | 已知短板,只能靠模型自身知识 |
冒烟测试不联网、不需要真 key:
node scripts/smoke.mjs
安装(本地开发)
dsh plugin --profile desktop add "link:<本仓库绝对路径>"
数据
本地库在 $DSH_HOME/memelens/index.jsonl,一行一条,追加写:
{"kind":"meme","version":2,"id":"meme:我真的会谢","name":"我真的会谢","card":{"version":2,"summary":"...","origin":{"type":"社会事件"},"lifecycle":{"status":"fading"},"reply":{"meme":"...","plain":"..."}},"fingerprints":["sha256:..."],"firstSeen":"...","lastSeen":"...","reinforcements":3,"combos":{"meme:绷不住了":2}}
路线图
- 以字搜梗:query 构造 → 渠道 → 解析 → 交叉验证 → 证据打分
- 用检索到的发布时间分布,实证
lifecycle(现在只能靠模型记忆猜) - 视觉描述当 query 的二次检索(补「纯画面梗」这个洞)
- pHash 替换 sha256 指纹
-
data/公开梗库 + 贡献流程 - 20 张真图的回归集,给出「认对几张」的硬指标
许可
MIT
No comments yet. Be the first to write one.