跳到主要内容

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更新报告