让 Agent 跨应用办事

前四篇我们一只手一只手地练:浏览器里查资料,桌面上按计算器,手机上记备忘。每一篇都只待在一个应用里,循环都是同一套“看→动→再看”。这一篇把手连起来:浏览器里查到的东西,桌面上整理好,手机上再看一眼。

先说清楚,跨应用没有第四只新手要学。手还是那三只,脑子还是外面那个编程助手。新东西是手和手之间的关节:上一步的结果怎么交到下一步手里,下一步动手之前怎么确认接到的东西没错。 关节没接好,手越多,错得越快。

真实的活本来就是跨应用的。“帮我查一下胡巴是什么意思,记下来,手机上能随时看到”——查在一个应用里,记在另一个应用里,看在第三个应用里。只会在一个应用里打转的 Agent,办不成这种活。

一、跨应用任务长什么样

一件事跨应用,通常是三段:

  • 查: 在浏览器里找一条信息,比如一个词的意思、明天的天气、一个地址。这是第二篇练过的活。
  • 记: 把查到的东西记到桌面上的一个文件里,比如记事本里的一行字、一张表里的一格。这是第三篇练过的手,只是这一次记的是查来的结果,不是现成的数字。
  • 看: 在手机上打开备忘录之类的地方,再看一眼记下来的东西,确认它到了,也确认它没错。这是第四篇练过的手,只是这一次只读不写。

三段每一小段都不难,难的是中间的两道口子:查到的东西怎么到记的那一步,记下来的东西怎么到看的那一步。 口子处的错最难发现:浏览器里查对了,记的时候抄错了一个字,手机上看到的就是错的——而手机那一步只负责看,看不出这个字本来应该是什么。

所以跨应用的第一条规矩是:每过一道手,先把上一步的结果念出来对一遍,再动手。 不是“查完就记”,是“查完、确认查到了什么、再记”。

二、关节:一张交接单

手和手之间传东西,靠一张交接单。它就是一个本地的小文件,比如桌面上的一个 .md 文件,脑子(也就是你用的那个编程助手)在每一步之后写一笔,内容只有三行:

  1. 上一步得到了什么。 写原文,不写概括。比如查到的不是“胡巴是个角色”,而是“胡巴是《捉妖记》里的萝卜妖”这一句原话。概括会丢东西,原文不会。
  2. 下一步要用什么。 只写下一步真正需要的那一点,不要把整页结果都塞过去。下一步是记一句原话,就只传这一句原话。
  3. 下一步做完怎么算对。 写一句验收标准,比如“备忘录里的那句话,和交接单上的原话一字不差”。没有验收标准,到了手机上你也不知道看什么。

交接单的好处是:每一步都有据可查。 哪一步出了错,翻到交接单的那一行就知道是查错了、记错了,还是看错了,不用把整件事重跑一遍。

交接单里不写密码、不写验证码、不写任何只该留在你脑子里的东西。它是传工作结果的,不是传身份的。

三、三步走:查→记→看

拿“查胡巴是什么意思,记下来,手机上看一眼”当例子,整件事走下来是这样:

  1. 浏览器里查。 agent-browser open 打开搜索页,snapshot -i 看快照,填词、点搜索,再跑一次快照,确认结果页出来了。把结果里那句原话写进交接单,记下它来自哪一次快照。查的这一步,和第二篇一模一样,唯一多出来的动作是写交接单。
  2. 桌面上记。 在桌面上打开一个文本编辑器,按第三篇的办法跑快照、按编号点和输,把交接单上的那句原话记下来。记完再跑一次快照,确认框里的字和交接单上的原话一字不差,差一个字都算没记好,重记。记的这一步,动手之前看的是交接单,不是凭记忆。
  3. 手机上看。 连上备用安卓机或模拟器,agent-android snapshot -i 看当前屏幕,打开备忘录,找到刚才记的那一条,再跑一次快照,读一遍,确认它和交接单上的原话一样。这一步只读不改,看完就走,不碰发送、不碰删除。

三步走完,问自己三个问题:查到的原话写进交接单了吗?记的时候是照着交接单记的吗?手机上看到的和交接单上的一样吗?三个都是“是”,这件事才算办完。

注意这三步的顺序不能反:没查到就别记,没记好就别看。 顺序反了,错就从第一步一路带到最后一步。

四、卡住怎么办:关节处的三种错

单应用里卡住,多半是这一步没点对;跨应用里卡住,多半是关节处传错了。最常见的三种:

  • 上一步的结果就不对,后面全跟着错。 比如浏览器里查到的根本不是你要的那句原话,你照着它记、照着它看,每一步都“成功”,结果全是错的。解法是停在第一道口子:记之前先问一句,这句原话是我要的吗?不是就重查,别往下传。
  • 编号过期,跨应用更严重。 第三篇和第四篇都说过,编号只在当次快照里有效。跨应用时你切一次应用,快照就变一次,旧编号全作废。解法还是那句老话:切了应用,先跑一次新快照,再动手。 不要拿着浏览器那边的编号去点桌面,也不要拿着桌面那边的编号去点手机。
  • 某一步失败了,想着“先记下来回头再说”。 这是跨应用里最危险的习惯。中间一步没办成,后面的步骤拿到的就是半截结果,越跑越偏。解法是:失败就停在当下,把交接单写到失败的那一步为止。 下次从失败的那一步接着走,而不是从头重跑,更不是硬着头皮往下走。

这三种错的共同解法,都是“在关节处停下来看一次”,而不是“跑完三步再回头找”。回头找的时候,你已经不知道错出在哪一步了。

五、安全提示:规矩只会更严

前四篇的规矩,到了跨应用全部适用,再加三条:

  1. 对外产生效果的步骤,只人做。 查、记、看这三步都不对外产生效果,可以练;发消息、付款、提交表单、删东西,一律人来做。跨应用最容易犯的错,就是让 Agent 替你把最后一步也办了——查完直接发出去,中间连看都没看。
  2. 每过一道手,人确认一次。 单应用里是动手前后各看一次,跨应用里是每过一道手,人先看一眼交接单。确认的成本很低,是一句话的事;不确认的成本很高,是一整件事办错。
  3. 练完就收。 手机那头跑完 agent-android disconnect 断开,浏览器那个会话也关掉,交接单留在本地就行。不要让一台能替你点手机、又连着浏览器的电脑,一直处于“随时能接着干”的状态。

这三条和第一篇的底线是同一套,只是落到了跨应用上。下一篇安全护栏,会把这些规矩收成一套每次动手前都要过的检查清单。

练一次:查一句、记一句、看一句

不用准备什么,二十分钟就够,全程只碰浏览器、一个文本编辑器和手机备忘录:

  1. 先在浏览器里查一个词,比如“胡巴”,跑快照确认结果页出来了,把其中一句原话写进桌面上的交接单。
  2. 在桌面上打开一个文本编辑器,照着交接单把那句原话记下来,记完跑快照,确认一字不差。
  3. 连上备用安卓机或模拟器,在手机备忘录里找到刚才记的那一条,只读不改,确认它和交接单上的原话一样。
  4. 走完之后问自己三个问题:每一步动手前,我看了快照吗?每过一道手,我对了交接单吗?中间有没有哪一步是我凭猜测走的?最后断开手机,关掉浏览器会话。

走完这四步,跨应用这一步就算练成了。下一篇文章,我们把前五篇的规矩收起来:动手之前,先过一遍安全护栏。