Planner 模式
AutoDev Planner 是一个任务规划系统,通过可视化进度和交互性来增强AI辅助编程能力。受GitHub Copilot Workspace、Cursor和JetBrains Junie等AI编程工具的启发,该系统致力于提升AI驱动开发流程的透明度和适应性。
核心功能:
- 可见的任务规划 - 用户可通过Planner工具窗口追踪任务进度,并置顶重要任务
- 动态任务调整 - AI根据上下文动态优化计划,实际响应速度取决于所用模型
- 手动执行控制 - 用户可手动执行未完成任务以微调开发流程
- 任务审查机制 - 通过AI进行人工任务计划审查,在控制token消耗的同时优化工作流
核心技术特性:
- 基于推理模型的任务规划 - 使用DeepSeek R1等推理模型构建任务结构,需要定制提示词以获得更好执行效果
- 交互式任务管理 - 支持标记任务完成状态、打开相关文件、编辑计划以及审查AI生成策略
通过提升AI驱动编程任务的透明度和可控性,AutoDevPlanner优化了开发体验,使开发者能够有效参与并完善AI生成的代码计划。
Planner 中的设计哲学
在Martin Fowler的《设计已死?》一文中,作者指出设计远未消亡,但其角色已发生转变。在敏捷世界中,设计不再是僵化的前期流程,而是持续演进、增量迭代,并通过重构和测试驱动的过程。敏捷方法,尤其是极限编程(XP),强调演进式设计,使得架构能够随着系统发展自然适应。
当前AI模型作为黑箱系统,能够生成大量代码。虽然这种能力强大,但如果生成的代码缺乏合理设计原则,在规模扩大时将产生危害。结构不良的AI生成代码会导致技术债务、可维护性问题和架构不一致性,严重影响软件的持续演进。
设计良好 AI 智能体的必要性
为降低这些风险,我们需要设计一个强化结构化软件开发的AI智能体,其应关注:
- 计划与演进并行的设计 - 将战略规划与设计演进灵活性结合,引导开发者进行迭代优化而非强制前期设计
- 架构生长机制 - 确保系统扩展时保持内聚性和适应性,避免形成臃肿复杂的单体结构
- 简约设计原则 - 遵循**YAGNI(你不会需要它)和KISS(保持简单)**原则,倡导代码简洁性
例如在要求AI设计复杂前端页面时,最佳实践应包括ViewModel拆分。AI不应生成单体UI结构,而应合理分离关注点以确保可维护性和复用性。通过将架构原则植入AI生成代码,我们可以创建可扩展、可持续的软件解决方案。
规划示例
典型生成计划示例:
1. 识别核心工作流类
- [✓] 搜索包含"Workflow"和"Sketch"的类定义
- [✓] 分析`SketchRunner`中的`execute`方法
2. 分析AI流程执行阶段
- [✓] 识别上下文收集阶段
- [✓] 分析工具调用决策模块
- [✓] 追踪代码生成管道
3. 验证工作流完整性
- [✓] 检查异常处理机制
- [✓] 确认版本控制集成点