Article

Failure Lessons From One Month Building An Agent Product With AI

After a month of AI-assisted Agent product development, the real problems were not code generation but product loops, state models, recoverability, workflow gates, and demo paths.

Jun 11, 2026 Updated Jun 11, 2026
  • Agent
  • Product judgment
  • AI PM
  • Plato

The full article body is currently published in Chinese. English titles, summaries, and site navigation are available first; full translations can be added article by article.

过去一个月,我用 AI 深度参与了一个 Agent 应用产品的设计和实现。

这个产品的目标是把用户的自然语言目标转化为可执行任务,让系统能够规划、执行、确认、记录结果,并在出现风险时让用户介入。

它不是一个普通聊天助手。

我更希望它成为一个 Task-first 的协作系统:

用户提出目标
  -> 系统生成任务草稿
  -> 用户确认或编辑
  -> 发布执行
  -> 观察执行过程
  -> 查看结果和证据
  -> 失败时恢复、重试或接管

一个月之后,我对这个项目的评价更稳定了。

它不是没有价值。

甚至作为 AI 产品和 Agent PM 案例,它很有价值。

但它也暴露了很多失败经验。

最关键的不是“AI 代码写得不够好”,而是我一开始高估了架构、Figma 和大系统设计的价值,低估了产品闭环、状态模型、可恢复性和演示路径的价值。

这篇文章不试图包装成功故事。

它记录的是一次真实失败复盘。

失败一:Figma 投入过重,但没有匹配产品进度

项目早期,我在 Figma 上投入了大量时间。

包括设计稿、治理规则、token、组件骨架、状态页、原型流、handoff 页面,以及后续多轮布局修复。

这些工作不是完全无用。

最后真正对前端实现有帮助的,反而是早期静态视觉稿。

它提供了产品气质、布局密度和界面方向。

但后面为了“规范化”创建的 canonical Figma 组件体系,在状态模型和前端架构还不稳定的时候,变成了一个高成本、低确定性的维护对象。

这不是说 Figma 没用。

问题是它被使用得太早、太重。

早期 AI 产品探索阶段,Figma 更适合承担三个角色:

  1. 视觉基准:帮助团队理解产品长什么样。
  2. 交互讨论素材:帮助讨论关键流程。
  3. 静态验收参考:帮助前端保持体验方向。

它不适合太早成为“实现源”。

尤其在状态模型、交互模型、API 合约还没稳定前,把大量精力放在组件化 Figma 和原型治理上,很容易出现一种错觉:

设计系统很完整,但产品主路径并没有跑通。

经验是:

早期 AI 产品不要急着把 Figma 做成生产级系统。先让产品闭环跑起来,再决定哪些设计资产值得生产化。

失败二:前端开始得太早,缺少状态模型

Agent 产品的前端不是普通表单页面。

它有很多状态:

  • 任务是否已规划;
  • 任务节点是否 ready;
  • 执行是否 pending、running、done、failed;
  • 确认是否等待用户;
  • 权限是否允许;
  • 审计结论是什么;
  • 数据是否过期。

我早期的问题是,从静态页面和 mock UI 开始推进前端,而不是先定义状态模型和 ViewModel。

这导致后面出现大量返工:

  • Main Page 实现需要不断抽 controller;
  • 状态 label 和 tone 需要重新集中映射;
  • route / runtime wrapper 后补;
  • API adapter 和 reducer contract 后补;
  • Audit Page 的入口和 return context 后补。

这些返工不是因为某个组件写错了。

而是因为前端最开始没有回答一个基础问题:

这个页面到底由哪些独立状态维度驱动?

在 Agent 产品里,不能把所有状态压成一个 status

一个任务可能已经规划完成,但执行还没开始。

执行可能失败,但审计记录仍然可读。

用户可能有查看权限,但没有修改权限。

snapshot 可能过期,但旧内容仍然应该展示。

如果这些维度没有先定义,UI 一定会走向混乱。它会把“权限不足”“执行失败”“数据过期”“证据隐藏”都显示成一种泛泛的错误态。

