声明:kimi-tower启动命令是我本地环境的映射,具体以github为准
主文档:Kimi Code CLI 实验性功能 -tower(完整机制、概念、示例都在这里)。
本文只记录 PR 构建df61688相对初版6275c7c的变化,以及本机的升级操作。
状态:PR #2633 仍未合入主线,只是代码更新;本机kimi-tower已升级到df61688。
1. 变更一览
| # | 变更 | 类型 | 对你的影响 |
|---|---|---|---|
| 1 | 塔台可以用 AskUserQuestion 了 | 行为变化(最大) | 开工前会先问你澄清需求;想要它问就别用 auto 模式 |
| 2 | worker 支持 secondary model,reviewer 保持主模型 | 新能力 | 省 token;本机配置已就绪,零改动 |
| 3 | TodoList 在 tower 模式被代码禁用 | 行为变化 | 无感,只是少一个工具 |
| 4 | 连续 spawn、不轮询 | 行为优化 | 并行度更实,等待更少 |
| 5 | submodule worktree 清理残留修复 | bug 修复 | teardown 更干净,日志更全 |
| 6 | 主线 rebase 到 0.34.0 | 基底升级 | 顺带继承约 30 个主线修复 |
2. 更新详解
2.1 塔台可以用 AskUserQuestion 了
- 初版(
6275c7c) :tower 模式期间AskUserQuestion被代码层禁止(tower-mode-ask-user-question-deny策略),塔台全程自行决策; df61688:删掉该禁令,改为 "开工前澄清、跑起来不阻塞"(Clarify up front, never block mid-run) ——塔台在 Plan / Spawn 之前、歧义成本最低时先跟你确认需求;fleet 一旦跑起来,依旧不停下来等你,自行决策、记录 activity.log 并顺带告诉你;- worker / reviewer 仍然不能问:它们的工具 profile 里本来就没有
AskUserQuestion,需要人工输入时用TowerSend上报塔台; - auto 权限模式下所有人依旧不能问(
AskUserQuestion在 auto 模式全局禁用),行为退回初版的"安全默认"。
⚠️ 与主文档的冲突:主文档第 9、10、15、16 节中"不会问你问题 /
AskUserQuestion被代码禁止"的描述仅适用于初版,以本文为准。
2.2 worker 支持 secondary model,reviewer 保持主模型
TowerSpawn现在走与Agent/AgentSwarm完全相同的模型绑定规则(resolveSubagentBinding):secondary-model 实验开启时,worker 绑定[secondary_model]配置的模型;未开启则继承塔台模型;- reviewer 始终绑定塔台的主模型——作者原话:"review quality is not where you save"(省 token 不能省在审查上);
- 实际解析出的模型显示在 spawn 输出和 activity.log 的
spawn行里,可审计; - 收益:worker 是 token 消耗大头,换用更便宜的 secondary model 能显著压低一次 tower 的成本,同时主模型审查守住质量关。
配置方法与 swarm secondary 完全相同(本机 ~/.kimi-code/config.toml 已有,无需改动):
[experimental]
secondary-model = true
[secondary_model]
model = "kimi-code/k3-256k" # worker 绑定它;reviewer 始终用塔台主模型
2.3 TodoList 在 tower 模式被代码禁用
- 新增权限策略
tower-mode-todo-list-deny:tower 模式下TodoList工具被代码层拒绝; - 原因:mission 追踪只走 tower 协议(
TowerPlan/TowerMission/TowerStatus/MISSIONS.md);todo"同时只能一个任务 in_progress"的语义会把并行的 fleet 串行化。
2.4 行为指引微调(tower.md)
- Spawn 强调真并行:所有依赖已解锁的 mission 必须立刻连续 spawn,不许一个一个挤、不许等前一个 worker 再派下一个;
- 不轮询:批次跑起来后塔台应结束当前回合——worker 完成和收件消息以通知形式到达,禁止循环 poll
TowerInbox/TowerStatus、禁止同步干等; - 这两点回应了初版可能出现的"塔台逐个派工 / 空转等待"的效率问题。
2.5 修复:submodule worktree 清理残留
- bug:裸
git worktree remove会拒绝删除含已初始化 submodule 的 worktree(即使干净),teardown 悄悄留下的恰好是"跑过构建的 worker"的 worktree;且失败只进工具报告、不进 activity.log,难以察觉; - 修复:脏检查(防数据丢失的闸门)通过后,删除一律带
--force(对干净 worktree 无害,正好绕过 git 的 submodule 拒绝);保留 / 删除失败均写入 activity.log(worktree.keep/worktree.remove.failed)。
2.6 主线 rebase
分支 rebase 到最新主线(0.34.0),顺带继承约 30 个主线修复与改进(全文搜索索引隔离出主线程、compaction token 计数修正、插件变更基线等),与 tower 本身无关,但让体验版基底更稳。
3. 对主文档的影响(阅读主文档时对照)
主文档 Kimi Code CLI 实验性功能 -tower 描述的是初版 6275c7c,以下小节结论已被 df61688 改变:
| 主文档位置 | 初版结论 | df61688 现状 |
|---|---|---|
| §1.2 / §3.1 / §10 / §16 | "不会问你问题",AskUserQuestion 代码禁止 | 开工前会问,运行中不问(本文 §2.1) |
| §9 工作流 | Init 起手,共 6 步 | 前置 Clarify 步骤;Spawn 连续派工、不轮询(本文 §2.1、§2.4) |
| §10 行为约定 | 无 TodoList 禁令 | TodoList 代码禁用(本文 §2.3) |
| §11 teardown | 脏 worktree 受保护 | 同前,且 submodule 残留已修复(本文 §2.5) |
| §14 安装 | commit 6275c7c | commit df61688(本文 §4) |
| §15 代价 | "不会 AskUserQuestion" | 改为"运行中不请示";worker 可用 secondary model 降成本(本文 §2.1、§2.2) |
其余章节(机制、worktree/scope 隔离、合并闸门、review 循环、通信、两个实战示例)不受影响。
4. 本机升级操作记录(2026-08-07 已执行)
# 1. 下载新构建(18.7MB,pkg.pr.new 直连 tarball)
curl -L -o kimi-tower-df61688.tgz "https://pkg.pr.new/@moonshot-ai/kimi-code@df61688"
# 2. 解压后替换本机包目录(旧版已备份清理)
# ~/tower-kimi/package ← 新 package(0.34.0)
# 3. 启动器注释同步 commit 标记:~/.kimi-code/bin/kimi-tower.cmd
# 4. 验证
kimi-tower --version # → 0.34.0
- 配置零改动:
[secondary_model]已有现成配置(见 §2.2); - 官方等价命令(网络可达时):
pnpm dlx https://pkg.pr.new/@moonshot-ai/kimi-code@df61688; - 注意:体验版包版本号 0.34.0 与官方 0.34.0 同号不同构建,官方版仍无 /tower;
- 权限模式取舍:
--auto不打断 worker,但塔台也无法向你提问;想要"开工前澄清"就别用 auto。
参考链接
- PR:feat(agent-core): add tower command to orchestrate multi-agents #2633(初版
6275c7c→ 2026-08-07 更新df61688) - 主文档:Kimi Code CLI 实验性功能 -tower
- 变更源码依据:本机克隆
~/tower-kimi-src,git diff 6275c7cc df616889(重点:tower.md、spawnTool.ts、towerService.ts、protocol/git.ts) - 相关笔记:Kimi Code CLI 自定义子代理使用指南