# 代码审查修复报告 日期: 2026-06-16 分支: feat/simple-router-architecture 审查范围: SimpleRouter + Prompt-based Tool Calling 重构 ## 修复的问题 ### HIGH 级别 | # | 问题 | 修复方式 | 文件 | |---|------|----------|------| | H1 | execute() 缺少 prompt-based tool calling 注入 | 与 execute_stream() 一致,在 execute() 中注入 _build_tool_use_prompt | react.py | | H2 | agent._routing_result 竞态条件 | _resolve_for_chat 返回 routing_result 而非 monkey-patch agent | portal.py | | H3 | TEAM_COLLAB/REWOO/REFLEXION 降级为 REACT 无提示 | 添加 execution_mode 完整分支处理,高级模式降级时记录 warning 日志 | portal.py, chat.py | | H4 | Any 类型滥用 | SimpleRouter 使用 SkillRegistry/Tool 类型,ConversationStore 使用 SessionManager 类型 | simple_router.py, portal.py | ### MEDIUM 级别 | # | 问题 | 修复方式 | 文件 | |---|------|----------|------| | M1 | default_system_prompt `or` vs `is not None` | 改为 `if default_system_prompt is not None` | simple_router.py | | M2 | CostAwareRouter 死代码 | 改为条件初始化(legacy_cost_aware_router 配置项),默认不初始化 | app.py | | M3 | chat.py 不处理 DIRECT_CHAT | 添加 DIRECT_CHAT 分支:直接 LLM 调用,不经过 ReActEngine | chat.py | ## 测试结果 - SimpleRouter 单元测试: 20/20 通过 - SimpleRouter E2E 回测: 24/24 通过(准确率 100%) - chat/core 单元测试: 153/153 通过 - Ruff lint: All checks passed ## 变更文件 1. `src/agentkit/core/react.py` — execute() 添加 prompt-based tool calling 注入 2. `src/agentkit/chat/simple_router.py` — 类型注解修复(Any → SkillRegistry/Tool),`is not None` 修复 3. `src/agentkit/server/routes/portal.py` — 竞态条件修复,execution_mode 完整分支,类型修复 4. `src/agentkit/server/routes/chat.py` — DIRECT_CHAT 处理,execution_mode 降级警告 5. `src/agentkit/server/app.py` — CostAwareRouter 条件初始化,移除 semantic router build_index 死代码