用途
Context Compactor 用于长会话场景下的自动上下文摘要与压缩。当上下文接近 token 上限时,它会对上下文进行压缩,同时保留关键信息,避免因上下文溢出而丢失重要内容。
主要能力
- 判断是否需要压缩:通过
should_compact(context, limit=100000)检查上下文是否接近限制。 - 执行压缩:通过
compact(context)对上下文进行压缩。 - 保留优先级策略:
- 必须保留(永不删除):架构决策、未解决的 bug 与阻塞项、当前功能状态、最近文件变更(最近 5 个)、错误模式与解决方案。
- 可摘要(压缩为摘要):已完成功能(ID 列表)、已解决错误(简要提及)、历史决策(关键点)。
- 可丢弃(完全移除):冗余工具输出、过期搜索结果、被取代的消息、冗长日志。
- 压缩流程:为每条消息/内容评分重要性;标记必须保留的内容;压缩可摘要内容;移除可丢弃内容;校验压缩后上下文是否连贯。
- Token 预算分级:
- 低于 50%:正常,无操作。
- 50-75%:警告,准备压缩。
- 75-90%:压缩,触发压缩。
- 高于 90%:临界,激进压缩。
- 集成点:autonomous-session-manager 触发压缩检查;memory-manager 存储压缩摘要;handoff-coordinator 使用压缩状态进行交接。
使用方式
检查是否需要压缩:
from scripts.compactor import ContextCompactor
compactor = ContextCompactor()
if compactor.should_compact(context, limit=100000):
compacted = compactor.compact(context)
压缩上下文:
compacted = compactor.compact(context)
# Preserves: architectural decisions, bugs, current state
# Discards: stale tool outputs, redundant messages
适用场景
适用于长时间运行的会话,尤其是上下文接近 token 限制、需要总结已完成工作并保留关键信息的场景。
限制
资料未提供关于收费、价格、平台支持范围、性能指标或具体效果的信息,暂未提供。