Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Cross-session memory for AI coding agents via six tools; local-first SQLite store.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"mneme-memory": {
"command": "npx",
"args": [
"-y",
"mneme-memory"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add mneme-memory -- npx -y mneme-memoryวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"mneme-memory": {
"command": "npx",
"args": [
"-y",
"mneme-memory"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"mneme-memory": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mneme-memory"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ผู้ลงทะเบียน (modusensus) ไม่ใช่เจ้าของ repo (slow-stack) อาจเป็นคนอื่นที่นำมาลงต่อ
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 0 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 44 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Context7, Codebase Memory, Exa
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
dsh-mneme
🌏 简体中文 · English
dsh-mneme 是 DeepSeek Harness (DSH) 的跨会话记忆插件。它不只「存得下」,更「管得好」:后台自动去重合并、矛盾先冻结等你裁决、全程可回放审计、记忆只落在本机,还支持导出成人可读的 Markdown。
Mneme(Μνήμη)源自希腊记忆女神 Mnemosyne。她掌管记忆与梦境——正如
autoDream在后台默默巩固你的记忆库。
| 日期 | 版本 | 头条 |
|---|---|---|
| 2026-11-05 | v0.11.0 | 记忆开始读得懂一个仓库 — 这一版把仓库地志(chorography)从零推到能看能查:读一个 JS/TS 仓库的文件树与 import 图,划分模块、在 /.chorography/ 下写出 Markdown 地志页(T0 骨架零模型零网络,plan.yaml 做正面控制,CHORO:HUMAN 保留区跨重生成逐字节存活),再由 T1 逐模块跑一次 headless 会话补上架构/约定/技术栈/构建四段语义正文与可核验的 claims——生成吃的是宿主已有的模型额度,不要求额外模型商密钥。消费面三张脸同时接上:面板第二座位、三个只读工具、/choro/* 读路由,以及每轮开局那一小块标题级提纲注入与只读 /choro 命令(只提示过期、绝不自动重跑)。chorographyEnabled 默认关,wiki 行与记忆行物理隔离、永不进巩固与质量过滤的任何行池。另修 #573:宽态侧栏的记忆入口落在「更多」行下面,点开更多时被菜单盖住。 |
| 2026-11-03 | v0.10.1 | 打开记忆详情不再崩掉整个宿主 — 0.10.0 里点开侧边栏任意一条记忆的详情抽屉,渲染进程立刻抛 ReferenceError: provenance is not defined,整个宿主跟着重启、进行中的会话被打断,100% 复现(#553)。根因是两个隔了三千多行的组件:MemoryDrawer 的归因 effect 与渲染块在读 provenance / setProvenance,而那句 useState 落在了同文件上一个组件 EntityPanel 里——EntityPanel 里那份是纯死代码,整个函数体除声明外对 provenance 零引用。这个形状躲得过眼睛(隔三千行、同名 state 看着完全正常)、语法检查(provenance 是合法标识符,只是不在作用域里)和原有用例(只读源码字符串,从不执行组件),所以补的不是「锁一个名字」的用例,而是按组件扫「调了 setXxx( 却没有声明」。同版带上 v0.10.0 之后合入的图谱锚定层收尾(#24):Tag 与向量两路起点接线、被动确认补上复核出口 |
| 2026-11-02 | v0.10.0 | 记忆开始按「哪一轮」算账,而不只是「哪一段」 — 这一版补的都是同一件事:给已经发生的事补上它自己的身份。① 蒸馏有了运行身份(#512):此前归因只到「会话区间」——那是输入的坐标,不是运行的身份,于是「这段原文被重蒸过几次、哪一轮失败了」库里一个字都没存。现在窗口级记 distill_runs(含 ok/degraded/noop/failed/aborted 与 audit_id),行级另开 memory_mints 记「这条记忆出生自哪一轮巩固」;历史行一律留空不猜,模型流失败与解析失败也真记一行。② 溯源补上反方向(#524):GET /memory/provenance?sessionId= 让「这个会话蒸出了哪几个窗口」可直接查,此前只能从一条记忆往回找;两个主键互斥,limit 越界直接 400 而不静默截断,撞上限带 truncated: true。③ 闸门落到单个会话(#539):sessionGateEnabled 让指定会话与子代理「不进不出」(不注入、不蒸馏,memory_* 与 set_scope_state 调用一律被拒),其余会话照常——此前能关的只有全局,关插件会连带打死别的会话。子代理判据只认宿主自己的委派标记,parentSession 不是判据:本机 641 个真实会话头逐条核过,用它会把 3 个 fork 出来的主会话判成子代理。④ 防谄媚补到写入面(#530):蒸馏与总览的提示词此前对谄媚一字未提,而这两处写出的内容完全不过写入准入——现在补上「立场纪律」四条(不记对用户性格能力的评价、助手推断不写成事实、冲突如实记录、importance 只看事实对后续工作的影响面而不因用户满意或情绪抬高)与「叙述纪律」,且排在与时间换算的指令之前。另修 differentiate 的正反馈闭环(同一段注记追加到两侧正文 → 向量靠拢 → 下一轮再判重复,实测单条堆 19 段、正文膨胀到 2200+ 字,现在只落账本不改正文,#533)、sleep 冲突相位的输入侧预算与续排(单请求曾打满 163,054 / 163,840 token,分批后隔夜才轮到,现在一轮跑完接着追,#529)、面板「最近巩固」不再把一次整理的回执冒充巩固(#495),以及面板在 320–519px 上原本根本没有断点(#542)。 |
| 2026-10-30 | v0.9.5 | 记忆能安全地递出去,也能整包收回来 — 「分享记忆」从一个文件变成有协议的动作(#386):包只含活跃行,scope 与 home 前缀不进包,命中密钥 / PII 的行整条不进;出包先给报告再给文件,超水位回 413、按类型或标签分批;收包一条不合格整包拒、干跑为默认、按 share_external_id 幂等,undo-share 整包物删,所以收回后还能再导。来源也第一次可查:GET /memory/provenance(#421,@z2Ace0107 实现),409 与 503 分开答「用户关了」与「装配坏了」。另修同标题重复入库(#505)、扫描谎报「没东西可扫」(#515)与未围栏的巩固 prompt(#501)。 |
| 2026-10-21 | v0.9.4 | 三条链各自补上「最后一环」 — 这一版的三件事同一种形状:东西早就造好了,只差没人能叫它。① agent 主动整理(#231):引擎在 v0.8 就落在 src/organize.js(先 dryRun 出比对报告 → agent 判断 → apply 落库,筛除只归档不删,全程复用 dream_runs 回执),可它没有任何调用入口——工具表里没有它、两张 API 脸 0 命中、全仓 .organize( 零调用点,只有测试能调到。现在它有工具了:memory_organize,organizeEnabled 默认关(关 = 工具根本不注册,模型看不到就不会调)。② 画像能被反向提取了(#497):面板「用户画像」加一个按钮,读活跃记忆、花一次宿主模型调用,产一段「助手眼中的用户」草稿——只出草稿:采用是你在面板上再点一次,你手写的原文不会被模型改写;空库和模型不配合都直接报错,绝不回一张空草稿冒充「这次没提炼出东西」(profileExtractEnabled 默认关)。③ 人格不再无条件进别人的会话:default 卡以前会落给所有没建卡的身份,于是宿主里自带身份的外部 bot 每一帧都收到两句「你是谁」撞在一起,而界面上「关掉这张卡」实际不生效——新增 personaStrictAddressing(默认关,历史行为逐字节不变)把「身份没建卡」与「卡被显式关掉」都收回到不注入。同版补上蒸馏的转录围栏 + 解析失败护栏(#494:一条会话被同一个窗口卡死、重试 20 次越试越贵的根因;失败行现在恒带原始输出形状,事后能回答「模型到底吐了什么」),并把面板里那段自称「注入生效文本」的只读区改成由后端渲染——它以前既没有人格三行也没有表头和前缀,标题却承诺了模型实际看到的东西。 |
| 2026-10-20 | v0.9.3 | M.O. 从「挖得出来」跑到「会被叫去挖」 — 沉淀链的算法自 v0.9.1 起就写完了(多帧 zstd → 重复序列 → 缺席对照 → draft 草稿),可它在运行时没有任何调用点:全仓引用只出现在测试里。机器挖得出来、却永远不会被叫去挖——缺的从来不是算法,是归属与触发。这一版把三处接上:按会话头里的 cwd 反查项目桶(桶名是路径的有损变形,规则不在本仓,查不到就整跑跳过,而不是降级成全局普查——后者会把 A 项目的动作算到 B 头上,且结果看起来完全正常);新增 nudgeForProject 把「归属 → 挖掘 → 落盘」收成一个入口;挂 turn/end 按项目跑,冷却 10 分钟、单次预算 4 秒、延到宏任务、一次一个项目、抛错只 warn。它只产提议,不产草稿(#489):升格仍然要人批,面板也多了「现在沉淀一次」,与自动跑同一条入口、区别只有不改仓库。同版修掉三处「坏了却不报」:作用域反查自 v0.8.0 起每次都抛错走降级、canonical 归一与成员校验静默失效(#487);/nudge 的写盘口只拦 PUT/POST,带 token 的 PATCH/DELETE 会静默写盘、归属解析不看预算、桶名边收边截把「没看全」报成「确实没有」;多帧 zstd 的反证断言绑了 Node 的整块解语义,24.22.0 起过期(#490)。 |
| 2026-10-19 | v0.9.2 | 让「看不见的失败」显形 — 这一版修的大多不是「缺功能」,是「坏了却不报」:功能开关一直是启动期生效,面板「已改」只说明值进了库,于是新增第三态「待重启」(#481);巩固的 dreamMaxTokens 默认值被原样当 max_tokens 发出去,撞上服务商上限后 180 次巩固 0 次成功,现在面板能改、超上限还会按服务商自己声明的上限自动降级(#478);自动蒸馏写入的行 100% 拿不到向量,注释承诺的「提交后补跑」从未存在(#477);CLI 把 -- 开头的值当成新旗标——这个缺陷只在 token 前两位恰好掷中 -(约 1/4096)时现形,潜伏了整整一个发布周期。另新增作用域级可逆闸门(#471,默认关):让一路记忆能被单独按下与松开,不改配置、不重启。 |
只记大改动,逐条细节见 CHANGELOG。
每次新开对话,AI 都像第一次认识你?
dsh-mneme 给 DeepSeek Harness 装上跨会话记忆。 你聊过的项目、提过的偏好、做过的决定,AI 都记得——即使关掉了窗口,下次打开还在。
| 场景 | 没装插件 | 装了插件 |
|---|---|---|
| 周一聊完项目需求,周三继续 | "能再描述一下你的项目吗?" | "你指的是上周提到的博客重构吗?当时你说想用 Astro。" |
| 告诉 AI 你的编码习惯 | 每轮都要重复交代 | 一次设定,长期生效 |
| 整理大量资料后关窗口 | 资料丢了 | 自动归档,随时检索找回 |
但 dsh-mneme 的可信之处,恰恰在你看不见的后台。下面这些,才是它和「一个会存东西的插件」的本质区别。
scopeEnabled 开启后,每条记忆标注由哪个 agent、在哪个工作区写入;检索时本会话作用域优先(命中加权,他 scope 降权仍可见);strictScope 再进一步——显式声明收窄到他者作用域的记忆在检索/注入里完全不可见(载体自动标注只降权,不硬挡)。多 Agent、多项目互不串台。embedProvider 设为 local 后检索走本地 Embedding 与精排,不需要 API Key;没配嵌入时关键词 / BM25 检索照样能用。.md 文件,随时打开编辑;人工改动会被优先尊重,不会被机器覆盖。它和 Zep / Mem0 / Letta / Hindsight 比呢? 有一张逐项对照表——存储底座、检索、写入时抽取、离线巩固、冲突处理、遗忘、作用域、可审计性、多宿主、离线、许可证共 11 行,「—」不等于「差」:能力对比。
# 安装插件(最省事的一条:npm 包名)
dsh plugin --profile web add @modusensus/dsh-mneme dsh web
DSH 的 设置 → 插件 → Add plugin 与 dsh plugin add 认四种写法,填进去的是什么就装什么。本仓库是个单仓多包:仓库根那份 package.json 只是仓库壳(private、不带 dsh 字段),真正可安装的插件本体在 dsh-mneme/。所以走 Git 或 tarball 时必须指到子目录,否则装到的是壳本身。
为什么仓库根要放一份装不了的壳?因为有些单仓多包探测器(比如 dshfind 的插件探测)只认仓库根的清单——没有它就会把本仓库判成「不可安装的插件包」,而这句判词与实际上能不能装无关。根清单
private+0.0.0+ 不带dsh字段,就是为了让这类工具能找到子包、同时绝不被当成插件本体安装或发布。
| 来源 | 填什么 | 备注 |
|---|---|---|
| npm 包名 | @modusensus/dsh-mneme | 推荐;可带版本 @0.9.0 |
| Git 仓库 | git+https://github.com/slow-stack/mneme.git#path:/dsh-mneme | #path: 不可省。省掉装到的是仓库根那份壳(0.0.0、无 dsh 字段),宿主不会把它当插件 |
| tarball | C:\\path\\to\\modusensus-dsh-mneme-0.9.0.tgz | 在 dsh-mneme/ 里 npm pack 产出;pnpm pack 会因 bin 脚本 CRLF 失败 |
| 本地目录 | C:\\path\\to\\mneme\\dsh-mneme | 必须是绝对路径;相对路径会被宿主直接拒掉(a local path must be absolute) |
# 从源码装(本地目录,改完代码重启即生效)
git clone https://github.com/slow-stack/mneme.git dsh plugin --profile web add "$(pwd)/mneme/dsh-mneme"
dsh plugin --profile web add 'git+https://github.com/slow-stack/mneme.git#path:/dsh-mneme'
面板里那行「Install guide and examples」只演示了包名一种写法;上面四种都是实测通过的。Git 与 tarball 来源在安装时宿主会做一次仓库可达性检查(超时默认 5 秒)。
装完即可用。想在 5 分钟内看到它的价值:
| 需求 | 配置项 | 默认值 | 改法 |
|---|---|---|---|
| 完全离线运行 | embedProvider | openai | 改为 local |
| 后台自动整理记忆 | autoDream | true | 改为 false 可关 |
| 自动提取结构化实体 | entityExtractionEnabled | false | 改为 true |
| 多 Agent / 多项目记忆隔离 | scopeEnabled(需要更强隔离再加 strictScope,硬隔离只对显式声明生效) | false | 改为 true |
以上均在 DSH 设置面板 → 记忆库设置 中修改。完整配置见 配置章节。
记忆库默认在 ~/.dsh/memory,天然在宿主 profile 作用域之外;但真实落点由 memoryDir 配置决定。若把它指进 profile 作用域(形如 …/profiles/<名字>/…),宿主清理或迁移 profile 时记忆库会被连带带走(#218 末楼记录的实际事故)。插件启动时检测到这种落点会打一条告警——只提示、不搬库。安全做法:memoryDir 保持在 profile 之外(默认值即可);要迁移库 = 停止写入 → 复制整个目录 → 改配置指向新位置 → 重启。
写入 ──► 质量过滤(无用信息先拦下)
│ ▼ SQLite + 本地 Markdown 镜像 │(空闲时) ├─ autoDream :去重 / 合并 / 归档 / 修正 / 冲突冻结 └─ Sleep Mode :分层压缩 + 模式发现 + 关系补全(可关) │ ▼ 召回(混合检索 + 精排)──► 注入会话上下文
记忆库记得住为什么这么做,但记不住这件事到底怎么跑。工作流住在哪,决定了它能不能被改:住在记忆库里是一行没有 diff 的文字,住在会话里是一次性的提示词,住在人脑里改不动也不留痕。
所以 v0.9 把它们搬进项目仓库——一条工作流一个文件:
<项目>/.mneme/pipelines/<id>.json ← 项目层(能提交、能 diff、能 PR、能被 CI 读)
<插件包>/pipelines/ .json ← 全局层(兜底,今天包里没有这个目录,这是有意的)
分工是一句话:记忆是「为什么」,仓库是「怎么跑」,图是「看起来怎么样」。
/candidates/<项目键>/,只在本地。一天长十条死九条的东西进仓库就是垃圾。升格要同时满足「走过两次(至少一次成功)」且「写得出反事实」;够格之后系统只提议,提交与推送始终是人握着的那道门。refuted / trusted / stale / candidate)全部从运行记录推,不由作者写死;今天还没有运行记录落点,所以全体恒为 candidate——这就是那个 beta 标签必须摆在脸上的原因。默认关(actionPipelineEnabled)。设计取舍与踩过的坑见 docs/WORKFLOWS.md。
面板内置中英双语,跟随你的 DSH 界面语言显示。以下为中文截图,英文版请切至文末 English 段落。
<img src="i
ตัดมาแค่ช่วงต้น อ่านต่อใน repo