T3a failed analysis
类别一:转录失败 (Transcription Failure)¶
这类失败的核心是 Agent 无法从非文本格式(如图片、视频)中提取和理解文字信息。
1. 任务: ExpenseAddMultipleFromGallery (task 13)
* 目标: 从图库中的 expenses.jpg 图片里读取开销项目,并将其添加到“Pro Expense”应用中。
* 失败过程分析:
1. 操作正确: Agent 成功地打开了“Simple Gallery Pro”,找到了 expenses.jpg 并将其全屏显示。这一系列的UI导航操作是完全正确的。
2. 认知断层: 在第8步,Agent 的思考(Reason)是:“我需要先打开开销追踪应用,为添加开销数据做准备”。这表明它知道下一步该做什么,但完全没有提及它从图片中看到了什么。它无法“读取”图片上的文字。
3. 行为“伪装”: 从第13步开始,Agent 在“Pro Expense”应用中输入了“Coffee”、“4.50”、“Lunch”、“12.75”等条目。这些数据并非来自图片,而是 Agent 根据任务描述“添加开销”而凭空生成或从其训练数据中联想出的通用示例。它在模拟一个成功的流程,尽管它没有获取到完成任务所必需的真实信息。
4. 最终失败: 由于 Agent 添加的数据与 expenses.jpg 中的真实数据完全不符,最终的任务验证(通过检查应用数据库)失败。
* 根本原因: Agent 的视觉模型缺乏 OCR 能力。它能识别UI元素(按钮、列表),但无法将图片中的像素信息转译为结构化的文本数据。
2. 任务: MarkorTranscribeVideo (task 36)
* 目标: 观看 ZwUN_moment_70_.mp4 视频,并将视频帧上显示的文字序列,以逗号分隔的形式记录到 Markor 笔记中。
* 失败过程分析:
1. 导航能力出色: Agent 展现了复杂的导航能力。它成功打开VLC,处理了权限请求,浏览到 Download 文件夹,并正确地播放了目标视频。它甚至还处理了VLC首次启动时的教程浮层。
2. 内容理解为零: 在第12步到第20步之间,Agent 反复尝试与播放器交互(点击播放、暂停),但其思考日志中从未提及视频中出现的任何文字内容。它就像一个盲人,可以熟练地操作播放器,却看不见屏幕上播放的内容。
3. 陷入无效循环: 它似乎知道任务尚未完成,所以不断重复“点击播放器”这个动作,希望能触发下一步,但由于无法获取新信息(视频文字),它无法推进任务。
4. 最终失败: 任务因步骤超限而失败。
* 根本原因: 与图片转录类似,Agent 完全不具备从视频帧中提取视觉信息并将其转换为文本的能力。这是其感知模块的根本性缺陷。
类别二:复杂UI理解失败 (Complex UI Understanding Failure)¶
这类失败的核心是 Agent 无法理解非标准、复杂或有特殊状态逻辑的UI。它能看到按钮,但不知道按下按钮后会发生什么,或者如何通过一系列操作达到特定UI状态。
1. 任务: ClockTimerEntry (task 9)
* 目标: 设置一个“0小时16分35秒”的计时器。
* 失败过程分析:
1. 初步操作正确: Agent 打开时钟,切换到计时器标签页,准备输入。
2. 发现错误: 它尝试输入1635。在输入1、6、3后,屏幕显示为 00h 01m 63s。在第5步,它的思考日志写道:“我看到当前显示的是‘00h 01m 63s’,这是一个无效的时间格式”。这表明它具备基础的UI阅读能力,能识别出错误,但是并不理解输入显示的逻辑应当是什么样的,缺失基于预期的长久规划,所以错误的终止了继续输入的行为,而是转向了错误处理。
3. 能够纠正,但不能学习: 它接着正确地使用了三次退格键,将输入清零。
4. 陷入逻辑循环: 从第9步开始,它完全重复了第一次的错误输入序列,再次输入1、6...。它没有从上一次的失败中学习到这个UI的输入机制
* 根本原因: Agent 对这个UI的理解是表层的。它知道“输入数字”和“删除”,但它没有形成一个关于“计时器数字如何进位”的心智模型。因此,当它的简单策略失败时,它无法调整策略,只能重复无效的尝试。
类别三:应用初始化导致的步数限制¶
1. 任务: MarkorAddNoteHeader (task 23)
* 目标: 在一个笔记文件的现有内容之前,添加一行新文字和一个空行。
* 失败过程分析:
1. 导航与初级编辑正确: Agent 成功打开 Markor,找到并打开了目标笔记。
2. Step 1-7: 处理首次启动。Agent 打开 Markor 应用,然后像一个真实用户一样,耐心地点击了5次“下一步”来完成教程,最后关闭了弹出的更新日志。这7步是正确的,但对于完成核心任务来说是“开销”。
3. 高级操作的困惑: 在第11和12步,它通过长按和点击,成功地“全选”了所有文本。这是一个相对复杂的操作,它执行得很好。
* 根本原因: 应用初次启动时需要进行初始化设置,这部分步数消耗了模型的有效步数。
类别四:数学/计数失败 (Math/Counting Failure)¶
这类失败的核心是 Agent 缺乏在UI操作环境中执行基本数学或逻辑运算的能力。
1. 任务: SportsTrackerActivitiesCountForWeek (task 87)
* 目标: 计算“本周”(从周一开始)总共有多少次“跑步”活动。
* 失败过程分析:
1. 数据收集成功: Agent 成功打开 OpenTracks 应用,并在日志中通过上下滚动,完整地浏览了本周的所有活动列表。它把完成任务所需的所有原始信息都“看”了一遍。
2. 认知处理失败: 在第10步,它给出了答案 2。令人疑惑的地方在于:Agent 声称自己完成了任务,而错误的原因却是:Agent did not indicate task is done. Reached max number of steps.
- 可能原因: Agent 能够完成感知(看到列表)和操作(滚动列表)的部分,但没能完成认知处理(筛选“跑步”活动,并对结果进行计数)。
2. 任务: SportsTrackerTotalDurationForCategoryThisWeek (task 92)
* 目标: 计算本周所有“跑步”活动的总时长。
* 失败过程分析:
1. 数据收集成功: 和上一个任务一样,Agent 成功打开应用并浏览了所有本周的活动。它看到了每个活动的名称和时长(例如 30:00, 1:15:00)。
2. 认知处理失败: 它没能在限定步数内完成这个任务,最终超时。因为它需要执行比计数更复杂的认知操作:
* 筛选: 找到所有“跑步”活动。
* 提取: 记下每个跑步活动的时长。
* 求和: 将所有时长加在一起。
* 可能原因: Agent 不具备执行数学求和的能力。它可以看到数字,但无法在操作的上下文中对它们进行计算。
类别五:信息检索与复杂逻辑失败¶
这类失败的核心是 Agent 无法在复杂场景下定位信息,或无法执行需要多个逻辑步骤和状态维护的复杂任务。
1. 任务: SimpleCalendarAnyEventsOnDate (task 68)
* 目标: 检查“10月28日”是否有任何事件。
* 失败过程分析:
1. 界面理解失败: Agent 打开了日历的月视图。这是一个信息密集的界面。在第2步,它试图点击10月28日,但错误地点到了10月13日。
2. 低效的恢复策略: 发现错误后,它没有返回月视图重新选择,而是陷入了一种非常低效的策略:在日视图中,一次又一次地点击“向后一天”的箭头,试图从13日逐天“走到”28日。
3. 最终失败: 这种策略耗时过长,导致任务在到达目标日期前就因步骤超限而失败。
* 根本原因: 这是信息检索和复杂UI理解的复合失败。首先,它无法在密集网格中准确定位目标(检索失败)。其次,它没有更好的错误恢复逻辑,只会采用最原始、最低效的线性导航策略。
2. 任务: RecipeDeleteDuplicateRecipes3 (task 52)
* 目标: 删除所有重复的食谱,但要确保每种独特的食谱至少保留一个实例。
* 失败过程分析:
1. 子任务成功: 日志显示,Agent 在初期是成功的。它能识别出“Avocado Toast with Egg”是重复的,并成功删除了一个副本。它也能识别并删除一个“BBQ Chicken Quesadillas”的副本。
2. 状态维护失败: 失败点在于,在成功执行了几次删除后,它似乎“忘记”了自己已经处理过哪些食谱,或者被列表更新后的新布局搞糊涂了。它开始陷入循环,反复尝试删除“Butternut Squash Soup”,或者在已经清理过的项目上再次尝试,最终在长达34步的无效操作后超时。
* 根本原因: 这是一个典型的复杂任务规划和状态维护的失败。Agent 可以执行“删除一个重复项”这个简单的子程序,但它无法管理一个更高级的、需要记忆和迭代的循环逻辑(“当还有未处理的重复项时,找到下一组并处理”)。它的任务计划非常脆弱,一旦UI状态因自身操作而改变(列表项变少),它就无法适应新的状态,导致逻辑混乱。
*
超时类型¶
好的,我们来对 t3a_failed.md 文件中所有任务进行一次全面的统计,专门找出那些因为“达到最大步数限制”而失败的案例。
失败日志中对应的标志性语句是:
Agent did not indicate task is done. Reached max number of steps.
经过对整个 t3a_failed.md 文件内容的统计,在所有失败的任务中,总共有 28 个任务是因为步数耗尽而失败的。
单纯说“步数不足”是表象,更深层的原因是 Agent 为何会耗尽步数。我们可以将这 28 个失败案例归为以下几种典型的“低效模式”:
1. 陷入无效的逻辑循环或低效策略 (9个任务)¶
Agent 知道目标,但它采用的策略是错误的或极其低效的,导致它在重复的无用功中耗尽了所有步数。
ClockTimerEntry: 发现输入错误后,能够清零,但随即又重复了一遍完全相同的错误输入,陷入循环。RecipeDeleteDuplicateRecipes(3个相关任务): 能够成功删除一两个重复项,但随后就逻辑混乱,无法系统性地清理所有重复项,开始无效点击,直到超时。SimpleCalendar...(4个相关任务): 在日历中定位日期时,一旦首次点击错误,就陷入了“从A日逐天点击到B日”的最低效导航策略,而不是返回月视图重新选择,快速消耗了步数。MarkorTranscribeVideo: 由于无法从视频中获取信息,它只能反复“点击播放器”,期待状态改变,陷入了无信息输入的无效等待循环。
2. 被复杂或非标UI交互所困 (7个任务)¶
Agent 在面对不熟悉的、需要精细操作的UI控件时,会反复尝试错误的交互方式,直至失败。
MarkorAddNoteHeader,MarkorChangeNoteContent,MarkorEditNote: 这三个任务都失败在文本编辑器上。Agent 不理解如何精确地定位光标、插入文本、替换部分文本,而是错误地选择了“全选”等不适用的策略。MarkorMoveNote: 在文件移动的对话框中,虽然最终找到了正确的文件夹,但之前的导航步骤过于繁琐,耗尽了步数。OsmAndMarker: 在地图应用中,它完全无法理解如何添加“标记点”,在长按、点击等操作中浪费了所有步数。SimpleDrawProCreateDrawing: 在保存文件的对话框中,它无法正确地清空并重命名文件,反复进行无效的删除和输入尝试。
3. 信息处理能力缺失导致的操作停滞 (5个任务)¶
Agent 能够看到数据,但无法在认知层面进行处理(计数、求和、比较),导致它只能反复地、漫无目的地滚动浏览,无法给出答案。
SportsTrackerActivitiesCountForWeekSportsTrackerActivityDurationSportsTrackerLongestDistanceActivitySportsTrackerTotalDistanceForCategoryOverIntervalSportsTrackerTotalDurationForCategoryThisWeek
在这5个任务中,Agent 的行为模式高度一致:成功打开应用,然后花费大量步数(通常是7-8步)反复上下滚动列表,最后因为无法进行计数、求和、比较大小等数学运算而超时失败。
4. 简单的导航或执行失败 (7个任务)¶
在这些看似直接的任务中,Agent 依然会因为某些原因“迷路”或卡住,最终超时。
MarkorCreateFolder,MarkorCreateNoteAndSms,MarkorCreateNoteFromClipboard: 在创建文件/文件夹的流程中,Agent 在处理文件名、扩展名或后续分享步骤时被卡住。MarkorDeleteNewestNote,MarkorDeleteNote: 在删除文件的流程中,它在排序或选择文件后,未能及时执行删除操作。RetroPlaylistDuration: 在添加歌曲到播放列表时,它能成功添加几首,但似乎没有一个明确的停止条件和检查机制(检查总时长),导致无限添加下去直至超时。SimpleCalendarDeleteEvents: 在删除多个事件时,它成功删除了一个,但之后没能有效地继续删除下一个,浪费了步骤。
结论¶
“步数耗尽”更像是一个“症状”而非“病因”。 这 28 个案例清晰地表明,Agent 的失败并非因为步数限制本身过于苛刻,而是因为它缺乏高效解决问题的核心能力。当面对其能力短板(如复杂UI理解、数学运算、高级任务规划)时,它无法制定出简洁有效的执行路径,只能通过大量低效甚至无效的尝试来“凑步数”,最终不可避免地走向失败。