Skip to main content
Devin 需要了解你的偏好,以及应该如何检查自己是否在正确的轨道上。如果你没有说明,Devin 会自行判断。我们建议在提示词中遵循一个简单的结构,以确保 Devin 始终保持在正确轨道上,并对自己的工作进行检查:

What

描述你希望 Devin 完成的具体任务。示例:将我的项目从 Java 7 升级到 Java 8。

How

描述 Devin 在完成任务时的注意事项(该做与不该做的事,例如使用 Modal 部署等)。示例:识别并将已弃用的 Java 7 API 替换为对应的 Java 8 API。分析代码库,发掘可以使用 Java 8 语言特性和 API 的改进点。

Result

描述 Devin 应该验证的预期结果或行为,以便 Devin 知道任务何时完成。示例:运行测试套件并确认所有测试均成功通过。使用更新后的 Java 8 配置构建项目,并验证应用程序已成功启动并正常运行。

选择合适的任务

在决定将哪些任务交给 Devin 时,优先选择具备以下特征的任务:
  1. 清晰的成功标准
    • 成功与否可以自动验证的任务
    • 具备内置反馈闭环(测试、编译、lint 检查)
    • 有客观的质量衡量指标
  2. 适当的任务范围
    • 复杂度相当于初级工程师可以胜任的水平
    • 边界定义清晰
    • 有明确可遵循的模式
  3. 具有重复性
    • 需要多次应用类似变更的任务
    • 存在一些差异,使得纯脚本方案难以处理
    • 有可供参考的现有示例
  4. 常见示例
    • 在多个包中进行版本升级
    • 为尚未覆盖的模块添加测试
    • 将文件迁移为使用新的模式/规范
    • 实现标准化的 UI 组件

将复杂任务在多个会话中拆分为更简单的子任务

与任何初级工程师一样,如果能将复杂项目拆解为清晰的子任务,Devin 成功完成任务的可能性会更高。比如,与其在单个会话中要求 Devin 同时升级应用代码、测试套件和 CI 配置,不如将其拆分为三个独立的会话分别处理。 对于特别复杂的任务,我们建议在多个独立会话中与 Devin 协作,因为随着会话变长,Devin 的表现有时可能会出现下降

告诉 Devin 如何检查其进度

当你为 Devin 提供清晰的验证步骤来核查其工作时,它的表现会更好。这有助于确保任务被正确完成,并使 Devin 能够及早发现潜在问题。 下面是一些帮助 Devin 验证其工作的常见方式(非完整列表):
  1. 明确测试需求
    • 让 Devin 运行特定的测试套件
    • 定义哪些测试必须通过
    • 如有需要,请求测试覆盖率等指标
  2. 设定清晰的检查点和子任务
    • 将复杂任务拆分为可验证的子任务,并为每个子任务启动一个 Devin 会话
    • 定义每个子任务的成功标准,并可选择在每个子任务中设置检查点
    • 要求 Devin 在完成每个检查点/子任务后进行汇报
  3. 告诉 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 在无需干预的情况下就能越有把握地推进任务。

清晰且具体

向 Devin 提供清晰、详细的指令和需求。例如,你可以:
  1. 说明完成任务所需的关键步骤
  2. 指定你希望 Devin 使用的具体代码仓库、库、分支等
对 Devin 来说,没有任何信息是“过于显而易见”的,但它会在过程中尽力主动澄清并提出问题。

使用 Playbooks

对于重复性或复杂任务,我们建议使用并持续迭代 Playbooks。Playbooks 是易于复用和共享的提示集合。例如,如果你希望 Devin 处理持续发生的 CI 构建失败,你可以创建一个 Playbook,把 Devin 每次为解决该问题应执行的一般步骤都放进去,而无需在每条提示中重复这些步骤。

提供参考资料或示例

在条件允许时,提供与任务相关的文档或示例链接。如果你没有提供任何资源,Devin 可能会自行搜索相关文档。

马上开始!

在 Devin 工作时,你可以像对待其他团队成员一样,随时向 Devin 提问并下达指令!