CodeWhale v0.8.51 发布 —— 你的 agent 每次用着用着就回到起跑线?不再了
CodeWhale 之前确实有这个机制——叫「会话周期」(session cycle),一个会话跑满 token 上限就自动 checkpoint 再 restart,相当于给 agent 洗了次脑。v0.8.51 把这个机制整个砍掉了。

周期系统为什么该砍
我理解当初设计 cycles 的初衷:Agent 对话太长了上下文不够用,不如自动分段。但实际用下来,问题比收益多:
- 你让 agent 改三个文件,刚改完两个就 cycle 了——新 cycle 里的 agent 不知道刚才改了哪两个
/recall命令理论上能找回旧 cycle 的上下文,但 agent 用起来像翻一本没有目录的笔记- 那些 cycle-handoff briefing prompt、seam-manager 阈值、
Event::CycleAdvanced——为了一个"自动重置"的功能,维护了一大套引擎层管道
砍掉它们(/cycles、/cycle <n>、/recall、recall_archive tool、sidebar cycles 行、cycle_manager 全套)是一次减法。硬盘上已有的 cycle 存档不动,只是不再读写——不破坏旧 session,只是新 session 不再走那条路。
替代方案:模型感知的自动压缩
cycle 存在的理由是上下文不够用。v0.8.51 给的替代是 auto_compact 重做了一遍。
核心变化是 compaction_threshold_for_model_at_percent(model, percent) 这个函数。以前 compaction 的触发阈值是固定的 effort 值,现在是按模型上下文窗口的百分比来算。默认 80% 触发,256K 及以下窗口的模型自动开启,1M token 模型(DeepSeek V4 等)保持 opt-in——因为 1M 模型靠 prefix cache 省钱,自动压缩反而会破坏缓存命中。
这个改动比 cycles 聪明的地方:它不是一刀切的"满了就重置",而是看当前模型还剩多少预算、还剩多少空间。
Arcee AI:又一个直接可配的 Provider
CodeWhale 的 provider 列表里加了 Arcee AI([providers.arcee]),三款模型可选:trinity-large-thinking(262K 上下文 + reasoning)、trinity-large-preview(262K 无 reasoning)、trinity-mini(128K)。
Arcee 有个门槛——Cloudflare WAF 在首轮握手时可能拦截工具调用。CodeWhale 的处理方式是:首轮只暴露只读工具(read_file、list_dir、grep_files 等),把 Python 执行等容易触发 WAF 的 payload 拆出 system prompt。WAF 不会拒绝一个只读请求。首轮握手通过后,完整工具集通过 tool-search 可达。
其他亮点
Provider 感知的模型选择器:模型按 provider 分组显示,每个模型有简要 hint,每个 provider 记住上次选的模型。以前模型选择器是个平铺列表,上百个模型混在一起翻半天。
错误提示不再喷 HTML:HTTP 403 之前可能直接吐 Cloudflare "Access Denied" 整页 HTML 到对话里,现在缩成一行原因 + ray ID。403 进一步拆成认证失败和网关拦截两条分支。
深度递归文件可达:@ 引用和 Ctrl+P 文件选择器放松了 walk depth 限制,monorepo 布局不再找不到深层文件。
exec_shell 继承 Windows 工具链环境变量:#1857 修了一个隐蔽的 Windows 问题——exec_shell 子进程之前不继承 .NET/NuGet 和 Windows app data 环境变量,导致在 Windows 上跑 C# 构建或 NuGet 还原时找不到工具。
升级
codewhale update
# 或首次安装
npm install -g codewhale
⚠️ codewhale update 直接走 GitHub Release 二进制,不受 npm 包滞后影响。
完整更新日志:CodeWhale v0.8.51 Release
📢 关注我,获取最新开源更新日志和开发者工具动态。
#开源项目 #CodeWhale #AI终端 #会话管理 #Arcee