背景
pi 用 ACP 有两条路:客户端扩展(billion-context-pi)和 wire 代理(billion-context)。两者同时激活会对同一份会话双重压缩——浪费 token、产生嵌套冗余摘要、ref 体系混乱。
现状:launcher 路径已闭环(已验证)
bili pi 等所有 launcher 路径都向客户端注入 BILLION_CONTEXT_PROXY=origin(billion-context src/launcher.ts:333/337/466/2088/2124/2146)
- bcp 工厂首行检查该变量并整体让位(
src/index.ts:49-52:log [bcp] disabled 后 return,不注册工具/transform)
- 即使 settings.json 里装着 bcp(overlay 保留 packages 条目、扩展会加载),加载即让位 ✅
缺口:手动配置路径
用户不起 launcher,而是:
- 单独跑代理(
bili start / bili-proxy)
- 手动把 pi 的
models.json baseUrl 指到 http://127.0.0.1:PORT/bili/https://upstream...(或自己设 HTTPS_PROXY 但不导出 BILLION_CONTEXT_PROXY)
此时 BILLION_CONTEXT_PROXY 未设置 → bcp 全功能激活 + 代理照常压缩 → 双重压缩。
README 明确宣传 "Any agent that can set a base URL works out of the box",pi 属于此类,该组合是合理用法而非误用。
证据
- bcp 唯一的代理检测是
process.env.BILLION_CONTEXT_PROXY(src/index.ts:49),不检查 ctx.model.baseUrl
- 薄壳插件已有现成的 URL 模式检测可复用:billion-context
src/agent/shared.ts:23 proxyBaseFromUrl —— http(s) URL、首段路径为 bili、余下部分匹配 /^\/https?:\/\//(避免普通 /foo/bili/ 路径误判)
建议修复
bcp 在首个带 model 上下文的事件(session_start / 首次 context transform)上惰性检测 ctx.model?.baseUrl:命中 /bili/<scheme>:// 模式则按与 env 相同的方式让位(log + return)。env 检查保留为主信号——MITM 透明模式(HTTPS_PROXY,URL 无 /bili/ 前缀)只能靠 env 识别(见 shared.ts:38 注释),文档应提示手动用 HTTPS_PROXY 的用户同时导出 BILLION_CONTEXT_PROXY。
影响面
中等:需要用户刻意手动接线(非文档主推的 bili pi 流程),但一旦发生每轮请求都被两侧各压一遍,长会话下 token 浪费和摘要嵌套会持续累积。
背景
pi 用 ACP 有两条路:客户端扩展(billion-context-pi)和 wire 代理(billion-context)。两者同时激活会对同一份会话双重压缩——浪费 token、产生嵌套冗余摘要、ref 体系混乱。
现状:launcher 路径已闭环(已验证)
bili pi等所有 launcher 路径都向客户端注入BILLION_CONTEXT_PROXY=origin(billion-contextsrc/launcher.ts:333/337/466/2088/2124/2146)src/index.ts:49-52:log[bcp] disabled后 return,不注册工具/transform)缺口:手动配置路径
用户不起 launcher,而是:
bili start/bili-proxy)models.jsonbaseUrl 指到http://127.0.0.1:PORT/bili/https://upstream...(或自己设HTTPS_PROXY但不导出BILLION_CONTEXT_PROXY)此时
BILLION_CONTEXT_PROXY未设置 → bcp 全功能激活 + 代理照常压缩 → 双重压缩。README 明确宣传 "Any agent that can set a base URL works out of the box",pi 属于此类,该组合是合理用法而非误用。
证据
process.env.BILLION_CONTEXT_PROXY(src/index.ts:49),不检查ctx.model.baseUrlsrc/agent/shared.ts:23proxyBaseFromUrl—— http(s) URL、首段路径为bili、余下部分匹配/^\/https?:\/\//(避免普通/foo/bili/路径误判)建议修复
bcp 在首个带 model 上下文的事件(session_start / 首次 context transform)上惰性检测
ctx.model?.baseUrl:命中/bili/<scheme>://模式则按与 env 相同的方式让位(log + return)。env 检查保留为主信号——MITM 透明模式(HTTPS_PROXY,URL 无/bili/前缀)只能靠 env 识别(见 shared.ts:38 注释),文档应提示手动用 HTTPS_PROXY 的用户同时导出BILLION_CONTEXT_PROXY。影响面
中等:需要用户刻意手动接线(非文档主推的
bili pi流程),但一旦发生每轮请求都被两侧各压一遍,长会话下 token 浪费和摘要嵌套会持续累积。