当前支持 macOS · 本地优先 · 可教学 English

看一遍,然后替你上场。

Understudy 是一个可教学的桌面 Agent。它像人类同事一样操作你的电脑,统一使用 GUI、浏览器、Shell、文件系统与消息通道;你示范一次,它学习意图、记住成功路径,并逐步找到更快的执行路线。

统一桌面执行 一次任务里同时用 GUI、浏览器、终端、Web 搜索和本地文件。
不是宏录制 学的是任务意图、参数槽、成功标准,不是屏幕坐标。
越用越熟 从成功路径中沉淀技能,减少随机性,执行越来越稳定。
更快路线升级 起步可走 GUI,成熟后自动转向 browser、CLI、API 等更快路径。

Showcase

看 Understudy 如何在一个 Agent 会话中同时操作桌面应用、浏览器和终端。

以上视频经过加速处理。完整原速视频: Google Drive

这次 Showcase demo 生成出来的已发布 skill 产物放在 examples/published-skills/taught-person-photo-cutout-bc88ec/SKILL.md, 可以直接查看最终产物。

为什么它不是另一个 GUI Clicker

Understudy 的重点不是“能不能点按钮”,而是把通用桌面执行、从演示学习、记忆沉淀和路径升级放进同一条 Agent runtime 里。

Native Runtime

统一调度 GUI、Browser、Shell、Web、Memory

一次任务可以先网页检索,再运行本地命令,再切到原生桌面应用点击提交,最后通过消息通道把结果发出去。不是多个自动化脚本拼接,而是单一会话里的统一选路。

GUI: screenshot grounding + 原生输入事件
Browser: Playwright + Chrome extension relay
Shell / Files: 本地执行与文件系统访问
Teach By Demonstration

演示一次,抽取可复用技能

录的是视频和语义事件,学的是意图与工作流。系统会做场景检测、事件聚类、关键帧抽取、证据包分析,再生成 teach draft 与可发布的 SKILL.md。

双轨录制: screen capture + Swift 全局事件监听
AI 分析: 识别参数槽、步骤、成功标准、路线偏好
验证闭环: replay learned task 并分析 trace
Path Upgrade

第一天能做,以后越做越快

GUI 是万能兜底,但不是长期终点。Understudy 允许任务从 GUI 起步,随后在验证通过的前提下逐步升级到浏览器、CLI 或 API 路径,避免永远走最慢的一条路。

Day 1: GUI 兜底,保证任何有界面的软件都可操作
Week 1: 记住成功路径并减少重试
Month 1+: 发现更快路线并稳定切换

Understudy 当前已经能展示什么

这一部分只写当前文档里已经明确描述的能力,不把未来路线写成既成事实。

01 · Grounded GUI

原生桌面操作链路完整

从截图、HiDPI 归一化、目标定位、点击点稳定化,到复杂模式下的模拟叠加验证和动作后截图校验,已经形成完整的 GUI 执行纪律。

双模型分工: 主模型决定做什么,grounding 模型决定点哪里
复杂目标处理: 小目标裁切放大、dense 区域 refinement、失败反馈记忆
运行时信号: observed / resolved / action_sent / condition_met
02 · Teach Loop

演示教学不是概念图,而是有指令流

`/teach start`、`/teach stop`、`/teach confirm`、`/teach validate`、`/teach publish` 已经形成产品接口,能把一次桌面操作演示整理成任务卡与技能文件。

证据包: 场景变化、事件时间线、关键帧和可用能力快照
澄清对话: 用自然语言补齐任务标题、参数和成功标准
技能输出: 发布为三层结构的 `SKILL.md`
03 · Unified Agent Surface

已经不是单入口命令行工具

仓库里已经具备 daemon、chat、agent、dashboard、webchat、channels、schedule 等入口,说明它目标是一个可持续运行的本地 Agent 系统,而不是一次性脚本。

消息通道: Telegram、Slack、Discord、WhatsApp、Signal、LINE、iMessage、Web
自动化: cron 定时与 one-shot timers
子 Agent: 复杂任务可拆成并行子会话处理

五层递进,不靠“全自动”口号跳级

Understudy 的产品叙事很清楚:先能做,再学会做,再记住怎么做,然后越来越快,最后才谈主动执行。

Layer 1 · 已具备
Operate Software Natively

像人一样操作软件

看、点、输、拖、滚、验证。任何有 GUI 的 macOS 软件都可以成为执行对象。

Layer 2 · 已具备
Learn from Demonstrations

从演示中学任务

不录坐标,录证据。把一次示范提炼成任务卡、路线选择和可复用技能。

Layer 3 · 已部分实现
Crystallized Memory

把成功路径固定下来

日常使用中自动识别重复工作,把成功路径固化为 workspace skill,不需要显式教学。

Layer 4 · 已部分实现
Route Optimization

自动升级更快路线

在 teach 的 prompt 和路线偏好里已经会推动任务走更快路径,虽然机制还比较简单,但这部分已经开始工作。

Layer 5 · North Star
Proactive Autonomy

在独立空间里主动工作

理解日常习惯、提出建议、在不打断用户的前提下完成常规任务。

执行路线金字塔

这个设计是 Understudy 最重要的产品亮点之一:GUI 是普适起点,但不是唯一答案。

Fastest

API / Direct Tool

如果目标能力已经有直接工具或 API,就不应该绕回 GUI。毫秒级,最稳。

适合消息发送、结构化数据操作、已有 MCP / tool surface 的任务。
Fast

Shell / CLI

调用本地命令行、脚本和文件系统,避免图形界面重复劳动。

适合批量文件处理、开发工具链、系统命令和本地脚本。
Fallback+

Browser

当 Web 页面是最自然入口时,用 Playwright 或浏览器 relay 控制站点流程。

适合登录态网页、表单、控制台和 SaaS 工作流。
Universal

GUI

任何有界面的应用都可被操作。这是 Understudy 能覆盖长尾软件与真实办公环境的基础。

不是低级方案,而是系统具备通用性的关键保底能力。

一次任务,可能横跨整台电脑

这也是它和普通自动化脚本最大的区别:Planner 不是先决定“用哪个工具”,而是面向目标动态选路。一个任务可以查网页、读本地文件、点原生 App、再把结果发到消息通道里。

Observe 截图、读取网页、查本地状态、拉取上下文与历史记忆。
Resolve 判断当前步骤最适合走 API、CLI、Browser 还是 GUI。
Execute 调工具、调用脚本、浏览器操作、或执行原生输入事件。
Verify 动作后重新观察并给出结构化状态,供记忆与后续升级使用。

快速上手

当前 README 推荐的路径是先启动 daemon,再通过终端或 dashboard 与系统交互。项目目前处于 Alpha,主力开发与测试环境是 macOS。

understudy daemon --start
understudy chat
understudy dashboard
understudy webchat
understudy agent --message "..."
.hero-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }