跳到主要内容

24 篇博文 含有标签「CodeWhale」

查看所有标签

CodeWhale v0.8.66 发布 —— doctor 诊断,Hotbar 快捷槽,scorecard 成本分析

· 阅读需 2 分钟

CodeWhale v0.8.66 封面

codewhale doctor 诊断

新增 codewhale doctor --json 命令,可以诊断 ~/.deepseek~/.codewhale 的迁移状态,标记未迁移或双根数据(#3727)。

Hotbar Alt+1~8

新增 Hotbar 快速切换槽(#3796, #3788),Alt+1 到 Alt+8 可以快速切换工具,还有一个引导卡片解释用法。

scorecard 记分卡

新增 token/cache/cost scorecard 命令,用于离线发布门控、基线回归检查和每轮成本可视化(#3388)。

新 Provider

  • Sakana AI Fugu(#3748):作为 OpenAI 兼容 provider 加入,支持 sakana/fugu 别名
  • OpenModel(#3585):作为 Anthropic Messages provider 加入

子 Agent 并发性能优化

子 agent 的 fanout(扇出)和锁竞争热路径做了大幅优化:独立子 agent 启动改为并行批处理、子 agent 侧边栏从只读快照渲染、磁盘 I/O 移出写锁、UI 路径使用 try_lock 避免阻塞(#3783, #3801, #3803, #3805, #3804)。

其他亮点

  • 审批弹窗改为内联底部锚定,不再全屏遮罩(#3799)
  • YOLO 模式下 cargo publish/npm publish 强制审批(#3735)
  • 只读 shell 命令(--version--help)不再被标记为破坏性操作(#3730)
  • Plan 模式的"不写文件"承诺通过文件写入和 MCP 工具层的守卫强制执行(#3734)
  • Ctrl+O 外部编辑器在 Windows mintty/cygwin 下不再冻结(#3657)

升级方式:

npm install -g codewhale

完整更新日志:GitHub Release v0.8.66

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #v0.8.66 #AI编程工具 #LLM更新报告 #AI写代码的小任

CodeWhale v0.8.64 发布 —— 自动压缩优化,安全加固,WeCom 桥接

· 阅读需 2 分钟

CodeWhale v0.8.64 封面

自动压缩默认开启

大上下文会话现在默认开启自动压缩,而且压缩时会把摘要带到下一段 prompt,不会因为压缩就丢掉上下文脉络(#3376)。之前的压缩偶尔会「偷偷」清掉一些关键内容,现在默认走稳定路径,想关也可以手动 opt-out。

运行时 Web 自动化准备

本地应用自动化新增了一个 loopback-only 的开发服务器就绪检测原语,Agent 可以在浏览器接管之前先等 TCP 或 HTTP 健康检查通过。来自 @cyq1017 的贡献(#3376)。

模型快捷键与新集成

  • /model pro/model flash 现在可以直接解析到当前的 DeepSeek V4 路由
  • WeCom(企业微信)桥接合入,附带状态权限和错误报告的维护加固(#3370)

安全加固

这一版有一批集中的安全修复:

  • 项目本地配置不能绕过用户级别的 shell/指令策略
  • 文件编辑前需要重新读取目标文件,防止旧数据误编辑
  • Git 历史输入拒绝含控制字符或选项格式的 revision
  • 交互式执行需要二次确认
  • 本地工具路径通过 workspace/root 校验收窄
  • 生成的 token、session 标识、provider 注册信息等不再泄露到日志
  • TLS 验证绕过请求现在 fail closed
  • fleet 告警 webhook 强制 HTTPS

其他修复

  • 侧边栏固定模式支持更窄的 64 列边界(#3371)
  • Provider-wait 底部进度条不再刷无用的倒计时,超时警告保持可见(#3375)
  • 委派 serve / app-server 子进程支持 OS 级的父进程死亡清理(#3378)
  • ACP session 多轮对话历史现在能正确保留(#3372)
  • Worktree Git 元数据写入不再需要全面信任模式(#3356)

升级方式:

npm install -g codewhale

完整更新日志:GitHub Release v0.8.64

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #v0.8.64 #AI编程工具 #LLM更新报告 #AI写代码的小任

CodeWhale v0.8.65 发布 —— 路由解析器,Fleet 执行,Provider 仪表盘

· 阅读需 3 分钟

CodeWhale v0.8.65 封面

RouteResolver 路由解析引擎

这是一个全新的路由层:统一的 RouteResolver 负责将 provider、model、offering 解析为 ReadyRouteCandidate(包含端点、协议、模型 ID、上下文窗口、价格等信息)。可执行客户端现在从解析结果直接构建,而不是从配置重新推导。内置的 Models.dev 风格目录提供真实的上下文窗口和定价数据,支持无密钥的缓存查询。

Fleet 执行子系统

Fleet 分布执行模式有了完整的类型定义和配置:支持持久化 manager 恢复、工作区 agent-profile 加载、task spec 中的负载意图、以及持久化解析结果的 receipts。Worker 状态统一展现在 /fleet 表面。

Provider 仪表盘

/provider 新增了运行状态仪表盘,展示:

  • 推理 readiness
  • experimental/supported 成熟度标记
  • 一键查看该 provider 的开放模型
  • 跨 provider 的 /model 搜索(带滚动和 type-ahead)
  • Provider 级 <think> 推理流路由
  • 用量分析(含 Responses 缓存和推理 token)
  • 远程 MCP OAuth 登录

/modeldb 模型参考浏览器

新增只读命令 /modeldb(别名 model-reference, modelref),打开一个分页器显示所有 bundled 模型的真实上下文窗口、最大输出、多模态能力和价格,按 provider/类型分组。不选择、不路由——只展示事实。

更多新 Provider 和路由

  • 用户自定义 OpenAI 兼容 provider:[providers.<name>]
  • DeepSeek Anthropic 兼容路由
  • 千帆路由
  • Zhipu 合并到 Z.ai
  • DashScope/Together 支持

Config 模块化

3120+ 行的 config 拆分为独立模块:ProviderKind、harness posture、provider 默认 seed 等各归其位。AppMode 策略通过统一的 base_policy_for_mode 解析。

其他

  • Transcript 预设/config preset <name>,首发 calm 预设(calm 模式、低动效)
  • 模型能力画像:区分固有模型事实与 resolved 的 provider-route 能力
  • Provider 目录实时刷新:无密钥的 /models 实时获取层
  • 本地化模式选择器/mode 选择器和 composer 的 Vim 模式指示器现支持全部 7 种语言
  • YOLO 后台 Shell 审批修复:YOLO 模式不再弹后台 shell 审批框
  • MCP 连接稳定性:断开显式报告,HTTP API 复用共享 MCP 池

升级方式:

npm install -g codewhale
cargo install codewhale-cli codewhale-tui --locked

完整更新日志:GitHub Release v0.8.65

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #v0.8.65 #RouteResolver #Fleet #AI编程工具 #LLM更新报告 #AI写代码的小任

CodeWhale v0.8.63 发布 —— 子智能体并发全链路加固,per-worker Token 预算落地

· 阅读需 6 分钟

CodeWhale v0.8.63 封面

子智能体并发:从"能跑"到"可控"

子智能体的并发问题在之前版本里一直处于"能跑就行"的状态。高扇出 Workflow 一旦启动,瞬间拉起几十甚至上百个子 agent——调度器没炸全靠运气。v0.8.63 用两个参数终结了这种不确定性。

[subagents] max_admitted——准入水位控制:之前的并发控制只限制了同时运行的 agent 数量(max_concurrent),但没有限制"排队中"的数量。高扇出场景下,大量的 agent 同时在队列中等待调度,内存和状态管理跟着膨胀。max_admitted 解决了这个问题——它定义了整个运行中能"存在"的子 agent 总数上限,包括正在运行的、正在入队排队的、以及正在排空的。超出上限的 agent 请求会被直接拒绝而非排队等待。这对于需要精确控制系统负载的场景是根本性的改进。

[subagents] token_budget——聚合 Token 天花板:之前 Token 限制只作用于单个 agent 调用。现在你可以给一个根 agent 及其所有子孙 agent 设定一个共享的 Token 预算池。根 agent 启动时分配一笔总额,所有子任务消耗的模型 Token 从同一个池子里扣除。池子耗尽后,整个 agent 子树停止工作。这对于在预算敏感的环境中使用 agent 来说是一道硬约束——不再依赖"模型应该收敛"的软性期望。

这两个参数配合使用,CodeWhale 的多 agent 并发模型从"尽力而为"变成了"严格受控"。

Per-worker Token 预算:每个子任务都有费用上限

如果说 [subagents] token_budget 是宏观预算控制,那么 #3321 引入的 per-worker Token 预算就是微观层面的精确制导。

之前你在单个 agent 调用上设置 max_tokens,它能约束这个调用的完成回合数,但无法在模型实际消耗 Token 的层面上施加限制。v0.8.63 的 token_budget / max_tokens 字段现在作用于单个 worker 的生命周期内——一旦该子 agent 累计的模型 Token 超过了设置的上限,它不会硬崩也不会无限等待,而是以 budget_exhausted 状态干净地停止,并带回已经产出的结果。

这意味着你可以给"快速探索型"子 agent 设置低预算、给"深度分析型"设置高预算,同时在根级别设置一个总额封顶。预算体系有了层级结构。

按 Provider 配置子智能体策略

不同 provider 的延迟、成本、并发特性差异巨大。之前所有 provider 共用一套子 agent 配置,DeepSeek 和 Claude 的调度参数一样——这显然不合理。

[subagents.providers.<provider>] 配置段允许你针对每个 provider 独立覆盖以下参数: • enabled——是否允许此 provider 启动子 agent

max_concurrent——该 provider 下的最大并行数

max_admitted——该 provider 下的最大准入数

launch_concurrency——该 provider 的启动并发(控制初始扇出速度)

max_depth——子 agent 嵌套深度

Token budget——该 provider 特有的预算上限

API 超时 & 心跳超时——provider 级别的通信超时

一个典型配置场景:Claude 子 agent 给高预算高并发,DeepSeek 给低预算低并发,本地模型关闭子 agent 功能。在同一个 Workflow 中混合使用不同 provider 的子 agent,现在每一条路线都有自己的行为规则。

子智能体监控与隔离

子 agent 一旦跑起来就"丢进黑箱"是之前版本的痛点。你不知道它在干嘛、卡在哪、能否取消它。v0.8.63 的 agent 工具新增三个运行时操作: • status——查询子 agent 的实时状态(running / waiting / completed / exhausted)

peek——查看子 agent 当前的中间输出(不等待完成)

cancel——终止一个正在运行的子 agent

配合 worktree: true 参数——为子 agent 创建独立的 git worktree 和分支——实现了完整的任务隔离。一个子 agent 的文件操作不会影响另一个 agent 的工作区。这对于需要并行修改同一仓库不同模块的场景非常有用。

修复与打磨

v0.8.63 的修复清单比功能清单长,这本身说明团队在稳定性上花的功夫。

模式与工具目录正确性修复:之前在某些边缘情况下,agent 选择的模式或工具与实际可用集不匹配。现在做了全链路的目录校准。

子智能体编排恢复:当子 agent 遇到 provider 临时超时(比如 API 限流瞬时飙升),之前直接失败。现在子 agent 会自动重试 transient 超时,大大降低了高并发场景下的偶发失败率。

DeepSeek 思考模式工具调用修复:启用推理时,显式传入 tool_choice 会导致 DeepSeek 返回异常。现在推理启用时自动省略 tool_choice,终于能在思考模式下正常使用工具了。

Config 显示脱敏:之前 codewhale config show 可能暴露 API key 等敏感信息。现在递归地 mask 配置输出中的所有密钥字段——有密文就不会明文输出。

任务侧边栏快捷方式和归属修复:Task 侧边栏的快捷键和 attribution 显示做了修正,多 agent 场景下哪个 agent 产生了哪条信息现在一目了然。

侧边栏默认恢复为 pinned:之前某次更新中侧边栏的默认状态变成了 unpinned,现在恢复为 pinned——打开 CodeWhale 就能看到侧边栏,不需要再手动固定一次。

JavaScript 执行代理环境变量处理改进:解决了一些环境中 child_process 继承环境变量时的兼容性问题。

遗留认证加固和非回环地址安全:Legacy app-server 的非回环访问路径做了安全加固,.deepseek 状态写入迁移和 Windows 状态子目录校验也一并修复了。

升级方式

codewhale update # 已安装用户(推荐)
npm install -g codewhale
cargo install codewhale-cli codewhale-tui --locked
docker pull ghcr.io/hmbown/codewhale:latest

完整更新日志:https://github.com/Hmbown/CodeWhale/releases/tag/v0.8.63

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #版本更新 #AI写代码的小任 #LLM更新报告

CodeWhale v0.8.62 发布 —— Agent 学会主动提问,GLM 双模型路线打通

· 阅读需 6 分钟

都不是大改架构的版本,但每一条都在把 agent 从"能跑"推向"好用"。

CodeWhale v0.8.62 封面

GLM-5.2 默认直达,GLM-5-Turbo 变成"探路者"

GLM-5.2 成为 Z.AI 默认直达模型:之前走 Z.AI provider 还要选模型,现在 z-ai 路由默认指向 GLM-5.2,跟智谱新一代模型对齐。对国内用户来说,这是开箱即用的升级——不用配置任何东西就能用上 GLM 最新能力。

GLM-5-Turbo 注册为正式模型,作为 explore 类 sub-agent 的快速兄弟:这不是简单的"多加一个模型",而是一种架构姿态——GLM-5-Turbo 被明确视为更快的探索性子 agent,任务类型决定模型选择。这比单纯提供一个模型选择器聪明得多:CodeWhale 在帮你做模型路由决策,而不是把选择权丢给你。Agent 框架发展到这个阶段,真正的竞争壁垒不是模型数量,而是模型路由的智能程度。

Agent 终于知道该问你而不是瞎猜

#3102 引入了一等公民的 request_user_input 工具:当 agent 遇到模糊指令时,不再绕圈子或者直接猜测一个方向走下去,而是弹出一个模态框问你"我该怎么做?"。这个变化把 agent 交互从"你说它做"的单向模式,变成了真正的对话。虽然只是一个 tool,但在交互语义上是质变——之前 agent 面对歧义只有两条路:猜(然后做错)或者沉默(然后用户以为它在思考其实它卡住了)。现在有了第三条路。用过的开发者应该很快会意识到,这种模式比"在提示词里写'不确定时请向我确认'"可靠得多,因为它不依赖模型的自我认知。

Agent 治理:Skill 命名空间、运行时权限、无进展循环检测

这一组更新让人感觉 CodeWhale 开始认真对待"agent 安全"了。

#3296 CodeWhale-only skill 发现门控:Skill 现在有了命名空间归属——可以标记哪些 skill 只允许 CodeWhale 调用,其他 agent 框架拿不到。这看起来像是一个小权限开关,但背后的意图是大的:CodeWhale 在把自己的 skill 生态做成一个受管的命名空间,而不是谁都能读的杂物堆。

#3295 Permission/Ask 运行时规则:Agent 在执行敏感操作前可以配置"需要询问用户"的运行时规则。类似手机 app 的权限弹窗,但跑在 agent 的工具调用链路里。之前这类控制完全靠 prompt 约束("你可以直接执行命令"),现在有了运行时强制。Agent 框架从信任本位走向验证本位,是个必然的方向。

无进展工具循环检测:Agent 卡在工具调用循环里空转,是每个深度用户都遇到过的事。以前只能手动掐断或者等模型自己意识到错了——现在系统层面有了兜底:当 agent 反复调用工具但没有产生实质性进展时,guardrail 会介入。这类保护机制在 changelog 里不耀眼,但在日常使用中你会频繁感谢它的存在。代码写到一半,agent 突然开始反复读同一个文件——这种事终于有系统级的上限了。

Sub-agent 协作了也能看清彼此在干嘛

Sub-agent completion draining 和嵌套溯源:之前 sub-agent 任务完成后,它的状态在 parent 视角里是突然消失的。现在有了 completion draining——子 agent 的任务输出会被完整排空,parent 能看到每一步发生了什么。"嵌套溯源"则意味着一个深入三层的 agent 调用链,每一层都保留了出处。这对调试复杂 agent 流程来说是刚需,之前只能靠猜。

Plan 确认清单可见性提升:Plan mode 之前的确认清单藏得太深,用户经常不清楚 sub-agent 规划了什么、确认了没有。现在这个清单在界面中更明显了。听起来是个微不足道的 UI 调整,但 Plan mode 的核心价值就在于"执行前你先看看计划对不对",清单不可见的话,这个模式等于不存在。

Transcript 超链接 via OSC 8(#3029):终端中的交互记录现在支持 OSC 8 转义序列超链接。这意味着你在 terminal 里看到的输出链接可以真正点击了,而不是一堆需要手动复制粘贴的 URL。终端体验的细节——但这对每天在终端里看 agent 输出的开发者来说,少了一次"复制-粘贴-回车"的动作,久而久之就是节省的时间。

基础提示词和 Delegate Skill 指导更新:Sub-agent 的 prompt 做了针对并行探索场景的优化,delegate skill 引导信息也更明确。说明团队意识到"多 agent 并行"不仅仅是架构问题,提示词的引导策略一样重要。

其他值得一提的小修复

Config 注释保留:之前 CodeWhale 写 config 文件时会吃掉所有注释,现在不会了。如果你习惯在配置文件里写中文注释说明每项配置的用途,这个修复会直接改善你的体验——没有什么比升级后 config 注释全被清空更让人恼火的了。

Poppler pdftotext 检测修复(#1667):之前检测 pdftotext 是否存在时用了 --version,但 poppler 的实现只接受 -v。结果是你的系统明明装了 poppler,CodeWhale 却告诉你没装。现在用 pdftotext -v 检测了——这种 5 分钟能修好的 bug,但卡过的人知道有多烦:一个 PDF 解析功能,第一反应是装包而不是检查版本号写法。

Agent synthesis guardrails 上线:除了无进展循环检测,还有 synthesis 阶段的输出保护,防止 agent 在综合多个来源时产生不一致的结论。这层保护在复杂多步推理场景中开始有用。

回看 v0.8.62,它没有 v0.8.61 那种架构重构的冲击力,也没有 v0.8.59 的功能密集度。它更像是一个"成熟的标志"——当项目开始关心 agent 问问题的方式、关心权限怎么做、关心模型路由策略怎样更智能,说明它的发展重心已经从"能不能用"转向了"好不好用"。

升级方式

#已安装用户(推荐,走 GitHub Release 二进制)
codewhale update

#npm
npm install -g codewhale

#Cargo
cargo install codewhale-cli --locked
cargo install codewhale-tui --locked

#Docker
docker pull ghcr.io/hmbown/codewhale:latest

#Nix
nix run github:Hmbown/CodeWhale

#Scoop
scoop install codewhale

#Homebrew
brew tap Hmbown/deepseek-tui && brew install deepseek-tui

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #版本更新 #AI写代码的小任 #LLM更新报告

CodeWhale v0.8.61 发布 —— Sub-agent 不卡了、路由更智能了,多 agent 协作进入"调度"时代

· 阅读需 6 分钟

v0.8.61 的核心目标就是干掉这个 blocker。结果不止修了卡死,顺带把 sub-agent 的运行时架构整体重构了——不夸张地说,这是 CodeWhale 进入"多 agent 调度"时代的第一个版本。

CodeWhale v0.8.61 封面

以前:TUI 卡死是常态,sub-agent 像黑盒

如果你用过多个 agent 并行工作的场景(同时发几个探索任务或让一个 agent 验证另一个 agent 的输出),你应该遇到过这些问题:

  • TUI 无响应:多 sub-agent 启动后,终端输入泵和渲染线程争 CPU。你敲命令,终端不回应,几秒后突然全部回流。团队甚至专门做了一个六路 stress test 来复现这个场景(#3216)
  • 路由不隔离:sub-agent 默认用同一个 provider 和模型,你想让 scout agent 走便宜的快速模型、verifier 走更强的模型——没门。子 agent 启动时就自动继承了父级的路由配置,改不了
  • 生命周期不可见:sidebar 里 sub-agent 的状态永远显示 "running",你不知道它在等 provider 回包、在做 tool call、还是已经卡住了。子 agent 想给你报个"我干完了但需要你确认",也找不到入口——只能默默停在某个位置等你下次发消息才被注意到(#3266)
  • Provider 冲突:多 agent 共享同一个 provider session,一个 context_length_exceeded 就全挂了。没有自动回退,也没有 session 隔离

这些问题的根因:sub-agent 的运行时就是"从主进程 fork 出去,共享一切"的设计。v0.8.61 用 WhaleFlow 运行时框架彻底改了这一点。

现在:WhaleFlow 运行时 — 子智能体有了自己的"运行态"

WhaleFlow 不是 UI 层的改动,而是 5 个新运行时服务的集合(#3217, #3071, #3072, #3073):

角色画像(Worker Profile):每个 sub-agent 启动时带一份完整的运行时描述——角色(scout / synthesis / verifier)、权限范围、shell 能力、可用工具集、模型路由。子 agent 派生出来的后代 agent,权限只能收缩不能扩张(non-escalating child derivation)。这意味着你可以创建一个只读的 verifier agent,它永远不会打开 shell 执行命令。

跨 Provider 模型注册表:之前模型信息分散在各个 provider 适配器里。现在有一个中心注册表,离线也能查询模型能力和上下文窗口大小。新 provider 只需注册自己的模型规格,路由系统就知道这个模型能做什么、成本多少。

Provider 就绪检测 + 上下文预算 + 资源遥测:三个配套服务,确保 sub-agent 启动前就知道目标 provider 是否可达、预算够不够、当前资源状态如何。如果 provider 不可用,agent 不会傻等着超时,而是直接报"provider 不可用"然后等调度器决定下一个路由。

Per-role 路由:scout 走便宜模型,verifier 走贵的

这是 #2027 和 #1768 合并的结果。sub-agent 现在可以按角色指定模型和 provider:

# 配置示意 - 非实际文件名
[subagents.roles]
scout = { model = "gpt-4o-mini", provider = "openai" }
verifier = { model = "claude-sonnet-4", provider = "anthropic" }
synthesis = { model = "deepseek-chat", provider = "deepseek" }

explore 类任务被文档化为「推荐走快速模型、关闭 thinking」的场景,synthesis 类任务则默认走更强模型。Plan mode 被锁定为只读(没有 shell 工具),确保规划阶段的 agent 不会意外执行命令(#3218)。

Durable Goal Mode:跨轮次的持久化目标

之前 sub-agent 的目标只在单轮生效——agent 完成一个任务后就忘了上下文。v0.8.61 引入了跨轮次的持久目标跟踪(#3215, #891, #1976, #2058, #2029),带 token/时间计量和一个 verifier-as-judge 门控机制:sub-agent 报告"目标达成"之后,系统会用一个独立的 verifier agent 验证是否真的完成了,验证通过才算真正的 complete。

Provider/Model 路由隔离:一个 agent 报错不影响另一个

#3227 修复了最隐蔽的 bug:provider 和 model 状态现在是 session-local 的。两个 sub-agent 各跑各的 provider session,一个 agent 触发 context_length_exceeded 不再影响另一个的运行。系统还会预检上下文窗口,超过限制直接拦下来而不再循环重试(#3204)。

同步工具可取消

file_searchgrep_fileslist_dir 这些同步工具之前不能取消——你发起一个大范围文件搜索,想在中途取消,没用。它们会一直跑完。v0.8.61 让这些工具变成了可取消的(#1791),不再阻塞 turn 的关闭。

Composer 和 UI:细节打磨

大架构变动之外,这次还修了一堆日常使用中很烦人的问题:

Composer 大修:Ctrl+S 发送替代了之前的模糊键绑定(#3203, #3224),底部加了一个 busy/idle 指示器让你知道当前输入状态(#2982),CJK 文本终于正常换行了不再挤成一团(#963),sidebar 的 stop 按钮变可点击(#3028),还加了实时的 token 吞吐量显示(#3190)。tui 里自动过期的 sub-agent 卡片现在会自己消失而不是一直占着位置(#3078)。

Provider 相关:Provider 列表改为字母排序,不再把 DeepSeek 硬编码在第一位(#3076)。Novita 用户之前 chat completions 直接 404,因为没有对齐到 /openai/v1 端点,现在已经默认正确路由(#3255)。Kimi/Moonshot 的空函数参数问题也修了——不传参数时自动补一个根对象 schema(#3265)。

更新和安装:自更新系统现在会重试瞬时的 GitHub 元数据/资产下载失败,如果 REST API 不行,会自动 fallback 到公开的 releases/latest 重定向(#3232)。Linux glibc 在更新路径中加了预检提示(#3207, #1067)。之前 deepseek update 还会尝试唤起不存在的二进制,现在统一转到 codewhale(#2960, #2924, #2917)。

低频但重要的体验修复:MCP stdio 代理的启动提示不再阻塞非交互式运行(#2475),后台 shell 恢复失败和 sub-agent API 超时都做了可配置处理(#1737, #1786, #1806)。数字键 1-8 现在正常输入文字了,热栏需要用 Alt+1-Alt+8 触发(#3243)。粘贴大量文本后在 composer 中仍然可编辑,提交时自动以文件备份追加给模型存取(#3267)。

升级

# 推荐(已有安装)
codewhale update

# 首次安装
npm install -g codewhale

# 或从源码编译
cargo install codewhale-cli --locked
cargo install codewhale-tui --locked

⚠️ npm 包与 GitHub Release 可能有短暂延迟,codewhale update 直接走 GitHub Release 二进制,不受 npm 滞后影响。

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #WhaleFlow #多Agent协作 #AI开发工具 #SubAgent调度

CodeWhale v0.8.60 发布 —— Agent Fleet 真正跑在了生产环境,Shell 也能并行跑了

· 阅读需 4 分钟

CodeWhale v0.8.60 封面

Agent Fleet 终于不再「假装」在生产环境跑

CodeWhale 的 codewhale fleet run 之前一直跑在本地模拟解释器上——听起来像真的在调度,其实只是在本机模拟 worker 行为。v0.8.60 切到了真实的 headless worker:通过 codewhale exec --output-format stream-json 拉起真正的无头进程,worker 结束时释放 lease,队列里的后续 fleet 任务继续跑。

简单说,之前 fleet 跑的是一个"假"的分布式,现在跑的是真的。这个 cutover 由 #3154/#3096 两个 PR 共同完成,涉及了 lease 管理、worker 生命周期、stream-json 输出格式的多层改动。不是那种一改就完的配置开关——是真正的架构迁移。

CodeWhale 想做的那个「多 agent 并行作业」的故事,从这个版本开始才真正可以信任。

只读 Shell 命令终于可以并行跑了

代码审查场景里最常见的模式:同时 grep 几个目录查问题、同时 cat 几个配置确认差异、同时 ls 检查文件存在——这些操作根本不改系统状态,但之前的 shell 引擎一律串行处理。

v0.8.60 加入了只读 shell 并行的能力(#2983):引擎自动识别 bash/sh/zsh -c 包装的只读命令,让它们并发执行。而写操作、stdin、后台 TTY 任务、管道、重定向、命令替换、以及 tail -f 这种 follow 模式,依然保持串行。

这个选择很务实:不是一刀切说「全部并行」或者「全部串行」——是只对可安全并发执行的路径开绿灯。代价不大,但用 CodeWhale 做代码审查的人感受会很直接:以前堵在等 grep 返回的四五个 shell,现在同时跑完。

新模型 + 三组自有路线

v0.8.60 引入了 GLM-5.2(智谱新一代),同时新增三组 first-party provider 路线:

  • Z.ai 自有路线:之前 Z.ai 只是 OpenRouter 上的一个 provider 选项,现在 CodeWhale 直接内置了 Z.ai 的 API 路由,GLM-5.2 和 GLM-5.1 都可以选
  • StepFun / StepFlash:阶跃星辰的 step-3.7-flash 路线加入,阶跃的模型在代码生成评测里一直属于中上梯队
  • MiniMax 路线:默认 MiniMax-M3,M2.7/M2.5/M2.1 家族可选(#3187/#3191)。MiniMax 在中文内容生成和 agent 场景里口碑不错,这条路线对国内用户很实用

非 DeepSeek 的模型生态越来越完整了。CodeWhale 从 DeepSeek-TUI 改名为 CodeWhale 时,意图就是做一个模型无关的 agent 工具。现在 Z.ai、StepFun、MiniMax 都上了自有路线,这个方向的落地比预期快。

其他更新

Declarative JS/TS WhaleFlow 创作(#3097):WhaleFlow 现在接受编译时 workflow({...}) 的 JS/TS 声明形式,只做静态校验,不执行用户脚本。对用 JS 写 agent workflow 的人来说,写起来更像写代码而非配 YAML。

Slash 菜单 Ctrl+P/Ctrl+N(#3196): slash 命令菜单的键盘导航,不用退出菜单去调出全局文件选择器了。日常高频操作,反而很少人注意到这个之前竟然是缺失的。

Sub-agent eval 不再默认阻塞: agent_eval 之前会等子进程的 provider 调用完成才返回结果。现在返回当前快照,后续输入流式跟进。传 block:true 还是可以等。不阻塞是合理的默认——等你发现问题了再去细看详情就行,不需要每次都等子 agent 跑完。

Z.ai GLM thinking trace 修复: Z.ai 的思考痕迹之前没走通——reasoning_content 被丢弃、GLM 推理流不被识别。现在对齐了 Z.ai 的 thinking 接口格式,ultracode 也作为最大努力别名接入。

Claude skill 存档兼容性(#2743): /skill install 现在能正确处理 Claude 风格的单技能文件夹存档,同时明确拒绝多技能 Claude 插件包,而不是静默只装第一个。

升级:

# 已安装用户 — 直走 GitHub Release 二进制,最快
codewhale update

# 首次安装(npm wrapper 自动下载双二进制)
npm install -g codewhale

# Cargo 安装(Linux/macOS)
cargo install codewhale-cli codewhale-tui --locked

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #AgentFleet #开源工具 #AI编程

CodeWhale v0.8.59 发布 —— Kimi K2.7 Code、语音命令、线程回退、Hugging Face provider,一个版本塞了 20+ 新功能

· 阅读需 3 分钟

CodeWhale v0.8.59 封面

Moonshot Kimi K2.7 Code 模型默认接入

Moonshot/Kimi provider 现在默认指向 kimi-k2.7-code 模型,kimi/kimi-k2 别名都解析到这个模型。旧版 kimi-k2.6 仍可选,OpenRouter 上也加了 moonshotai/kimi-k2.7-code 注册行。

Kimi 在 coding 领域的持续发力——K2.7 Code 主打代码能力,对用 Moonshot 做编程的团队来说是个直接升级。

语音命令入箱

/voice/voice-send/voice-control 三个命令正式内置了。通过 sox/rec/arecord 录音,走当前 provider 的 chat-completions API 转写,插入到 composer 光标位置。还配了 voice.toggle hotbar 动作。

语音命令的 help 和 status 文本也已经本地化到 7 种语言。对国内用户来说,在终端里用中文语音输入指令不再是 demo 级功能。

线程回退 + 快照恢复 API

GUI 客户端现在可以调 POST /v1/threads/{id}/undo/patch-undo/retry 来 fork、回滚或重跑最近的对话轮次。POST /v1/snapshots/{id}/restore 可以按 ID 恢复工作区快照。

对桌面端用户来说,误操作后回退不再靠手翻历史——多了程序化的 undo 能力。

Hugging Face Provider 正式支持

Hugging Face Inference Providers 现在有了一等公民的配置、环境变量、文档和注册中心覆盖。支持 huggingface/hugging-face/hugging_face/hf 四个别名和 HUGGINGFACE_*/HF_* 环境变量回退。

如果你在 HF 上跑自建模型,现在配置起来跟其他 provider 一样简单了。

其他亮点

简洁 Verbosity 模式(#3052):CLI 非交互模式默认精简 prompt/output,直到被 config/env/--verbosity 覆盖。TUI 不受影响。

Provider 回退链(#2773):配置 fallback_providers 后,主 provider 挂了自动走 fallback,TUI 可报告/切换/重置 fallback 状态,footer 可见。

Provider-wait 可观测性(#3095):footer 卡住原因现在显示具体 provider/model、空闲秒数、stream budget,fanout 计划是否还在 0 running

交互式 fanout 门控(#3095):sub-agent 子任务排队在可配置的信号量后([subagents] interactive_max_launch,默认 4),等待时显示原因。

SSE 无空格兼容(#3152):某些 provider 发 data:{...}(无空格)之前被拒绝——现在 data: {...}data:{...} 都接受。

升级:

codewhale update
npm install -g codewhale

⚠️ npm 包可能有短暂延迟,codewhale update 直接走 GitHub Release 二进制。

完整更新日志:GitHub Release

v0.8.59 是 CodeWhale 改名以来功能密度最高的一个版本——语音、HF provider、线程回退、Kimi 新模型,每条线都不浅。

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #Kimi #语音助手 #HuggingFace #版本更新