What
描述你希望 Devin 完成的具体任务。示例:将我的项目从 Java 7 升级到 Java 8。
How
描述 Devin 在完成任务时的注意事项(该做与不该做的事,例如使用 Modal 部署等)。示例:识别并将已弃用的 Java 7 API 替换为对应的 Java 8 API。分析代码库,发掘可以使用 Java 8 语言特性和 API 的改进点。
Result
描述 Devin 应该验证的预期结果或行为,以便 Devin 知道任务何时完成。示例:运行测试套件并确认所有测试均成功通过。使用更新后的 Java 8 配置构建项目,并验证应用程序已成功启动并正常运行。
选择合适的任务
-
清晰的成功标准
- 成功与否可以自动验证的任务
- 具备内置反馈闭环(测试、编译、lint 检查)
- 有客观的质量衡量指标
-
适当的任务范围
- 复杂度相当于初级工程师可以胜任的水平
- 边界定义清晰
- 有明确可遵循的模式
-
具有重复性
- 需要多次应用类似变更的任务
- 存在一些差异,使得纯脚本方案难以处理
- 有可供参考的现有示例
-
常见示例
- 在多个包中进行版本升级
- 为尚未覆盖的模块添加测试
- 将文件迁移为使用新的模式/规范
- 实现标准化的 UI 组件
将复杂任务在多个会话中拆分为更简单的子任务
告诉 Devin 如何检查其进度
-
明确测试需求
- 让 Devin 运行特定的测试套件
- 定义哪些测试必须通过
- 如有需要,请求测试覆盖率等指标
-
设定清晰的检查点和子任务
- 将复杂任务拆分为可验证的子任务,并为每个子任务启动一个 Devin 会话
- 定义每个子任务的成功标准,并可选择在每个子任务中设置检查点
- 要求 Devin 在完成每个检查点/子任务后进行汇报
-
告诉 Devin 如何检查自己的工作
说明 Devin 应如何检查自己是否走在正确轨道上。例如:
- 处理数据集时:
"Verify the dataset has at least 500 rows and contains columns X, Y, Z" - 修改 API 时:
"Confirm the endpoint returns status 200 and includes all required fields" - 更新 UI 时:
"Check that the component renders without console errors and matches the design spec"
- 处理数据集时:
清晰且具体
- 说明完成任务所需的关键步骤
- 指定你希望 Devin 使用的具体代码仓库、库、分支等
