跨项目检索历史压缩摘要,按需写入共享记忆库
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Juna9969/dsh-pi-billion-memory该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 36 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 7 处,展示前 7 条)
- 发起网络请求src/host.js:35
const call = (op,args,signal) => rpc.request(op,args,signalFor(signal)); - 读取本地文件vendor/extension.js:159
if (fs.existsSync(logPath) && fs.statSync(logPath).size > LOG_MAX_BYTES) { - 写入本地文件vendor/extension.js:160
fs.truncateSync(logPath, 0); - 写入本地文件vendor/extension.js:162
fs.appendFileSync(logPath, line); - 写入本地文件vendor/extension.js:706
fs.mkdirSync(path.dirname(this.dbPath), { recursive: true }); - 写入本地文件vendor/extension.js:712
if (process.platform !== "win32") fs.chmodSync(this.dbPath, 0o600); - 读取本地文件vendor/extension.js:940
const lockedStat = nativeHooks.statSource ? nativeHooks.statSource(sourceFile) : fs.statSync(sourceFile);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 跨项目检索历史摘要
- 按需写入共享记忆库
- 只读检索与显式写入
DeepSeek Harness 原生插件:把 tjp72/pi-billion-memory 移植为共享 ~/.pi 记忆库的长期记忆检索(只读检索 + 显式写入)
README
由 DeepSeek 最新模型翻译生成Pi Billion Memory · DeepSeek Harness 原生版
1.0.0 · 移植自 pi-billion-memory 0.5.3,针对 Harness 0.1.7-rc.2 / billion-context 0.1.166 的原生持久化格式适配。
把 Pi / OpenCode ACP / DSH billion-context 的压缩摘要放入同一个本地 SQLite 记忆索引。不是把 Pi 扩展直接塞进 Harness,也不是完整会话搜索器。
快速使用
- 模型工具 memory_search:跨项目检索历史压缩摘要;可传 project 精确筛选项目标签,默认 6 条、最多 20 条。中英文空格分词,多个词为 AND;少于 3 字符的词走 LIKE,其余走 FTS5 trigram。
- 人工命令 /memory status:共享索引数量、最近扫描、跳过原因和当前写权限。
- /memory sources:查看实际生效的来源白名单。
- /memory scan:增量扫描。
- /memory rescan:重新解析;不会覆盖已存摘要文字,只补入新块、刷新来源信息和消息引用。
- /memory prune 30:只提示确认语法。
展开完整文档(README 剩余 1 节)
Pi Billion Memory · DeepSeek Harness 原生版
1.0.0 · 移植自 pi-billion-memory 0.5.3,针对 Harness 0.1.7-rc.2 / billion-context 0.1.166 的原生持久化格式适配。
把 Pi / OpenCode ACP / DSH billion-context 的压缩摘要放入同一个本地 SQLite 记忆索引。不是把 Pi 扩展直接塞进 Harness,也不是完整会话搜索器。
快速使用
- 模型工具 memory_search:跨项目检索历史压缩摘要;可传 project 精确筛选项目标签,默认 6 条、最多 20 条。中英文空格分词,多个词为 AND;少于 3 字符的词走 LIKE,其余走 FTS5 trigram。
- 人工命令 /memory status:共享索引数量、最近扫描、跳过原因和当前写权限。
- /memory sources:查看实际生效的来源白名单。
- /memory scan:增量扫描。
- /memory rescan:重新解析;不会覆盖已存摘要文字,只补入新块、刷新来源信息和消息引用。
- /memory prune 30:只提示确认语法。实际删除须 /memory prune 30 --confirm;仅删除有时间戳、超过保留期的摘要,记录 tombstone,源文件不删。此操作影响 Pi 与 DSH 共享索引,不能在插件内撤销。
没有自动剪枝,没有网络请求,没有自动向提示词注入记忆。检索结果是历史资料,不是当前指令。命令不触发模型轮次;Harness 仍会记录命令执行事件。
与现有 Pi 共享什么
默认以运行 Harness 的操作系统用户 HOME 为基准:
| 路径 | 用途 |
| ~/.pi/pi-billion-memory.db | 与 Pi 共用的摘要、FTS 索引、来源水位和剪枝墓碑 |
| ~/.pi/pi-billion-memory.json | 共用配置;只读入,不自动重写 |
| ~/.pi/pi-billion-memory.sources.jsonl | 共用来源白名单;只读入,不自动重写 |
| ~/.pi/pi-billion-memory.dsh-attribution.db | 本插件额外建立的 DSH 会话 ID → cwd 归属缓存;不改共享数据库结构 |
保留 Pi 0.5.x 的 UNIQUE(source_file,block_id)、不可变摘要、mtime/size 水位、消息引用及 tombstone 语义。当前 Pi 0.5.2 可以继续使用同一兼容索引,不会被隐式升级。未知/旧版/不兼容数据库结构会拒绝打开并提示迁移,绝不删除重建。
读写连接使用 WAL、busy_timeout=5000、synchronous=NORMAL 和 BEGIN IMMEDIATE,扫描有水位比较与有界重试。支持同一台机器的多进程;不要把活动数据库放到 NFS/SMB 等网络文件系统。保持各进程使用同一规范路径,避免硬链接或别名重复索引。
检索和状态查询使用 SQLite readOnly:true / query_only,不创建索引数据库、不迁移、不扫描、不写日志。注意:SQLite 活动 WAL 数据库的只读连接仍可能需要创建或更新 -shm / -wal 辅助文件,不是逐字节文件系统只读承诺;不能对活动共享库使用 immutable=1 忽略 WAL。参见 SQLite 官方说明。
来源与 DSH 适配
共享白名单不存在时,默认扫描 Pi sidecar 与 OpenCode ACP 目录;另外添加一个不写回共享白名单的 DSH-only Bili 来源。已有白名单中的同根 Bili 条目优先,包括 enabled:false 和更窄的 pattern;Windows 大小写及可解析目录别名会归一化比较。白名单损坏/不可读时整个扫描失败关闭,而非退回宽泛默认值。空白名单仍可能有独立的 DSH 默认来源;要全部禁用,同时设置 dshEnabled:false。
原生 DSH 根目录按以下顺序确定:
1. 插件配置 dshSessionsRoot;
2. Harness Host 进程的 BILI_SESSIONS_DIR;
3. $XDG_DATA_HOME/billion-context/sessions;
4. ~/.local/share/billion-context/sessions。
默认 DSH 来源仅接纳 pluginAgent:'dsh' 的 Bili 文件。读取 v3 envelope 的 payload.state.blocks,也兼容旧版平铺 state;不索引 messages、blockContents 或 content-store。只接受 hash24 会话文件名,跳过临时文件、内容库和恢复 .fb.json。如果代理部署在另一个进程/主机、使用另一个根目录,请显式设置 dshSessionsRoot;不从路由提示猜测。
当前格式没有持久化 cwd。本插件监听/引导加载当前 Harness agent 的精确 session ID 与 header.cwd,核对文件 ID 的 SHA-256 后才归属项目;未知历史不会套用当前工作目录。之后发现精确归属时,即使摘要文件未变化也会刷新元数据。归属缓存只保留首个精确映射,避免冲突覆盖。
BILI_PERSIST=false 时没有可扫描文件。BILIENC1 加密和 BILIZSTD1 压缩文件跳过并计数;不会读取密钥、解密或额外导出明文。
白名单示例(JSONL,每行一个对象;Windows 反斜杠须按 JSON 转义,也可用 /):
{"id":"pi","adapter":"pi-sidecar","root":"~/.pi/agent/sessions","pattern":"/.jsonl.acp.json","enabled":true}
{"id":"dsh-off","adapter":"bili-session","root":"~/.local/share/billion-context/sessions","pattern":"/.json","enabled":false}
仅显式 adapter:'bili-session' 的自定义条目可以扫描非 DSH 的 Bili 摘要。支持的 glob 是 和 ,不是完整 minimatch 语法;不要使用 ..。
配置与权限
共用 JSON 配置示例(无需为默认值创建文件):
{
"scanOnStartup": true,
"maxSummaryChars": 20000,
"expandEnabled": false,
"expandMaxChars": 40000,
"expandMaxMessages": 200,
"expandMaxReadBytes": 33554432,
"excludeDirs": [],
"debug": false
}
也兼容 dbPath、sourcesPath、logPath;路径必须绝对或以 ~/ 开头。诊断仅保存在本插件内存中的有界、脱敏环形记录,不写共用日志文件。共享配置在 worker 启动时载入,改后需停用/启用插件;白名单每次维护或展开都会重新验证。
插件组合包中的 native-only 配置:
- insert:
- id: pi-billion-memory-native
name: dsh-pi-billion-memory
config:
scanIntervalSeconds: 60
dshEnabled: true
dshSessionsRoot: C:/absolute/path/to/billion-context/sessions
scanOnStartup: false
插件选项覆盖共享配置。scanIntervalSeconds:0 关闭定时扫描;正值范围 10–2147483 秒。启动和定时扫描服从全局 sandbox policy;人工维护服从明确发起命令的会话 policy。
任何索引/归属缓存写入和剪枝都要求实际 policy 为 danger-full-access。 插件不会偷偷覆盖模式,也不会用 --confirm 绕过沙箱。workspace-write / read-only 下仍可检索已有共享索引,维护命令会明确拒绝。Native 插件是受信任的 Host 代码,其直接文件/SQLite 访问不是 shell 沙箱代理;安装本插件即信任其限域实现。
隐私边界与可选展开
- 插入前完整脱敏,再截断摘要/主题;读旧索引结果时再次脱敏,避免把早期未脱敏数据直接回显。脱敏是启发式规则,不能保证识别所有秘密。旧行本身不会因此被改写。
- 扫描不跟随白名单根目录下的 symlink/junction 子项;允许根目录本身是 junction(兼容 Pi 安装布局)。同一文件句柄在读前/读后校验身份、大小和时间。Node 没有跨平台父目录句柄 openat API,因此这不是对恶意本地并发写入者的强安全边界;只允许可信用户写入来源目录。
- 单文件最多 128 MiB;Bili 流式投影丢弃原文对象,不构造原文对象树。额外有嵌套、字符串、块数量和选中数据大小限制,超限会跳过,不记录成功水位。
- Pi 入库只读 sidecar 摘要和原始 JSONL 第一行 cwd 头;OpenCode 归属库仅只读访问。
- memory_expand 默认完全不注册。显式 expandEnabled:true 后只支持 Pi 原始 JSONL:先 mode:'list' 获取索引清单,再 mode:'full',select:[1,3] 选择具体消息。每次重新验证当前白名单、文件边界和字符/消息/读取上限,输出再脱敏。没有消息引用或源文件已删时会说明缺失。不支持 DSH/Bili 原文展开。
- 取消扫描/展开采用共享取消标记;工具请求等 worker 确认静止或退出才结束。SQLite 原子操作不能立即中断,已提交的早先文件不会回滚;当前未提交事务回滚。关闭插件会排空/终止其 worker,单个 agent 结束不关闭共享 worker。
安装、备份和回滚
要求支持 native bundle 的 Harness,以及提供 node:sqlite 的 Node ≥22.19.0。本机测试使用 Node 24.21.0 / SQLite 3.53.4;多个写入者应使用包含 SQLite WAL-reset 修复的版本(3.51.3 或相应维护分支回补版以上)。
1. 首次写入前做一致性备份。包内脚本使用 SQLite online backup API,不直接复制活动主库:
node scripts/backup.mjs "C:\Users\you\.pi\pi-billion-memory.db" "C:\private-backups\pi-memory-before-dsh.db"
目标必须不存在,且脚本不会输出摘要。备份仍包含全部私人记忆,请放在受限本地目录,勿上传或混入发行包。
2. Desktop 从 Harness 插件管理入口安装本地发行 .tgz 的绝对路径,启用 dsh-pi-billion-memory 组合包。不要执行 dsh plugin --profile desktop ...,Desktop profile 由 Electron 管理。
3. 在原来的 Harness 页面刷新工具/命令列表;无需替换 Web 服务。先 /memory sources、/memory status,确认根目录和权限;需要写入时再执行 /memory scan。
4. 独立 CLI 管理的 Web profile 可用 dsh plugin --profile web add "C:\path\dsh-pi-billion-memory-1.0.0.tgz"。不要为了本插件启动第二个 GUI。
停用:在插件管理中关闭此组合包。取消未完成扫描并关闭 worker 后,共享数据保留,Pi 继续可用。卸载只移除这个包/组合包,不要删除整个 .pi,不要恢复旧的整个 profile manifest。更换同名 Host 源码版本可能受到模块缓存影响,必要时等现有任务结束再重启,而非重启正在工作的 Host。
如确实要恢复备份,先停止 Pi 与 DSH 所有连接/写入者,单独保留当前主库及 WAL/SHM,再在离线状态恢复一致性备份;不要用旧备份覆盖活动主库。恢复会丢失备份后的记忆与墓碑,不能作为普通卸载步骤。
开发与验证
无构建步骤或网络依赖;Host 的 @deepseek-ai/dsh-tools 由 Harness 原生加载器提供,且声明为 optional peer,因此普通 pnpm/npm 安装不会尝试从公共源拉取该包(它不在 npm 上)。发行包本身可在隔离目录内直接 pnpm add 安装。
node --check src/host.js
node --check src/memory-worker.js
node --test test/.test.mjs
36 项隔离 fixture 测试覆盖在线 WAL 一致性备份及:三种来源、仅摘要/原文哨兵、UTF-8 投影、拒绝损坏/编码文件、同根禁用及 Windows junction、schema/trigger/FTS 拒绝、不可变文字/引用更新/水位/CAS 重试、WAL 多 worker、tombstone、完整主题脱敏、归属合并与迟到刷新、可选展开、取消回滚、worker 致命退出/排空、原生 API 注册/权限和 150 个已有 agent 引导。测试只使用临时 HOME,不扫描真实 .pi。
正式机器的结构验证仅输出版本与计数,不输出记忆正文。最新本机安装/运行结果另见发行附带的验证记录;离线 mock 通过不等于所有外部版本均已验证。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Juna9969/dsh-pi-billion-memory
跨项目检索历史压缩摘要,按需写入共享记忆库
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1
这是你的仓库?认领条目