@codemem/pi-extension

中文文档
0.49.1发布于 2026/11/16MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 2184

用于 pi 编码代理的 CodeMem 扩展名 — 摄入、注入和本地记忆工具

中文使用文档
文档目录6 节
  1. 安装
  2. 它会做什么
  3. 观察员衍生(v1)
  4. 配置
  5. 生命周期
  6. 同伴依赖关系

@ codemem/ pi- extension (帮助)

Pi 编码代理扩展 代码:会话摄入并转动局部内存注入.

安装

需要Pi 1.1.0或更新,低于2.0. 升级旧主机 pi update (单位:千美元)pi update --extensions 调节已安装的软件包,而不是主机.

npm i -g codemem
codemem setup --pi-only

一起更新 CLI 和 Pi 扩展,然后重新运行设置并重新启动 Pi 扩展的 CLI 折返使用分组 memory 财务报告和审定财务报表 session 命令。 老一点 如果扩展单独升级, CLI 可能不会支持这些路径 .

设置后重启 Pi. codemem setup --pi-only 只配置 Pi。 添加新设置 npm:@codemem/pi-extension@<version> 改为 settings.json packages (单位:千美元)PI_CODING_AGENT_DIR 设定时, 否则 ~/.pi/agent; 现有的已配置dev路径可能被保留。 有用的旗帜 :

旗帜目的
--pi-only只配置 pi
--pi-mcp通过第三方选择进入MCP pi-mcp-adapter (写作) mcp.json 仅在检测到时)
--pi-extension-path <path>Dev: 写一个本地路径 packages 条目,而不是 npm 针

Dev / 本地路径安装( 等同 --pi-extension-path:

{
  "packages": ["/absolute/path/to/codemem/packages/pi-extension"]
}

先盖好 dist/index.js 已存在( e)pnpm --filter @codemem/pi-extension build) (中文(简体) ).

卸载 : 删除 @codemem/pi-extension 软件包条目并重新启动 pi 。 共享记忆库保存完好.

它会做什么

  • 无礼 常会活动session_start,用户/助理消息,工具呼叫/结果) POST /api/pi-hooks (单位:千美元)source: "pi"),与 codemem pi-hook-ingest CLI回落(失败时的集合). 边界事件session_before_compact, (中文(简体) ), session_shutdown) 总是尝试 CLI 路径, 以便冲出可以运行; 失败是打开的 .
  • 注射 - 临τ context 事件,附件 a ## codemem memories 块到最近的用户消息 请求副本 (系统从不提示,从不保存会话). 更年长的用户信件重放已经为它们注入的精确字节,只为最新的未确定的消息取取出一个新的包,因此提供者的前缀缓存保持稳定. 当装包反应携带出料器时,已经抛出的物品被从新包中取出. 合同有效的HTTP或 memory pack --json 反应,包括一个零项包,获取的结束; {} 错误的躯体掉入。 这些跨度的成功记录 inject.pack.ok source=pi 到插件日志, 同一行 pi-hook-inject 当它是倒计时,写作。 决定存于记忆中: 重新开始抓取 .
  • 文件上下文 ——成功内置后 read,相关记忆可能附在该工具结果后。 读取失败并跳过其他工具 .
  • 工具 - 登记15人 memory_* 本地工具( 首选的 HTTP, CLI 倒置), 包括 memory_session_search 超过存储的 Pi 会话文本。 每一次HTTP操作首先证明取景者有目标意识(GET /api/prompt-pack-profile 必须报告此过程的 db_path + 键 identity_target)并重新将目标发送到查询上,因此端口上的一个外人或呆滞的更年长的取景者永远不会被信任(409或未经证实 ~ 有目标的CLI路径). 非专有能力 memory_remember 对模棱两可的 HTTP 失败不进行 CLI 重放( 发送后超时出/ 重置) 。 没有 pi-mcp-adapter 需要帮助。 跳过时 pi.tools_mode 实值 mcp-adapter。 。 。 .
  • 压缩 —— 说 session_before_compact 仅尝试冲出,而不返回自定义摘要. session_compact 仅当 willRetry 设置和 reason 没有 manual失败收缩, agent_settled,手动收缩,以及稍后的用户信息清除跳过。 一个阈值紧凑的跳过 只有当同一个守卫匹配.
  • 叉子/重置 ——每集重键串流身份 session_start。通过 pi.appendEntry (单位:千美元)codemem.cursor) (中文(简体) ). 召回决定留在记忆中,并在 session_start; 重新启动反切.
  • 交叉代理 ——一个共享,项目范围商店. 从OpenCode/Claude/Codex注入pi和倒置的记忆.
  • 盘子 —— pi行出现在源不可知的种子/会话/项目标签中,没有额外的设置.

