
GUI 自动化AI 应用桌面应用AI 技能【免费下载链接】agent-desktopAgent Desktop gives any agent reliable computer use on the desktop. Built with Rust, it sees any apps real UI structure through OS accessibility trees and operates it — refs stay stable and actions stay safe to retry, instead of guessing from pixels.项目地址https://gitcode.com/gh_mirrors/ag/agent-desktop点击查看免费下载agent-desktop 是一个用 Rust 编写的桌面 Agent 工具它通过操作系统的辅助功能Accessibility树读取真实 UI 结构让 AI Agent 像人一样可靠地看到并操作任意桌面应用。支撑这一目标的核心是它的 Rust 多 crate多成员 crate架构与依赖倒置原则——业务逻辑全部下沉到平台无关的 core 层macOS / Windows / Linux 只是可替换的适配器新平台接入时几乎不用改动上层代码。一张图看懂依赖方向上面的架构图展示了 agent-desktop 的工作闭环AI Agent 发出命令 → CLI / C 库读取操作系统原生 UI 树 → 返回结构化 JSON 和元素引用refs→ 按 ref 定位真实控件并执行动作。这套流程的通用部分快照管理、ref 解析、可操作性检查、等待与重试与平台无关因此被抽成独立 crate平台差异调用哪套系统 API被压缩到一个薄适配层。这就是整个架构的关键分工。六个 crate 的分工地图agent-desktop 是一个 Cargo Workspace在根 Cargo.toml 中声明了 6 个成员crate路径职责corecrates/core/平台无关的业务大脑快照、refs、54 条命令、可操作性检查、等待策略macoscrates/macos/macOS 适配器基于 AXUIElement 的读树、输入、窗口操作windowscrates/windows/Windows 适配器按阶段推进中linuxcrates/linux/Linux 适配器按阶段推进中fficrates/ffi/C-ABI 动态库供 Python / Node / Go 等语言进程内调用主二进制src/CLI 入口命令行解析与分发其中 core 是整个项目的重心crates/core/src/lib.rs 列出了上百个模块覆盖从snapshot快照到ref_action按 ref 执行动作的全部领域概念。而三个平台 crate 的 Cargo.toml 都极简——macos 版额外引入accessibility-sys、core-foundation等系统绑定但业务上只依赖 core从不互相依赖。PlatformAdapter依赖倒置的支点依赖倒置原则说的是高层模块不应依赖低层实现二者都应依赖抽象。agent-desktop 在 crates/core/src/adapter/mod.rs 中把这个原则落成了一张抽象契约pub trait PlatformAdapter: ObservationOps ActionOps InputOps SystemOps {}这张契约被刻意拆成四组能力定义在 crates/core/src/adapter/ 下ObservationOps观察读 UI 树、列窗口、列应用见 observation.rsActionOps动作点击、输入、拖拽等语义化操作InputOps输入底层键鼠事件SystemOps系统权限检查、剪贴板、进程等倒置由此成立core 里 54 条命令全部面向dyn PlatformAdapter编程完全不知道底下是 macOS 还是 Windows反过来macOS 适配器 crates/macos/src/adapter.rs 只是MacOSAdapter结构体 一组 trait 实现。这套抽象还有两个精巧的设计方法默认实现。ObservationOps 的每个方法都有默认实现——直接返回not_supported错误。某个平台暂时没做完的能力不会让编译失败只会诚实地返回不支持。Stub 适配器免费获得。crates/ffi/src/adapter.rs 里的StubAdapter一行方法都不用写四个 trait 空实现即得——因为所有方法都落在默认不支持分支上。CI 正是用它跑通无辅助功能权限环境的 FFI 测试。跨平台装配唯一的接线点依赖倒置的价值最终体现在装配代码上。整个仓库只有两个接线点允许把平台 crate 接进来CLI 二进制src/Cargo.toml和 FFI 库crates/ffi/Cargo.toml。二者的依赖声明都按目标平台条件编译[target.cfg(target_os macos).dependencies] agent-desktop-macos { path ../crates/macos }运行时装配同样干净。build_adapter() 用#[cfg(target_os ...)]在编译期选定具体适配器返回值统一为Boxdyn PlatformAdapter——上层调用者拿到的永远是同一个抽象类型。这意味着新增平台新建一个 crate 实现 trait再在两个接线点各加一行条件依赖即可core 与 CLI 代码零改动能力渐进某平台先实现 ObservationOps其余能力保持不支持不影响整体交付行为一致ref 解析、stale 重试、权限拒绝的语义全部由 core 统一裁决macOS / Windows / Linux 与 CLI / FFI 消费者拿到相同的行为承诺这一点在 CONCEPTS.md 中有完整的领域术语定义。CI 强制core 隔离架构不腐化好架构靠纪律维护。CONTRIBUTING.md 把隔离规则写成了不可协商条款agent-desktop-coremust never import a platform crate. Platform crates must never import each other.CI 用cargo tree -p agent-desktop-core直接验证 core 的依赖树里不能出现任何平台 crate 名。配套的扩展模式也很克制新增一条命令只需在六个固定位置注册core 命令文件、命令注册表、CLI 参数、分发 match、Action 变体、trait 方法不碰任何其他文件。这种文件即职责 依赖方向受 CI 守护的规范正是多 crate 设计能够长期可扩展的原因——约束不在文档里而在依赖图里。架构红利平台无关体验更好依赖倒置不只是工程美德也直接带来产品收益。因为读什么、读多少、怎么钻取的策略全部在 core 层实现任何平台都能享受同一套渐进式骨架遍历先看 383 token 的概览地图再按需钻取局部而不是每次吞下 3 万 token 的全量快照。小结三条可复用的经验抽象放 core实现放边缘平台 crate 越薄越好业务规则如 ref 稳定性策略集中在 core保证跨平台语义一致trait 默认实现 渐进式平台支持未实现的能力优雅降级为not_supported让部分完成的平台可以先行发布把架构约束交给 CI一条cargo tree检查比十条文档更能守住依赖方向。对想给 AI Agent 增加跨平台桌面操作能力的开发者来说这套 core adapter 装配点的模式是一个值得参考的范本先画好依赖方向再谈功能扩展。更多领域概念可参阅 CONCEPTS.md贡献指南见 CONTRIBUTING.md。赞分享GUI 自动化AI 应用桌面应用AI 技能【免费下载链接】agent-desktopAgent Desktop gives any agent reliable computer use on the desktop. Built with Rust, it sees any apps real UI structure through OS accessibility trees and operates it — refs stay stable and actions stay safe to retry, instead of guessing from pixels.项目地址https://gitcode.com/gh_mirrors/ag/agent-desktop点击查看免费下载相关推荐Android Architecture Samples架构设计依赖倒置原则的应用Android Architecture Samples架构设计依赖倒置原则的应用 在Android应用开发中如何让代码更具可维护性和可测试性是开发者经常面示例工程移动开发Panda CSS v2 Rust 引擎的 crate 分层架构crates 工作区的一向依赖设计深度解析Panda CSS v2 Rust 引擎的 crate 分层架构crates 工作区的一向依赖设计深度解析 Panda CSS panda 仓库的 v2前端构建工具开发工具深入理解7-Zip-zstdLZMA2与Zstandard混合压缩技术深入理解7 Zip zstdLZMA2与Zstandard混合压缩技术 引言压缩技术的痛点与解决方案 在当今数据爆炸的时代高效的数据压缩技术成为节省存储空文档创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考