03-学习Agent开发 2024-05-24

本文是《从零手搓大模型实战》学习的第三篇个人学习笔记,主要通过学习TinyAgent项目来总结开发智能体Agent的相关知识,下面记录下学习内容以及相关心得。

注:TinyAgent相关学习内容来自datawhalechina/tiny-universe

1.什么是智能体Agent? 关于Agent理解

智能体(Agent)是人工智能领域的一个概念,它是一个能够自主运行并具有一定智能的系统或程序,可以在特定的环境(Environment)中通过对环境感知与观察(Observation),根据自身目标和能力进行思考和决策(Decision),并执行相应的动作(Action)达到某种目的或完成任务。

随着大模型LLM发展,基于大语言模型(LLM)的智能体Agent可以被视为一个基于LLM包含多个组件的系统,我们可以把智能体理解为:

智能体 = LLM+观察+思考+行动+记忆

  1. 大模型(LLM):是智能体的核心,可以看作智能体Agent的大脑,它负责处理和理解语言信息。
  2. 观察(Observation):Agent需要能够从环境中获取信息,这可能涉及到通过外部传感器(如摄像头、麦克风等)收集数据,然后使用适当的处理方法(如图像识别、语音识别等)来解析这些数据。
  3. 思考(Thinking) 和推理(Reasoning):在接收到环境信息后,智能体需要能够理解和解释这些信息,进行思考并据此做出决策,通常涉及逻辑推理、规划、问题解决等过程。
  4. 行动(Action):Agent根据决策来执行特定的动作,这些动作可以通过效应器(如机械臂、扬声器等)在环境中产生效果。
  5. 记忆(Memory):Agent还需要能够存储和检索过去的信息,以便从中学习并改进其未来的行为。可以是通过经验学习来实现的,也可以是通过存储先前的交互和知识来实现的。

2. 智能体Agent的模式

Agent的设计模式有很多,ReAct(reasoning + acting)的设计理念很有代表性,它主要结合了推理和行动,让Agent能够以交错的方式生成推理步骤和特定于任务的操作。

ReAct(reasoning + acting)

注意的是:Agent 的行动一般涉及到外部 Tool Use(工具使用),Agent通过利用外部工具来扩展自身功能,这些工具可以是搜索引擎、专业数据库或其他类型的插件,来帮助增强Agent解决问题的能力。

3. TinyAgent的主要架构及一点修改

这里的TinyAgent是一个基于React模式,手动制作的一个最小的Agent结构,主要是演示通过LLM来推理和调用外部自定义工具(这里主要是web 搜索)。

TinyAgent主要包含了3个模块,Agent、LLM、Tool。

  • Agent类主要实现了text_completion方法,通过调用大模型LLM,根据React的Agent的逻辑,来调用Tools中的工具。
  • LLM模块定义大模型使用,这里默认使用InternLM2作 Agent 模型,不过我本地没下载InternLM2,所以这里修改了一下代码,增加了Zhipu API。
  • Tools中定义了一个工具类Tools,初始化时加载了一些工具配置信息,并包含了一个名为google_search的方法,通过serper.dev提供的API接口执行谷歌搜索,我们能够在这个类里面继续扩展增加其他工具,比如计算器、天气查询、特定的数据检索等。

运行测试TinyAgent,如下所示:

agent = Agent()
print(agent.system_prompt)
首次输出

下面进行具体的提问测试,如:

response, _ = agent.text_completion(text='周杰伦的太太和他年龄相差多少?', history=[])
print(response)
问题1回答

换一个问题:

问题2

备注:
论文 ReAct: Synergizing Reasoning and Acting in Language Models

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容