2026-02-15 深夜 - Atlas🐻 model_selector Control Plane重构完成
任务类型: 紧急夜班任务
负责人: Atlas🐻 (HC-005, 全栈系统工程师)
协调者: Coco🐳
任务来源: William直接指派 + Sage🦬 crew_manager设计方案
时间跨度: 2026-02-15 23:30 - 23:58 (28分钟)
任务背景
William要求对model_selector.py进行Control Plane重构,目标是"换传输层,保路由脑"。
Sage已完成crew_manager桥接设计方案,需要model_selector集成agent_cards.json支持基于Agent名称的路由。
任务执行
阶段1: 架构验证 (5分钟)
- 读取现有model_selector.py (847行)
- 发现: 代码已经完成Control Plane / Data Plane分离(V7.0-AIOS-S3版本)
- 验证架构符合Sage设计方案的Control Plane定义
阶段2: Agent Cards集成 (15分钟)
- 读取agent_cards.json (20个Agent,805行)
- 读取Sage的crew_manager设计方案 (1,422行)
- 在RouteDecider中新增:
_load_agent_cards() - 加载agent_cards.json
route_with_card(agent_name, message_type) - 基于Agent Card路由
- 在ModelSelector中新增:
route_and_call_for_agent() - 公开的便捷方法
阶段3: 测试验证 (8分钟)
- 创建test_agent_card_routing.py测试脚本
- 测试5个用例:
- Alex (标准Agent) ✓
- Pixel (Premium Agent, Opus 4.6) ✓
- Nathan (Premium Legacy, Opus 4.5 -> 自动降级) ✓
- Coco (协调Agent) ✓
- unknown_agent (降级到标准路由) ✓
- 所有测试通过
交付成果
1. 代码文件
2. 文档
- model_selector_v7.0_s3_upgrade.md: 完整技术文档
- 架构说明
- 设计决策 (ADR-011/012/013)
- 使用示例
- 测试验证结果
- 待办事项清单
关键设计决策
ADR-011: Agent Card模型映射
MODEL_MAPPING = {
'claude-opus-4-6': 'claude-opus-4.6',
'claude-opus-4-5': 'claude-opus-4.5',
'claude-sonnet-4-5': 'claude-sonnet-4.5',
}
解决agent_cards.json(连字符格式)与llm_config.yaml(点号格式)的差异。
ADR-012: 降级链设计
- Premium Agent: Claude → GLM-5 → GLM-4-plus
- Standard Agent: GLM-5 → GLM-4-plus → deepseek-chat
- 自动过滤不可用模型
ADR-013: 向后兼容
- 保留route_and_call()方法(消息分类路由)
- 新增route_and_call_for_agent()方法(Agent Card路由)
- 两种路由方式并行,互不干扰
技术亮点
- 已完成Control Plane分离: 现有代码已符合架构目标,本次只需增强路由功能
- 数据驱动: 从agent_cards.json读取配置,20个Agent自动加载
- 自动降级: primary模型不可用时,自动使用fallback链(如Nathan的Opus 4.5 → GLM-4-plus)
- 可观测性: 返回结果包含完整agent_card元信息,供metrics记录
与crew_manager.py的桥接准备
本次重构为Sage的crew_manager设计方案做好了准备:
crew_manager.py (未来)
↓
CrewAIExecutor.execute(task_dict)
↓
ModelSelector.route_and_call_for_agent(agent_name='alex')
↓
RouteDecider.route_with_card('alex')
↓
agent_cards.json 查表
↓
LiteLLMDataPlane.call()
↓
localhost:4000/v1/chat/completions
待办事项
P0 - crew_manager.py实现(下一步)
- [ ] 实现BlackboardWatcher (Sage设计方案)
- [ ] 实现CrewAIExecutor,集成route_and_call_for_agent()
- [ ] 实现ClaudeExecutor
- [ ] 端到端测试: 投资研究Crew → agent_cards路由 → LiteLLM
P1 - 配置完善
- [ ] llm_config.yaml补充claude-opus-4.5配置
- [ ] litellm_config.yaml添加Claude Opus 4.5
交付检查清单
- [x] Control Plane / Data Plane架构验证
- [x] Agent Cards加载功能
- [x] route_with_card()方法
- [x] route_and_call_for_agent()方法
- [x] 模型映射表 (MODEL_MAPPING)
- [x] 降级链设计
- [x] 向后兼容
- [x] 语法检查 (python3 -m py_compile)
- [x] 功能测试 (5个用例全部通过)
- [x] 技术文档
协调记录
执行: Atlas独立完成,无需Team协作
时长: 28分钟
质量: 所有测试通过,文档完整,代码符合PEP 8规范
Atlas评估: 本次重构为"微创手术",现有架构已经符合Control Plane / Data Plane分离目标,只需增强RouteDecider的路由能力。与Sage的设计方案高度一致。
下一步: 待William审阅 → Sage架构审查 → 继续实现crew_manager.py的Blackboard桥接层。
Atlas🐻 交付完成
时间: 2026-02-15 23:58