用户看不懂,代码也很难维护。

后来补上的关键文档包括:

  • canonical status model;
  • screen state spec;
  • event reducer contract;
  • API-to-UI mapping;
  • frontend architecture plan。

这些文档补完之后,前端才开始有稳定推进的基础。

经验是:

对状态密集型 Agent 产品,前端架构必须先于 UI 实现。页面不是从 Figma 开始,而是从状态模型和交互模型开始。

失败三:没有一开始固化工作流

一开始我知道产品工作流大致应该是:

PRD
  -> UX spec
  -> Figma / prototype
  -> design review
  -> frontend architecture
  -> API contract / mock data
  -> backend integration
  -> QA / release

但“知道”不等于“执行”。

在 AI 辅助开发中,如果工作流没有写进 repo、写进 agent instruction、写进每个任务的 gate,它很容易被局部任务冲掉。

AI 很擅长完成眼前任务。

用户说“继续下一步”,它会努力推进。

但如果上游依赖缺失,它未必天然会停下来问:

  • PRD 是否稳定?
  • 状态模型是否存在?
  • API 合约是否已定义?
  • Figma 是否已经可用于 handoff?
  • 这个任务现在真的应该进入实现吗?

结果是,有些工作在缺少前置依赖时就开始了。

短期看进度很快,长期看是在积累返工债。

后来我把工作流固化成 Product Delivery Workflow Gate。

每个任务开始前都必须检查:

  • 当前属于哪个阶段;
  • 需要哪些上游 artifact;
  • 已经找到什么;
  • 缺什么;
  • 是否允许实现;
  • 如果不允许,最小前置工作是什么。

这个机制非常朴素,但对 AI 协作很重要。

它把人的产品判断从“临场提醒”变成了“系统约束”。

经验是:

AI 辅助项目需要显式 workflow gate。否则 AI 会优化局部完成度,而不是全局交付顺序。

失败四:文档重构差点让项目倒退

有一次我对 docs 目录做了重构。

需求没有完全说清楚,目标结构没有先评审,迁移规则也不够严格。

结果重构后的结构不如之前清晰,项目出现倒退风险。

这件事给我的提醒很重。

文档目录不是普通文件夹。

对一个长期 AI 协作项目来说,它是 source of truth 的索引系统。

PRD、ADR、计划、方案、架构、UX、API、release note,彼此之间都有隐含依赖。

AI 如果在没有迁移 map 的情况下大规模移动,很容易破坏这些依赖。

这类重构必须满足几个条件:

  1. 先给出目标目录树。
  2. 明确哪些文档是 source of truth。
  3. 建立迁移表。
  4. 有备份分支。
  5. 小批量迁移。
  6. 迁移后做链接和引用检查。
  7. 保留 rollback 路径。

好在当时有备份分支,没有造成大事故。

但这个事件说明,AI 并不会天然理解一个项目文档系统的历史语义。

它能整理文件,却未必知道哪些文件承载关键决策。

经验是:

大规模文档重构比代码重构更危险,因为它会移动项目记忆。没有迁移计划,不要让 AI 批量整理 source of truth。

失败五:过早迷恋多 Agent 和总线

项目开始时,我对多 Agent 和 TaskBus 的想象很重。

多个 Agent 协作、任务总线调度、任务树并行推进、系统自动协调,这些概念都很吸引人。

一个月后,我的判断变了。

在 Product 1.0 阶段,最重要的问题不是“如何让多个 Agent 并行”,而是:

  • 用户目标能否变成可靠任务;
  • 草稿是否会丢;
  • 发布是否稳定;
  • 执行状态是否能被用户理解;
  • 出错后能否恢复;
  • 用户能否在关键点确认或补充信息。

这些问题都还没闭环时,多 Agent 并行反而会放大复杂度。

真正困难的不是启动多个 Agent,而是上下文连续性、证据治理、权限边界、失败恢复和用户可理解性。

TaskBus 仍然有价值。

但它更像生命周期事实账本,而不是产品舞台中央的“智能编排大脑”。

