Guides / 视频转图文攻略
TypeSafe Computer Use 实操:用 Jev 做本地桌面自动化
逐帧解读 Alex Hitt 这支 6 分钟白板视频:typesafe-computer-use 仓库如何用本机 Vision OCR + AX 树解析替代多 MB 截图上云,每步 $0.0002 的 Jev 动作分类、双 API 配置、--act 演练与硬件级急停。
速览结论
Alex Hitt 这支 6 分钟白板视频为 typesafe-computer-use 仓库立论:自主桌面控制过去意味着把好几 MB 的屏幕截图发给大型多模态模型——一次点击等 5 秒以上、最多 32 美分。仓库把架构翻转:桌面状态在本机分析(macOS 14+ 的 Apple Vision OCR 加辅助功能树,Python 3.12+,用 uv 安装),编译成带坐标的硬性候选动作清单,再让 Jev 对下一个动作做纯分类——单次决策 $0.0002、一秒内完成。配置有规矩。双 API 配置职责分离:TypeSafe API key 管结构逻辑和动作选择,Anthropic key 只负责文本生成(比如填搜索框)——每段自由文本输入后立即由一道 Jev 布尔命题校验,不过关就回滚动作、清空输入框,这正是模型选不出本地状态里不存在的坐标或元素的原因。macOS 自动化权限必须显式授予,否则合成点击会被系统静默丢弃;「终端清洁令」是真实规则:Agent 会 OCR 你的整个屏幕,残留的自动化日志会变成可点击目标、把它困进递归循环。先跑 clicker 诊断(只打印计划的动作序列、不发硬件事件),确认无误再加 --act 从只读规划切入真执行——并且放开鼠标,跟 Agent 抢输入会弄乱它的坐标映射。急停有两条路:终端保有焦点时 Ctrl-C 安全停掉 Python 循环;否则把物理鼠标用力推向屏幕左上角,框架持续监视坐标边界、越界即终止线程。每次运行都会写一个飞行记录仪文件夹——JSON 状态、屏幕位图、分阶段计时——用带数字包围盒的截图离线复盘,不烧一个 API credit。已知边界:屏幕上两个同标签会让 Jev 概率对半分(0.4/0.4 对 0.5 安全阈值)、循环自动停止;Agent 跨运行无状态;以及「点右上角的提交按钮」永远好过「点提交」。
分步图文攻略
- 1
旧经济学:一次点击 5 秒起、32 美分封顶
自主桌面控制一直是最昂贵的用电脑方式:Agent 截取整块屏幕(几 MB)、上传给大型多模态模型、等它生成推理——单次点击超过 5 秒、最高 32 美分。视频的天平帧在任何代码出现前就把对比讲透:天平重侧是原始截图,另一侧是亚秒级的本地状态。

把像素寄给推理模型,是天平又慢又贵的那一端。跳转至 0:32 - 2
新经济学:每步 $0.0002、不到一秒
typesafe-computer-use 抛弃深思式的思维链,改用 System One 决策模型:桌面状态在本机分析、候选清单本地编译、Jev 只回答「下一个动作是什么」这个分类问题。头条数字:执行成本降到美分零头——每步 $0.0002——决策延迟不到一秒,桌面自动化从研究演示价进入你真的敢开循环跑的单步定价。

每步一次分类——单次点击的价格掉了四个数量级。跳转至 0:48 - 3
感知栈:Native OCR、Jev 分类、AX 树解析
原始像素哪也不去,屏幕在本机读取:Apple Vision OCR(macOS 14+ 硬性要求的原因)、辅助功能树解析器和 CoreGraphics——用 TypeSafe SDK 和 Python 3.12+ 经 uv 连成一体。Jev 在栈里只占一个框:从解析好的本地状态里分类下一个动作。决策本身不需要任何像素离开你的机器。

