一、笔记
1.1 Agent背景
-
为什么要有Agent
大语言模型(LM)在处理语言相关任务上虽然表现出色,但存在局限性,如幻觉、时效性差、可靠性不足。模型训练数据过时可能导致错误输出。智能体(Agent)被提出以克服这些局限性,它们能够感知环境动态并采取相应动作。
-
Agent是什么
智能体能够感知环境中的动态条件,并采取动作影响环境。它们运用推理能力理解信息、解决问题、产生推断并决定动作。
-
Agent的组成
智能体由大脑(控制器)、感知模块和动作模块组成。大脑负责记忆、思考和决策,感知模块处理外部环境的多模态信息,动作模块利用工具影响环境。
1.2 Agent三个范式
AutoGPT
AutoGPT是一种自动化的智能体范式,图中包含三个不同功能的大模型,分别的作用是:
-
TPA(Task Priorityzation Agent):根据任务特性调整任务优先度,影响任务队列。
-
TCA(Task Creation Agent):根据memory的输入,和上一步执行的结果,进行下一步任务的创建。
-
EA(Execution Agent):从memory中读取context,综合信息,执行具体任务
它通过以下步骤实现任务的自动化执行: -
输入:智能体接收到一个任务或指令作为输入。
-
选择工具:根据输入的任务,智能体自动选择一个合适的工具来执行该任务。这些工具可以是软件、API、硬件设备等。
-
人工干预:在某些复杂或不确定性的情况下,可能需要人工介入以帮助决策或处理。
-
执行工具:智能体使用选定的工具来执行任务,达成目标。
ReWoo
ReWoo是一种以计划为基础的智能体范式,它通过计划拆分和执行来完成任务:
- 计划拆分:将复杂的任务拆分为更小、更易管理的子任务。
- DAG:为每个子任务进行串联,形成一个任务的有向无环图
- 计划执行:根据生成的任务计划,逐步对任务进行正确执行。
ReAct
ReAct是一种反应式的智能体范式,它侧重于对环境变化的快速响应:
- 输入:智能体接收环境变化的输入信息。
- 选择工具:根据输入信息,智能体选择适当的工具或策略来应对。
- 执行工具:立即执行选定的工具或策略,以响应环境变化。
- 结束:任务执行完毕后,智能体回到待命状态,等待下一次输入。
1.3 InternLM Agent工具体系
-
Lagent
Lagent 是一个轻量级开源智能体框架,旨在让用户可以高效地构建基于大语言模型的智能体。同时它也提供了一些典型工具以增强大语言模型的能力。Lagent 目前已经支持了包括 AutoGPT、ReAct 等在内的多个经典智能体范式,也支持了如下工具: -
Arxiv 搜索
-
Bing 地图
-
Google 学术搜索
-
Google 搜索
-
交互式 IPython 解释器
-
IPython 解释器
-
PPT
-
Python 解释器
AgentLego
AgentLego 是一个提供了多种开源工具 API 的多模态工具包,旨在像是乐高积木一样,让用户可以快速简便地拓展自定义工具,从而组装出自己的智能体。通过 AgentLego 算法库,不仅可以直接使用多种工具,也可以利用这些工具,在相关智能体框架(如 Lagent,Transformers Agent 等)的帮助下,快速构建可以增强大语言模型能力的智能体。
两者关系
通过下图可以看出,Lagent可以快速实现agent框架,AgentLego可以快速提供Agent中需要的工具包。
详见:https://github.com/InternLM/Tutorial/blob/camp2/agent/README.md
二、作业
-
完成 Lagent Web Demo 使用,并在作业中上传截图。
-
完成 AgentLego 直接使用部分,并在作业中上传截图。
-
完成 AgentLego WebUI 使用,并在作业中上传截图。
-
使用 Lagent 或 AgentLego 实现自定义工具并完成调用。
三、课程地址,参考资料
https://github.com/InternLM/Tutorial/blob/camp2/agent/README.md
https://www.bilibili.com/video/BV1Xt4217728/?spm_id_from=333.788&vd_source=4a1f090b324d70d9ba6d188bfac3ddf4