修复混乱应用:先定义状态,再向智能体下指令

原标题Fix a tangled app by specifying its states before prompting

Devin Chasanoff 先梳理健身界面的状态、转换和测试,再让智能体修改应用。

DCDevin Chasanoff讲者 · Google
频道
Google Cloud Tech
发布
2026年11月9日
视频
17:27
阅读
3 分钟
幻灯片
8
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

一款健身记录应用的休息和导航行为令人困惑,逐个修复又可能相互冲突。Google 的 Devin Chasanoff 将改动整理为组件、页面及运动状态、显示规则和用户操作的规格,并覆盖最后一组训练等特殊情况。他使用 Gemini 生成测试,把规格和测试交给已有的 Antigravity 会话,最后亲自检查修改后的流程。

  1. 1孤立修复可能相互冲突,让旧问题再次出现Chasanoff 用明确的界面模型取代了问题清单。
  2. 2区分页面级状态和单项运动状态当前组数和休息模式影响整个页面,而完成状态属于单独一组训练。
  3. 3最后一组需要单独的状态转换最后一组结束后,应用仍需让用户完成并保存训练。
  4. 4为完整用户流程生成测试Gemini 生成连接操作、状态变化和显示结果的测试用例。
  5. 5计划依赖上下文时,让智能体留在原有会话Chasanoff 希望智能体结合现有实现理解规格,再继续执行计划。
  6. 6在应用中验证修改后的交互他检查了休息模式、未完成组的导航和最终完成状态。

要点建议

  1. 将相关界面改动描述为一个完整系统,而不是孤立修复的清单。
  2. 明确状态、状态的作用范围,以及用户操作如何改变状态。
  3. 说明最后一个项目完成后的转换等边界情况。
  4. 既测试单独的显示条件,也测试完整用户流程。
  5. 智能体报告测试通过后,仍需检查实际应用。
全文

按章节阅读整理后的全文

只看原始文稿
01

健身界面的交互相互冲突

Chasanoff 演示令人困惑的休息与导航行为。

Devin Chasanoff 正在按照详细实施计划构建一款私人教练应用。训练中的界面本应方便用户在运动时使用,但目前的行为令人困惑。

原始训练界面
幻灯片 1 / 8原始训练界面令人困惑的初始界面同时显示休息计时器和当前组控件。

完成一组训练后,应用会打开休息计时器,却没有清楚推进训练进度。两个控件可以导航到同一位置,额外的未来组信息让页面拥挤,而超级组还需要在不同运动之间交替。他希望这些交互作为一个整体协调工作。

02

定义组件、状态和转换

他把问题清单改写成覆盖普通和最后一组行为的规格。

逐个修复孤立问题可能产生互相冲突的行为,让旧问题再次出现。因此,他把抱怨清单改写成系统规格,描述展示、组件、状态、显示条件和用户操作。

显示层面的改动
幻灯片 2 / 8显示层面的改动Chasanoff 列出期望的标签和布局变化。

首先,他列出标签、布局等视觉改动,再确定组成页面的各个部分。这些名称有助于描述界面,也能帮助智能体定位改动;它们不一定都需要成为独立代码组件。

页面和运动状态
幻灯片 3 / 8页面和运动状态规格将当前组、休息模式与单组完成状态分开。

接下来,他区分页面级和运动级状态。页面记录当前组和是否处于休息模式,并可推导后续组、当前组是否为第一组或最后一组;单项运动则记录某一组是否完成。

他定义了休息模式和训练期间各应显示哪些元素。最后一组需要特殊状态:完成后已经没有当前组,但训练尚未记录。列出这些情况可以明确预期的状态转换。

不同状态下的显示规则
幻灯片 4 / 8不同状态下的显示规则休息、训练和最终状态分别显示不同控件。

对于当前组卡片,未完成时数值应当可以编辑,完成后则显示为文本。按钮应根据状态从完成组变为编辑组。他也为后续组预览和导航控件指定了规则。

操作规则将用户点击与结果状态连接起来。完成普通组时,应用标记其完成并进入休息模式,但不会立即改变当前组;休息结束或被跳过后才前进。最后一组则走不同路径。

操作与休息状态转换
幻灯片 5 / 8操作与休息状态转换规格区分普通完成流程和最后一组特殊情况。
03

生成测试并结合上下文实现

他让 Gemini 生成测试,并将测试与规格交给已有智能体会话。

为了防止后续改动破坏这些行为,Chasanoff 将规格贴进 Gemini,要求生成测试用例。他既希望检查显示与状态,也希望测试从操作到界面结果的小型用户流程。

他决定留在已有的 Google Antigravity 会话,而不是开始新会话。这样智能体能利用之前的实现上下文,将他提出的变量与实际代码对应起来,然后继续整体实施计划。

他要求智能体暂停计划,实现规格并覆盖生成的测试。他说 Gemini 工作了约七分钟,生成的测试全部通过;随后他亲自检查应用。

通过的操作测试
幻灯片 6 / 8通过的操作测试智能体报告了导航和状态转换测试结果。
04

验证训练流程

演示检查修改后的休息、导航和完成过程。

修改后的休息界面显示计时器和接下来的训练。已完成的组可以提供此前重量和次数的参考。如果用户尚未完成当前组就按下一组,菜单会提供标记完成、跳过、预览下一组或返回等选择。

在未完成组时导航
幻灯片 7 / 8在未完成组时导航修改后的界面询问用户是完成、跳过还是预览。

他逐步检查最后几组:随着剩余组数减少,后续预览也会缩短;完成最后一组后会出现完成卡片。他确认并保存训练,并认为先定义系统有助于一起解决相互关联的行为。

完成最后一组
幻灯片 8 / 8完成最后一组完成卡片引导用户保存训练。

同频道的其他文章