感知全在本地;只有分类问题发给 Jev。跳转至 0:42 - 4
候选清单:坐标与目标,先行编译
本地分析产出一份硬性候选动作清单——X/Y 坐标到 Form Field 1、Button A、Dropdown C 等具名目标的显式映射表——与解析出的 UI 并列。这道结构约束就是安全护栏:模型选不出本地状态里不存在的坐标或元素,因为它的选项被限定在编译好的清单里,而不是从截图里现编。

Agent 从编译好的真实目标菜单里挑——幻觉坐标在结构上不可能。跳转至 2:02 - 5
系统卫生:每次运行前清空终端
视频里最反直觉的运维规则。Agent 截取的是整个屏幕的视觉状态——终端里还留着上一次的自动化日志时,OCR 引擎会把 Agent 自己的历史输出识别成可点击 UI,它就会卡在跟自己的输出交互的递归循环里。清洁令:开始任何执行前,物理清空活动终端窗口。SYSTEM HYGIENE 这帧值得钉在运维手册旁边。

你的 Agent 读整块屏幕——昨天的日志就是今天的幽灵按钮。跳转至 2:45 - 6
先演练,再加 --act 真执行
自主之前先验证。带自然语言目标运行 clicker 命令,只打印计划的动作序列、不发硬件事件——只读诊断,让你看清楚 Agent 打算做什么。计划没问题时再加 --act 标志,脚本从规划切入执行。那一刻起你要交出物理控制权:循环中途动鼠标或打字会制造焦点冲突、破坏坐标映射、带偏整场运行。

先打印计划;序列读起来对了,才加 --act。跳转至 3:38 - 7
两个急停:Ctrl-C 和左上角
把操作系统交给 Agent 的前提是你能瞬间收回控制权。终端保有焦点时,标准 Ctrl-C 中断安全停掉 Python 循环。焦点在别处时,把物理鼠标用力推向屏幕左上角——框架持续监视坐标边界,光标越界的瞬间终止执行线程。把 kill switch 锚在物理动作上,意味着软件出错也拦不住你的人工覆盖。

终端里 Ctrl-C,终端外把鼠标推到左上角——两条路都能瞬间停车。跳转至 4:28 - 8
用飞行记录仪调试,不烧 API
边界案例的分析失败不可避免,所以每次运行写一个带时间戳的本地文件夹:JSON 状态、屏幕位图、分阶段计时。开发者查看标着数字包围盒的截图,确认 Vision OCR 和辅助功能树到底识别到了哪些元素——就是视频里的 AX Node 高亮——离线复盘失败,一个 API credit 都不花。

每次运行都记录感知层看见了什么——失败变成可回放的,而不是玄学。跳转至 5:02 - 9
概率对撞会替你停车
界面上出现两个相同标签时,Jev 会在两个合法选项之间对半分概率——视频例子里 0.4 对 0.4,低于 0.5 的安全阈值。票数打平、置信度塌掉,循环自动停止而不是瞎猜。修法在你:写高度明确的自然语言目标(「点右上角的提交按钮」,永远别只说「点提交」),记住 Agent 跨运行无状态,并且每次运行都给足确定性规则、严格的概率下限和极端干净的环境。

