Skip to content

Request two capabilities: compressed block "retirement" and summary "external rewrite". | 请求两个能力:压缩块「退役」与摘要「外部重写」 #5765

Closed

Description

@ranxianglei

标题:请求两个能力:压缩块「退役」与摘要「外部重写」
背景
单会话长期运行(当前 113 块、原 166 万字、摘要 5.6 万字、视图 32 万 token)。
现状:所有块每轮全量注入,旧块(早已无关)也占位置。
需求一:块退役(retire)

  • 能力:把指定 blockId 标成 retired,从常驻上下文移除,但保留 decompress 入口。
  • 命令:acpretire({ blockId | ids }) / acprestore({ blockId })
  • 验收:acpstatus 里该块移到「Retired」段,视图总量下降对应字数;decompress 仍能取回原文。
    需求二:摘要外部重写(rewrite)
  • 能力:允许用一份更短的摘要替换现有块摘要(不重压、不重新生成)。
  • 命令:acprewrite({ blockId, summary })(或支持批量从文件读)
  • 验收:块摘要变成我给的文本,字数下降,decompress 原文不变。
    需求三:导出增强
  • 每块输出:blockId、覆盖的消息区间(mNNNNN–mNNNNN)、原文字数、摘要字数

Mirrored from ework issue #5767

