李宏毅LLM笔记: AI Agent

1 RL时代的agent

  • 人为定reward function
  • 不同task不同的参数

2 LLM视角下的AI agent

  • agent就是LLM
  • 用文字(现在有些多模态任务可以直接是图片/语音)表述环境
  • action也是文字,需要某种方式转换为实际环境中的action
  • 从语言模型的角度看,依靠语言模型已经有的"文字接龙"的能力,看看能不能直接把他们当作agent来使用
  • 相当于不train,只是语言模型的一种应用
  • LLM可以将任何文字作为observation和action
  • 有些问题解决不了的时候,可以调用各式各样的工具,解决之前解决不了的问题

2.1 Generative Agents: Interactive Simulacra of Human Behavior 202304 arxiv

  • 里面的npc都是用语言文字来运行的
  • 每个npc都有人为设定的目标,npc都会观察环境咨询(文字)
  • 根据这些observation做出自己的动作(输出文字)
  • 需要一个转译器把文字转换成动作(在这里对应的agent真走到床头)

2.2 AutoKaggle: A Multi-Agent Framework for Autonomous Data Science Competitions 202410 arxiv

  • 提供目标的文字描述
  • 提供LLM训练资料(observation 1)
  • 根据observation 写程序(action 1)
  • 得到训练结果(准确率等)(observation 2)
  • 根据准确率(observation 2)重新写程序
  • 刚才是回合制的互动
  • 在很多地方action还没执行完的时候,外在环境就变了,需要立刻改变行动(比如语音对话)
    • 对话可能会互相打断/互相提供回馈
    • 有时候需要马上停下来开启下一轮对话

Full-Duplex-Bench: A Benchmark to Evaluate Full-duplex Spoken Dialogue Models on Turn-taking Capabilities 202503 arixv------衡量现在语音模型的互动能力

3 根据经验调整行为

  • 机器学习时代:需要调整参数
  • 但现在不train LLM
  • 那LLM参数,如何改变行为?
    • 直接把错误的信息给他当作下一轮的observation,他就会写对了
    • ------因为对于LLM来说,不同的输入,输出的信息不同
    • 当现在提供的输入信息是报错的时候,接龙的内容就可能是对的
  • 比如我每次执行一个action,都得到一个observation,假如我要在第10000轮才能得到最终的答案
  • 理论上来说,我把之前所有的observation和action当作记忆,最终能得到需要的答案
  • 但受到算力等的限制,我无法一次性将所有之前的observation和action当作记忆提供给LLM
  • 此时就需要一个类RAG的机制,从memory里面提取有关的observation和action(经验),当作下一轮action可以看到的observation

StreamBench: Towards Benchmarking Continuous Improvement of Language Agents 202406的结论是,提供给正向的经验是有用的,很多时候提供负向的经验反而在"帮倒忙"

但倘若我把所有无关紧要的经验全部放在memory里面,可能会把observation塞爆

  • 解决方法是可以设计一个write模组,决定什么数据write进memory,什么数据丢弃
  • write可能也是一个LLM,或者ai agent自己
    • 根据observation和action,问这个经验值不值得被记录进memory
  • 当然也可以设计一个reflection模块,对记忆中的数据做更high level 的重新整理'
  • 得到一些总结,反思后的观点

比如GraphRAG和HippoRAG,对memory进行reflection之后构建知识图谱

4 ai agent使用工具

工具只要使用就可以,内部怎么做的不用管(举了一个肥宅修电脑的比喻。。。)

4.1 如何使用工具?

这是一种通用的LLM调用工具的方法

问题(user prompt)连同前面的system prompt给语言模型

如果LLM觉得要用指令的画,就会输出调用这个工具对应的指令

但此时指令也是一串文字,还无法真正地调用对应的功能

  • 需要自己帮程序把"桥梁"搭建好(调用)
  • 将<tool>里面的内容丢给称作temporature的function,得到output的结果
  • 怎么调用,怎么输出,都是Agent开发者自己要定好的流程

4.2 调用语音工具

