李宏毅《机器学习2025》笔记 第二讲 —— AI Agent
一、定义
AI Agent有很多定义,本堂课指的是人类给出目标后可以自己想办法完成该目标的人工智能。
二、原理
AI Agent通过不断观察环境然后做出动作来达成目标。
1. RL
使用RL训练的模型可以完成某一个特定的任务,这可以看作一个AI Agent. 但是做不同的任务需要不同的模型,不通用。
2. LLM
当大模型出现后,人们开始研究使用LLM实现AI Agent. 将环境通过文字描述输入给LLM,LLM输出要进行的动作。
使用LLM打造AI Agent 可以使其更加通用,并且LLM可以从环境中获取更多的资讯,而不像RL只是从环境中获取一个不好量化的Reward.
三、关键能力
1. 根据经验调整行为
AI Agent第一个关键的能力是根据经验调整行为。例如当让AI写一个程序,结果报错了,将错误信息交给AI它要能正确的改正错误。
但是在AI运行的过程中会有许多记忆,如果每次都回忆全部记忆,效果反而会不好。
1)Read模组
为了有目的的回忆,可以打造一个Read模组,让Read模组从记忆中提取与问题相关的讯息。这和RAG很类似,只不过RAG是从外部资料库中检索,而Read模组是从自己的记忆中检索。
2)Write模组
当过去的经历很长的时候,将这些记忆全部存储到Memory中就会被塞满,而且大多数是无关紧要的小事,所以需要打造一个Write模组每次互动后决定这次的经历是否需要被记忆下来存入Memory. (在chatGPT中有些对话内容就会被记忆下来,可以在个人设置的记忆中管理)。
3)Reflection模组
就像人类会对记忆进行加工处理一样,AI Agent也可以对记忆进行更高层的抽象处理,发现记忆之间的关联,并做一定的推理,使其更容易被使用。这可以通过Reflection模组实现,现在通常将咨询整理为知识图谱 (Knowledge Graph)。
2. 使用工具
就像人类使用工具一样,AI也可以使用工具。而语言模型使用工具通常被称为Function Call.
1)如何使用工具
使用工具的方法有很多,可以专门训练一个使用工具的模型,也可以通过 prompt 教语言模型使用工具,比如设置特定的标签来调用工具和得到输出。
而具体的标签和工具调用之间的桥梁需要在模型中提前设定好,不让使用者知道。
2)工具很多怎么办
当工具非常多的时候,也可以和前面记忆提取的Read模组一样,使用一个Tool Selection模组根据当前环境和问题对工具进行选择,然后只将选出的工具的使用描述丢给语言模型。另外现在的LLM是有写程序的能力的,所以完全可以让LLM自己写一个工具出来,放入到自己的工具包中。
3)识别工具的错误
AI也是人类的工具,就像AI会犯错一样,AI使用的工具也会犯错,而目前的AI已经有一定识别错误的能力了。另外对于什么样的外部信息更容易说服AI,有实验表明AI更倾向于AI同类的话、MetaData更新的信息。
另外就算工具没有出错,AI也不一定会给出正确答案,如介绍李宏毅,有两个同名的人,AI可能会弄混。
3. 做计划
人类在完成一个复杂的任务前通常会先做计划,这样可以使任务完成得更好,Agent也是如此。当要Agent完成一项任务时,可以先叫他做计划,这样可以使Agent做得更好。
然而计划常常跟不上变化,所以Agent需要有随机应变的能力,可以采取的方法有每一次获得observation后都重新根据目前状况做一次plan. 不过现在的语言模型做计划的能力并不强,所以需要采取一些方法增强其计划能力。
1)遍历解空间树
可以通过采取实际行动遍历解空间树来找出正确的计划,如一开始有三个action可以选择,那么都尝试一遍,分别得到对应obs,再在不同obs下采取不同行动,看最终哪一条路径可以成功,则选择这条路径。
然而这种暴力搜索方法对算力要求太高,可以采取剪枝,每当到达一个obs时让语言模型自问自答:“到达这个状态了还有成功的机会吗?”,如果有则继续,没有则回溯。
但是实际上很多行为是不可逆的,比如让Agent订披萨,在他尝试订了一家披萨之后想回溯就不能退货了,所以对解空间树的搜索需要放在 “脑内小剧场” 中进行,在 “脑内小剧场” 中通过 “World Model” 来模拟和环境的互动。
目前先进的大模型都有推理 (Reasoning) 功能,可以输出他的推理过程,而这些推理过程就是他的脑内小剧场。