跳到正文

与 computer use 的区别 ​

computer use 让模型看屏幕猜坐标去点按,本桥让调用方按名字调工具、由宿主代跑。两者操作的不是一个东西:computer use 落在像素上,本桥落在宿主会话里已经注册好的工具上。

机制差别 ​

computer use本桥(MCP tools/call)
模型发出的东西坐标与按键(click(640,412))工具名 + 结构化参数({"name":"read","arguments":{...}})
谁来执行注入的输入事件,落到目标应用宿主 Main 会话的 getToolByName(name).execute()
模型看到的结果截图,像素工具的真实返回值(文本 / 图片)
目标从哪来屏幕上有什么就点什么tools/list 的目录(宿主注册表,原样透传)
参数怎么定靠视觉估计JSON Schema 2020-12,由宿主 typebox schema 导出
被操作的一方是否推理要,模型得先看懂屏幕桥自己不请求模型(收请求 → 跑工具 → 回结果)

实际差别落在两处:

执行的是真工具,不是模拟操作。 {"name":"read","arguments":{"path":...}} 走的是宿主原生 read 的实现,执行落在宿主真实的文件与 shell 上。它不需要先有个窗口摆在那里,也不需要那个程序支持无头运行。

目录是显式的,不是猜的。 tools/list 返回 name / description / inputSchema,调用方给的是名字和参数;坐标点击则要求模型先看出屏幕上有什么、算出像素位置。名字不在注册表里会得到 not exposed——未注册与不存在共用同一文案,不泄露这个名字是否本该存在;坐标点错就是点到了别的东西。

代价 ​

computer use本桥
上下文开销每次交互都要带一张截图只有工具返回值
宿主 token消耗请求路径上不花;会话级副作用唤醒宿主时,花不花取决于接管有没有在位(见下节)
稳定性受布局、缩放、主题、焦点影响受工具与参数校验影响
前提目标应用有可见界面工具在宿主注册表里

工具返回值仍然会进调用方的上下文——read 一个大文件或 bash 跑一次 cat,字节都在结果里,大件走 SSH/scp。本桥省的是宿主为「决定怎么执行」付出的那部分推理,不是调用方的上下文。

一处容易误解的地方 ​

「不经过模型」说的是桥自己的请求路径:桥只做「收请求 → 跑工具 → 回结果」,一次模型请求都不发。调用方那侧的模型照旧要推理,它只是把推理用来决定「调哪个工具、传什么参数」,而不是用来「看屏幕、算坐标」。

宿主的账不能按零记,执行落在宿主的真实会话里,会话级副作用会把宿主自己的 agent 叫醒:一条远程命令超过宿主的 300 秒超时,宿主把它转成后台任务;任务完成时 omp 往会话里注入一条通知("Background job bg_1 has completed. Resume your work using the result below."),宿主会话就沿着自己的上下文开始推理。Windows 宿主上实测的链条:超时转后台在 04:35:23,完成通知进会话在 04:36:27,宿主第一批带 usage 的消息在 04:36:31(模型 stack/medium,单轮输入从 8,309 token 起),此后几十轮。那段推理花的是宿主的 token,跑的也是宿主自己的工具。所以两边的账要分开算:桥不为调用请求模型,宿主会不会推理归宿主的会话决定。而归宿主会话决定的那一半,可以从远程关掉:接管在位时(host_llm: "deny" 或 POST /host-llm),被唤醒的会话发不出任何模型请求——注册表里的 provider 全被影子化,宿主的 fetch 上还有按目的地的绊线,一次被拒的尝试只发起一次就终止。两层的边界与残差见 README「宿主推理接管」与协议参考的「宿主推理切换」。

同理,tools/call 在宿主侧可能停在审批弹窗上——宿主无交互 UI 且该工具审批为 prompt 档时,请求会一直挂起(实测 ≥90s),调用方必须自设超时。此时审计日志里该调用只有 start 没有 done,见 README「审批」。

两者不冲突 ​

它们解决的是不同问题,可以叠加:

  • 目标只有 GUI、没有可调用的接口 → computer use 是唯一选择
  • 目标是宿主那侧的文件、shell、已注册的工具 → 本桥直接暴露,不必截屏
  • 调用方既要调工具、又要点某个界面 → 先经 MCP 拿工具,再用 computer use 操作剩下的界面

判据很简单:能落到工具上的就别截屏。 工具调用是确定性的、可审计的、请求路径上不占宿主的 token;截屏是这三样都不是。

边界 ​

本桥只暴露 tools/list + tools/call,没有 resources、没有 prompts、不做键鼠注入——它不实现 computer use 的那一半,也不打算实现。固定路由到宿主 Main 会话。完整 wire 契约见 协议参考,暴露面与威胁模型见 使用指南。

MIT 协议。文档站由仓库文档生成,改动以仓库为准。