Office 是可视化;Agent 是长期身份;Worker 是一次运行实例
Office/Floor 主要存在于 renderer。Hive registry 保存 agent 身份、角色、cwd、session 与状态;PTY session 是这次运行。Ephemeral worker 由 spawn-requests 文件触发,通常带独立 worktree。
Worktree 隔离与保全策略
Agent 用 outbox 写信,Hive 每 1.5 秒路由到 inbox
发送者目录决定真实 from,路由器规范化消息、应用 hop cap、解析 god/human/broadcast、检查 provider 的安全投递能力,再写目标 inbox 或发出 terminal handoff。
- 01human 不对应独立审批队列;消息被路由给 god/orchestrator 代理。
- 02broadcast 只面向 active registry,排除归档 agent 与 send-only assistant。
- 03未知收件人、hookless provider 或失败的 terminal handoff 会记录 drop/bounce,避免静默丢信。
- 04outbox 文件成功路由后移动到 `.sent`;inbox 处理后进入 `.done`。
Hive 文件协议与投递分支
src/main/hive.tsL1487-L1633sendrouteMessageemitTerminalHandoff收件人解析、bounces、provider 分层和 renderer 事件。
src/main/hive.tsL1635-L1674startRouterrouteOnce轮询每个 agent outbox,并用目录 id 强制真实发送者。
src/renderer/src/hooks/useHive.tsL609-L888onHiveTerminalHandoffdispatchsubmitToPtyRenderer 把 handoff 和 inbox nudge 放入同一安全队列,空闲时才输入 PTY。
Task 状态与 Agent 状态是两套状态机
tasks.json 的卡片只有 todo / doing / blocked / done。Agent registry 记录 idle / working / blocked / gone;renderer 另外从 hook 与终端输出映射 idle / working / waiting / blocked。不要把 Kanban 状态当成进程状态。
src/main/hive.tsL54-L175HiveMessageHiveTaskRegistryAgent三种数据结构的状态字段在类型层就相互独立。
src/main/hive.tsL1688-L1749writeTasksaddTaskpatchTaskdeleteTask任务变更合并未知字段、原子写入并由单一 Hive committer 提交。
src/renderer/src/hooks/usePtyParser.tsL105-L181usePtyParserBLOCK_HINTSRenderer 用 TUI 输出补充状态:god 需要人时 blocked,worker 在 prompt 时 waiting。
Circuit Breaker 逐级升级;Closing Time 先保存再退出
Breaker 综合重复工具、错误风暴、token cap、速度与无进展信号,在 healthy → steering → constrained → stopped 间变化;hardStop 默认关闭。Closing Time 广播收尾、等待每个 worker ACK、验证 god COMPLETE 后才 teardown。
src/main/breaker.tsL111-L345CircuitBreakertickevaluate每个 beat 只升级或恢复一级,并把动作与状态分开。
src/main/closingTime.tsL53-L230ClosingTimeControllerstartonRoutedClosing Time 通过既有 inbox/steer rails 协调,不直接粗暴 kill。
src/main/workerWake.tsL34-L120WorkerWakeWatchdogclassifyHook主进程 watchdog 只唤醒真正空闲、有未读邮件且不处于 HITL 的 worker。
Hive 接受短暂不一致,但必须最终收敛且可解释
文件轮询、多个进程与终端 handoff 意味着 UI、mailbox 和 Agent 认知可能短暂不同。设计重点不是假装同步,而是定义状态推进、重试和最终证据。
任务板、收件箱和员工口头确认不会同一毫秒更新;系统要保证它们最终对上账。