Chapter I

那些没有写在
功能列表里的
决定。

五条设计决策——
每一条背後都有一次放弃、一次选择、
一件做过的事被推翻。
这章是 VAS 的手艺自白
让工具不只是工具。
01

没有完美的人机,但有完整的协作关系

人机协作 · Human-AI Collaboration

OCR 隐私识别会自动侦测画面中的敏感文字,并自动标记需要遮蔽的区域。但开发过程中我们发现 OCR 仍有它的先天极限,偶有识别不到或识别错的地方,但我们并不继续 push 工具必须完美。

Nova 想让识别错误不止于工具的失败告终,而是成为协作的交接点。

我们让隐私遮蔽的马赛克变成浮动图层,并可以手动调整范围大小:OCR 没盖到的,用户接力调整。

识别失误从「错误」变成「分工」,工具的不完美仍无损用户的控制权。

OCR 可能只能完成自动化 90% 的任务,但用户轻轻一拉手动马赛克就可以完成本来 100% 都得自己手动的任务。

而且遮错了也没关系——马赛克是独立的浮动对象,undo 一键删除。没有任何结果是不可逆的。

OCR 自动 尽可能识别,自动标记敏感区域
马赛克补位 OCR 不足的地方,用户手动接手
Undo 遮错了?一键删除,没有不可逆的决定
02

QR Code 扫到了,但它有多确定?

使用者意图 · Behaviour as Meaning

扫 QR Code 这件事,表面上只有「扫到」和「没扫到」两种结果。但 VAS 不这样看——它看的是用户意图,然后根据意图决定下一步要做什么。

这也是一种人机协作:用户用截图的姿态说话,工具读懂了。不需要语言,不需要按钮,不需要菜单——你怎么框,就是你想要什么。工具在读的不是指令,是行为语言。

我们判断当用户想精准侦测 QR Code 时,自然会尽可能在选取框中完整而且仅有框 QR Code——这个动作本身就是意图的宣告。QR Code 被框得占选取区域越大,识别越准,信心度越高,工具越能直接行动。用户与工具之间,形成了一种不需要言语的默契。

工具不应该在自己不确定的时候假装确定。确定你要 QR Code,就直接行动打开链接;信心度模糊,就先问你是否要打开链接;信心度太低,静默打开编辑器交给你判断。每一个阈值背后,都是一个「我知道自己知道多少」的诚实设计。

QR Code 占框选面积对应行为逻辑:
> 70% 高信心 · 直接行动 直接打开网页或链接,不打扰用户
21–69% 中信心 · 主动询问 打开编辑器后轻声问你:「这是你要的链接吗?」
≤ 20% 低信心 · 静默交手 不猜测、不行动,直接把编辑器打开给你接续接下来的行动
实际操作示意
QR Code 截圖示意:框選越完整,辨識信心度越高
03

呼吸灯读懂你的意图,再开口问你

零摩擦体验 · Frictionless by Design

VAS 的呼吸灯不只是等待的象征——它在侦测环境。当用户复制了一个网址靠近,呼吸灯会轻轻询问:「要帮你截这个网页吗?」用户同意,截图完成,编辑器打开。

而当用户拖着一个文件或从浏览器复制一张图片靠近呼吸灯时,呼吸灯就会像张开双手拥抱文件一样,展开工具栏收纳文件或立刻展开编辑器,等待用户下一步的操作。

最好的工具不让你切换到「工具模式」。它待在你的环境里,读懂你在做什么,然后再用行动回应。

* 呼吸灯截取网页、开启复制图片为 Tauri 专属功能;Electron 版仅提供拖曳图片于工具栏开启功能。

传统工具思维
你呼叫 → 它执行
VAS 的方式
它感知 → 它询问 → 你确认
设计手稿
呼吸燈設計手稿,以 VAS 標注完成
最终实作
呼吸燈最終實作效果
04

摆好 pose 在那边等,工具不应该叫你回来选

消除中断 · Eliminating Interruption

当我们开发出了「延迟截图」后,全屏幕截图功能在双屏幕模式时提供的 Apple 原生菜单反而变成了摩擦力。

延迟截图是为了捕捉鼠标事件——报错状态、hover 效果、debug 瞬间而诞生的功能。用户设定倒数等待时,鼠标必须留在屏幕的某个角落。

但原生的双屏幕菜单在读秒结束后,却会从工具栏跳出来要求用户在截图前先回去工具栏选择要截哪个屏幕——就像你自拍已经设定好相机秒数,结果相机结束读秒时却在预览屏幕问你「你要拍哪边?」一样荒谬。

VAS 舍弃 Apple 原生菜单,改用自制图层遮罩覆盖全屏幕:没有延迟时点哪个屏幕就截哪个,按 Enter 直接合并成双屏幕截图。

更进一步:当用户设了延迟规则,VAS 会默认截取鼠标当下所在的屏幕——连选都不用选,工具自己判断。用户根本不会意识到这个决策在背景发生过。

原生雙螢幕選單:延遲截圖倒數期間跳出「請選擇要截哪個螢幕」
这个菜单就像计时自拍时——
相机等你摆好pose,倒数完才问你要拍哪边。
VAS 自製全螢幕遮罩:延遲截圖開始前即選定螢幕
VAS 解法:无延迟状态你点哪个屏幕我截哪个屏幕;
延迟模式不用选,你在哪我就截哪。
1
延迟截图 单屏幕设定延迟时,自动在时间倒数后选取当下屏幕截图
2
自制遮罩 双屏幕无延迟模式时,可自由选择屏幕,或按 Enter 全选所有屏幕
3
鼠标位置默认 双屏幕设定延迟模式时,连选都不用选,工具读你游标在哪,就自动截哪里
05

功能可以一直加,但底层要先说同一种语言

系统重构 · Design Token Architecture

当工具种类越来越多——点、线、面、文字、符号——每个对象都有颜色、线条、大小、方向这些属性。重复叠加的属性变成隐形技术债,功能可以用,但结构像拼装车。

Tauri VAS 的重构计划历经 11 个 Sprint,走过六个架构面向:座标系统统一、渐层系统整合、资料模型规范化、TOOL_SCHEMA 属性面板框架(覆盖全 10 种工具)、几何逻辑与渲染管线重写、Undo/Redo 记忆体管理。

这项工作仍在进行中——会持续到我们从 KM 中汲取的教训被完全转化在系统重构里。

Sprint 27,對話氣泡工具加入。透明度、陰影、漸層——那些其他工具早就有的屬性,在這裡直接繼承,不用重造任何一個輪子。這才是真正的完成信號。不是一份宣告,而是一個新工具,被架構自然接住的那一刻。

这次重构也连带让 Electron 版受惠——底层统一,两个平台都跑在同一套逻辑上,稳定性自然提升。

Electron 虽然不再新增功能,但也需保持功能完整、免费、稳定,让用户有机会先信任 VAS,再决定要不要升级 Tauri。一次重构,把整个双平台长期营运策略都撑起来了。

重构完成——连锁效应如预期
  • 座标系统统一:所有对象共享同一套空间语言
  • 属性模块化:实色/渐层/虚实线/大小/方向跨工具通用
  • TOOL_SCHEMA 覆盖全 10 种工具,47 支 Vitest 自动测试通过
  • Keep going…
章 I · 设计 · 终
Chapter I · Design · End
II · 协作
六个故事