01 / THE SIGNAL

我们发现了什么

方向观察:我花了 3 个月让桌面自动化不再对 AI agents 撒谎。原文包含第三方或历史项目线索,暂不能归属于本产品,需核对完整来源。

  • 来源:Hacker News发现于 2026-08-16
  • 证据等级:D · 包含历史项目、第三方案例或未来计划;不能作为当前项目收入证据。
  • 商业模式:API / Usage-based
  • 主题:AI Agent
  • 初筛评分:17.6/100 · 收录 1
#工作流自动化#待验证#产品发现
02 / SOURCE & EVIDENCE

证据,比故事更重要。

包含历史项目、第三方案例或未来计划;不能作为当前项目收入证据。

规则清洗与初筛,未经人工商业核验。原文语境、实际客户和付费情况仍需自行验证。

引用与数字披露

来源类型(原作者自述/第三方测算/媒体转引)需采集端标注,本版尚未落字段。

短句引用
作者
未标注
抓取日期
来源类型
未标注
数字口径
币种
未标注
口径
未标注
披露主体
未标注
披露日期
未标注

中文辅助译文(全文)

这是一个大胆的声明。但我真的觉得我可能已经解决了计算机使用问题(演示:https://x.com/mdlahfir/status/2088109763783700827?s=20 )。背景是,我一直在构建 agent-desktop(灵感来自 Vercel Labs 的 agent-browser),一个用于桌面应用的自动化 CLI。它就像 Playwright,但用于桌面,不仅仅是原生应用,还包括 Chromium 应用。相信我,是的,Chromium 应用的辅助功能树非常密集。MacOS 已经正式发布(GA);我几乎就要为 Windows 和 Linux 发布了!那么,我是如何解决的呢?基本上是互操作性。计算机使用最大的问题是,我们有可靠的浏览器使用框架,比如 Playwright、agent-browser 等等,但桌面端却没有同样的框架。我们正在涌现一些非常好的解决方案,比如 tryCua,我就是它的忠实粉丝。我对 agent-desktop 的愿景是构建一个 agent 可以用于长程任务的最可靠框架。agent-desktop 轻量级,基于 Rust 构建,速度快,并且不消耗 token(它可以运行数小时而不超出上下文窗口)。以下是我用来实现这一目标的方法:a) 骨架快照 - 当你想要对窗口/应用进行快照时,它只对父容器进行快照,并返回一个 ref id,而不是整个辅助功能树。b) 骨架下钻 - 一旦 agent 拥有了这棵树,它就可以决定下钻到特定区域。所有子命令如 --find、--click、--wait... 都作用于该特定 ref 感知区域。

这意味着如果你想在整个应用中查找一个元素,它不会花费很长时间在整个应用中搜索该元素;相反,agent 将以极低的 token 成本获得该元素可能所在位置的精确线索。c) 链式交互回退 - 一次点击不是一个 API 调用,而是一个有序的机制链(AXPress -> AXOpen -> 通过内部单元格激活 -> 写入选择 -> AXConfirm)。每一步仅在元素声明支持它时才运行,并且成功是通过观察应用的状态变化来判断的,而不是通过返回代码,因为应用在两个方面都在“撒谎”:Finder 对已成功的操作返回错误,对未执行的操作返回成功。首次观察到的效果获胜。响应会报告尝试的每一步,因此 agent 确切地知道是哪个机制起作用了。d) 操作后反馈 - 每个操作都会报告其处置情况(已交付且已验证、已交付但未验证、未交付)以及任何打开的界面(对话框、菜单、面板),因此 agent 知道发生了什么而无需重新扫描整个应用。e) 严格的 ref 重新识别 - ref 不是指针;它是身份证据(角色、路径、稳定文本、边界哈希)。在每次操作之前,都会针对实时 UI 重新解析它。如果 UI 更改,你会得到 STALE_REF;如果现在有两个元素匹配,你会得到 AMBIGUOUS_TARGET。它从不猜测。所有这一切中最重要的部分是 Chromium 应用的辅助功能。我是怎么做到的呢?秘诀就是 CDP!如今大多数桌面应用都是基于 Chromium 的(Slack、VS Code、Obsidian、Discord...)。一个 comman…

译文由上游机器翻译生成,可能有误;判断请以英文原文为准。

英文原文(来源本站未改写)

That's a bold claim.But I genuinely feel like I might have actually solved computer use (demo: https://x.com/mdlahfir/status/2088109763783700827?s=20 ) For context, I've been building agent-desktop (Inspired by agent-browser by Vercel Labs), an automation CLI for desktop apps.It's like Playwright but for desktops, not just native, but for Chromium apps as well.Trust me, yes, Chromium apps whose accessibility tree is dense.MacOS is GA;I'm almost close to launching for Windows and Linux!So, how did I solve it?Basically interoperability.

The biggest issue with computer use is that we have reliable frameworks for browser use, like Playwright, agent-browser, and many more, but not the same with desktops.We have really good solutions emerging, like tryCua, which I'm a big fan of.

My vision with agent-desktop is to build the most reliable framework that agents can use for long-horizon tasks. agent-desktop is lightweight, built on Rust, fast, and not token-hungry (It can go for hours without exceeding the context window) Here's the approach I used to make it possible: a) skeleton snapshots - when you want to snapshot a window/app, it only snapshots the parent containers and gives back a ref id, not the entire accessibility tree. b) skeleton drilling - once the agent has that tree, it can then decide to drill into a specific region.All the subcommands like --find, --click, --wait... all work on that specific ref aware region.

Meaning if you want to find an element in the entire app, it doesn't take forever searching for the entire app for that element;rather, the agent will have an exact clue on where that element might be for a fraction of the token costs. c) chained interaction fallback - a single click isn't one API call but it's an ordered chain of mechanisms (AXPress -> AXOpen -> activate through the inner cell -> write selection -> AXConfirm).Each step only runs if the element advertises it, and success is judged by watching the app's state change, not by the return code, because apps lie in both directions: Finder returns an error for an action that worked and success for one that did nothing.

First observed effect wins.The response reports every step tried, so the agent knows exactly which mechanism landed. d) after-action feedback - every action reports its disposition (delivered and verified, delivered but unverified, not delivered) plus any surface that opened (dialog, menu, sheet), so the agent knows what happened without re-scanning the whole app. e) strict ref re-identification - a ref isn't a pointer;it's identity evidence (role, path, stable text, bounds hash).Before every action, it's re-resolved against the live UI.If the UI changed, you get STALE_REF;if two elements now match, you get AMBIGUOUS_TARGET.It never guesses.

The most important part about all this is Chromium app accessibility.How did I do it?The magic word is CDP!Most desktop apps today are Chromium-based (Slack, VS Code, Obsidian, Discord...).One command

出处https://github.com/lahfir/agent-desktop/tree/main抓取日期 · 采集源 Hacker News

03 / EVIDENCE GAPS

这条还缺什么证据?

下面每条都由本条已有字段推出(等级、理由、商业模式、来源次数、是否演示), 本站不生成推测性结论;通用验证方法放在方法论页。

  • 可核验的收入或付费证据查官网定价页与付费口径;第三方数据源(如 GetLatka)只作旁证,需标注来源与时点。
  • 只有单一来源找一手站点或其他渠道是否重复出现同一产品;社区热帖数量不等于商业进展。

通用验证清单(谁有这个问题/谁愿意付费/一个人能交付哪一小步)见我们的筛选方法

04 / SIGNAL HISTORY

发现时间线