Devin AI复杂任务拆分指南:上下文与实操示例
那么,正确的任务拆解方法是什么?
第一步:识别是否为高颗粒度任务
打开需求文档或沟通记录,使用高亮标记所有包含“要”“需”“必须”“支持”“兼容”等关键词的句子。
随后删除所有形容词和副词,仅保留核心主谓宾结构。例如,“用户应该能非常方便地一键导出高清报表”压缩后为“用户导出报表”。跳过此步骤直接拆解任务,极易遗漏隐性约束条件,如导出格式、权限校验、文件大小限制等。
将压缩后的动宾短语写入新文档第一行,并在括号内标注触发条件,例如“(点击导出按钮后)”“(登录态有效时)”“(数据量>10万条时)”。
第二步:采用四段法将任务拆解为原子单元
提供两种拆分路径:
方法一:手动预拆解(适用于首次交付核心功能)
① 输入:从现有系统提取三类材料——用户角色定义(例如roles.json)、待审批资源的API路径列表(如GET /api/v2/orders/{id})、已有权限检查代码片段(必须提供真实代码,避免伪代码);
② 处理:指示Devin“仅编辑src/modules/permissions/目录下的文件,禁止创建新目录”,并指定语言版本,如TypeScript 5.4+(因tsconfig.json启用了exactOptionalPropertyTypes);
③ 输出:要求返回可直接执行的diff块,每处修改需标注对应Jira工单号(例如PROJ-882);
④ 验证:强制其在沙箱环境中运行npm run test:permissions,并将失败用例的截图纳入回复内容。
方法二:通过Devon式规划器自动生成子任务清单
在app.devin.ai对话窗口输入:“分析仓库中所有包含‘approval’关键词的文件,列出当前审批逻辑的3个断裂点(如缺少撤回接口、无审批时效限制、未记录操作人IP),并为每个断裂点生成可独立执行的修复任务描述。”
Devin将返回带编号的子任务列表,勾选1至2项优先执行后,它会立即切换至对应子任务的执行器模式。
第三步:分类投喂上下文信息
背景信息需分类组织,避免堆砌。例如,创建标题为【系统现状】的文本块,仅包含三行:
• 角色模型:JWT token含role字段,取值admin/approver/requester
• 中间件路径:middleware/auth.ts已定义canApprove()函数
• 审批状态流转:pending → approved/rejected → archived
再创建标题为【交付物要求】的文本块,内容仅两行:
• 新增POST /api/v2/permissions/approve接口,参数{resource_id, action},返回{status: "queued", task_id}
• 前端在订单详情页右侧添加“批准”按钮,点击后调用接口并轮询task_id状态
这套拆解与交付流程可有效降低Devin在开发过程中出现方向偏差的概率。