当 AI Agent 面对一个需要数小时甚至数十小时才能完成的复杂项目时,三个致命问题会反复出现:
Long Horizon Tasks 方法论提出一个简洁的成功率模型:
四个变量,四个 Markdown 文件,每个文件最大化一个变量:
| 变量 | 文件 | 作用 |
|---|---|---|
| 意图清晰度 | SPEC.md | 冻结目标,防漂移 |
| 分解粒度 | PLAN.md | 里程碑路径,可追踪 |
| 验证频率 | RULES.md | 行为约束,每步验证 |
| 状态可见度 | STATUS.md | 实时状态,可恢复 |
这四个文件构成一个闭环控制系统。它们不存在于 Agent 的 context 窗口中,而是持久化在项目目录里 — 不会因 session 中断而丢失。
SPEC.md 是项目的宪法。它冻结了项目的 What(做什么)和 Why(为什么做),一旦人工审核通过就不再修改。
它回答以下问题:
PLAN.md 是项目的唯一执行真相源(Single Source of Truth)。它将开放式的工作转化为可验证的检查点序列。
关键内容:
RULES.md 定义 Agent 的操作规范和行为边界。它不是建议,而是硬性约束。
核心规则包括:
STATUS.md 是 Agent 的实时状态仪表板。它为人类(和下一个 session 的 Agent)提供全面的项目快照。
Session 恢复时,STATUS.md 是第一个被读取的文件。它必须包含以下九项信息:
| # | 内容 | 说明 |
|---|---|---|
| 1 | 项目简介 | 一段话说明项目是什么 |
| 2 | 里程碑状态表 | 每个里程碑的完成状态 |
| 3 | 本地设置命令 | 环境搭建一键命令 |
| 4 | 验证命令 | lint、test、build 命令 |
| 5 | 演示指南 | 如何运行和查看结果 |
| 6 | 数据模型概览 | 核心数据结构 |
| 7 | 模块实现摘要 | 每个模块干什么 |
| 8 | 仓库结构 | 目录树 |
| 9 | 故障排除 | 已知问题和解决方法 |
每个里程碑严格执行以下七步循环,直到所有里程碑完成:
长任务的核心优势:四个文件不会因 session 中断而丢失。当 session 中断后,新 session 按以下顺序恢复:
STATUS.md — 找到当前里程碑进度PLAN.md — 确认下一步做什么RULES.md — 恢复行为约束SPEC.md — 确认未偏离原始目标从 25 小时的实验中提炼出的七个核心设计模式,每个都解决长任务中的特定挑战:
中断成本远大于小错误成本。遇到不确定的决定时,Agent 应自主决策并记录到决策日志,而不是中断工作流等待人工回复。宁可做错再修正,也不要停在那里等。
每个 bug 都是一个测试用例的诞生。遇到 bug 时,先写一个失败的测试来捕获这个问题,然后再修复代码让测试通过。这样确保同样的 bug 永远不会复发。
明确写出「不做什么」和「做什么」一样重要。非目标是防止范围蔓延的防火墙。约束比扩展更重要 — 它让 Agent 不会在不相关的方向上浪费时间。
所有结果必须可复现。避免随机种子、非确定性行为。做到一键启动、一键验证 — 任何人在任何时候运行同样的命令都应该得到同样的结果。
每个里程碑应在单个循环内约 1 小时完成。太大则拆分,太小则合并。至少 14 个里程碑(原始实验用了 24 个)。粒度是控制力的关键。
记录每个重要决策的理由和替代方案。防止 Agent 在后续 session 中推翻之前的决定,导致代码来回修改。决策日志是系统的惯性飞轮。
Fail Fast — 高风险先验证。在规划阶段识别技术风险(新 API、性能瓶颈、兼容性问题),将风险验证安排在最早的里程碑(M01-M03)。如果早期验证失败,立刻调整 PLAN,避免在错误的方向上走太远。
SPEC.md,人工审核后冻结PLAN.md,制定至少 14 个里程碑RULES.md + STATUS.md
四文件系统可以在项目的任何阶段引入,不需要从零开始:
SPEC.md,固定剩余目标PLAN.md 里程碑序列RULES.md 行为约束STATUS.md 记录当前进度
多里程碑复杂项目 · 预计耗时 5 小时以上 · 需要多次 Session 完成 · 从零构建完整应用 · 涉及多模块协作
简单 bug 修复 · 单文件小改动 · 一问一答操作 · 30 分钟内能完成的任务
以下数据来自 OpenAI 的 Codex 25 小时自主编码实验 — 从零构建一个完整的在线协作设计工具:
| 指标 | 数据 |
|---|---|
| 总执行时间 | 25 小时 |
| Token 消耗量 | 13M tokens |
| 代码行数 | 30,000+ 行 |
| 里程碑数量 | 24 个 |
| 核心文件 | 4 个(SPEC + PLAN + RULES + STATUS) |
| Agent Loop 步骤 | 7 步循环 |
协作设计工具 · React + TypeScript + WebSocket · 24 个里程碑 · 25 小时完成 · 30,000+ 行代码
SPEC 提前冻结技术边界 · 风险登记表前置验证 WebSocket · 决策日志防止 SVG/Canvas 振荡 · STATUS.md 让中途恢复无缝
Long Horizon Tasks 方法论的核心非常简洁:
SPEC 锚定意图 · PLAN 指导执行 · RULES 约束行为 · STATUS 外化状态
Plan · Edit · Run · Observe · Repair · Update · Commit
不停下来问 · 错误即测试 · 确定性至上 · 风险前置