文件与行号
internal/tool/desktop_control_darwin.go:539-551(findAndClick 匹配循环,matches[0].Label 在 L548)
问题描述
循环变量 m 是实际被点击的第一个有有效 Frame 的匹配项,但返回文案用 matches[0].Label(第一个匹配项的 label——可能正是因无 Frame 被跳过的那个)+ m.Frame 的坐标。
触发场景
find_and_click "OK" 返回两个元素:第一个 frame 为 null(被跳过),第二个正常(被点击)→ 返回文案报告第一个的 label 和第二个的坐标,自相矛盾。依赖此反馈做后续决策的 LLM 可能重复操作或误判。
预期行为 vs 实际行为
- 预期:报告实际点击元素的 label 与坐标
- 实际:label 取 matches[0],坐标取被点击的 m,可能不一致
修复建议
返回文案中 matches[0].Label 改为 m.Label。
严重程度
Low(经独立 subagent 复核确认为循环变量误用;不影响控制流,只影响反馈准确性)
文件与行号
internal/tool/desktop_control_darwin.go:539-551(findAndClick 匹配循环,matches[0].Label 在 L548)问题描述
循环变量
m是实际被点击的第一个有有效 Frame 的匹配项,但返回文案用matches[0].Label(第一个匹配项的 label——可能正是因无 Frame 被跳过的那个)+m.Frame的坐标。触发场景
find_and_click "OK"返回两个元素:第一个 frame 为 null(被跳过),第二个正常(被点击)→ 返回文案报告第一个的 label 和第二个的坐标,自相矛盾。依赖此反馈做后续决策的 LLM 可能重复操作或误判。预期行为 vs 实际行为
修复建议
返回文案中
matches[0].Label改为m.Label。严重程度
Low(经独立 subagent 复核确认为循环变量误用;不影响控制流,只影响反馈准确性)