标题(20-200 字符) · 锁定 title 仅 draft 状态可编辑。如需修改,请先回退到 draft。 描述(背景/上下文) 阶段 2 — 导演控制台(Director Console)。在 REQ-9d88acbf「让 AI 智能体在虚拟空间生活」complete 之后自然演进。 【功能模块】 1. **事件预设(Scene Preset)**:导演通过 UI/API 注入自定义事件到 town,town 下个 tick 把事件 publish 到 bus,所有 agent 在 LLM prompt 中看到该事件(例: "导演发起:今天客厅有人过生日,大家准备惊喜")。支持文本/JSON 双格式。 2. **暂停/倍速(Time Control)**:全局 tick 调度控制,支持 0.5x/1x/2x/4x/暂停/恢复。底层改 TickScheduler.interval_for() 乘以 speed_factor;暂停时 town 跳过 run_tick 但 ws/bus 仍活跃;恢复时无缝衔接。 3. **时间倒带(Time Replay)**:town tick 历史存到 event_store(已有 events 表),导演选历史时间点 → 拉该时间点之后的 50 条 events + STM/LTM 快照 → 在只读 replay 视图播放。前端纯展示,不修改 SSOT。 【API 设计(待 brainstorming)】 - POST /api/director/scene {kind, content} → 注入场景事件 - POST /api/director/control {action: pause/resume/speed, factor} → 时钟控制 - GET /api/director/replay?ts=2026-06-29T12:00:00 → 倒带快照 - GET /api/director/state → 当前导演模式状态(暂停中? 倍速 2x?) 【验收标准(初版,待细化)】 1. POST /api/director/scene {kind: birthday, content: 今天李四过生日} 后,下一个 tick town bus 收到 director.scene 事件,前端 events 面板显示「导演发起:今天李四过生日」 2. POST /api/director/control {action: speed, factor: 2.0} 后,tick 间隔从 60s 缩短为 30s(2x);3 分钟内应看到 6 个 tick(原 3 个) 3. POST /api/director/control {action: pause} 后,town 暂停 1 分钟不应有任何 decision 事件;POST {action: resume} 后立即恢复 4. GET /api/director/replay?ts=... 返回该时刻之后的 50 条 events + STM/LTM 摘要,前端用 5x 速度播放回放 【复用资产(来自 REQ-9d88acbf 实施沉淀)】 - bus / Topic enum:加 Topic.DIRECTOR_SCENE / DIRECTOR_CONTROL 复用 event-bus - TickScheduler:加 speed_factor 参数,复用 agent-behavior-orchestrator - event_store:events 表已有 timestamp + agent_id + kind + content,直接按 ts 范围查询 - town main.py 加 4 个路由 + 1 个 director_state module-level dict - 前端:右下角浮窗 +3 个按钮(scene/control/replay),复用 command-panel 样式 【MVP 不做 — YAGNI】 - 多导演协作(只支持单一导演会话) - 导演场景模板库(只支持手写文本) - 时间倒带写到 town 实际状态(只读回放,不改 SSOT) - 跨多 town 实例(只针对单一 town) 【成本预估】 - 新增 LLM 上下文:导演场景每 tick 注入 1 行,5 agents × 0.1KB/tick × 1440 tick/天 = 0.7MB/天 context 增量,日增 ¥1 成本(忽略) - 时间倒带:event_store 历史查询,O(1) 索引(已有) - 暂停/倍速:不消耗 LLM 反而节省 ## 关联 引用 REQ-9d88acbf(阶段 1,complete 2026-06-29):town 6 AC 全完成,本 REQ 在其基础上扩展导演维度。 用户故事 作为观察者,我希望能在 town 跑的时候,像导演一样主动制造场景事件(生日/聚会/争吵/陌生人到访)、调节时间流速(快进/慢放/暂停)以及从历史 tick 重放到任意时刻。这样我能更主动地影响情节发展,体验『像玩游戏一样看 AI 智能体生活』的乐趣。 验收标准(JSON,数组,每项 given/when/then) [] 支持 JSON 数组格式。空数组表示无 AC。 非功能需求(JSON 对象,key/value 字符串) {} 优先级 P0 P1 P2 P3 负责人 截止日期 标签(逗号分隔) 保存修改 取消