LangChain Agent 是什么?有什么用?基本原理是什么?
那么多 Agent 类型在实际开发中又该如何选择?
如果以上有你想知道的答案,那么请往下看
那么如果没有呢?看看嘛,反正又不吃亏 (~ ̄▽ ̄)~
What & Why
丹尼尔:蛋兄,我又来了。今天主要想跟你深入了解下 LangChain 中的 Agent
蛋先生:Agent,知道中文是什么意思吗?
丹尼尔:这可难不倒我,我可是过了英文 8 (′▽`〃)… 4 级的男人。不就是代理的意思嘛
蛋先生:哈哈,你还挺自信的嘛。没错,Agent 就是代理。代理啥意思呢?小明代理小红去办理事务,就是小明因某些原因没法做这件事,需要小红出面去做这件事
丹尼尔:蛋兄,恕小弟我愚昧,还请更通俗易懂地展开说说
蛋先生:你知道大脑和身体的关系吗?
丹尼尔:大脑会思考,而身体会根据大脑的指令行动,比如拿东西,走路等。
蛋先生:说得没错。大脑本身缺乏行动能力,所以需要有身体来实现它的意图,这里可以把身体看成是大脑的代理
丹尼尔:这我明白,所以 Agent 就是 …
蛋先生:LLM 拥有强大的推理能力,就像我们的大脑。Agent 嘛,当然就像我们的身体。通过 Agent,就可以让 LLM 走起来。(⚆_⚆) 哦不,就可以让 LLM 拥有推理能力之外的其它能力
丹尼尔:概念上是理解了,这个推理能力之外的其它能力都有哪些呢,能举一个例子让我更加清晰吗?
蛋先生:你可以试下直接询问 LLM 当前时间,你觉得它回答得了吗?
丹尼尔:哦,这肯定不行,就算能回答也是胡说八道
蛋先生:恩,LLM 的知识受限于训练数据,实时信息是它的软肋。但有了 Agent,这个问题就难不倒它了
How
Agent 的基本原理
丹尼尔:哇哦,Agent 拥有让 LLM “走”起来的神奇力量,我对它是如何实现的好奇不已!
蛋先生:老规矩,先来瞧瞧一段代码示例
import os
from langchain import hub
from langchain.agents import create_structured_chat_agent
from langchain.agents import AgentExecutor
from datetime import datetime