跳到主要内容

CodeWhale v0.8.51 发布 —— 你的 agent 每次用着用着就回到起跑线?不再了

· 阅读需 4 分钟

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

CodeWhale v0.8.51 封面

周期系统为什么该砍

我理解当初设计 cycles 的初衷:Agent 对话太长了上下文不够用,不如自动分段。但实际用下来,问题比收益多:

  • 你让 agent 改三个文件,刚改完两个就 cycle 了——新 cycle 里的 agent 不知道刚才改了哪两个
  • /recall 命令理论上能找回旧 cycle 的上下文,但 agent 用起来像翻一本没有目录的笔记
  • 那些 cycle-handoff briefing prompt、seam-manager 阈值、Event::CycleAdvanced——为了一个"自动重置"的功能,维护了一大套引擎层管道

砍掉它们(/cycles/cycle <n>/recallrecall_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_filelist_dirgrep_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