用自然语言就能指挥电脑干活的工具啊,我最近折腾了一圈什么1949Agent还有一堆带Claw后缀的,说实话有时候真不如自己敲代码来得实在,但也确实省了点事

0 阅读3分钟

先说我为啥突然想搞这个。手头有个破事,每天得从几个不同的地方扒数据,然后塞到一个表格里,再发出去。说白了就是重复劳动,但量不大不小,手动搞也就十几分钟,但就是烦。想着能不能让电脑自己干。

然后就下了个1949Agent,界面干净,就一个对话框。我心想,这不挺好吗,跟AI说句话就完事。结果装完发现,它自己是个空壳子,得配大模型。本地跑了个7B的,慢得要命,一个“打开浏览器”的指令愣是等了半分钟才动。换线上的吧,速度是快了,但隐私问题让我膈应——我得把桌面操作全传给云端,心里总感觉不对劲。

后来又去试了别的,像NanoClaw、TinyClaw,还有个什么OpenClaw。这几个名字真是服了,感觉像同一个模子刻出来的,我到现在都分不清谁是谁。界面倒是都差不多,都是那种对话框,敲文字指令,它去控制鼠标键盘。

我让它们干同一件事:从某个网页里复制一段文字,贴到本地记事本里保存。结果呢,有的能跑通,有的半路就卡住了。有一次NanoClaw直接把我浏览器窗口关了,我当时就……算了,不说了。

讲真,这东西的好处就是不用写代码。你用自然语言描述任务,它去执行。但坏处也明显——它不够精确。尤其是涉及到网页元素定位、等待时机这些,用代码写很清楚,但用自然语言描述,它就瞎猜。比如我让它“等页面加载完再点那个按钮”,它根本不知道“加载完”是什么标准,经常点早了,或者干脆不点。

后来我放弃了,自己写了个脚本,用Python和pyautogui,十来行就搞定了。虽然看起来很土,但至少稳定。

代码大概长这样:

import time
import pyautogui
import pyperclip
import webbrowser

def do_my_stupid_task():
    webbrowser.open('https://example.com/data')
 
    time.sleep(5)
    
    # 全选复制,别问为什么不用精确坐标,因为懒
    pyautogui.hotkey('ctrl', 'a')
    time.sleep(0.5)
    pyautogui.hotkey('ctrl', 'c')
    
    # 拿到内容
    content = pyperclip.paste()
    
    # 打开记事本,粘贴保存
    pyautogui.hotkey('win', 'r')
    time.sleep(1)
    pyautogui.write('notepad')
    pyautogui.press('enter')
    time.sleep(2)
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(1)
    pyautogui.hotkey('ctrl', 's')
    time.sleep(1)
    pyautogui.write('daily_data.txt')
    pyautogui.press('enter')
    
    print("存完了,其实也没多复杂")

if __name__ == "__main__":
    do_my_stupid_task()
    # 忘了加异常处理,有时候剪贴板是空的,会写个空文件进去
    # 下次再改吧,懒得动了

这代码用pyautogui模拟键盘鼠标,虽然很原始,但胜在可控。你想让它点哪里、等多久,都是你自己说了算,不会出现那些工具瞎理解的情况。

运行方式的话,我直接装了个Python环境,双击跑。也可以打包成exe,但没必要,反正这台电脑是我自己的。也见过有人搭本地web服务,在网页上点个按钮触发,那种适合远程调用,但我觉得太折腾了,没弄。

其实这些自动化工具,不管叫什么名字——1949Agent也好,NanoClaw也好,OpenClaw也好——核心逻辑都差不多:大模型当大脑,理解你的意图,然后去执行。大脑在线,它就干活;大脑掉线,它就傻掉。所以很多时候,不是工具本身的问题,是你给它配的那个模型靠不靠谱。

写到这儿发现有点跑题了,本来是想记一下这几天的折腾过程,结果写成测评了。算了,就这吧,能用就行,不纠结了。