Activity

  1. ranxianglei commented on Nov 5, 2026

    @ranxianglei
    OwnerAuthor

    🤖 Powered by ework · qwen3.8-27b

    [bot] (ai: vllm-qwen/qwen3.8-27b)

    进程 30 分钟无输出被强制重启,汇报状态:

    • 已落袋成果:无。工作区干净、无提交——上一轮卡在实现前的探索/验证阶段,没有留下可恢复的中间产物。
    • 方向已确认:三个能力(块退役 retire/restore、摘要外部重写 rewrite、导出增强)全部落在仓库内 kernel(acp-kernel)——块的常驻渲染、摘要存储、decompress 入口都是 kernel 状态与渲染逻辑,宿主侧没有现成 API 可挂。PR 会带 kernel-change 声明,按 Kernel Boundary 走人工评审。
    • 下一步:查重 → 按你给的验收标准直接实现(退役 = 从常驻上下文整块移除、保留 decompress/search 入口、acp_status 增加 Retired 段;重写 = 只换摘要文本不重压、原文不动;导出 = 每块 blockId + 消息区间 + 原文/摘要字数),配定向测试后开 PR。

    有阶段性结果会立即回帖。

  2. ranxianglei commented on Nov 6, 2026

    @ranxianglei
    OwnerAuthor

    Issue 草稿:压缩块「退役」与摘要「外部重写」

    标题:请求两个能力:压缩块「退役」与摘要「外部重写」

    背景

    单会话长期运行:当前 113 块、原文 166 万字、摘要 5.6 万字、视图约 32 万 token。

    现状:所有块每轮全量注入,很早以前就无关的块也占位置。

    需求一:块退役(retire)

    • 能力:把指定 blockId 标成 retired,从常驻上下文移除,但保留 decompress 入口。

    • 命令:acp_retire({ blockId | ids }) / acp_restore({ blockId })

    • 验收:acp_status 里该块移到「Retired」段,视图总量下降对应字数;decompress 仍能取回原文。

    需求二:摘要外部重写(rewrite)

    • 能力:允许用一份更短的摘要替换现有块摘要(不重压、不重新生成)。

    • 命令:acp_rewrite({ blockId, summary }),最好支持批量从文件读。

    • 验收:块摘要变成给定文本,字数下降,decompress 原文不变。

    需求三:导出增强

    • 每块输出:blockId、覆盖的消息区间(mNNNNN–mNNNNN)、原文字数、摘要字数、当前状态(active/retired)

    • 可选:携带原文,或提供按块导出原文的命令。

    边界

    • 不改动存储格式、不影响已有块可解压

    • 两个操作都要可回滚(retired → active;rewrite 保留旧摘要)

  3. changed the title [-]请求两个能力:压缩块「退役」与摘要「外部重写」[/-] [+]Request two capabilities: compressed block "retirement" and summary "external rewrite". | 请求两个能力:压缩块「退役」与摘要「外部重写」[/+] on Nov 6, 2026
  4. ranxianglei commented on Nov 6, 2026

    @ranxianglei
    OwnerAuthor

    🤖 Powered by ework · qwen3.8-27b

    [bot] (ai: vllm-qwen/qwen3.8-27b)

    三个能力已实现,PR: #5774 (两个 commit:kernel 边界内一个、host 接线一个;kernel-change 声明在 PR 正文与 commit message 里,按 Kernel Boundary 走人工评审)。

    标签: scope/kernel + p2(跨客户端的内核能力请求,非缺陷不打 bug;长会话能用但视图膨胀明显,属「忍着不卸载」档)。查重: 不重复(open+closed 全检索无 retire/rewrite/export-ledger 同类条目)。

    八问

    1. 是什么问题:单会话长跑后所有压缩块每轮全量注入常驻视图(你当前 113 块 / 约 32 万 token 视图),很早的块也占位;且已存摘要无法事后换短。
    2. 什么原因导致的:机制缺口而非 bug——prune() 对每个 active 块无条件注入摘要锚点,没有「按块退出常驻」的状态位;摘要只由压缩管线生成,没有外部替换入口。
    3. 影响范围与严重程度:所有插件车道的长会话(你的 dsh/opencode 长跑场景);体验/成本档——上下文膨胀抬高每轮成本,可绕行(新开会话)但很痛。非数据丢失类。
    4. 怎么修复的:CompressionBlock 加可选字段 retired / previousSummary(随既有 payload_json blob 持久化,存储格式零改动)。退役 = prune 不再注入该块摘要锚点,但覆盖记账保留(被折叠消息继续不出现在视图、不会产生幻影可压区间);syncBlocks 显式保活退役块(否则「内容缺席」判定会误判失活 → 孤儿 GC 毁掉 decompress 能力,这是本设计最隐蔽的坑,有负向对照测试钉住)。重写 = 原地替换 summary 文本,旧摘要存 previousSummary 一步回滚,原文不动。导出 = bili export 每块输出消息区间(内核 startRef/endRef)、原文字数、摘要字数、状态(active/retired/consumed),JSONL 行同步带条件字段。三个工具 acp_retire/acp_restore/acp_rewrite 四线型全声明,归入 mutating 类(同轮 re-request,缩量当轮生效)。
    5. 是否有回归风险:本地定向套件全绿(kernel 9 例 + host 7 例 + export/dispatch/wire-contract/surface-config 邻域全套 + verif 子语言守卫);全量以 CI 为准。有意变更全部披露在 PR:工具表+提示词增长约 0.3K token/请求(function 车道)、acp_status 概览新增 RETIRED 段(仅非空时出现)、新增拒绝路径(压缩区间若会消费退役块则整批拒绝并给出 actionable 信息——保住回滚保证)、acp_cache 补进两个 adapter 的工具集(顺带修的同族漂移:此前缺失会在混轮里把它的 chunk 原样回放成「真实调用」)。fix: bili export 丢失 active block summaries(snapshot 尾部被 BILI_PERSIST_TAIL_TOKENS 截断时) #845 钉死的「inactive 块不进导出」契约保持不动(退役块仍是 active,照常列出)。
    6. 是否破坏缓存:退役/重写本身会使该块锚点之后的前缀失效一次(下次请求起新基线)——这是特性固有且预期的(你要的就是换掉驻留内容);除此之外缓存策略未动。
    7. 是否改了设计方向:否。纯增量状态位 + 三个函数式工具(acp_cache 先例:无 text trigger、全车道常开);与既有 external-summary(生成期外呼 LLM)是两回事,PR 里注明了区别。
    8. 是否引入了新的配置:无。刻意不加开关(新配置字段是 owner 领地,且 acp_retire 这类低频操作不值得给所有用户常驻一个旋钮);若你想要 opt-off,另开 issue 再议。

    验收对照:acp_status 退役段 ✓、视图按摘要字数下降 ✓(receipt 直接报 freed chars)、decompress/search_context 对退役块照常工作 ✓;rewrite 后摘要变给定文本、字数下降、原文不变 ✓;导出五要素(blockId/区间/原文字数/摘要字数/状态)✓,原文携带沿用既有 --full。两个操作均可回滚(restore;previousSummary 一步深)。

    等 CI 绿 + 你人工评审 kernel 部分即可合。

  5. ranxianglei commented on Nov 6, 2026

    @ranxianglei
    OwnerAuthor

    🤖 Powered by ework · qwen3.8-27b

    [bot] 🏷 (ai: vllm-qwen/qwen3.8-27b)

    状态更新(接上一条八问回复):

  6. added 2 commits that reference this issue on Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions