跳到主要内容
ZeroWorks

性能与上下文优化

配置上下文压缩、Claude 子代理模型与可选 RTK 输出优化,按实际运行环境检查版本、PATH 和排除规则。

为什么要关心上下文占用

每次模型调用都会重新读取整段对话,因此会话越长,单次调用的成本越高,可用的推理空间也越少。冗长的命令输出是最容易吃掉上下文的地方。

常见的输出大户包括:代码差异、目录列表、搜索结果、测试日志、包管理器安装过程和构建日志。它们本身信息量有限,重复的部分却会被反复读进上下文。

  • 减少无意义的重复输出,把上下文留给代码和推理本身。
  • 让长会话的调用成本保持稳定,而不是逐轮累积。
  • 减少噪声:同样的信息不用在大段日志里反复翻找。

如何压缩长会话

会话接近模型的上下文上限时,工作台会自动把前面的对话整理成一段摘要,再带着摘要继续。你也可以把触发阈值调低,让压缩更早发生。

阈值设置在“设置 → AI → 压缩上下文时机”里,同时会记录在配置目录下的配置文件中。新会话和重启后的会话会读取这个设置。

  1. 打开“设置 → AI”,找到压缩上下文时机。
  2. 选择一个预设值,或填写自定义大小并保存。
  3. 新建或重启会话,让设置生效,然后继续观察上下文占用。
取值效果
200K单次调用最便宜,但压缩最频繁
400K推荐的平衡点
600K压缩较少发生
自定义可填写 100K 到 1M 之间的任意大小
试一试

{ "autoCompactWindow": 400000 }

让子代理走更便宜的模型

Claude 内置子代理可能重复读取自己的上下文。“设置 → AI → 子代理模型”可指定更便宜的模型,适合查找与简单检索。

静态设置只作用于原本继承会话模型的内置子代理;不会把它提升到比会话模型更高的档位,显式指定模型或自定义 Agent 不受影响。这个设置不代表 Pi 连接也提供同样的 Claude 子代理功能。

按任务自动选模还需要 decisionLayer.enabled 与 features.subagentModels 同时开启。只打开决策总开关不够;未启用或无法判断时,继续使用原有静态设置。

  • 最便宜的档位适合搜索和简单查找。
  • 中等档位适合阅读代码、调研和大部分委派工作。
  • 保持与会话相同,适合需要同样推理能力的复杂任务。

提前精简历史

与其等会话自然变长,不如主动控制体积。下面的做法都在会话早期就可以用。

  • 把冗长输出写进文件,对话里只保留摘要和文件路径,需要时再读回来。
  • 一件事做完就新开一个会话,不要让多个主题挤在同一条历史里。
  • 需要比较不同方案时用分叉会话,而不是在原会话里反复回滚。
  • 定期查看对话区的上下文用量提示,在接近阈值前主动处理。
试一试

请把这段测试输出保存为文件,只在对话里给出结论和文件路径,不要粘贴完整日志。

安装并启用 RTK

RTK 是独立的命令输出压缩工具。ZeroWorks 按需把支持的 Bash 命令交给 rtk rewrite,例如把 git status 改写为 rtk git status,减少返回给模型的重复文本。

rtkEnabled 默认 false。RTK 需安装在实际运行 Agent 的主机,并能被该进程的 PATH 找到;本机安装不会自动提供给另一台远程服务器。当前运行时只使用 0.44.0 及以上版本,更旧版本不会用于改写。

安装方式见 RTK 官方仓库。以下是该项目的安装命令;本页不代替平台安装或真实命令结果验收。

  1. 在 Agent 主机按对应平台安装 RTK,运行 rtk --version,确认版本 >= 0.44.0;运行 rtk gain 确认装的是带输出优化统计的 RTK。
  2. 在“设置 → AI”找到 RTK / Token 优化。未检测到时点 Recheck;旧版本按 Update 提示升级,再重新检查。
  3. 检测通过后打开优化开关。若终端能找到而应用仍找不到,核对应用启动环境的 PATH;安装或修改 PATH 后重启 ZeroWorks。
  4. 在会话里运行一条简单的受支持命令,核对结果,再查看设置里的节省统计。并非每条命令都会被改写,也不保证固定节省比例。
环境安装命令PATH 检查
macOS / Linux,已安装 Homebrewbrew install rtkwhich rtk
Windowswinget install rtk-ai.rtkwhere.exe rtk
试一试

rtk --version rtk gain

获取原始输出

需要逐行核对日志、匹配行或数值时,可以绕过 RTK。提示模型“不要摘要”不会自动关闭运行时改写;使用配置排除或明确的命令前缀。

  • 主配置的 rtkEnabled 控制总开关;rtkExcludeCommands 是命令首词的精确匹配列表,例如 ["grep", "cat"],不是正则或完整命令片段。
  • 排除只检查命令开头的首词;复杂管道或前置环境变量不要当作整条命令都已排除。
  • 单次绕过可运行 command grep -n TODO README.md;首词 command 或 builtin 会跳过 RTK,绝对路径也可用于指定真实程序。
  • 需要保留完整输出时写入文件,再按需查看。绕过 RTK 不代表其他工具预览、输出上限或模型上下文限制也被取消。
试一试

{ "rtkEnabled": true, "rtkExcludeCommands": [ "grep", "cat" ] }

排障

  • 上下文占用增长过快:先看是不是有超长命令输出,让 Agent 改成写文件并只回摘要。
  • 压缩之后细节丢失:这是预期行为,压缩只保留摘要;重要结论请写进项目文档。
  • 子代理没有换到更便宜的模型:该设置只影响未指定模型的内置子代理,显式指定模型的任务不受影响。
  • RTK 开关不可用:确认主机已安装 >= 0.44.0 版本,应用 PATH 能找到该程序,点击 Recheck;修改 PATH 后重启应用。
  • 会话卡在很长的状态:确认当前是否有正在执行的命令,需要时先停止再压缩。
  • 检测到旧 RTK:低于 0.44.0 不会用于改写。Windows 用 where.exe rtk 核对是否仍先找到旧版本。
  • 某条命令没有压缩:可能无 RTK 等价命令、首词被排除、主动绕过或改写失败;原命令仍按正常权限流程执行。

使用建议

  • 先在探索模式下探索,输出更短,也更安全。
  • 每轮只要求必要的输出,例如只统计失败用例而不是贴出全部测试日志。
  • 大数据集先落成文件再引用,避免整张表进入对话。
  • 需要精确结果时明确说明“原样输出”,不要指望默认的整理行为。
  • 保持项目文档是最省事的长期记忆:上下文会被压缩,文档不会。