
大模型之Agent的初步了解 原创
前言
电影《钢铁侠》中的智能助手J.A.R.V.I.S.是一位得力的助手,它不但有强大的理解能力,而且还具备执行行动的能力。随着技术的不断进步,类似于贾维斯的Agent正在逐步从银幕走进现实。本文将探讨Agent的产生背景,并结合一些代码示例理解Agent。
Agent的产生背景
一个例子
运行结果:
通过与大模型的交流,我们会发现大模型无法回答实时类的问题,例如:
- 今天是几月几号?
- 北京现在的天气是多少?
- ......
大模型可以接受输入,可以分析&推理、可以输出文字\代码\媒体。然而,它无法像人类一样,拥有规划思考能力、运用各种工具与物理世界互动,以及拥有人类的记忆能力。
如何给大模型配备上与物理世界互动的能力,那么会怎样呢?
Agent的实例
定义工具函数
第一步:实现一个获取当前时间的函数:
运行结果:
定义Prompt模板
第二步:定义使用工具的Prompt模板
创建Agent并调用
第三步:创建Agent并调用Agent
运行结果:
通过上述代码,可以看到大模型通过Agent被赋予了调用 get_datetime()
的能力,从而可以回答实时类问题:现在几点了?
完整代码如下:
Agent的简介
概念
LLM Agent
是一种能产出不单是简单文本的 AI 系统,它作为一种人工智能体,具备环境感知能力、自主理解、决策制定及执行行动能力的智能实体。简而言之,它是构建于大模型之上的计算机程序,能够模拟独立思考过程,灵活调用各类工具,逐步达成预设目标的智能存在。
构成
如图所示,在基于 LLM 的智能体中,LLM 的充当着智能体的“大脑”的角色,同时还有 3 个关键部分:
-
规划(Planning)
: 智能体会把大型任务分解为子任务,并规划执行任务的流程;智能体会对任务执行的过程进行思考和反思,从而决定是继续执行任务,或判断任务完结并终止运行。 -
记忆(Memory)
: 短期记忆,是指在执行任务的过程中的上下文,会在子任务的执行过程产生和暂存,在任务完结后被清空。长期记忆是长时间保留的信息,一般是指外部知识库,通常用向量数据库来存储和检索。 -
工具使用(Tool use)
: 为智能体配备工具 API,比如:计算器、搜索工具、代码执行器、数据库查询工具等。有了这些工具 API,智能体就可以是物理世界交互,解决实际的问题。
Agent的一些示例
示例1:数据库查询工具
第一步:使用已封装好的 utils
连接大模型
第二步:连接数据库
数据库可以从魔塔社区上拉取到。
第三步:初始化SQL工具包
第四步:构建Prompt
以上Prompt可以从https://smith.langchain.com/hub 查询
langchain-ai/sql-agent-system-prompt
得到。
第五步:创建Agent
第六步:调用Agent并打印执行过程
执行结果:
最终,大模型借助SQL工具,查到了结果:2021年04月15日,建筑材料一级行业涨幅超过5%(不包含)的股票数量为74只。
完整代码:
示例2:维基百科搜索工具
通过对 示例1
的分析,我们可以在Langchain官网上找到不少tools工具,接下来我们实现一个维基百科搜索工具。
第一步:安装依赖包
第二步:执行代码
运行结果:
内容小结
- 大模型可以接受输入,可以分析&推理、可以输出文字\代码\媒体,但是对于实时类的问题,没有能力处理。
-
LLM Agent
是一种能产出不单是简单文本的 AI 系统,它作为一种人工智能体,具备环境感知能力、自主理解、决策制定及执行行动能力的智能实体。 - 创建Agent的大体步骤是:
1. 连接大模型
2. 定义工具函数
3. 给大模型绑定工具
4. 构建工具的prompt
5. 创建Agent
6. 调用Agent
本文转载自公众号一起AI技术 作者:热情的Dongming
