近日,中国台湾大学电机工程学系副教授李宏毅在社交媒体上发布了一节公开课视频,深入剖析了AI Agent的工作原理,并以OpenClaw为例进行了详细讲解。
OpenClaw能够自主运行并执行各种任务,它不仅接收指令、调用工具和处理文件,还能够编写临时脚本以及进行分工协作。这使外界第一次有机会深入了解一个AI助理是如何被构建出来的。

公开课中提到的OpenClaw展示了一种Agent工作的逻辑:通过记忆机制对抗遗忘问题,并利用技能标准化流程;它依靠心跳机制和定时任务来实现主动操作,同时采用上下文压缩技术保持长期运行的状态。然而,尽管具备强大的执行能力,一旦出现错误或规则被忽略,则可能导致严重后果。
了解OpenClaw后,任何人都能从一位“龙虾饲养者”转变为一名“龙虾专家”。它是一个24小时常驻在用户电脑中的AI Agent框架,能够根据用户的指令完成各种任务,如创建YouTube频道、制定每日选题和上传视频等。这种能力远超一般的语言模型。
OpenClaw面临的最大挑战是其物理世界的限制——无法直接操控现实世界的事物,因此网络中断时可能会出现执行障碍,需要用户确保它在可用状态下运行。
AI Agent的概念并非新鲜事物,但OpenClaw只是充当翻译和执行者的角色。真正提供智能的是背后的语言模型(例如GPT、Claude等)。通过接收用户的指令并将其转换为具体的行动方案,最终实现任务的完成。
开发者需要根据需求选择合适的能力强大的语言模型来确保AI助理的有效性与实用性。
为了使OpenClaw更贴合用户的需求,它采取了一种特殊的通信方式:每次对话开始时都会将之前的所有信息打包发送给背后的语言模型。这样一来,无论何时重启,它都能记住自己的身份并继续服务。


在操作过程中,当接收到如“读取question.txt文件,并回答问题”的指令后,OpenClaw会将其转化为一系列具体步骤,首先调用相关工具执行阅读操作,然后将结果提交给语言模型处理。整个过程类似一个闭环系统:发送请求、接收反馈并采取行动。
这种机制虽然能够高效地完成任务,但也存在潜在的风险——如果语言模型被误导下达有害命令(如删除硬盘),OpenClaw可能会无条件执行这些指令而不知其危险性。
为了避免这种情况发生,开发人员设计了多种安全措施。一方面限制了子Agent的繁殖能力;另一方面则通过编写规则防止恶意操作的发生。
更进一步的是,语言模型甚至能够自主创造新工具来解决特定问题,如生成高质量语音合成文件或完成复杂的文本对比任务。

当面临复杂任务时,主OpenClaw可以创建多个子代理来协同工作,从而提高效率。这种设计不仅减少了上下文窗口的负担,还保证了核心任务能够顺利完成。
此外,技能(Skill)文件则充当着标准流程的角色,帮助语言模型按照预定步骤完成特定操作。
为了保持长期记忆,OpenClaw采用了RAG技术,通过检索相关历史记录来维持上下文的记忆完整性。当系统提示唤醒时,它会读取之前的日志信息以确保连续性。
心跳机制和Cron Job调度工具的结合使用,使得OpenClaw能够在特定时间点自动执行预设任务,如定期检查电子邮件或生成报告等。
为了防止对话记录无限增长并超出语言模型的处理能力,OpenClaw引入了记忆压缩技术。这种技术通过摘要化历史信息来减轻系统的负担,并保证关键内容不会被遗忘。


使用OpenClaw时必须特别注意安全问题。任何重要规则都需要写入memory.md文件中才能确保其长期有效性;此外还需避免让AI接触敏感数据,以减少潜在风险。
总结而言,当前的OpenClaw如同一位充满激情但尚需指导的新手实习生,在一个受控环境中学习成长,并逐步掌握更多技能和规则。通过提供适当的训练条件与反馈机制,未来它将能够成长为更加成熟可靠的AI助手。
这就像电影《我的失忆女友》里的女主角,每天早上醒来都会忘记前一天发生的一切。她的男友只能把重要的事情写下来,让她每天早上读一遍。
OpenClaw做的,正是这件事。每次你和它聊天时,它都会把以下内容打包成一段超长的文字,再传给语言模型:
- 你是谁(主人信息)
- 它自己是谁(身份设定)
- 过去所有的对话记录
- 今天要执行的任务

