Files
云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 2a6bf8c929 feat(pi-overflow): 新增统一的新工具结果展示截断扩展
此前截断分散在多层且互相冲突:Pi bash 保留尾部 50KB,RTK 兜底截断又只留
开头 12000 字符(砍掉报错与完整输出路径),pi-chrome 截开头 30K,web_fetch
各 provider 不一致。新扩展统一负责"新结果给模型看多少":
- capture.ts 最先加载暂存原文,index.ts 最后加载(system-prompt 之前)
- 超过 24K 字符时原文落盘 <agentDir>/my-pi/pi-overflow/(700/600、原子写),
  优先取 bash fullOutputPath 完整文件;模型看到 头 + 中段信号行 + 尾 的有界
  视图,行号基于落盘原文、结尾永远可见
- overflow_query:按 id 正则搜索、行区间、jsonPath 只读查询,id 校验防穿越
- 收编:RTK truncate 默认关闭、删除 pi-chrome truncateText、web_fetch 默认
  每页 20000(上限 100000)、web_search max_results 限定 1–20
- pi-compaction 遮蔽带 details.overflow.id 的结果时在占位符提示 overflow_query
- 登记 tools.jsonc / routing / 权限 allow / tool-search 常驻与分组

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-21 20:25:44 -07:00

2.6 KiB
Raw Permalink Blame History

上游来源(多个)

本包由 my-pi 直接维护,组合了两份独立许可的来源,并新增了一套本地 Context Authority。

pi-condense 参考

  • 官方仓库:https://github.com/jjuraszek/pi-condense
  • 快照:59c95110aacd8131db71e21296765dd80b72fae8
  • Tag/版本:v2.9.1
  • 作为行为与摘要器可靠性参考使用。新的 segment/index/runtime 实现为本地实现,且有意不保留旧格式。
  • 许可证:LICENSES/pi-condense-MIT.txt

Pi Codex compaction 源码

  • 官方仓库:https://github.com/ogulcancelik/pi-extensions
  • 包路径:packages/pi-codex-compaction/
  • 快照:c4d6ca8fb484ba51684296ba8b4715f8c7b3ac91
  • 快照时版本:0.1.4
  • 导入源码:src/native-compaction.ts 中的远端压缩协议、Response API 转换、保留辅助函数、重试解析和请求净化。
  • 本地改动:统一 checkpoint kind/version,移除 raw-branch effective-input 构造与旧 checkpoint 解析,导出共享消息投影,使保留用户预算可配置,并重命名客户端 user agent。
  • 许可证:LICENSES/pi-codex-compaction-MIT.txt

不得以 npm tarball、npm 缓存、node_modules、构建产物或嵌套 Git 元数据作为导入源。

Sub2API 协议参考

  • 官方仓库:https://github.com/Wei-Shaw/sub2api
  • 参考 commit:ab99d56e9626e6cd731592dae8553c9758a0efa2
  • 协议证据:backend/internal/service/openai_compact_body_signal.go 指出原生远端压缩 v2 为 Responses 加 stream: true 与 compaction_trigger,并处理 Codex beta 特性。
  • 本地 src/native-provider.ts 适配器是针对该协议独立实现的。没有导入任何 Sub2API 源码;复用现有 Codex 序列化器、流解析器和 checkpoint 格式。
  • 该参考描述的是上游能力,不构成对任何特定部署、模型或账号的保证。本适配器不使用单独的 Responses compact 端点。

本地改动记录

  • 上下文管理重构为 L2/L3:L2 在上下文压力下经 turn_end 提交 Pi 原生 context_edit,把保护窗口外的旧 toolResult 批量遮蔽为指向 context_tree_query 的确定性占位符(原始条目保留、不写 custom entry);L3 只在空闲 agent_settled 且达到绝对 token 阈值(受窗口比例约束)时调用一次 ctx.compact。删除逐条确定性存根、后台语义 worker、softRatio/hardRatio/targetRatio 配置与 session_before_compact 的自行阈值取消;Pi 原生阈值压缩保留为最终安全网。
  • L2 遮蔽占位符联动 pi-overflow:被遮蔽的 toolResult 若携带 details.overflow.id,占位符末尾追加 overflow_query {"id":"…"} 恢复提示。