工具目的和故障排除: Pi 扩展。 。 。 .

观察员衍生(v1)

设置可以填补未设置 observer_* pi 的 API- key 提供者的密钥( 便宜型- first) 。 证书只保存在内存中,从未被写入代码化配置. unconfigured (oauth-only) 当只有 OAuth 证书时, 而不是每个观察员连接的状态时, 是自动开发状态 。 单独配置观察员证书或连接,必要时由提供者或模型覆盖(观察员认证) (中文(简体) ). 明确 observer_* 配置/env总是获胜.

配置

从 CODEMEM_CONFIG 设定时, 否则 $XDG_CONFIG_HOME/codemem 或者说 ~/.config/codemem,使用现有的 config.json 接下来 config.jsoncPi 键在 pi 对象,与 CODEMEM_PI_* env 覆盖.

密钥/ 隐藏默认含义
pi.tools_mode 编号 : CODEMEM_PI_TOOLS_MODEnativenative 在此登记工具; mcp-adapter 跳过本地注册; 单独配置 MCP
pi.inject_prompts 编号 : CODEMEM_PI_INJECT_PROMPTStrue将内存包附加到每个模型请求中的最新用户信件
pi.file_context 编号 : CODEMEM_PI_FILE_CONTEXTtrue将相关记忆添加到成功的内置读取结果

共享取景器 / 注射取号( 和其他客户端相同 ) :

信封默认含义
CODEMEM_VIEWER_HOST127.0.0.1查看器主机
CODEMEM_VIEWER_PORT38888查看器端口
CODEMEM_VIEWER1启用查看器使用
CODEMEM_VIEWER_AUTO1自动启动 codemem serve start 需要时
CODEMEM_RAW_EVENTS_BACKOFF_MS10000HTTP 流失败后退后再试
CODEMEM_INJECT_LIMIT8包件限制
CODEMEM_INJECT_TOKEN_BUDGET800包装符号预算
CODEMEM_INJECT_MAX_CHARS16000最大注入块字符
CODEMEM_INJECT_RETAINED_TOKEN_BUDGET未封装会话中已经注入的区块的可选近似符号上限(估计为 ceil(chars / 4)) (中文(简体) ). 取消设置、 零、 负值和无效值表示没有上限; 启用时, 完全上限不附加任何新内容, 不获取任何内容, 绝不删除或切换已附加的块
CODEMEM_PI_HOOK_HTTP_TIMEOUT_MS5000最出名和本土工具HTTP超时 (ms). 不设置套装超时

示例配置 :

{
  "pi": {
    "tools_mode": "native",
    "inject_prompts": true,
    "file_context": true
  }
}

生命周期

Per pi扩展规则:工厂仅接线. 查看器自动启动和其它会话资源开始 session_start {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}然后把自己打扫干净 session_shutdown会话状态从 ctx.sessionManager.getSessionId() 每页 session_start; 持久的摄入光标持续通过 pi.appendEntry (单位:千美元)codemem.cursor) (中文(简体) ). 召回决定不是会话条目 .

同伴依赖关系

  • @earendil-works/pi-coding-agent >=1.1.0 <2 (宣布的主机对等)
  • typebox (工具参数计划)

没有 @codemem/core 或本地模块在 pi 进程内加载.

版本与发布记录

@codemem/pi-extension 共发布 30 个版本,首次发布于 2026/09/21;过去 12 个月发布了 30 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.49.1latest2026/11/16今天
0.49.02026/11/15今天
0.49.0-beta.7beta2026/11/141 天前
0.49.0-beta.52026/11/142 天前
0.49.0-beta.42026/11/132 天前
0.49.0-beta.32026/11/133 天前

其他发布通道:bootstrap → 0.0.0-alpha.0,rc → 0.46.0-rc.4,beta → 0.49.0-beta.7。

关于 @codemem/pi-extension 的常见问题

@codemem/pi-extension 是什么?

用于 pi 编码代理的 CodeMem 扩展名 — 摄入、注入和本地记忆工具

如何安装 @codemem/pi-extension?

在项目目录运行 npm install @codemem/pi-extension,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:typebox(*)、@earendil-works/pi-coding-agent(>=1.1.0 <2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@codemem/pi-extension 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@codemem/pi-extension 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@codemem/pi-extension 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@codemem/pi-extension 可以商用吗?

@codemem/pi-extension 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@codemem/pi-extension 的下载量有多少?

根据 npm 官方下载统计,@codemem/pi-extension 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,184 次,日均约 73 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@codemem/pi-extension 还在维护吗?

最新版本 0.49.1 发布于 2026/11/16(今天);至今共发布 30 个版本,其中过去 12 个月发布了 30 个;首次发布于 2026/09/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。