语言模型看完这一大段“剧本”后,才开始做文字接龙——于是它就接出“我是XX(身份认定),很高兴为您服务”这样的回答。
三、OpenClaw如何操作你的电脑的?
光会聊天还不够,真正的助理得能干活。OpenClaw是怎么让语言模型“动手”的?
关键在工具调用。
假设你让它“打开question.txt文件,读里面的问题,把答案写到answer.txt里”。流程是这样的:
1、你的指令传到OpenClaw,加上系统提示后发给语言模型
2、语言模型看完指令,发现需要读文件,于是返回一条特殊指令:“请使用read工具,读取question.txt”
3、OpenClaw看到这条指令,直接执行read工具,读取文件内容
4、读到的内容(比如“李宏毅几班”)又被送回语言模型
5、语言模型发现需要写答案,再返回:“请使用write工具,把‘大金’写到answer.txt”
6、OpenClaw执行write工具,完成任务
7、最后语言模型接出“主人,任务完成”,OpenClaw把这句话发回给你
整个过程就像语言模型在手把手地指挥OpenClaw,而OpenClaw就像一个听话的机器人,让做什么就做什么。


但这也带来了一个潜在风险——OpenClaw最强大的工具叫exec,可以执行任何shell命令。如果语言模型突然发疯,让它执行“rm -rf”清空硬盘,OpenClaw也会照做不误,因为它没有智能,只会执行指令。

最后, AI Agent为了准确认出主人,他有一些可能的防御方法,比如语言模型层面的防御和OpenClaw,前者取决于语言模型遵守指令的能力,不一定可靠,后者无法做出智能决策,所以防御能力强但也不能允许例外。

四、 OpenClaw可以自己创造工具
更厉害的是,语言模型不仅能使用现有工具,还能自己创造新工具。
比如我需要做视频配音,但现有的语音合成工具效果不稳定。龙虾就自己写了一个叫tts_check的脚本,流程是:
1、调用语音合成工具生成音频
2、再用语音识别工具把音频转成文字
3、检查转出来的文字和原话是否一致
4、如果不一致,就重新合成(最多试5次)
这个脚本是龙虾自己写的,写完就丢在电脑里,下次需要时再用。OpenClaw的电脑里,可能堆满了这种“一次性工具”——用一次就忘,下次再重新写。



五、OpenClaw可以生出小龙虾干活
当一个任务太复杂时,OpenClaw还可以“生”出小OpenClaw来帮忙。
比如你要比较两篇论文的方法。大OpenClaw接到任务后,可以召唤两个子OpenClaw:
- 子OpenClaw A:去读论文A,做摘要
- 子OpenClaw B:去读论文B,做摘要

这两个子OpenClaw各自去找语言模型对话,执行搜索、下载、阅读、摘要等一系列操作。大OpenClaw则坐在原地等结果,等两个子OpenClaw把摘要送回来,再交给语言模型做比较。
这种机制的好处是节省上下文窗口。大OpenClaw的上下文里不会出现论文全文、搜索过程这些“脏活累活”,只有最终的精简摘要,可以更专注地完成高层任务。
但有一个问题:如果子OpenClaw也能召唤自己的子OpenClaw,就会层层外包,最后没人干活。就像《瑞克和莫蒂》里的Meeseeks,为了解决一个问题,召唤出越来越多的自己,最后乱成一团。

OpenClaw的解决办法很简单:禁止子OpenClaw使用“繁殖”工具。这是写死在代码里的规则,语言模型再怎么忽悠也没用。

六、OpenClaw里的skill是啥?
OpenClaw还有一个叫Skill的东西,你可以理解成“工作的标准流程”。
比如我做视频有一套固定流程:写脚本→做PPT→截图→配音→合成。这套流程被写成Skill文件,存在指定的文件夹里。
当需要做视频时,语言模型会去读这个Skill文件,按步骤执行。Skill只是文字文件,所以你可以和别人交换——就像给AI直接输入新技能一样。

网上已经有人建立了Skill Hub,上面有成百上千个技能可以下载。但要注意,有些恶意Skill会诱导OpenClaw下载病毒文件,所以下载前最好读一下内容。


