Reflection 反思设计模式
很好理解,如果你让大模型写一段代码,它会立马给你一个反馈。这时候你可以将它输出的代码片段再输入回去,让大模型仔细检查它写的代码的准确性、结构规范性等,并且给出评论。
然后再将这些反馈结果输入给大模型,它可能会输出一个比第一版更好的代码。
我之前描述的是一个单一的编码 AI Agent 智能体 ,你提示它与自己进行交互。这个想法的一种自然延伸是,不是单一的代码 AI Agent 智能体 ,而是有两个AI Agent 智能体,一个是编码 AI Agent 智能体 ,另一个是评审 AI Agent 智能体 。它们可以基于同一个语言模型,但你以不同的方式对它们进行提示,对一个说“你是专业编码者,编写代码”,对另一个说"你是专业代码评审员,评审这段代码"。这种工作流程实际上非常容易实现,我认为它是一种通用技术,可以为很多工作流程带来显著的大语言模型性能提升。
Tool use 工具使用设计模式
相信大家使用 Copliot,或者月之暗面的 Kimi Chat,你给出 Prompt 提示词,它首先会检索互联网上的内容,基于检索到的内容进行总结分析,给出结论。
这个其实就是大模型使用「网页搜索」工具的例子。
再比如:你问大模型,今天的天气如何?这个时候大模型会调用天气预报工具得到今天的的天气状况。
Planning 规划设计模式
在我进行的一些现场演示中,有些演示会失败,AI Agent 智能体会重新规划路径。我经历过很多这样的时刻。其中一个例子是从 HuggingGPT 论文中改编的,输入的是:请生成一张图片,一个女孩在看书,她的姿态和图像中的男孩一样,再使用你的声音描述这张新图片。
今天有了 AI Agent 智能体,你可以确定第一件要做的事是确定男孩的姿态,提取姿态。接下来需要找到一个姿态图像模型,遵循指令生成一张女孩的图像。然后使用图像 - 文本模型得到描述。最后使用文本转语音模型读出描述。
Multiagent collaboration 多智能体协作设计模式
多智能体协作,这部分很很有趣,比你想象的好很多,类似于之前大火的 AI 斯坦福小镇。
吴恩达举的例子是开源项目 ChatDev,你可以让一个大模型扮演不同的角色,比如:公司CEO、设计师、产品经理或测试人员,这些 Agents 会相互协作,共同开发一个 App 或者复杂程序。
虽然不是每次都能成功,但有时确实非常惊艳!