5.8 KiB
5.8 KiB
代码指挥官实施清单(可勾选执行版)
日期:2026-04-04
状态:执行清单
适用范围:基于 phase-1 ~ phase-5 整理
使用说明
- 完成前使用
- [ ] - 完成后改成
- [x] - Day 1-3 为后端基础设施
- Day 4-5 为后端执行引擎
- Day 6 为 Agent 集成
- Day 7-8 为流式交互
- Day 9-10 为前端集成
Day 1:State + Prompt + 注册
Day 1 目标:完成代码指挥官 Agent 的基础架子
- 新增
CODE_COMMANDER = "code_commander"到AgentRole枚举 - 新增
CodeCommanderStateTypedDict(包含 task_type, ai_provider, sandbox_mode 等) - 新增
CODE_COMMANDER_SYSTEM_PROMPT系统提示 - 新增
SANDBOX_EXECUTION_PROMPT沙盒执行说明 - 新增
DIRECT_EXECUTION_PROMPT直接执行说明 - 在
SUB_COMMANDER_TOOLSETS中注册CODE_COMMANDER_TOOLSET - 新增
CodeCommanderManifest到AGENT_MANIFESTS - 补 Phase 1 单元测试
验收:确认 AgentRole.CODE_COMMANDER 存在且值正确
Day 2:AI CLI Adapter(统一接口)
Day 2 目标:实现适配不同 AI CLI 的统一接口
- 新增
AICLIAdapter抽象基类cli_name属性requires_workspace属性build_command()方法parse_output()方法is_installed()方法
- 新增
ClaudeAdapter实现 - 新增
GeminiAdapter实现 - 新增
CodexAdapter实现 - 新增
OpenCodeAdapter实现 - 新增
CodeExecutionResult数据类 - 补 Day 2 单元测试
验收:AICLIAdapter 可以正确识别 4 种 CLI
Day 3:Security Classifier + Direct Executor
Day 3 目标:实现安全分级和直接执行器
- 新增
RiskLevel枚举(LOW/HIGH) - 新增
SecurityClassifier类HIGH_RISK_KEYWORDS列表LOW_RISK_KEYWORDS列表classify()方法实现_is_project_path()方法实现
- 新增
DirectExecutor类execute()方法(异步)- 超时控制
is_installed()检查
- 补 Day 3 单元测试
验收:SecurityClassifier 能正确分类高低风险
Day 4:Sandbox Environment + Sandbox Executor
Day 4 目标:实现沙盒执行器
- 新增
SandboxEnvironment类create()静态方法(创建临时目录)cleanup()方法workspace_path属性session_id属性
- 新增
SandboxExecutor类execute()方法(异步,yield 流式输出)cleanup_session()方法_list_created_files()方法
- 实现超时控制
- 补 Day 4 单元测试
验收:SandboxExecutor 能创建、执行、清理沙盒
Day 5:执行引擎集成测试
Day 5 目标:确保执行引擎各组件协同工作
- 集成测试:
SecurityClassifier+DirectExecutor - 集成测试:
SecurityClassifier+SandboxExecutor - 集成测试:4 种
AICLIAdapter的build_command() - 端到端测试:低风险任务直接执行
- 端到端测试:高风险任务沙盒执行
- 确认沙盒目录创建和清理正常
验收:所有执行器支持流式输出,且正确路由
Day 6:Graph 节点 + 边路由
Day 6 目标:将代码指挥官接入 LangGraph
- 新增
code_commander_node函数- 获取用户需求和 AI 提供商
- 调用
SecurityClassifier - 根据风险等级选择执行器
- 返回执行结果
- 在
NODES字典中注册code_commander - 新增
_should_route_to_code_commander()路由函数 - 在
graph.py中添加条件边 - 新增
CodeTask,CodeExecutionResult模型到schemas/task.py - 补 Day 6 单元测试
验收:高风险任务路由到沙盒,低风险路由到直接执行
Day 7:PTY Terminal Engine
Day 7 目标:实现 PTY 终端管理
- 新增
PTYSession数据类 - 新增
PTYManager类spawn()方法write()方法read()方法(异步生成器)resize()方法kill()方法
- 实现
asyncio.subprocess进程管理 - 实现输出队列
- 补 Day 7 单元测试
验收:PTY 会话可以启动、读写、终止
Day 8:WebSocket + 流式输出
Day 8 目标:实现 WebSocket 端点和流式输出
- 新增
ConnectionManager类 - 新增
/ws/terminal/{session_id}WebSocket 端点 - 实现连接管理(connect/disconnect)
- 新增
StreamOutput类 - 实现
stream_execution()方法 - 新增
InteractiveInputHandler类 - 实现用户输入传递到 PTY
- 补 Day 8 集成测试
验收:WebSocket 连接正常,输出实时推送
Day 9:Vue 页面组件
Day 9 目标:前端代码指挥官主页面
- 新增
CodeCommander.vue页面组件- AI 提供商选择器
- 任务输入框
- 执行按钮
- 终端显示区域
- 交互输入框
- 下载/清理按钮
- 补 Day 9 组件测试
验收:用户可以选择 AI 提供商并输入任务
Day 10:TerminalDisplay + WebSocket 服务 + 路由
Day 10 目标:完成前端集成
- 新增
TerminalDisplay.vue组件(xterm.js)- 终端渲染
- ANSI 颜色支持
- 用户输入处理
- 新增
terminalWs.tsWebSocket 服务- 连接管理
- 自动重连
- 消息处理
- 在
router/index.ts新增/code-commander路由 - 端到端测试:完整执行流程
- 确认前端与后端 WebSocket 通信正常
验收:用户可以在前端看到实时终端输出并交互
最终验收
- 用户可以选择 AI 提供商(Claude/Gemini/Codex/OpenCode)
- 低风险任务(如贪食蛇 demo)直接执行
- 高风险任务在临时目录沙盒执行
- 终端输出实时流式显示
- 用户可以中途输入交互(如 "y" 确认)
- 临时目录执行后正确清理
- 前端页面正常展示
- 回归测试通过(现有功能不受影响)