run long horizon tasks with codex
run long horizon tasks with codex
背景
在这篇文章中,作者做了一个实验,其给了Codex一个空仓库,让其长时间运行了25个小时,用了1300万token, 生成了3w行代码
关键做法
作者在这次实验中采用了一个核心做法:将项目记忆写进持久化文件
-
Prompt.md
记录整个任务的规格以及交付物,避免Agent最后做出来了一个很厉害但是方向错了的东西,关键部分包括:
- 目标与非目标
- 硬性约束(性能约束,用户体验,平台)
- 交付物(最后必须有哪些东西)
- “Done When”: 通过什么检查,跑通什么Demo才算通过
-
Plan.md
记录整个任务的milestone, 将一个开放式的大任务,拆成代理能够逐步完成,逐步验证的一连串的检查点,包括:
- 足够小,可以在一次循环里边完成的里程碑
- 每个里程碑对应的验收标准和验收命令
- “停下并修复”规则:如果验证失败,那么就必须先修复,再往下走
- 代码库的整体预期结构
-
Implement.md
这是整个任务的执行手册,明确告诉Codex应该如何工作,包含一些关键的指示:
- 遵循Plan.md里边的计划
- 在每一个milestone之后要进行验收,如果有错误需要进行错误的恢复
- 改动范围要收敛,不要扩充自己的改动范围
- 持续更新documentation文档
-
Documentation.md
这是整个系统的状态文件,它既是整个系统的共享记忆,也是整个系统的审计日志,其可以帮助开发者理解整个项目的运行情况,这个文件中包括:
- 当前里程碑的状态:哪些完成了,接下来做什么
- 已做出的决策,以及为什么要做这些决策
- 如何运行和演示:命令、快速smoke test
本文由作者按照 CC BY 4.0 进行授权