Speech-Copilot: Leveraging Large Language Models for Speech Processing via Task Decomposition, Modularization, and Program Generation 202407

  • 如果不做特殊处理,纯文字模型是回答不了涉及语音的问题的
  • ------>让文字模型使用一堆语音相关的工具
    • 需要叙述每个工具是什么作用

4.3 如果工具过多怎么办?

OctoTools: An Agentic Framework with Extensible Tools for Complex Reasoning 202502

类似于工具的RAG

CRAFT: Customizing LLMs by Creating and Retrieving from Specialized Toolsets 202309

语言模型也可以自己打造工具(自己写一个function,当作工具放到工具包里面)

4.4 工具自己也会犯错------那LLM知不知道工具在犯错

看起来有一定程度的判断力

4.4.1 什么样的外部知识比较容易说服LLM?

How faithful are RAG models? Quantifying the tug-of-war between RAG and LLMs' internal prior 202404

  • 首先先问LLM,药物的最大剂量是多少
    • 得到内部知识是20mg
  • 提供LLM医学报告
    • 最大剂量是30,60时,LLM选择相信RAG(外部知识)
    • 最大剂量是3,300时,LLM选择相信自己的内部知识
  • ------>如果外部只是知识和内部知识的差距过大,那就不会相信外部知识
  • ------>模型本身对内部信息的信念强度,对于发生动摇的可能性有影响

Do Metadata and Appearance of the Retrieved Webpages Affect LLM's Reasoning in Retrieval-Augmented Generation?

  • 模型倾向于相信日期较新的外部知识

5 LLM有能力做计划么?

  • 直接让语言模型产生规划(看到第一个observation后,让LLM生成计划)
  • 把plan放到observation里面,当作输入的一部分,
  • 可是,外部环境有随机性,导致原有计划不一定能正常进行
  • 每一次observation后,重新思考一下要不要修改计划
    • 如果需要修改的话,重订计划

5.1 TravelPlanner

直接让LLM调用工具生成规划是不太现实的

Large Language Models Can Solve Real-World Planning Rigorously with Formal Verification Tools 说已经解决了这个问题

5.2 强化AI Agent的规划能力

遍历所有可能的动作路线

但是这样需要遍历的时间太长

解决方法是不尝试一些看起来没有希望的路径

模型自己问自己:这一条路径还有必要继续搜么?

遍历+去掉不可能的路径(LLM的置信度低于某个阈值就不做了)

Tree Search for Language Model Agents 202407arxiv

这样遍历的一个缺点是,有些动作一旦做了就无法回溯(比如我定了个披萨,即使后续发现这个不是最佳路线,也无法撤回订单了,因为人家都已经做了)

一个想法是,之前所有的"遍历"都是模型自己"脑海里"的模拟

这就是一个案例:让模型自己去想做了某个action之后会发生什么

相关推荐
柏峰电子17 分钟前
市政道路积水监测系统:守护城市雨天出行安全的 “智慧防线”
大数据·人工智能·安全
蓑雨春归18 分钟前
自主智能Agent如何重塑工作流自动化:技术、经济与未来展望
人工智能·chatgpt·自动化
哈密瓜Q18 分钟前
计算机视觉-图像基础处理
人工智能·计算机视觉
charlie1145141911 小时前
设计自己的小传输协议 导论与概念
c++·笔记·qt·网络协议·设计·通信协议
虹科数字化与AR1 小时前
安宝特案例丨户外通信机房施工革新:AR+作业流技术破解行业难题
人工智能·ar·工业ar·机房建设·户外通讯机房·户外作业·工程建造
TaoSense2 小时前
AI应用:电路板设计
人工智能
xiaoli23272 小时前
课题学习笔记3——SBERT
笔记·学习·nlp·bert
karlso2 小时前
深度学习:简介与任务分类总览
人工智能·深度学习·分类
CodeShare3 小时前
RATE:基于LLM的检索增强生成技术提取管道
人工智能·信息检索·大型语言模型
汀、人工智能3 小时前
AI Compass前沿速览:可灵创意工坊、字节Coze Studio&Coze Loop、通义万相2.2 、智谱GLM-4.5、腾讯混元3D世界模型开源
人工智能·大模型