它应该记录任务被发布、被 claim、运行、失败、完成。

它不应该一开始就承载复杂调度幻想。

经验是:

Agent 产品早期不要把“多 Agent”当作差异化本身。先证明单条任务路径能稳定完成、可恢复、可解释。

失败六:DFX 被发现得太晚

DFX 指 durability、feedback、recoverability、explainability。

也就是:

  • 数据不能丢;
  • 用户要知道发生了什么;
  • 失败后能恢复;
  • 系统行为要可解释。

我一开始没有把它当作产品主路径。

直到 RawTask / DraftTaskTree 没有持久化,导致系统重启后用户上轮未发布的任务丢失,才意识到这是 Product 1.0 级别的问题。

对 Agent 产品来说,DFX 不是后端基础设施优化。

它就是用户体验本身。

用户不会关心你内部有没有漂亮的 task architecture。

他只会关心:

  • 我刚刚输入的需求还在吗?
  • 我生成的任务草稿还在吗?
  • 系统重启后能不能回到上次页面?
  • 执行失败后我能不能知道为什么?
  • 我能不能重试?
  • 我能不能看到产生了哪些文件变化?

如果这些问题没有答案,产品再聪明也不可信。

后来我们才补 RawTask / DraftTaskTree persistence、active authoring state、publish 幂等、result / error summary、message stream bridge、file change summary。

这些工作比很多高级架构更像真正的产品底座。

经验是:

Agent 产品的 1.0 验收标准必须包含“重启后可恢复”。不支持恢复的 Agent 工作台,只是一次性聊天窗口的变体。

失败七:Demo 没有尽早成为最高验收标准

项目中期,我完成了很多内部正确的东西:

  • 状态模型;
  • 合约;
  • reducer;
  • mock scenario;
  • Figma governance;
  • 架构计划。

这些都有价值。

但它们不能替代一个问题:

用户能不能跑完一条真实路径?

对一个作品、产品原型、就业市场展示项目来说,稳定 demo 的价值高于大量内部文档。

因为 demo 是最终压缩后的产品判断:

  • 主路径是否能走通;
  • 界面是否可信;
  • 失败是否可解释;
  • 用户是否知道下一步做什么。

这里不是否认文档和测试。

而是排序问题。

早期应该尽快定义一个小闭环:

输入目标
  -> 生成任务草稿
  -> 用户确认或编辑
  -> 发布执行
  -> 展示执行状态
  -> 展示结果和文件变化
  -> 支持失败、重试和恢复

只要这个闭环没稳定,其他扩展都应该保持克制。

经验是:

AI 产品开发要尽早拥有一个手动 smoke path。它比抽象完整性更能暴露真实问题。

人的职责不是少了,而是变了

这个月最大的体会是:

AI 可以极大提升产出速度,但它也会放大错误方向的成本。

如果方向正确,AI 可以快速写代码、补测试、整理文档、生成方案。

如果方向错误,它也会非常努力地帮你把错误方向做得更完整。

所以人的职责不是减少,而是改变:

  • 人要定义产品闭环;
  • 人要判断什么是 source of truth;
  • 人要控制工作顺序;
  • 人要识别返工风险;
  • 人要决定哪些复杂度值得引入;
  • 人要及时把经验固化成规则。

我现在更倾向于一种“慢一点”的实现策略:

  1. 先用最小闭环验证产品。
  2. 能不做的复杂系统先不做。
  3. 架构保持可扩展,但实现延迟加载。
  4. 工作流要硬,功能边界要窄。
  5. 每次失败都转化为下一次 AI 协作的 guardrail。

这不是反 AI。

恰恰相反,这是更认真地使用 AI。

AI 辅助开发真正有价值的方式,不是让 AI 一口气把宏大系统做出来。

而是让 AI 在明确边界内高效推进,让人把判断力集中在产品闭环、状态模型、用户体验和取舍上。

如果这个月只保留一句话,我会写:

用 AI 做产品,最危险的不是它做得慢,而是它能很快把错误的前提实现得很完整。