跳到主要内容
文档/kaya/编程 Agent 总控
05/21

kaya 是 AI 编程 agent 的总控台:它能盯着运行在你 tab 里的编程 agent(Claude Code / Kimi Code / OpenCode / Codex 等),在你授权的前提下代为输入,并帮你集中安装和管理这些 agent。

coding 模式(主动看护)#

打开顶栏的 coding 模式开关后,kaya 会主动盯着你运行在 tab 里的编程 agent,不需要你自己盯着终端:

  • 检测到对方弹出确认、等待你决策时,kaya 自动发起一个对话回合,转达对方需要什么决策并询问你的指示
  • 检测到对方**任务跑完(画面空闲)**时,kaya 主动读取结果、总结进展并询问下一步
  • 监控是只读的:kaya 只报告和询问,永远不会替你点确认——决策始终由你做
  • 这个开关同时是「驾驶」的总闸门:只有开关打开,对话端才具备向编程 agent tab 发指令的能力(仍需每个 tab 单独的授权卡确认);开关一关,该能力从下一回合起整个下线(工具不再注册;正在进行的回合按回合开始时的状态走完),监控不受影响的部分只剩被动的通知卡片与 tab 角标
  • 自动回合携带的确认内容摘要经过脱敏;每个 tab 有 60 秒冷却,对话进行中不打扰(回合收尾后补发)
  • 注意:coding 模式的自动回合会随对话发送给你当前选用的模型(与手动提问同一条外发路径);关闭开关即完全不触发

tab 等待确认提醒#

当某个 tab 里运行的 AI CLI 弹出需要你决策的确认(如命令审批)时,kaya 会主动感知并把决策收口到对话输入框:

  • 对话窗口出现一张通知卡片,显示哪个 tab 的哪个 AI 在等待、确认内容摘要;卡片上只有「忽略」(确认内容变化会重新提醒)
  • 对应 tab 上显示一个提醒角标
  • 最近一张待决的确认如果带选项菜单,会以决策条常驻在对话输入框上方:显示决策文案、各序号对应的含义,并提示「输入数字选择」
  • 你直接在对话输入框敲菜单序号并发送,kaya 会把对应按键写回该 tab 里的 AI CLI。写回前会做多重复验:tab 仍存活、前台进程仍是受支持的 AI CLI、该菜单仍显示在画面中、序号在合法范围内——全部通过才允许写入,且只接受菜单上的个位数字序号
  • 序号越界、输入的不是裸数字、或当前没有待决确认时,输入不会被拦截,照常被当作普通消息发送
  • 你在终端里处理完后,卡片自动变为「已处理」

kaya 永远不会替你回答 AI CLI 自己的确认——那是它自身的安全闸,决策始终由你本人做出。

运行中 agent 状态栏(coding 模式专属)#