0.4/0.4 对 0.5 阈值 = 停车——歧义是停车标志,不是抛硬币。跳转至 5:30
常见问题(FAQ)
typesafe-computer-use 是什么?
一个基于 TypeSafe Jev 的开源本地桌面自动化仓库。它不把多 MB 截图发给多模态模型,而是用 Apple Vision OCR 和辅助功能树在本地解析屏幕、编译出带坐标的硬性候选动作清单,再让 Jev 分类下一个动作——单次决策约 $0.0002、不到一秒。
系统要求是什么?
macOS 14 或更高(Apple Vision OCR)、Python 3.12 或更高、uv 包管理器装依赖。还需要显式授予 macOS 自动化/辅助功能权限——没有授权时系统会静默丢弃合成点击,看起来就像什么都没发生。
为什么同时需要 TypeSafe key 和 Anthropic key?
双 API 配置把结构逻辑和语言分开:TypeSafe key 驱动 Jev 的动作选择与校验,Anthropic key 只用于文本生成(如填搜索框)。每段自由文本输入后都有一道 Jev 布尔命题校验——不过关就回滚动作、清空输入框。
我的 computer-use agent 为什么会点自己的日志?
Agent 会 OCR 整个屏幕,终端窗口里残留的自动化输出会被识别成可点击的界面文字——视频演示的递归循环失败。修法就是终端清洁令:每次执行前清空活动终端。
紧急情况下怎么让 Agent 停下来?
两条路。终端窗口保有焦点时,Ctrl-C 安全中断 Python 循环;否则把物理鼠标用力推向屏幕左上角——框架监视坐标边界、越界立即终止执行线程。硬件锚定的急停即使软件出问题也有效。
这和浏览器 Agent 有什么区别?
范围和层级。浏览器 Agent 在网络层自动化一个应用;computer use 解析操作系统的完整视觉状态、合成真实的点击和按键。代价也对应:OS 级触达带来权限、卫生、焦点和安全阈值这些浏览器 Agent 永远不用面对的规则。
相关推荐
Jev 浏览器 Agent 指南
浏览器范围的姊妹篇:用 Jev 决策点替代整页模型调用,给 Web Agent 提速。
阅读Jev MCP Server 指南
经 Model Context Protocol 给编码 Agent 发类型化决策工具——键盘与终端一侧的 Agent 控制。
阅读Jev 是什么?System One 模型详解
为什么非生成式分类器是每步 UI 决策的正确引擎。
阅读更多视频攻略
- Jev 极速分类实战:从 API 调用到 Choice/Score/Noul 三大原子类型
- 7 分钟透析 Jev 架构:为什么 70ms 决策模型颠覆了 LLM 自动化工作流?
- Jev 赋能极速浏览器 Agent:178ms DOM 决策循环与双模型协作实战
- OpenJevs 开源 Jev 模型全景:Semif、Nimble、Decider、DiffusionGemma 与 Laya 实测
- Jev 会取代 LLM 吗?Krish Naik 白板图解 Jev vs LLM 与混合架构
- Jev Trader 教程:在 Monad 上搭建亚秒级 AI 交易机器人
- Jev Model Router 实战:用 Jev 搭建带隐私门控的本地模型路由器
- Jev 入门教程:State、三类问题与 TypeScript SDK 实操
- 本地跑 Jev:Kev、SemIf 与 Von,自己的 GPU 就够了
- Jev RAG Reranker 实战:用可执行 criteria 打造策略化检索重排
- Jev 什么时候该用:工程视角核实宣传口径、守门与失败模式
- LangChain + Jev 集成实战:路由、护栏与评测
- Jev MCP Server 接入指南:把 Jev 决策层接进 Claude Code 与 Cursor
- Jev vs Luna 独立基准实测:「更快更准更便宜」是真是假?
- Jev Agent Harness 实战:决策闸门该装在 LLM 循环的哪个位置
- Jev Playground 实测攻略:热狗课程、criteria 校准与四平台 token 账单
- Jev 文本分类 API 实战:用 classifier.dev 打通零样本 CLI 与 REST 调用
- Jev API 实战示例:第一条 curl、载荷结构与三种问题类型
- 用 Expanso Edge 和 Jev 搭建日志分流流程
- Treg + Jev 线索丰富:ICP 分类与注册用户评分
- 在 Heym 中使用 Jev 决策节点:语言判断与模型路由
- Laya 上手教程:开源自托管决策引擎的安装、路由与概率校准(Laya vs Jev 实操)
- 训练自己的 Jev:花 $5–$17 微调一个 Jev 式决策模型(能训什么、不能训什么)
- Jev 实用技巧:拿到更好决策结果的 8 条最佳实践(state、questions、criteria 与阈值)
- Jev 上下文压缩实战:不用生成式摘要,直接剪枝 Agent 记忆
- Jev 当 LLM 评审:置信度级联,只要强模型 0.36% 的成本