徐涛
46de111965
feat(engine): 实现 Agent 角色热切换与子代理调度
新增 SessionManager::switch_agent / dispatch / dispatch_all / dispatch_stream
四个核心方法,补齐多 Agent 基础系统原语。
交付物:
- switch_agent 运行时替换 Arc<dyn Agent>,保留上下文并更新 SessionMeta
- dispatch 单任务派发:create_child → inherit_memory → submit_turn
- dispatch_all 并行派发:Semaphore 并发控制 + 部分成功语义
- dispatch_stream 流式派发:unbounded_channel + spawn task 消息重建 + finalize_turn
- DispatchConfig / SubTaskResult / SubTaskStreamEvent 公开类型
- 4 个端到端示例(agent_switch_demo / sub_agent_dispatch_demo /
bridge_keys_demo / dispatch_stream_demo)
辅助变更:
- EngineError 新增 DispatchFailed 变体
- CostTracker 实现 From<Usage> 转换
- save_session_meta / load_session_meta 改 pub(crate) 供 switch.rs 使用
测试: +17 个内联测试(4 switch + 5 dispatch + 4 dispatch_all +
4 dispatch_stream),全量 391 passed / 0 failed,
clippy 0 警告,doc 0 warning。
2026-07-15 11:15:58 +08:00
..
2026-06-01 23:06:50 +08:00
2026-06-01 23:06:50 +08:00
2026-06-02 08:51:42 +08:00
2026-06-02 22:19:15 +08:00
2026-06-07 10:23:36 +08:00
2026-06-07 23:01:28 +08:00
2026-06-10 22:38:32 +08:00
2026-06-11 22:49:27 +08:00
2026-06-22 08:43:48 +08:00
2026-06-15 23:07:33 +08:00
2026-06-22 06:34:11 +08:00
2026-06-17 22:55:47 +08:00
2026-06-18 06:51:13 +08:00
2026-06-22 06:52:04 +08:00
2026-06-17 22:55:47 +08:00
2026-06-15 23:07:33 +08:00
2026-06-30 22:59:05 +08:00
2026-06-30 22:59:05 +08:00
2026-06-30 22:22:12 +08:00
2026-06-30 22:22:12 +08:00
2026-07-03 14:13:30 +08:00
2026-07-05 07:32:19 +08:00
2026-07-05 10:46:46 +08:00
2026-07-05 16:54:29 +08:00
2026-07-05 21:04:31 +08:00
2026-07-08 23:19:24 +08:00
2026-07-06 09:46:04 +08:00
2026-07-06 14:53:00 +08:00
2026-07-08 22:55:17 +08:00
2026-07-09 13:08:35 +08:00
2026-07-09 16:51:29 +08:00
2026-07-10 06:43:06 +08:00
2026-07-15 06:52:05 +08:00
2026-07-15 11:15:58 +08:00
2026-06-09 22:32:48 +08:00
2026-06-09 22:32:59 +08:00
2026-06-10 22:22:18 +08:00
2026-06-07 22:42:49 +08:00
2026-07-06 21:55:03 +08:00
2026-06-10 06:52:24 +08:00
2026-07-04 10:19:54 +08:00
2026-07-15 09:00:02 +08:00