Skip to content

[Feature]: 增加可聚焦的手动 /compact 命令 #531

Description

@enderfirst

功能概述

增加可显式触发的 /compact [focus] 命令,让用户在自动阈值到达前压缩当前 AI 上下文,并可指定摘要需要重点保留的信息。

使用场景

当前已经支持自动上下文压缩,但用户无法在阶段结束、历史试错较多或准备切换工作重点时主动整理上下文。继续等待自动阈值会保留无关历史;/fork 会复制当前完整快照,也不能达到主动压缩的目的。

期望方案

  1. 在 slash command 列表和分发逻辑中增加 /compact
  2. /compact 复用现有 ContextManager 的完整压缩流程,不建立第二套上下文改写机制。
  3. 支持可选的 focus 文本,用于指定必须保留的任务状态、决策或约束。
  4. 完成后展示压缩前后估算 token、压缩模式和结果;新的快照应能被 /resume 恢复。
  5. 压缩失败或被取消时保持原上下文不变。

备选方案

  • 等待自动压缩:不能控制阶段边界,也不能指定摘要重点。
  • 使用 /fork:会复制当前上下文快照,不会减少历史内容。
  • 使用 /export 后手工开启新会话:步骤较多,且无法直接复用现有压缩策略。

补充信息

AISH 0.3.13 已有自动 micro/full compaction、摘要生成和压缩结果事件;当前 crates/aish-shell/src/readline.rs 的命令列表及 crates/aish-shell/src/app.rs 的 slash command 分发中没有 /compact

建议增加以下验收测试:无 focus、有 focus、工具调用成对保留、压缩失败不改写上下文、持久化后恢复,以及压缩前后 token 估算展示。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

cliCLI and shell UX issueenhancementNew feature or requesttestsTest coverage or test failure issuetoolsTool integration issue

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions