Skip to content

[Feature]: 为 MiniMax Code CLI 添加自动上下文压缩阈值的自定义配置 #488

Closed

Description

@iniaki662

Product or interface

CLI - interactive TUI

Use case and problem

我在使用 MiniMax Code CLI 进行长时间的编码会话时,上下文窗口是非常关键的资源。目前自动上下文压缩会在会话接近模型上下文上限时自动触发,但触发阈值似乎是硬编码的,用户无法配置,也无法关闭。

这带来了几个问题:

  • 上下文可能被过早压缩,导致有用的历史信息丢失。
  • 对于支持更大上下文的模型或任务,我无法在压缩前保留更多上下文。
  • 对于成本敏感的场景,我无法提前压缩以减少 token 消耗。
  • 无法按模型或按项目设置不同的压缩阈值。
  • 无法关闭自动压缩,以便我自己手动管理上下文。

我希望 MiniMax Code CLI 能提供可配置的自动上下文压缩阈值,最好支持按模型上下文窗口的百分比或绝对 token 数来设置。

Desired behavior

为 MiniMax Code CLI 的模型添加用户可配置的自动上下文压缩阈值。

交互示例:

  1. 用户在配置文件中设置:
    {
      "autoCompactEnabled": true,
      "autoCompactThreshold": 0.8
    }
  2. 在长会话中,CLI/TUI 显示当前上下文使用率。
  3. 当上下文使用率达到模型上下文窗口的 80% 时,自动触发上下文压缩。
  4. 如果用户设置 autoCompactEnabled 为 false,则不会自动触发压缩。
  5. 如果用户设置无效值,例如 autoCompactThreshold: 1.5,CLI 给出明确警告,并继续使用之前的有效值或默认值。

验收标准:

  • 用户可以按百分比(0.0–1.0)或绝对 token 数配置自动压缩阈值。
  • 用户可以启用或禁用自动压缩。
  • 阈值支持全局配置,也支持按模型单独配置。
  • CLI/TUI 能显示当前上下文使用率以及当前生效的压缩阈值。
  • 无效配置会给出清晰警告,并且不会导致会话崩溃或行为异常。
  • 未提供自定义配置时,保持现有默认行为不变。
  • 文档和 --help 中说明该配置项。

Platform

Linux

Alternatives and additional context

我尝试过以下方式,但都没有找到可用的自动压缩阈值配置:

  • 检查 ~/.minimax/config.json,未发现 autoCompact 相关字段。
  • 尝试使用环境变量,例如 MINIMAX_AUTO_COMPACT_THRESHOLD,未生效。
  • 在官方文档和 --help 中搜索 compaction、context window、auto compact 等关键词,未找到配置说明。

目前的替代做法只能是:

  • 手动清理上下文或重启会话,避免自动压缩过早触发。
  • 忍受默认阈值,无法按模型或任务调整。

社区中也有用户反馈 MiniMax Code CLI 的自动压缩“阈值硬编码、无配置项可关”。其他一些社区 CLI 工具已经提供类似的环境变量,例如 MINIMAX_AUTO_COMPACT_TOKEN_LIMIT,说明这个需求是真实存在的。

希望官方能提供原生配置项,让用户可以根据模型上下文窗口、任务类型和成本预算自行调整自动压缩行为。

Activity

  1. yujiachen-y commented on Oct 20, 2026

    @yujiachen-y
    Collaborator

    @iniaki662 感谢提议, #493 已经添加相关改动:

    contextManagement:
      compactionTriggerAt: 0.8 
    1. (0, 1] 之间的值按当前模型上下文窗口的比例计算,大于 1 的整数按 token 数计算。
    2. 实际触发线取这个值和内置触发线中较小的那个。

    以下几项暂不支持:

    1. 关闭自动压缩:自动压缩用来防止请求超出模型的上下文上限,关掉之后长会话会直接被模型服务拒绝。想手动管理上下文时,可以随时用 /compact。
    2. 把触发线调到内置值以上:原因同上。想保留更多上下文,建议选择更大的上下文窗口,例如 MiniMax-M3.1 的 1M 模式。
    3. 按模型单独配置:比例写法本身就按各个模型自己的窗口来计算,同一个值对不同模型都适用。
    4. 在 /context 中显示当前生效的触发线:后续再考虑。

    下次更新会带上这些改动

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-triageAwaiting maintainer assessmenttuiInteractive terminal UI (TUI)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions