日常界面与用量监控
工作台是一个窗口,但活不是:一轮在跑、一个子智能体结束了、有件事等你批、花费在往上走。这一页讲的是这个窗口里你每天都会看的部分——不会越拉越乱的时间线、能挂在消息上的批注、收拢「等着你」的事的托盘、跟着当前智能体走的右栏,以及那个既告诉你花了多少钱、也告诉你哪条规则挡住了请求、还能把这些数字送到你选定目的地的用量页。
步骤折叠时间线
一轮长时间运行,绝大多数内容是工具调用、思考和 shell 输出。对话视图把做完的一段折成一行,比如「Worked · 8 steps」,任何一折都能按原顺序展开。进行中的这一轮和已结束的子智能体也这样折叠,图片结果单独占一行,失败或取消的条目则始终单独可见。
已解决的问题、审批、标记和完成通知以紧凑的单行条目留在原来的位置上。连续多条会折进可展开的「活动历史(Activity history)」行;连续相同的标记分隔条(比如目标更新)在中间没有消息或工具调用时,只显示最新一条并标明次数,例如「目标已更新 ×12」。重开会话时,模型切换会以分隔条标明之前和之后的模型;只调整思考力度不会新增分隔条。
较长的工具输出会随着你往下看自己续读:Kiki 在后台继续取下一段,正文下方的行显示进度。某一段失败时就停在那里,给出重试;如果服务器为该字段保留了原件,同一行还会提供下载原文,把这个字段的完整内容保存到你的机器上。见界面导览。
消息锚定批注
你可以在时间线的某条消息上挂一条批注,随下一条消息一起发出去,而不是单独打断一轮。输入框上会带着你攒了几条批注的计数,批注标记留在它所属的消息上,之后回看的人能知道你指的是哪一句、为什么。重新打开批注会调出你当初写它时那个锚定编辑器。
批注属于桌面和浏览器端的输入框;终端里的对应做法是在同一轮里发一条普通消息或一条 ! shell 命令。见界面导览。
「需要你」审批托盘
审批和问题不会随时散布在时间线上。它们收在输入框上方的托盘里:一条等你处理的审批,以及折叠成「还有 1 项」的非阻塞问题。有东西等着时,输入框卡片会让位给它;处理完,你没发出去的草稿原样回来。
智能体忙着的时候,「发送时机」菜单也在同一个地方,所以做决定和调队列在同处。审批本身——各个模式各自允许什么——见交互与输入。
焦点跟随右侧栏
右侧面板一次只描述一个智能体:你最后点进去或聚焦的那个。主智能体和每个子智能体用的是同一套页面,进到子智能体的记录里,还是同一个右栏跟着你走。
它显示智能体的身份和此刻在做什么、「需要你」的条目直接列成可以当场处理的行、活动流,以及一个折起来的「能力」区块。这个区块的子智能体一栏列出每个 profile 与 route,以及现在能不能启动。能创建谁,见派遣能力。宽窗口下面板默认展开,页头的 Standard / Cockpit 可以让它临时占用预览区;退出驾驶舱会恢复你原来的预览内容、页签、草稿和宽度。
用量页
侧栏的 Usage 打开的是实时(Live)。标签顺序是实时(Live)、历史(History)、额度(Quotas)、外部同步(External sync)。实时回答为什么不动了,历史回答这个区间花了多少,额度回答已配置的供应商账号还剩多少,外部同步回答你想把数字送到哪儿。地址里已经带了历史筛选时,打开的是历史。见 用量。
历史花费与完整性
历史是日期区间这一页:token 用量和估算费用,起点是今天。上方的筛选栏驱动它——先选范围,再选工作区、粒度和图表按什么维度拆开——而每个选择都写进 URL,所以你调好的视图可以直接当链接发出去。四个合计下面是趋势图,按所选维度堆叠;点开某个桶会展开它背后的会话和轮次;再下面的页签按费用给会话排序,最贵的那条就是第一行。
它不肯给你的,是一个自信但错误的数字。token 用量和费用各有独立的完整性指示:供应商没有返回某次调用的用量时,Kiki 标为未知,而不是记成一个真实的 0;只要其中掺了未知项,合计就显示为部分未知,而不是一个看起来完整的总数。统计说明(Data reliability) 再把读者不能混淆的几种情况分开:某个平台从未上报、统计本身不完整、区间里确实没有东西、以及请求失败。费用本身是用你本地的价格表算出的估算值;页头的**模型价格(Model prices)**是给没有价格的模型补价的地方,页面会点名哪些模型没有价格,而不是悄悄按 0 计。

实时并发与限流规则
实时是同一页的另一半,回答的正是花着钱却觉得慢时会问的那个问题。它统计这个 Kiki 服务正在跑和正在等的请求,展开请求详情可以按模型、供应商或角色拆开看。
真正让它有用的是正在等待列表。每一行都写明模型、已经等了多久,以及是哪条并发规则挡着它,直接给规则 id。这个 id 就是下方并发限制编辑器里的同一个 id,所以这一行直接告诉你要改哪条规则。
一条规则要选目标(指定模型、指定供应商,或全部)、范围(全部会话在整个服务里共用一份额度;每个会话各算各的)、上限,以及超过之后怎么办:排队等空位,拒绝立刻失败。规则还可以带一个最长等待预算,只针对子智能体的规则也是一个开关的事。规则旁边的开关会暂停它,既不删除它也不丢掉它的等待预算;保存后对新请求和排队中的请求立即生效,不会掐断正在传输的流——所以调高上限能立刻放行队列,调低上限则可能让在跑的请求短暂高于新值。
调之前有两条边界值得知道。上限数的是请求,不是 token、不是花费、也不是智能体数量——它不是预算工具。而且它管的是这个 Kiki 服务自己发出的模型请求:当你把一轮交给 Codex、Claude Code 或 Grok Build 当引擎时,那些请求属于引擎自己,不走这些规则;而外部工具回过头来让 Kiki 跑原生请求,则照常计入。

无正文外部同步
外部同步把这个服务自己的用量,按你选的周期发到你选的目的地。它是给那些想把 token 统计放到这个应用之外的人准备的:一个团队数据仓库、一段自己的脚本,或者一个托管服务。目的地有三种:
- Kiki webhook——你自己的 HTTPS 端点,收到一份有文档的 JSON 批次。支持 Bearer 或 HMAC 认证,可选 gzip;密钥可以放在系统钥匙串,也可以按你的选择存成服务器上的私有文件。你还可以收窄时间范围、排除工作区、把临时会话排除在外。
- VibeCafe——在页面上用设备码直接登录,对接官方服务。自定义地址、或你自己提供密钥,是另一条高级路径。设备码流程已经实现,但尚未对线上服务完成端到端验证。
- 脚本——一条由你批准的命令。Kiki 把批次写进它的 stdin,从输出里读回执。它以你自己的 OS 用户身份和普通权限运行,因此能自己读文件、访问网络;这不是沙箱,而且批准是针对这条命令的,不是针对每一批数据。
过网的东西被刻意压到很小:模型、一个 UTC 半小时桶、四项 token 数、一个质量标记,以及一个本地费用估算。提示词、回答、标题、工作区名称和路径都不在载荷里——但接收端仍然能看到你的地址和你干活的时间,而且它看到的模型名可能是一个不透明 id,而不是你本地的别名。每个目的地都显示自己的状态:运行中、已停用、等待发送、凭据被拒,或服务方已经持有不同的值。暂停会保留队列;移除一个目的地会另外问一句,要不要丢掉还没发出去的数据。
外部同步无需实验开关。没有目的地时不会发送数据;配好的目的地在预览确切内容、同意并启用之前一直是停用状态。扩大时间范围、更换端点,或把目的地指向另一个凭据都需要重新同意;缩小范围或调整周期则不需要。

同一批目的地也可以在终端里用 kiki usage-export 管理,这一页上的每个控件背后都有对应的字段、错误码和限制:每个控件在哪里见 用量,规则的完整字段参考见 request_governance。
下一步
- 界面导览——窗口的完整导览
- 设置页导览——每个控件在哪里
- 子智能体与多模型分工——右栏里那些智能体在干什么