AI 编程项目路线图不是一份“让 Agent 修改哪些文件”的待办清单,而是一组可验证的产品结果。真正有用的路线图会连接五件事:用户问题、下一个产品能力、Agent 要执行的任务、证明结果成立的证据,以及决定下一步的市场信号。
这一区别很重要。Coding Agent 可以显著加快实现速度,但不会自动替你判断产品方向。原型做得快是进展,却还不是一个已经发布、能被发现、值得信任的产品。
一眼看懂完整路线图
- 发现:确认某一类人是否真的遇到这个问题,证据来自用户自己反复讲出的具体经历。
- 构建:让用户完成最核心的动作,证据是真实流程跑通,而不只是单元测试通过。
- 发布:让用户能够获得并使用产品,证据是构建、发布和公开读回都成立。
- 学习:通过访谈、支持反馈、搜索或产品数据观察发布后的真实结果。
- 改进:根据证据选择下一个里程碑,而不是只靠开发惯性继续加功能。
这些阶段可以交错进行。唯一不能妥协的是:不能因为 Agent 写了一段自信的总结,就把一个阶段标成完成。
第一步:先写用户结果
先完成这句话:
这个里程碑完成后,某类用户可以在某种条件下完成某个动作。
“实现登录”是技术活动;“回访用户可以安全地重新打开同一个项目”才是产品结果。后一句让 Agent 可以调查多种实现路径,同时不丢失工作的原因。
再补一条明确的非目标,例如“本里程碑不增加团队账号”。路线图不仅要列出要做什么,也要保护当前焦点。
第二步:先定义证据,再拆任务
每个里程碑至少准备四层证据:
- 行为证据:用户可以完成目标动作。
- 质量证据:相关测试、构建与失败场景通过。
- 交付证据:目标页面、安装包或发布物确实可用。
- 学习证据:结果能产生一个足以影响后续判断的信号。
这样可以避免一种常见假完成:某个单元测试绿了,就被当作完整用户旅程已经成立。
第三步:把里程碑变成有边界的 Agent 执行
每次 Agent 执行都应得到:
- 它服务的用户结果;
- 当前代码或运行证据;
- 不能改变的不变量;
- 允许修改的仓库或服务;
- 必须完成的验证;
- 哪些情况必须停下来由人确认。
边界内可以给 Agent 足够自主权;但它不应该悄悄改变价格、删除数据、修改公共合同,或替你选择另一个用户结果。
第四步:留下可持续的交接
一次运行结束时,保存事实,不要倾倒整段对话:
- 改了什么;
- 验证了什么;
- 精确版本、提交或任务身份;
- 还缺什么;
- 下一步安全动作是什么。
长对话会占用上下文,也经常包含已经失效的假设。OpenAI 的 Harness Engineering 实践同样建议给 Agent 一张可导航的地图,而不是一份巨大的说明书:Harness engineering。
第五步:把发布和反馈写进路线图
一份在“代码完成”处结束的路线图,会鼓励独立开发者永远停留在 Build。请明确加入:
- 打包或部署;
- 上手引导和文档;
- 搜索与分发;
- 用户反馈收集;
- 使用情况回顾;
- 下一次基于证据的修订。
独立开发者社区里反复出现同一个经验:真正帮助项目完成的,是明确的完成定义、一条很小的演示路径和几项验收检查,而不只是更强的模型。可以参考这条关于完成 AI 辅助项目的讨论。
可直接复制的里程碑模板
用户结果
本里程碑完成后,[用户] 可以在 [条件] 下完成 [动作]。
本轮范围
- 最小产品行为。
- 必需的数据、界面与交付改动。
本轮不做
- 一个很诱人但相邻的功能。
- 无关清理或重构。
Agent 简报
- 当前证据:
- 不变量:
- 授权范围:
- 停止条件:
完成证据
- 行为检查:
- 自动化检查:
- 最终产物或公开读回:
- 失败场景:
- 学习信号:
会话交接
- 稳定身份:
- 已验证状态:
- 剩余缺口:
- 下一步动作:
路线图应该拆多细?
每个里程碑要大到能产生一个用户可感知的结果,又要小到能在一条连贯链路里验证。不要在路线图里重复列出每次代码编辑;Agent 检查真实系统后再决定实现细节。
可以用一个问题检验:下周打开项目的新会话,能否理解这个里程碑为什么存在、哪些事实已经成立、还缺什么证据?如果可以,这份路线图就在发挥作用。
什么时候不适用?
如果只是一次性实验,而且“证明失败”本身也是有效结果,可以使用更轻的计划。涉及支付、安全、生产数据或不可逆动作时,则需要更严格的授权、恢复和负向验证闸门。
核心原则
路线图不是为了整理 Agent 的忙碌程度,而是为了让产品意图、执行、交付和学习始终连接,直到真实用户结果成立。