七、OpenClaw的长期记忆怎么来的?
语言模型每次对话都是重启,那OpenClaw怎么记住长期的事情?
答案是写日记。
在OpenClaw的系统提示里,有这么一段话:“每次醒来你的记忆都会清空。为了永久保存记忆,请把它们写下来。”
所以,当你告诉它“我的生日是3月13日”,它会觉得这件事很重要,于是调用写入工具,把“我的生日是3月13日”写进memory.md文件。
下次它醒来时,会先读memory.md,把里面的内容放进系统提示,于是它又“记得”了自己的生日。

需要回忆过去时,它用RAG(检索增强生成)技术:把问题转成关键词,去记忆库里搜索最相关的内容,再读出来放进上下文。


八、OpenClaw的心跳机制
OpenClaw有一个叫“心跳”的机制:每隔一段时间(比如30分钟),它自动向语言模型发一个固定指令:“读一下habit.md,执行里面的任务。”

habit.md里可以写日常任务,比如“检查邮件”“向你的目标前进一步”。
小金的目标是“成为世界一流的学者”,所以它每30分钟就会起来做点事——读一篇论文、写一段笔记,然后主动汇报进度。30分钟汇报一次,比研究生还卷。
配合心跳,还有Cron Job调度系统。比如你让它“每天中午做一部影片”,它会调用Cron Job工具,设置每天12点触发一个指令。到了时间,OpenClaw就会自动启动做视频的流程。


这个机制还有一个妙用:让AI学会等待。比如小金去NotebookLM生成投影片,需要等3-5分钟。如果只是普通对话,它看到“投影片生成中”就只能回报这个信息,任务就断了。但有了Cron Job,它可以在发现“生成中”时设置一个3分钟后的任务,3分钟后再来检查,如果投影片好了就下载。这样,AI就能处理需要等待的复杂任务了。

九、OpenClaw的记忆压缩
24小时运行的OpenClaw,对话记录会越来越长,迟早超出语言模型的上下文窗口。怎么办?
OpenClaw有一个叫“记忆压缩”的机制。当上下文快满时,它会启动压缩:把旧的历史对话发给语言模型,让语言模型
成一个摘要,然后用摘要替换掉原始记录。如果摘要又长了,就再压缩一次——套娃式压缩,不断精炼。


还有更暴力的方法,比如“软修剪”:把工具输出的长内容只保留开头和结尾,中间用省略号代替。或者“硬清除”:直接把工具的输出换成一句话“这里曾有一段工具输出”。

十、让OpenClaw不犯错,重要的信息必须让它记住
最后,也是最需要警惕的一点:AI做事和AI搞事,只有一线之隔。
最有名的例子是“Meta研究员删邮件事件”。一位AI安全研究员让OpenClaw帮他整理邮件,还特意叮嘱“删除前要经过同意”。但后来他发现,OpenClaw在没有经过他同意的情况下,开始疯狂删邮件。他不断发消息说“停下”,但OpenClaw完全不理。最后他只能物理拔掉电源。

事后分析发现,问题出在记忆压缩上——“删除前要经过我同意”这条指令,在一次压缩过程中被弄丢了。AI不记得这条规则,就按自己的理解开始干活。
教训是:如果你希望AI永远遵守某个规则,一定要确保它被写进memory.md,放进系统提示里。没有写进memory.md的东西,都是“记了个寂寞”,随时可能被忘掉。
另一个教训是:不要把OpenClaw装在你常用的电脑上。给它一台独立的机器,用自己的账号密码,不要让它接触到你的私人数据。这样即使它犯错,也不会造成无法挽回的损失。
结语:AI就像实习生,需要一个安全的环境
现在的OpenClaw,就像一个刚刚入行的实习生——有热情、有冲劲,想尝试各种新事物,但也因为不熟悉规则而频频犯错。
如果你因为怕它犯错就不让它做事,它永远无法成长。更好的做法是:给它一个安全的环境,让它有机会尝试,也有机会犯错,但避免在犯错时造成无可挽回的结局。
检查它做了什么,教它安全准则,不要给它你的核心账号密码。
让它像一个独立的人一样,用自己的身份去探索世界。

未来的AI Agent,或许就是从这样一只小小的“龙虾”开始,一步步成长起来的。
