/install context-switch-token-optimizer
Context Switch Token Optimizer
技能描述
通过关键词相似度、弱关联子串与时间衰减判断「连续 / 渐变漂移压缩 / 硬切换」,并可监控 Token、触发压缩与清理。实现见 context_manager.py、token_optimizer.py;详细算法见 docs/TOPIC_AND_CONTINUITY.md。
上下文动作(与代码一致)
| 动作 | 条件 | 行为 |
|---|---|---|
load_memory |
无当前主题且无历史 | 建主题、可选加载 memory/topic 下记忆 |
continuous |
与上一轮相似度 ≥ similarity_threshold |
追加历史,不压缩 |
drift_compress |
相似度 ∈ [continuity_threshold, similarity_threshold) |
对话仍连续;压缩与当前弱相关的历史轮(is_compressed,保留短摘要) |
switch_context |
相似度 \x3C continuity_threshold |
硬切换,换记忆、增 switch_count |
相似度计算:calculate_topic_similarity()(关键词 Jaccard 式重叠 × 时间衰减 + 2 字子串/首字弱关联 + continuity_bonus_for_partial,弱关联封顶 drift_similarity_cap)。
持久化状态格式(memory/context_switch_state.json)
与 ContextState / TopicSummary 一致,主题历史项包含:
topic,keywords,timestamp,tokens_used,content_snippet,is_compressed- 顶层另有:
current_topic,memory_context,last_switch_time,switch_count,total_tokens
配置文件(config.json)
所有键名与 load_skill_config() 默认值一致;用户 JSON 按顶层块与默认合并(同一块内键覆盖,未写的子键保留默认)。
context_switch
| 键名 | 类型 | 默认 | 说明 |
|---|---|---|---|
similarity_threshold |
number | 0.7 | ≥ 此值判为 continuous |
continuity_threshold |
number | 0.35 | \x3C 此值判为硬切换 switch_context |
compress_relevance_threshold |
number | 0.3 | drift_compress 时,历史轮与当前相似度低于此则压缩该轮 |
continuity_bonus_for_partial |
number | 0.3 | 存在弱关联时的相似度加成 |
drift_similarity_cap |
number | 0.65 | 弱关联时相似度上限,便于进入 drift_compress |
time_decay_factor |
number | 0.95 | 按小时衰减的底数 |
max_topic_history |
int | 10 | 主题历史条数上限 |
memory_relevance_threshold |
number | 0.5 | 记忆文件匹配阈值 |
log_level |
string | (不设) | 可由环境变量 CONTEXT_SWITCH_LOG_LEVEL 写入 |
token_optimization
| 键名 | 类型 | 默认 | 说明 |
|---|---|---|---|
enabled |
bool | true | 为 false 时不自动触发优化(对应环境变量 TOKEN_OPTIMIZER_ENABLED) |
token_limit |
int | 80000 | Token 预算 |
compression_threshold |
int | 56000 | 压缩参考阈值 |
context_cleanup_threshold |
number | 0.8 | 上下文清理参考 |
memory_load_limit |
int | 2000 | 记忆加载参考 |
optimization_interval |
int | 300 | 优化间隔(秒,预留) |
max_history_size |
int | 100 | Token 使用记录条数上限 |
memory_search
| 键名 | 类型 | 默认 | 说明 |
|---|---|---|---|
max_search_results |
int | 5 | 最多返回记忆条数 |
keyword_limit |
int | 5 | 每轮提取关键词数 |
search_depth |
int | 2 | 可由环境变量 MEMORY_SEARCH_DEPTH 覆盖(1–3) |
file_types |
string[] | ["*.md"] |
记忆目录 glob |
optimization_settings
| 键名 | 说明 |
|---|---|
auto_optimization |
是否自动优化(策略预留) |
health_score_threshold |
健康分阈值 |
suggestions_check_interval |
建议检查间隔(秒) |
环境变量(与 apply_environment_overrides() 一致)
| 环境变量 | 映射配置键 | 取值与行为 |
|---|---|---|
CONTEXT_HISTORY_SIZE |
context_switch.max_topic_history |
正整数,限制在 1–100 |
MEMORY_SEARCH_DEPTH |
memory_search.search_depth |
正整数,限制在 1–3 |
TOKEN_OPTIMIZER_ENABLED |
token_optimization.enabled |
true/1/yes/on 为启用;false/0/no/off 为禁用(禁用后使用率 >70% 也不触发 trigger_optimization) |
CONTEXT_SWITCH_LOG_LEVEL |
context_switch.log_level |
DEBUG / INFO / WARNING / ERROR / CRITICAL;设置根 logger 级别 |
未设置上述环境变量时,行为完全由 config.json 与代码默认决定。
CLI 与入口
- 主入口:
python3 context-switch-token-optimizer.py [--config path] --process|--status|--reset|--test - 子模块:
context_manager.py、token_optimizer.py(参数见--help)
维护: Hermosa
版本: v1.1
最后更新: 2026-03-17
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install context-switch-token-optimizer - 安装完成后,直接呼叫该 Skill 的名称或使用
/context-switch-token-optimizer触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Context Switch Token Optimizer 是什么?
智能对话上下文切换与 Token 优化。分析对话主题连续性以管理上下文、在话题间切换并节省 Token。 适用于多任务对话、项目工作流、学习研究等需管理上下文与 Token 使用的场景。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 236 次。
如何安装 Context Switch Token Optimizer?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install context-switch-token-optimizer」即可一键安装,无需额外配置。
Context Switch Token Optimizer 是免费的吗?
是的,Context Switch Token Optimizer 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Context Switch Token Optimizer 支持哪些平台?
Context Switch Token Optimizer 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Context Switch Token Optimizer?
由 nicochow(@nicochow)开发并维护,当前版本 v1.0.1。