资讯详情

typesafe-computer-use开发指南:场景化测试怎么写、如何提交一个PR

📅 2026/10/13 16:24:10 | 华诺云谱 👁 阅读
typesafe-computer-use开发指南:场景化测试怎么写、如何提交一个PR
【免费下载链接】typesafe-computer-useComputer use for about $0.0002 a step: OCR the screen, classify the next action with TypeSafe, click. macOS.项目地址https://gitcode.com/gh_mirrors/ty/typesafe-computer-use点击查看免费下载typesafe-computer-use项目内简称 jev是一个超低成本的 computer use 项目用 OCR 读屏、用 TypeSafe 分类器决定下一步动作、然后点击单步成本约 $0.0002。如果你想参与贡献本文是一份完整指南重点讲两件事如何为 typesafe-computer-use 写场景化测试scenario tests以及如何提交一个能通过 CI 的 PR。1. 动手前环境准备与项目结构快速搭建开发环境 ️项目要求 Python 3.12依赖管理使用 uv 中的 dev 组pytest与ruffgit clone https://gitcode.com/gh_mirrors/ty/typesafe-computer-use cd typesafe-computer-use uv sync # 安装依赖含 pytest、ruff uv run pytest -q # 全量测试是纯逻辑测试任何 OS 都能跑一分钟看懂目录结构每个模块的职责在 docs/layout.md 中有完整说明核心部分如下模块职责typesafe_computer_use/runner.py步骤主循环、停止规则、run folder 写入typesafe_computer_use/perception.py截屏、OCR、可访问性树合并typesafe_computer_use/decide.py状态构建与三Choice分类请求typesafe_computer_use/writer.py自由文本模型唯一产出自由文本的地方tests/world.py模拟电脑页面图、控件、每个动作的效果tests/test_scenarios.py场景化测试从 L1 逐级变难的任务tests/conftest.py测试守卫禁止任何测试碰到真机2. 场景化测试的核心思想用假电脑驱动真循环typesafe-computer-use 的主循环由四个接缝seam组成截屏、感知条目、询问分类器、在机器上执行动作。普通的单元测试只覆盖单个接缝而场景化测试通过 tests/world.py 里的模拟电脑把整条循环跑起来页面图page graph用Page描述每一屏有什么条目、点击后跳到哪一页策略policy一个函数顶替分类器每步返回一个动作如(click_item, Tickets)或(done, None)三重断言断言运行结局state.outcome、世界最终停在的页面world.page.name、世界实际收到的动作日志world.log。关键点在于场景测试运行的是真实的runner.run循环tests/test_scenarios.py 的文件头注释写明了这一点。所以如果某个场景失败说明的是架构做不了这个任务而不是测试框架的问题——这正是这个项目所有停止规则被发现和被修复的方式。 上图是tests/fixtures/中的真实屏幕 fixture像 OSWorld 感知类测试会使用这类屏幕截图来验证感知逻辑。而场景化测试连截图都不需要——屏幕就是几行Page定义。另外注意 tests/conftest.py 里有一个autouse守卫任何试图移动鼠标、按键、截屏的调用在测试中都会直接报错测试永远碰不到你的真机请勿削弱这个守卫见 AGENTS.md。3. 三步写出你的第一个场景 ✍️下面是一个最小场景的完整形态对应 tests/test_scenarios.py 的 L2 级别第 1 步画出页面图。on字典声明动作 → 下一页的映射没有声明的动作就是什么都没发生world World( [ Page(namehome, items[Home, Tickets, About], urlhttps://example.com/, on{click:Tickets: tickets}), Page(nametickets, items[Buy, Terms], urlhttps://example.com/tickets), ] )第 2 步写策略。用现成的scripted工具按脚本喂动作或写一个函数根据屏幕状态决策policy scripted((click_item, Tickets), (done, None)) state drive(world, policy, goalGOAL, monkeypatchmonkeypatch, tmp_pathtmp_path)第 3 步断言结局、终点页、动作日志。assert state.outcome done assert world.page.name tickets assert world.log [click:Tickets]场景文件从 L1 到 L34 难度递增目标已达成 → 单击到达 → 慢页面等待 → 死胡同回退 → 卡顿检测 → 重复动作规则……新场景请继续这个编号约定并参考同级场景的写法。需要慢加载页面就用loads_inN需要重复标签消歧就用行内列表如[Coldplay, Oct 2, Buy]。4. 循环做不到的任务怎么办xfail而不是绕开这是 CONTRIBUTING.md 中最重要的一条约定写一个场景让它保持失败打上xfail并写清原因等主循环而不是场景本身被修复后xfail转为通过再移除标记修循环而不是改场景——每一个停止规则都是这样被发现或修复的。5. 提交前必读Ground Rules 清单CONTRIBUTING.md 的几条铁律改代码前先对照一遍规则为什么动作集保持互斥两个同义选项会分票被读成低置信度分类器只选择代码决定事实日期、URL 合法性、字段是否聚焦等一律在代码中算好再作为状态传入自由文本只来自writer.py且必须带结构化回复与代码侧守卫writer 永不选动作它停住时只能指明焦点或提问之后的每一步都归分类器平台调用只进 adapter新 adapter 调用要同时进Desktop协议、macos.py 和 windows.py 两边永不添加输入密码的路径安全红线L14 场景专门锁死了这一点6. 提交一个 PR 的完整流程 第 1 步本地门禁两条命令必须全绿。uv run ruff check . uv run ruff format . uv run pytest -q第 2 步了解 CI 会做什么。CI 在 macOS 上跑同样的 ruff pytest在 Linux 上再跑一次测试——测试是纯逻辑的tests/conftest.py 会在装不了的平台模块处注入替身。另有第三个任务检查 infra/gcp 的格式、校验与terraform testmock provider无需云凭据。第 3 步PR 描述附上 replay 说明。如果你的改动改变了模型看到的东西payload 结构、状态字段、动作集等PR 中必须写清哪个 run folder、哪一步、改动前后的决策分别是什么。每次运行都会写 runs/* 保存完整 payload 与每个概率值可离线回放uv run clicker same goal --image runs/ts/step-003-raw.png --app Google Chrome第 4 步报 Bug 时带上 run folder。项目维护者原话附带 run folder 的 bug 报告是有用的东西。runs/timestamp/里有截图、精确 payload 和所有概率值卡顿可以离线重放定位。7. 小结给 typesafe-computer-use 做贡献的路径其实很短uv sync后本地ruffpytest全绿新功能/新能力 → 在 tests/test_scenarios.py 按 L 级编号补场景做不到的先xfail挂着改到模型看到的东西 → PR 里附 run folder 回放说明对照 CONTRIBUTING.md 的 ground rules 自查提交 PR。更多背景可延伸阅读docs/how-a-step-works.md一步的完整流程、docs/layout.md每个模块的职责、docs/run-folder.md运行产物与离线回放。赞分享【免费下载链接】typesafe-computer-useComputer use for about $0.0002 a step: OCR the screen, classify the next action with TypeSafe, click. macOS.项目地址https://gitcode.com/gh_mirrors/ty/typesafe-computer-use点击查看免费下载相关推荐FastCtx开发指南构建、测试与提交你的第一个PRFastCtx开发指南构建、测试与提交你的第一个PR 本文为面向新手的 FastCtx 开发指南从搭建环境开始带你完整走通构建 FastCtx一款基于MegaParse贡献指南开发者如何提交首个PRMegaParse贡献指南开发者如何提交首个PR 引言为什么你的贡献至关重要 你是否曾在解析PDF或Docx文件时遭遇格式错乱、表格丢失或内容残缺作为优化AI 应用后端数据工程sealed-secrets开发贡献案例如何提交第一个PRsealed secrets开发贡献案例如何提交第一个PR 引言你还在为开源贡献踩坑吗 作为Kubernetes生态中最受欢迎的密钥管理工具之一seal云原生应用安全运维创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