coding 模式开启时,对话面板左缘有一条可开合的侧栏(点边缘的箭头把手展开 / 收起,开合状态会被记住;展开的宽度可以拖右缘把手调整;窗口太窄时它会变成覆盖在对话上的抽屉,不再挤压对话区;终端满屏时它仍然常驻在窗口左缘,同样可开合、可拖宽):

  • 总览所有正在运行的编程 agent:每张卡片显示实例编号(如 kimi-code #2,编号全局递增、跨 agent 类型混编)、当前状态(等待你决策 / 空闲 / 运行中)与所在 tab、工作目录;运行中的卡片还会显示它正在做什么的摘要
  • 卡片上还有一行状态栏:当前模型、思考档位、权限模式、context 用量(kimi code 四项全有;claude code 只有权限模式;codex 只有模型;opencode 暂不支持)。权限模式显示为「总是询问 / 按需询问 / 从不询问」等直白文案;宽度不够时只保留关键段,鼠标悬停可看完整内容
  • 每个 tab 可编辑一个项目标签(点卡片上的项目行直接改,按 tab 持久化):多项目并行时用来辨认「这个 agent 在为哪个项目干活」,@ 列表和卡片上都会显示
  • 点卡片一次完成三件事:切到对应 tab、把它绑定为当前对话的转发目标、聚焦输入框——之后直接在对话里对它说话即可,与 /agents 绑定同一条通道;同时 kaya 会让 AI 顺带读屏汇报一次该 agent 的最新进展(10 秒内重复点击不重复汇报;对话正忙时只提示、不插队)
  • 「等待你决策」的卡片上直接列出对方的选项按钮,点一下就作答,不用切 tab
  • 侧栏收起时把手上有数量角标;有 agent 在等决策时角标变警示色

Agents 管理中心#

应用菜单 → Agents(或点顶栏右侧的 Agents 图标)打开管理中心。安装、更新、模型配置也可以在对话里直接让 kaya 做(比如说「帮我装一下 Claude Code」)——两条路径背后是同一套引擎:

  • 后台安装 / 更新编程 agent:按可用方式依次尝试(npm > brew > 官方脚本),进度实时显示在卡片上;一种方式失败会自动降级到下一种,全部方式都失败才报错,并列出每种方式各自的失败原因;也可改用「在终端安装」手动兜底
    • npm 方式遇到网络类失败会先自动换 npmmirror 镜像重试一次,再计入降级
    • 每种方式的单次尝试有 10 分钟整体超时:超时即按该方式失败处理,自动降级下一种;长时间无动静时,看面板任务卡片的输出尾部(保留最后 50 行)判断是慢还是卡住
    • 卸载:npm / brew 装的 agent 支持卸载(带归属校验——不是该管理器装的不卸),且只移除程序本体,配置与历史数据保留;官方脚本装的暂不支持卸载,请按官方文档手动卸载
  • 自定义命令名:如果你把 agent 的 CLI 命令改了名(比如用 myclaude 替代 claude),在 agent 卡片的「命令名」一栏补上这些名字(逗号分隔,支持全角逗号);保存后安装检测、前台运行识别、启动命令一律同时认原名与自定义名
  • 统一模型库:模型条目在**「设置 → 模型」**标签页唯一维护(与对话侧「我的模型」是同一座库),Agents 面板只做绑定——展开某个 agent 的模型列表,点「使用」把它绑定过去并写入该 agent 自己的配置文件(自动备份 .bak)
    • 一条目可同时带对话 / Anthropic / OpenAI 三个协议端点,各 agent 各取所需:Claude Code 只认 Anthropic 端点;Kimi Code / OpenCode / Codex 用 OpenAI 端点,没填时回退对话端点
    • API Key 存系统钥匙串(macOS Keychain / Windows 凭据管理器),库文件里不存 key;密钥值不会回显在对话里
    • Codex 例外:为与 ChatGPT 桌面 app 共存,kaya 的 Codex 配置写入独立 profile 文件 ~/.codex/kaya.config.toml,只对从 kaya 启动的 Codex(或 codex --profile kaya)生效
    • 改 / 删条目会自动跟随已绑定的 agent(模型库是唯一事实源与唯一写入点);删除条目后,agent 回到自己的默认行为、不再残留明文密钥。例外:kaya 没能认领的旧配置(没有 kaya 写过的标记)不会被自动清理——对该 agent 重新点一次「使用」即可收敛,或手动还原同目录下的 .bak 备份
    • 恢复旧配置:手动还原写入前的 .bak 备份(如 ~/.claude/settings.json.bak)
  • 通过 IM 渠道(飞书 / Slack / 企微)远程使用时:仅支持读 / 改配置(同样有授权卡);查状态、安装、更新在 IM 里不可用

授权模型#

让对话端的 AI 直接向某个 tab 输入,需要逐 tab 授权:

  • 当 AI 想向某个运行受支持 AI CLI 的 tab 写入时,对话中会弹出授权卡片,明确允许后才会写入
  • 授权绑定当前进程:进程退出或 tab 关闭,授权即失效
  • 授权中的 tab 上会显示 🤖 角标,点击可随时撤销
  • 你的普通 shell 提示符永远不接受 AI 输入

下一步#