所有文章 > AI驱动 > 最新LangChain+GLM4开发AI应用程序系列(二):Agent智能体篇

最新LangChain+GLM4开发AI应用程序系列(二):Agent智能体篇

一、前言

上一篇文章介绍了LangChain开发的入门篇,包括零基础的环境配置以及简单的Chain、RAG和Agent开发。LangChain由Model IO、Retrieval、Chain、Agent等组件组成,而Agent是其中最重要的组成部分之一,打个比方,如果说大语言模型(简称LLM)是拥有一定知识的大脑,那么Agent就是给大脑装上了手脚眼睛后的智能体,这样大脑可以借助外部一切工具,获取更多的知识,来更好的完成具体任务。今天我们就带大家了解下在LangChain里Agent的使用,通过结合智谱AI GLM4大模型,开发一个集成多个工具的Agent智能体。

二、Agent介绍

在人工智能领域,Agent可以理解为某种能自主理解、规划决策、执行复杂任务的智能体。在LangChain中,Agent的核心思想是使用LLM作为推理引擎,来动态的确定要采取哪些操作,使用哪些工具以及按什么顺序执行。相对而言,Chain则是被硬编码在代码中的一系列操作,这是Agent和Chain两者的区别。在LangChain里,Agent主要包括Agent类型、AgentExecutor、Tools这几个部分。

1、Agent类型

不同类型的Agent有不同的推理的提示词风格、对应的编码输入方式以及解析输出方式。内置的Agent类型有下面几种:

Agent类型期望模型类型支持对话历史支持多个输入参数工具支持并行函数调用所需模型参数何时使用
OpenAI ToolsChattools如果你使用的是最近的OpenAI模型(1106以上)
OpenAI FunctionsChatfunctions如果你正在使用OpenAI模型,或者是已经为函数调用进行了微调并公开了与OpenAI相同的函数参数的开源模型
XMLLLM如果你正在使用Anthropic模型,或其他擅长XML的模型
Structured ChatChat如果你需要支持具有多个输入参数的工具
JSON ChatChat如果你正在使用一个擅长JSON的模型
ReActLLM如果你用的是一个简单的模型
Self Ask With SearchLLM如果您正在使用一个简单的模型,并且只有一个搜索工具

其中,OpenAI Tools、OpenAI Functions这两个类型主要针对OpenAI制定的,OpenAI Tools试了下智谱AI的GLM4也能用。特别推荐一下Structured Chat,对话历史、多个入参的工具都支持,效果也相对比较好。此外如果有个性化的需求也可以根据需要定制化Agent。

2、AgentExecutor

Agent执行器是Agent的运行时对象。实际的操作是调用Agent智能体,执行它选择的操作,将操作输出传递回Agent,然后重复。伪代码大致如下所示:

next_action = agent.get_action(...)
while next_action != AgentFinish:
observation = run(next_action)
next_action = agent.get_action(..., next_action, observation)
return next_action

3、Tools

Tools是Agent可以调用的函数。LangChain内置的工具目前有60多种,包括Shell脚本执行器、Python代码解析器、Bing/Google/Duckduckgo搜索引擎、图片生成器、文本转音频、维基百科、YouTube等。地址如下:https://python.langchain.com/docs/integrations/tools/ 也可以自定义工具,封装我们自己需要的功能。

三、Agent开发案例

接下来我们实战开发一个使用多个工具的Agent。一共使用了六个工具,包括乘、加、幂三个自定义工具、Python代码解析器、Duckduckgo搜索、维基百科这几个内置工具。我们来看下Agent是否能灵活的运用这些工具。注:智谱AI GLM4的LLM定义代码,请查阅系列(一)快速入门篇。

1、创建三个自定义工具

1)创建三个自定义工具,分别是乘法工具、加法工具、指数工具。

from langchain_core.tools import tool

@tool
def multiply(first_int: int, second_int: int) -> int:
"""Multiply two integers together."""
return first_int * second_int

@tool
def add(first_int: int, second_int: int) -> int:
"Add two integers."
return first_int + second_int

@tool
def exponentiate(base: int, exponent: int) -> int:
"Exponentiate the base to the exponent power."
return base**exponent

2)工具说明

一个工具有几个部分组成,可以打印出来看下:

print(multiply.name)
print(multiply.description)
print(multiply.args)

结果如下。第一个是工具的名称;第二个是工具的描述,LLM需要根据描述来判断使用哪个工具;第三个是工具的入参类型,也是用来给LLM提供更多的信息,以便更好使用工具。

multiply
multiply(first_int: 'int', second_int: 'int') -> 'int' - Multiply two integers together.
{'first_int': {'title': 'First Int', 'type': 'integer'}, 'second_int': {'title': 'Second Int', 'type': 'integer'}}

2、引入LangChain内置工具

有几个包如果没有的话,需要先安装下。

pip install langchain_experimental
pip install --upgrade wikipedia
pip install --upgrade duckduckgo-search

1)引入Python代码解释器工具。

from langchain_experimental.tools import PythonREPLTool
pythonREPLTool = PythonREPLTool()

2)引入维基百科查询工具。

from langchain.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
wikipedia = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())

3)引入Duckduckgo搜索引擎工具

from langchain.tools import DuckDuckGoSearchRun
search = DuckDuckGoSearchRun()

3、定义提示词模板

1)使用structured-chat-agent提示词模板

from langchain import hub
prompt = hub.pull("hwchase17/structured-chat-agent")

打印提示词模板:

prompt.pretty_print()

对应提示词模板内容如下:

================================ System Message ================================

Respond to the human as helpfully and accurately as possible. You have access to the following tools:

{tools}

Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input).

Valid "action" values: "Final Answer" or {tool_names}

Provide only ONE action per $JSON_BLOB, as shown:

```
{
"action": $TOOL_NAME,
"action_input": $INPUT
}
```

Follow this format:

Question: input question to answer
Thought: consider previous and subsequent steps
Action:
```
$JSON_BLOB
```
Observation: action result
... (repeat Thought/Action/Observation N times)
Thought: I know what to respond
Action:
```
{
"action": "Final Answer",
"action_input": "Final response to human"
}

Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:```$JSON_BLOB```then Observation

============================= Messages Placeholder =============================

{chat_history}

================================ Human Message =================================

{input}

{agent_scratchpad}
(reminder to respond in a JSON blob no matter what)

这是一套基于ReAct的提示词模板。要想使Agent发挥作用,就必须使用到ReAct框架。

2)ReAct提示词介绍

那么什么是ReAct,我们来简单了解下。

ReAct是Reasoning and Acting缩写,意思是LLM可以根据逻辑推理(Reason),构建完整系列行动(Act),从而达成期望目标。ReAct方式的关键就是协调LLM和外部的信息获取,与其他功能交互:LLM是大脑,通过ReAct框架可以让大脑来控制手和脚。

在ReAc框架中,有三个关键的元素:
思考(Thought):思考是由LLM创建的,为其行为和决定提供理论支撑。我们可以通过分析LLM的思考过程,来评估其即将采取的行动是否符合逻辑。它作为一个关键指标,能够帮助我们判断其决策的合理性。相比于人类的决策,Thought的存在赋予了LLM更出色的可解释性和可信度。
行动(Action):行动代表LLM认为需要采取的具体行为。行动一般由两个部分构成:动作和目标,这在编程中对应着API名称和其输入参数。LLM的一大优点在于,它可以根据思考的结果,选择合适的API并生成所需的参数。这确保了ReAct框架在执行方面的实用性。
观察(Observation):观察代表LLM如何获取外部输入。它就像LLM的感知系统,将环境的反馈信息同步给LLM,帮助它进一步进行分析或者决策。

而在structured-chat-agent这个提示词模板中,有5个变量:tools、tool_names、chat_history、input、agent_scratchpad。

tools 变量是一个列表,包含了所有的工具,列表中的每个元素包含了工具的名称和描述,而 tool_names 变量是工具名称的列表。

chat_history是存储的chat对话历史信息,input 是用户输入的问题,agent_scratchpad 是之前的思考过程。

模板中的Thought/Action/Observation就是标准的 ReAct 流程,首先思考如何解决问题,然后行动使用具体的工具,再观察工具执行完成后得到的结果,这个流程可以重复多次,直到得到最终答案。后面分析时,会详细讲一下。

4、创建其它Agent相关对象

1)定义Agent使用的工具集

#定义工具
tools = [pythonREPLTool, wikipedia, search, multiply, add, exponentiate]

2)创建Agent

创建structured chat agent。

from langchain.agents import create_structured_chat_agent
# 创建 structured chat agent
agent = create_structured_chat_agent(llm, tools, prompt)

3)创建Agent执行器

创建Agent执行器

from langchain.agents import AgentExecutor
# 传入agent和tools来创建Agent执行器
agent_executor = AgentExecutor(agent=agent, tools=tools, handle_parsing_errors=True, verbose=True)

5、开启智能问答之旅

创建好Agent执行器之后,就可以开始我们的智能体体验之旅了。

1)先问一个数学方面的问题

问一个数学问题,3的5次方乘以12和3的和,结果再平方。

agent_executor.invoke(
{
"input": "Take 3 to the fifth power and multiply that by the sum of twelve and three, then square the whole result"
}
)

Agent的推理过程如下,分别调用了自定义的三个函数,最后得出正确答案13286025:

> Entering new AgentExecutor chain...
Thought: I need to calculate 3 to the fifth power, then find the sum of twelve and three, multiply those two values, and finally square the result.
Action:
```
{
"action": "exponentiate",
"action_input": {
"base": 3,
"exponent": 5
}
}
```243Thought: I need to find the sum of twelve and three, multiply that by the result of 3 to the fifth power, and then square the final result.
Action:
```
{
"action": "add",
"action_input": {
"first_int": 12,
"second_int": 3
}
}
```15Thought: I need to multiply the result of 3 to the fifth power by the sum of twelve and three, and then square the final result.
Action:
```
{
"action": "multiply",
"action_input": {
"first_int": 243,
"second_int": 15
}
}
```
Observation3645Thought: I need to square the product of 3 raised to the fifth power and the sum of 12 and 3.
Action:
```
{
"action": "exponentiate",
"action_input": {
"base": 3645,
"exponent": 2
}
}
```13286025Action:
```
{
"action": "Final Answer",
"action_input": "13286025"
}
```

> Finished chain.
{'input': 'Take 3 to the fifth power and multiply that by the sum of twelve and three, then square the whole result',
'output': '13286025'}

2)再问下美团现在的股价是多少

举个栗子,也可以问其它的问题哈。

agent_executor.invoke(
{
"input": "美团现在的股票价格是多少?"
}
)

回答如下,开始Agent用的是Python代码解释器,后来发现不对改成了duckduckgo_search,然后尝试了多次,最终获取到74.7港元,似乎是正确了:

> Entering new AgentExecutor chain...
Could not parse LLM output: duckduckgo_search
```python
tool_call(query='美团当前股票价格')
```Invalid or incomplete responseAction:
```
{
"action": "duckduckgo_search",
"action_input": "美团现在股票价格"
}
```美团-w的最新讨论. 招财进宝1个亿 今天 02:43. $美团-w(03690)$ $阿里巴巴-sw(09988)$ $阿里巴巴(baba)$ ,美团和阿里自己股价这狗屎一样,业务受到抖音拼多多激烈攻击,还有钱去投别的公司,这两个烂货继续再腰斩吧查看全文 天下一哥 02-19 20:08. 坐标广东,达达和顺丰同城都比较多,特别是达达,但骑手 ... 美团-W的最新讨论 美团海外扩张 王兴御驾亲征. BambooWorks咏竹坊 今天 16:07. 内地经济增长放缓,美团首席执行官王兴决定亲身转战海外,将最核心的外卖业务交棒"少壮派",但能否为公司寻求新增长点则有待观察 重点:1、王兴将核心本地商业的重点业务整合后,交由高级副总裁王莆中掌管,主要 ... 美团-w的最新讨论 ai公司月之暗面完成新一轮10亿美元融资,任天堂成日本最富公司. 知顿 8分钟前. 1、2月电影总票房93.15亿元 2月20日消息,据猫眼专业版数据,截至20日7时24分,2024年2月总票房93.15亿元,《热辣滚烫》《飞驰人生2》《熊出没·逆转时空》分列2月票房榜前三位。在接二连三的"坏消息"影响下,上市已经五年的美团,距离跌破发行价一度只差"五毛钱"。. 1月10日港股盘中,美团股价最低探至69.55港元(上市发行价69港元)。. 截至1月16日收盘,美团股价回升至74.35港元。. 但围绕这家市值一度超过2.6万亿港元上市公司的 ... 12月6日,美团收盘价86.4港元。从历史曲线来看,美团目前的股价几乎回到了2019年的水平。以美团一月的股价高点195美元和最新收盘价计算,今年美团市值蒸发高达约6700亿港元。2020年时,美团市值曾一度比肩工商银行,但现在只有后者的40%。Action:
```
{
"action": "duckduckgo_search",
"action_input": "美团当前股票价格"
}
```上海土著,考虑买美团股票,春节跑了两天外卖(美团众包)调研,每天收入120左右,平均一单10元,由于新手没装备没健康证只有一辆平时上班的小毛驴,只能接两单,跑3-4小时,不太理解美团的盈利模式,骑手每单赚10元,平台抽成百分比是多少,比如一张外卖单客户一共就付款21.8... 雍禾医疗业务经营数据跟踪24M2期 量子咸鱼 02-19 10:06 风险提示:本文仅是个人投资过程中的思考和阶段性梳理,本人只是一个普通小散,文章观点不一定正确,投资水平也很一般,文章中涉及的股票或者基金均可能有大幅下跌的风险,请保持独立思考,市场有风险,投资需谨慎,文章观点仅作交流之用,不构成任何投资建议,读者朋友请勿据此操作! 当前,这家公司总市值约4300亿港元,较2021年的高点460港元/股市值蒸发超2.4万亿港元。去年11月底,美团CEO王兴在三季度财报后的电话会议上称,美团被低估了,"美团在二级市场的股价只反映了外卖单一业务的估值,并不符合公司的内在价值。" 随后,美团多次出手回购,至今累计回购金额达24亿港元。然而,回购并未能扭转股价颓势,距王兴公开喊话以来,美团又跌去超20%。投资者在担忧什么?1月12日,高盛发布报告指出,即使美团股价回调至近乎IPO价位,但相信市场因担忧竞争,对其增长和盈利前景过于悲观,以及低估美团在保持其本地服务领先地位的执行能力,尤其是外送业务。近日,有市场传言称抖音在和阿里谈收购饿了么。_腾讯新闻 较巅峰期蒸发近七成,美团市值已到反弹时刻?价值研究suo 2023-08-11 19:34:04 + 关注 在一众互联网大厂中,美团是相对低调的一个:向来不热衷于组织架构调整,出海扩张十分谨慎,对外投资也集中在消费、零售行业。但进入2023年之后,美团明显比以往更加活跃了。这一边上线直播固定入口,大举杀向抖音心脏地带,那一边正式开辟香港市场,还收购光年之外并入股智谱AI,积极布局AI大模型产业。最新消息显示,美团2024年届校招技术类岗位扩招超50%,在大厂仍坚持降本增效的时候,打响了重新扩张的第一枪。美团一改常态,有赖于大环境回暖、行业复苏的推动,也是考虑到自身的需求。自从2021年触顶回落之后,美团市值、股价已经蛰伏了很长一段时间。新用户注册. 新浪财经-美股频道为您提供美团 (MPNGY)股票股价,股票实时行情,新闻,财报,美股实时交易数据,研究报告,评级,财务指标分析等与美团 (MPNGY)股票相关的信息与服务. 美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 67.3 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。```json
{
"action": "duckduckgo_search",
"action_input": "美团当前股票价格"
}
```上海土著,考虑买美团股票,春节跑了两天外卖(美团众包)调研,每天收入120左右,平均一单10元,由于新手没装备没健康证只有一辆平时上班的小毛驴,只能接两单,跑3-4小时,不太理解美团的盈利模式,骑手每单赚10元,平台抽成百分比是多少,比如一张外卖单客户一共就付款21.8... 雍禾医疗业务经营数据跟踪24M2期 量子咸鱼 02-19 10:06 风险提示:本文仅是个人投资过程中的思考和阶段性梳理,本人只是一个普通小散,文章观点不一定正确,投资水平也很一般,文章中涉及的股票或者基金均可能有大幅下跌的风险,请保持独立思考,市场有风险,投资需谨慎,文章观点仅作交流之用,不构成任何投资建议,读者朋友请勿据此操作! 当前,这家公司总市值约4300亿港元,较2021年的高点460港元/股市值蒸发超2.4万亿港元。去年11月底,美团CEO王兴在三季度财报后的电话会议上称,美团被低估了,"美团在二级市场的股价只反映了外卖单一业务的估值,并不符合公司的内在价值。" 随后,美团多次出手回购,至今累计回购金额达24亿港元。然而,回购并未能扭转股价颓势,距王兴公开喊话以来,美团又跌去超20%。投资者在担忧什么?1月12日,高盛发布报告指出,即使美团股价回调至近乎IPO价位,但相信市场因担忧竞争,对其增长和盈利前景过于悲观,以及低估美团在保持其本地服务领先地位的执行能力,尤其是外送业务。近日,有市场传言称抖音在和阿里谈收购饿了么。新浪财经-美股频道为您提供美团(mpngy)股票股价,股票实时行情,新闻,财报,美股实时交易数据,研究报告,评级,财务指标分析等与美团(mpngy)股票相关的信息与服务 ... 正在查看当前页的好友 ... 美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 67.3 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。截至9月底,美团优选用户已经累计达到4.9亿人。在电话会议中,王兴较为详细地分析了目前新业务的亏损情况。他表示,依然看好食杂零售市场的巨大潜力,目前美团优选的经营亏损正在不断缩窄,这是一个良好信号,此外,美团会优化经营,聚焦高质量增长。```json
{
"action": "duckduckgo_search",
"action_input": "美团当前股票价格"
}
```上海土著,考虑买美团股票,春节跑了两天外卖(美团众包)调研,每天收入120左右,平均一单10元,由于新手没装备没健康证只有一辆平时上班的小毛驴,只能接两单,跑3-4小时,不太理解美团的盈利模式,骑手每单赚10元,平台抽成百分比是多少,比如一张外卖单客户一共就付款21.8... 雍禾医疗业务经营数据跟踪24M2期 量子咸鱼 02-19 10:06 风险提示:本文仅是个人投资过程中的思考和阶段性梳理,本人只是一个普通小散,文章观点不一定正确,投资水平也很一般,文章中涉及的股票或者基金均可能有大幅下跌的风险,请保持独立思考,市场有风险,投资需谨慎,文章观点仅作交流之用,不构成任何投资建议,读者朋友请勿据此操作! 当前,这家公司总市值约4300亿港元,较2021年的高点460港元/股市值蒸发超2.4万亿港元。去年11月底,美团CEO王兴在三季度财报后的电话会议上称,美团被低估了,"美团在二级市场的股价只反映了外卖单一业务的估值,并不符合公司的内在价值。" 随后,美团多次出手回购,至今累计回购金额达24亿港元。然而,回购并未能扭转股价颓势,距王兴公开喊话以来,美团又跌去超20%。投资者在担忧什么?1月12日,高盛发布报告指出,即使美团股价回调至近乎IPO价位,但相信市场因担忧竞争,对其增长和盈利前景过于悲观,以及低估美团在保持其本地服务领先地位的执行能力,尤其是外送业务。近日,有市场传言称抖音在和阿里谈收购饿了么。_腾讯新闻 较巅峰期蒸发近七成,美团市值已到反弹时刻?价值研究suo 2023-08-11 19:34:04 + 关注 在一众互联网大厂中,美团是相对低调的一个:向来不热衷于组织架构调整,出海扩张十分谨慎,对外投资也集中在消费、零售行业。但进入2023年之后,美团明显比以往更加活跃了。这一边上线直播固定入口,大举杀向抖音心脏地带,那一边正式开辟香港市场,还收购光年之外并入股智谱AI,积极布局AI大模型产业。最新消息显示,美团2024年届校招技术类岗位扩招超50%,在大厂仍坚持降本增效的时候,打响了重新扩张的第一枪。美团一改常态,有赖于大环境回暖、行业复苏的推动,也是考虑到自身的需求。自从2021年触顶回落之后,美团市值、股价已经蛰伏了很长一段时间。新浪财经-美股频道为您提供美团(mpngy)股票股价,股票实时行情,新闻,财报,美股实时交易数据,研究报告,评级,财务指标分析等与美团(mpngy)股票相关的信息与服务 ... 正在查看当前页的好友 ... 美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 67.3 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。```json
{
"action": "duckduckgo_search",
"action_input": "美团当前股票价格"
}
```_腾讯新闻 较巅峰期蒸发近七成,美团市值已到反弹时刻?价值研究suo 2023-08-11 19:34:04 + 关注 在一众互联网大厂中,美团是相对低调的一个:向来不热衷于组织架构调整,出海扩张十分谨慎,对外投资也集中在消费、零售行业。但进入2023年之后,美团明显比以往更加活跃了。这一边上线直播固定入口,大举杀向抖音心脏地带,那一边正式开辟香港市场,还收购光年之外并入股智谱AI,积极布局AI大模型产业。最新消息显示,美团2024年届校招技术类岗位扩招超50%,在大厂仍坚持降本增效的时候,打响了重新扩张的第一枪。美团一改常态,有赖于大环境回暖、行业复苏的推动,也是考虑到自身的需求。自从2021年触顶回落之后,美团市值、股价已经蛰伏了很长一段时间。新用户注册. 新浪财经-美股频道为您提供美团 (MPNGY)股票股价,股票实时行情,新闻,财报,美股实时交易数据,研究报告,评级,财务指标分析等与美团 (MPNGY)股票相关的信息与服务. 当前,这家公司总市值约4300亿港元,较2021年的高点460港元/股市值蒸发超2.4万亿港元。去年11月底,美团CEO王兴在三季度财报后的电话会议上称,美团被低估了,"美团在二级市场的股价只反映了外卖单一业务的估值,并不符合公司的内在价值。" 随后,美团多次出手回购,至今累计回购金额达24亿港元。然而,回购并未能扭转股价颓势,距王兴公开喊话以来,美团又跌去超20%。投资者在担忧什么?1月12日,高盛发布报告指出,即使美团股价回调至近乎IPO价位,但相信市场因担忧竞争,对其增长和盈利前景过于悲观,以及低估美团在保持其本地服务领先地位的执行能力,尤其是外送业务。近日,有市场传言称抖音在和阿里谈收购饿了么。美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 74.7 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 67.3 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。Could not parse LLM output: I'm sorry, I'm not able to browse the internet or access any external information, so I can't provide the current stock price of Meituan. However, you can easily find this information by searching for "Meituan stock price" or "美团股票价格" on a financial website or by checking the stock exchange where Meituan is listed. Additionally, you can use the "duckduckgo_search" tool to search for this information.Invalid or incomplete responseAction:
```
{
"action": "duckduckgo_search",
"action_input": "美团当前股票价格"
}
```
Observation上海土著,考虑买美团股票,春节跑了两天外卖(美团众包)调研,每天收入120左右,平均一单10元,由于新手没装备没健康证只有一辆平时上班的小毛驴,只能接两单,跑3-4小时,不太理解美团的盈利模式,骑手每单赚10元,平台抽成百分比是多少,比如一张外卖单客户一共就付款21.8... 雍禾医疗业务经营数据跟踪24M2期 量子咸鱼 02-19 10:06 风险提示:本文仅是个人投资过程中的思考和阶段性梳理,本人只是一个普通小散,文章观点不一定正确,投资水平也很一般,文章中涉及的股票或者基金均可能有大幅下跌的风险,请保持独立思考,市场有风险,投资需谨慎,文章观点仅作交流之用,不构成任何投资建议,读者朋友请勿据此操作! 新用户注册. 新浪财经-美股频道为您提供美团 (MPNGY)股票股价,股票实时行情,新闻,财报,美股实时交易数据,研究报告,评级,财务指标分析等与美团 (MPNGY)股票相关的信息与服务. _腾讯新闻 较巅峰期蒸发近七成,美团市值已到反弹时刻?价值研究suo 2023-08-11 19:34:04 + 关注 在一众互联网大厂中,美团是相对低调的一个:向来不热衷于组织架构调整,出海扩张十分谨慎,对外投资也集中在消费、零售行业。但进入2023年之后,美团明显比以往更加活跃了。这一边上线直播固定入口,大举杀向抖音心脏地带,那一边正式开辟香港市场,还收购光年之外并入股智谱AI,积极布局AI大模型产业。最新消息显示,美团2024年届校招技术类岗位扩招超50%,在大厂仍坚持降本增效的时候,打响了重新扩张的第一枪。美团一改常态,有赖于大环境回暖、行业复苏的推动,也是考虑到自身的需求。自从2021年触顶回落之后,美团市值、股价已经蛰伏了很长一段时间。当前,这家公司总市值约4300亿港元,较2021年的高点460港元/股市值蒸发超2.4万亿港元。去年11月底,美团CEO王兴在三季度财报后的电话会议上称,美团被低估了,"美团在二级市场的股价只反映了外卖单一业务的估值,并不符合公司的内在价值。" 随后,美团多次出手回购,至今累计回购金额达24亿港元。然而,回购并未能扭转股价颓势,距王兴公开喊话以来,美团又跌去超20%。投资者在担忧什么?1月12日,高盛发布报告指出,即使美团股价回调至近乎IPO价位,但相信市场因担忧竞争,对其增长和盈利前景过于悲观,以及低估美团在保持其本地服务领先地位的执行能力,尤其是外送业务。近日,有市场传言称抖音在和阿里谈收购饿了么。美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 67.3 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。Action:
```
{
"action": "duckduckgo_search",
"action_input": "美团当前股票价格"
}
```
Observation上海土著,考虑买美团股票,春节跑了两天外卖(美团众包)调研,每天收入120左右,平均一单10元,由于新手没装备没健康证只有一辆平时上班的小毛驴,只能接两单,跑3-4小时,不太理解美团的盈利模式,骑手每单赚10元,平台抽成百分比是多少,比如一张外卖单客户一共就付款21.8... 雍禾医疗业务经营数据跟踪24M2期 量子咸鱼 02-19 10:06 风险提示:本文仅是个人投资过程中的思考和阶段性梳理,本人只是一个普通小散,文章观点不一定正确,投资水平也很一般,文章中涉及的股票或者基金均可能有大幅下跌的风险,请保持独立思考,市场有风险,投资需谨慎,文章观点仅作交流之用,不构成任何投资建议,读者朋友请勿据此操作! 当前,这家公司总市值约4300亿港元,较2021年的高点460港元/股市值蒸发超2.4万亿港元。去年11月底,美团CEO王兴在三季度财报后的电话会议上称,美团被低估了,"美团在二级市场的股价只反映了外卖单一业务的估值,并不符合公司的内在价值。" 随后,美团多次出手回购,至今累计回购金额达24亿港元。然而,回购并未能扭转股价颓势,距王兴公开喊话以来,美团又跌去超20%。投资者在担忧什么?1月12日,高盛发布报告指出,即使美团股价回调至近乎IPO价位,但相信市场因担忧竞争,对其增长和盈利前景过于悲观,以及低估美团在保持其本地服务领先地位的执行能力,尤其是外送业务。近日,有市场传言称抖音在和阿里谈收购饿了么。_腾讯新闻 较巅峰期蒸发近七成,美团市值已到反弹时刻?价值研究suo 2023-08-11 19:34:04 + 关注 在一众互联网大厂中,美团是相对低调的一个:向来不热衷于组织架构调整,出海扩张十分谨慎,对外投资也集中在消费、零售行业。但进入2023年之后,美团明显比以往更加活跃了。这一边上线直播固定入口,大举杀向抖音心脏地带,那一边正式开辟香港市场,还收购光年之外并入股智谱AI,积极布局AI大模型产业。最新消息显示,美团2024年届校招技术类岗位扩招超50%,在大厂仍坚持降本增效的时候,打响了重新扩张的第一枪。美团一改常态,有赖于大环境回暖、行业复苏的推动,也是考虑到自身的需求。自从2021年触顶回落之后,美团市值、股价已经蛰伏了很长一段时间。新浪财经-美股频道为您提供美团(mpngy)股票股价,股票实时行情,新闻,财报,美股实时交易数据,研究报告,评级,财务指标分析等与美团(mpngy)股票相关的信息与服务 ... 正在查看当前页的好友 ... 美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 67.3 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。Action:
```
{
"action": "duckduckgo_search",
"action_input": "美团当前股票价格"
}
```
Observation上海土著,考虑买美团股票,春节跑了两天外卖(美团众包)调研,每天收入120左右,平均一单10元,由于新手没装备没健康证只有一辆平时上班的小毛驴,只能接两单,跑3-4小时,不太理解美团的盈利模式,骑手每单赚10元,平台抽成百分比是多少,比如一张外卖单客户一共就付款21.8... 雍禾医疗业务经营数据跟踪24M2期 量子咸鱼 02-19 10:06 风险提示:本文仅是个人投资过程中的思考和阶段性梳理,本人只是一个普通小散,文章观点不一定正确,投资水平也很一般,文章中涉及的股票或者基金均可能有大幅下跌的风险,请保持独立思考,市场有风险,投资需谨慎,文章观点仅作交流之用,不构成任何投资建议,读者朋友请勿据此操作! _腾讯新闻 较巅峰期蒸发近七成,美团市值已到反弹时刻?价值研究suo 2023-08-11 19:34:04 + 关注 在一众互联网大厂中,美团是相对低调的一个:向来不热衷于组织架构调整,出海扩张十分谨慎,对外投资也集中在消费、零售行业。但进入2023年之后,美团明显比以往更加活跃了。这一边上线直播固定入口,大举杀向抖音心脏地带,那一边正式开辟香港市场,还收购光年之外并入股智谱AI,积极布局AI大模型产业。最新消息显示,美团2024年届校招技术类岗位扩招超50%,在大厂仍坚持降本增效的时候,打响了重新扩张的第一枪。美团一改常态,有赖于大环境回暖、行业复苏的推动,也是考虑到自身的需求。自从2021年触顶回落之后,美团市值、股价已经蛰伏了很长一段时间。新用户注册. 新浪财经-美股频道为您提供美团 (MPNGY)股票股价,股票实时行情,新闻,财报,美股实时交易数据,研究报告,评级,财务指标分析等与美团 (MPNGY)股票相关的信息与服务. 当前,这家公司总市值约4300亿港元,较2021年的高点460港元/股市值蒸发超2.4万亿港元。去年11月底,美团CEO王兴在三季度财报后的电话会议上称,美团被低估了,"美团在二级市场的股价只反映了外卖单一业务的估值,并不符合公司的内在价值。" 随后,美团多次出手回购,至今累计回购金额达24亿港元。然而,回购并未能扭转股价颓势,距王兴公开喊话以来,美团又跌去超20%。投资者在担忧什么?1月12日,高盛发布报告指出,即使美团股价回调至近乎IPO价位,但相信市场因担忧竞争,对其增长和盈利前景过于悲观,以及低估美团在保持其本地服务领先地位的执行能力,尤其是外送业务。近日,有市场传言称抖音在和阿里谈收购饿了么。美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 67.3 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。Action:
```
{
"action": "duckduckgo_search",
"action_input": "美团当前股票价格"
}
```
Observation新用户注册. 新浪财经-美股频道为您提供美团 (MPNGY)股票股价,股票实时行情,新闻,财报,美股实时交易数据,研究报告,评级,财务指标分析等与美团 (MPNGY)股票相关的信息与服务. 美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 67.3 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。美团-W (03690)股票股价_股价行情_财报_数据报告 - 雪球 美团-W (03690) 74.7 % 美团-W的热门讨论 纯阳的500W实盘日记 02-07 00:30 纯阳的500万实盘日记,2024.02.06 今日战况:+183000,目前总收益:-2266700 昨晚洗澡,手机放在窗台,带着眼镜雾气大看不清,结果一开窗,手机不小心掉下去了,在楼下找了半天没找到,就没发实盘了。今天一大早就联系物业帮忙找找,物业叫我直接报警! 我报完后,民警又叫我找物业。就... 离谱的微软 | 财报季 先知堂 02-01 08:25 导语:微软走自己的路,亚马逊无路可走。1月31日,微软 (NASDAQ:MSFT)发布财报,综合财报、电话会及其它信息,我看到"离谱"两个字。美团-w的最新讨论. 浩瀚宇宙中一粒尘埃 19分钟前. $美团-w(03690)$ 王莆中新上任后的第一把火,针对到店团购,复制拼好饭逻辑,1分钱拼团,卷出新高度 查看全文 流云如烟 今天 15:15. 美团不想赚钱,为的就是上市,来股市割韭菜查看全文. 欲与惧 今天 12:30. 美团不是每一单赚钱的,有些亏钱,大数据 ... 当前,这家公司总市值约4300亿港元,较2021年的高点460港元/股市值蒸发超2.4万亿港元。去年11月底,美团CEO王兴在三季度财报后的电话会议上称,美团被低估了,"美团在二级市场的股价只反映了外卖单一业务的估值,并不符合公司的内在价值。" 随后,美团多次出手回购,至今累计回购金额达24亿港元。然而,回购并未能扭转股价颓势,距王兴公开喊话以来,美团又跌去超20%。投资者在担忧什么?1月12日,高盛发布报告指出,即使美团股价回调至近乎IPO价位,但相信市场因担忧竞争,对其增长和盈利前景过于悲观,以及低估美团在保持其本地服务领先地位的执行能力,尤其是外送业务。近日,有市场传言称抖音在和阿里谈收购饿了么。{
"action": "Final Answer",
"action_input": "美团当前股票价格是74.7港元。"
}

> Finished chain.
{'input': '美团现在的股票价格是多少?', 'output': '美团当前股票价格是74.7港元。'}

3)问迈克尔乔丹的生日

问迈克尔乔丹的生日。

agent_executor.invoke(
{
"input": "迈克尔乔丹生日多少?"
}
)

回答如下,预测会使用维基百科,结果使用了Duckduckgo,尝试多次,最终获得结果。

> Entering new AgentExecutor chain...
Could not parse LLM output: duckduckgo_search
```python
tool_call(query='迈克尔乔丹生日')
```Invalid or incomplete responseCould not parse LLM output: {
"action": "duckduckgo_search",
"action_input": "迈克尔乔丹生日"
}
```Invalid or incomplete responseCould not parse LLM output: {
"action": "duckduckgo_search",
"action_input": "迈克尔乔丹生日"
}
```Invalid or incomplete responseCould not parse LLM output: {
"action": "duckduckgo_search",
"action_input": "迈克尔乔丹生日"
}
```Invalid or incomplete responseCould not parse LLM output: {
"action": "duckduckgo_search",
"action_input": "迈克尔乔丹生日"
}
```Invalid or incomplete responseCould not parse LLM output: {
"action": "duckduckgo_search",
"action_input": "迈克尔乔丹生日"
}
```Invalid or incomplete responseCould not parse LLM output: {
"action": "duckduckgo_search",
"action_input": "迈克尔乔丹生日"
}
```Invalid or incomplete response{
"action": "duckduckgo_search",
"action_input": "迈克尔乔丹生日"
}迈克尔·乔丹 (英語:Michael Mick Jordan ,简称 MJ ;1963年2月17日 — ), 美國非裔 商人 和前 男子 籃球 與 棒球 運動員 。喬丹職業籃球生涯均在 NBA 聯盟,其中13年效力於 芝加哥公牛 ,最後2年則在 華盛頓巫師 度過,曾三度退役後復出。喬丹是 NBA 歷史上最具影響力的籃球員,同時也是極具市場價值的籃球選手,為NBA在80到90年代間得以迅速普及全球貢獻良多,被人們譽為籃球之神。1984年喬丹 肄業 於 北卡羅萊納州 的 北卡羅萊納大學教堂山分校 ,接著在 NBA選秀 中以 探花 (第一輪第三順位)被 芝加哥公牛 選中。麥可·喬丹 (英語:Michael Mick Jordan ,簡稱 MJ ;1963年2月17日 — ), 美國非裔 商人 和前 男子 籃球 與 棒球 運動員 。喬丹職業籃球生涯均在 NBA 聯盟,其中13年效力於 芝加哥公牛 ,最後2年則在 華盛頓巫師 度過,曾三度退休後復出。喬丹是 NBA 歷史上最具影響力的籃球員,同時也是極具市場價值的籃球選手,為NBA在80到90年代間得以迅速普及全球貢獻良多,被人們譽為籃球之神。1984年喬丹 肄業 於 北卡羅來納州 的 北卡羅來納大學教堂山分校 ,接著在 NBA選秀 中以 探花 (第一輪第三順位)被 芝加哥公牛 選中。迈克尔·乔丹 (英语:Michael Mick Jordan ,简称 MJ ;1963年2月17日 — ), 美国非裔 商人 和前 男子 篮球 与 棒球 运动员 。乔丹职业篮球生涯均在 NBA 联盟,其中13年效力于 芝加哥公牛 ,最后2年则在 华盛顿奇才 度过,曾三度退役后复出。乔丹是 NBA 历史上最具影响力的篮球员,同时也是极具市场价值的篮球选手,为NBA在80到90年代间得以迅速普及全球贡献良多,被人们誉为篮球之神。1984年乔丹 肄业 于 北卡罗来纳州 的 北卡罗来纳大学教堂山分校 ,接着在 NBA选秀 中以 探花 (第一轮第三顺位)被 芝加哥公牛 选中。另一家媒体Legion Hoops同样晒照写道:"迈克尔-乔丹今天61岁了,祝GOAT生日快乐!" 乔丹的老对手魔术师约翰逊晒出一组合照送出祝福。他写道:"祝我的兄弟和有史以来最好的篮球运动员迈克尔-乔丹生日快乐!我对你充满爱和尊重,我祈祷上帝能更多赐福给你! 0. 北京时间2月18日,nba全明星周末迎来第二个活动日。今天是"篮球之神"迈克尔-乔丹61岁的生日,包括公牛在内多队都向他表达了祝贺,老对手&老朋友魔术师约翰逊也向乔丹发去祝福。```json
{
"action": "Final Answer",
"action_input": "迈克尔·乔丹的生日是1963年2月17日。"
}
```

> Finished chain.
{'input': '迈克尔乔丹生日多少?', 'output': '迈克尔·乔丹的生日是1963年2月17日。'}

4)问HUNTER X HUNTER是什么

问HUNTER X HUNTER是什么。

agent_executor.invoke(
{
"input": "HUNTER X HUNTER是什么?"
}
)

回答如下,这次使用了维基百科,查出了结果。

> Entering new AgentExecutor chain...
```
{
"action": "wikipedia",
"action_input": "HUNTER X HUNTER"
}
```Page: Hunter × Hunter
Summary: Hunter × Hunter (stylized as HUNTER×HUNTER and pronounced "hunter hunter") is a Japanese manga series written and illustrated by Yoshihiro Togashi. It has been serialized in Shueisha's shōnen manga magazine Weekly Shōnen Jump since March 1998, although the manga has frequently gone on extended hiatuses since 2006. Its chapters have been collected in 37 tankōbon volumes as of November 2022. The story focuses on a young boy named Gon Freecss who discovers that his father, who left him at a young age, is actually a world-renowned Hunter, a licensed professional who specializes in fantastical pursuits such as locating rare or unidentified animal species, treasure hunting, surveying unexplored enclaves, or hunting down lawless individuals. Gon departs on a journey to become a Hunter and eventually find his father. Along the way, Gon meets various other Hunters and encounters the paranormal.
Hunter × Hunter was adapted into a 62-episode anime television series by Nippon Animation and directed by Kazuhiro Furuhashi, which ran on Fuji Television from October 1999 to March 2001. Three separate original video animations (OVAs) totaling 30 episodes were subsequently produced by Nippon Animation and released in Japan from 2002 to 2004. A second anime television series by Madhouse aired on Nippon Television from October 2011 to September 2014, totaling 148 episodes, with two animated theatrical films released in 2013. There are also numerous audio albums, video games, musicals, and other media based on Hunter × Hunter.
The manga has been licensed for English release in North America by Viz Media since April 2005. Both television series have been also licensed by Viz Media, with the first series having aired on the Funimation Channel in 2009 and the second series broadcast on Adult Swim's Toonami programming block from April 2016 to June 2019.
Hunter × Hunter has been a huge critical and financial success and has become one of the best-selling manga series of all time, having over 84 million copies in circulation by July 2022.

Page: Hunter × Hunter (2011 TV series)
Summary: Hunter × Hunter is an anime television series that aired from 2011 to 2014 based on Yoshihiro Togashi's manga series Hunter × Hunter. The story begins with a young boy named Gon Freecss, who one day discovers that the father who he thought was dead, is in fact alive and well. He learns that his father, Ging, is a legendary "Hunter", an individual who has proven themselves an elite member of humanity. Despite the fact that Ging left his son with his relatives in order to pursue his own dreams, Gon becomes determined to follow in his father's footsteps, pass the rigorous "Hunter Examination", and eventually find his father to become a Hunter in his own right.
This new Hunter × Hunter anime was announced on July 24, 2011. It is a complete reboot starting from the beginning of the original manga, with no connection to the first anime television series from 1999. Produced by Nippon TV, VAP, Shueisha and Madhouse, the series is directed by Hiroshi Kōjina, with Atsushi Maekawa and Tsutomu Kamishiro handling series composition, Takahiro Yoshimatsu designing the characters and Yoshihisa Hirano composing the music. Instead of having the old cast reprise their roles for the new adaptation, the series features an entirely new cast to voice the characters. The new series premiered airing weekly on Nippon TV and the nationwide Nippon News Network from October 2, 2011. The series started to be collected in both DVD and Blu-ray format on January 25, 2012. Viz Media has licensed the anime for a DVD/Blu-ray release in North America with an English dub. On television, the series began airing on Adult Swim's Toonami programming block on April 17, 2016, and ended on June 23, 2019.The anime series' opening theme is alternated between the song "Departure!" and an alternate version titled "Departure! -Second Version-" both sung by Galneryus' vocalist Masatoshi O```
{
"action": "Final Answer",
"action_input": "HUNTER X HUNTER is a popular Japanese manga series written and illustrated by Yoshihiro Togashi. It has been adapted into two different anime television series and has become one of the best-selling manga series of all time, with over 84 million copies in circulation as of July 2022. The story follows a young boy named Gon Freecss as he embarks on a journey to become a Hunter, just like his father, in order to find him and follow in his footsteps."
}
```

> Finished chain.
{'input': 'HUNTER X HUNTER是什么?',
'output': 'HUNTER X HUNTER is a popular Japanese manga series written and illustrated by Yoshihiro Togashi. It has been adapted into two different anime television series and has become one of the best-selling manga series of all time, with over 84 million copies in circulation as of July 2022. The story follows a young boy named Gon Freecss as he embarks on a journey to become a Hunter, just like his father, in order to find him and follow in his footsteps.'}

5)客户列表按姓名排序

给一个客户列表,按姓名排序,期望能使用python代码解释器工具。

#待排序的customer_list 
customer_list = [["Harrison", "Chase"],
["Lang", "Chain"],
["Dolly", "Too"],
["Elle", "Elem"],
["Geoff","Fusion"],
["Trance","Former"],
["Jen","Ayai"]
]
agent_executor.invoke(
{
"input": f"""Sort these customers by \
last name and then first name \
and print the output: {customer_list}"""
}
)

回答如下,符合期望值,使用了Python_REPL工具,对LLM生成的代码进行解释执行,得到结果。

> Entering new AgentExecutor chain...
Thought: The task requires sorting the customers' names in two columns: last name and first name. I can use the `sorted()` function in Python to sort the list based on these criteria.

Action:
```
{
"action": "Python_REPL",
"action_input": "sorted_customers = sorted([['Harrison', 'Chase'], ['Lang', 'Chain'], ['Dolly', 'Too'], ['Elle', 'Elem'], ['Geoff', 'Fusion'], ['Trance', 'Former'], ['Jen', 'Ayai']], key=lambda x: (x[1], x[0]))"
}
```
Observation```
{
"action": "Python_REPL",
"action_input": "print(sorted_customers)"
}
```[['Jen', 'Ayai'], ['Lang', 'Chain'], ['Harrison', 'Chase'], ['Elle', 'Elem'], ['Trance', 'Former'], ['Geoff', 'Fusion'], ['Dolly', 'Too']]
```
{
"action": "Final Answer",
"action_input": "The customers sorted by last name and then first name are: [['Jen', 'Ayai'], ['Lang', 'Chain'], ['Harrison', 'Chase'], ['Elle', 'Elem'], ['Trance', 'Former'], ['Geoff', 'Fusion'], ['Dolly', 'Too']]"
}
```

> Finished chain.
{'input': "Sort these customers by last name and then first name and print the output: [['Harrison', 'Chase'], ['Lang', 'Chain'], ['Dolly', 'Too'], ['Elle', 'Elem'], ['Geoff', 'Fusion'], ['Trance', 'Former'], ['Jen', 'Ayai']]",
'output': "The customers sorted by last name and then first name are: [['Jen', 'Ayai'], ['Lang', 'Chain'], ['Harrison', 'Chase'], ['Elle', 'Elem'], ['Trance', 'Former'], ['Geoff', 'Fusion'], ['Dolly', 'Too']]"}

6、Agent执行分析

我们以上面使用三个自定义工具进行数学计算为例,来分析下Agent的执行原理。使用debug模式可以打印出整个执行过程的信息。

# 打开Debug模式,将会输出更详细的日志信息,方便了解整体运行逻辑
import langchain
langchain.debug = True
agent_executor.invoke(
{
"input": "Take 3 to the fifth power and multiply that by the sum of twelve and three, then square the whole result"
}
)
# 关闭Debug模式
langchain.debug = False

日志信息比较长,就不全部放上来了,大家有兴趣的可以自己尝试下。根据关键的节点信息,可以画出对应的时序图。

1)时序图

2)Agent执行过程

根据debug的日志信息,我们来看下关键节点的执行。

(1)用户提问
用户提问的内容是”Take 3 to the fifth power and multiply that by the sum of twelve and three, then square the whole result”。
(2)Agent执行器使用ReAct提示词调用LLM Agent执行器使用ReAct提示词模板,把用户问题发送给LLM。需要注意的是,在ReAct提示词模板中,把变量tools赋值了具体使用到的6个工具的名称、描述、入参信息,变量tool_names赋值了6个工具名称,chat_history对话历史信息没有,input赋值了用户提问的内容,agent_scratchpad之前的思考过程还没有。

"System: Respond to the human as helpfully and accurately as possible. You have access to the following tools:

Python_REPL: A Python shell. Use this to execute python commands. Input should be a valid python command. If you want to see the output of a value, you should print it out with `print(...)`., args: {'query': {'title': 'Query', 'type': 'string'}}
wikipedia: A wrapper around Wikipedia. Useful for when you need to answer general questions about people, places, companies, facts, historical events, or other subjects. Input should be a search query., args: {'query': {'title': 'Query', 'type': 'string'}}
duckduckgo_search: A wrapper around DuckDuckGo Search. Useful for when you need to answer questions about current events. Input should be a search query., args: {'query': {'title': 'Query', 'description': 'search query to look up', 'type': 'string'}}
multiply: multiply(first_int: 'int', second_int: 'int') -> 'int' - Multiply two integers together., args: {'first_int': {'title': 'First Int', 'type': 'integer'}, 'second_int': {'title': 'Second Int', 'type': 'integer'}}
add: add(first_int: 'int', second_int: 'int') -> 'int' - Add two integers., args: {'first_int': {'title': 'First Int', 'type': 'integer'}, 'second_int': {'title': 'Second Int', 'type': 'integer'}}
exponentiate: exponentiate(base: 'int', exponent: 'int') -> 'int' - Exponentiate the base to the exponent power., args: {'base': {'title': 'Base', 'type': 'integer'}, 'exponent': {'title': 'Exponent', 'type': 'integer'}}

Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input).

Valid "action" values: "Final Answer" or Python_REPL, wikipedia, duckduckgo_search, multiply, add, exponentiate

Provide only ONE action per $JSON_BLOB, as shown:

```
{
"action": $TOOL_NAME,
"action_input": $INPUT
}
```

Follow this format:

Question: input question to answer
Thought: consider previous and subsequent steps
Action:
```
$JSON_BLOB
```
Observation: action result
... (repeat Thought/Action/Observation N times)
Thought: I know what to respond
Action:
```
{
"action": "Final Answer",
"action_input": "Final response to human"
}

Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:```$JSON_BLOB```then Observation
Human: Take 3 to the fifth power and multiply that by the sum of twelve and three, then square the whole result


(reminder to respond in a JSON blob no matter what)"



(3)LLM第一次返回
LLM第一次调用返回信息,返回Agent信息:需要调用exponentiate工具,以及对应的入参。


"Thought: I need to calculate 3 to the fifth power, then find the sum of twelve and three, multiply those two values, and finally square the result.
Action:
```
{
"action": "exponentiate",
"action_input": {
"base": 3,
"exponent": 5
}
}
```"

(4)Agent执行器调用exponentiate工具

Agent执行器调用exponentiate工具,返回结果值243。
(5)Agent执行器使用带上下文的ReAct提示词调用LLM Agent执行器使用带上下文的ReAct提示词调用LLM。agent_scratchpad赋值了之前的思考过程,使得ReAct提示词带了上下文。

"System: Respond to the human as helpfully and accurately as possible. You have access to the following tools:

Python_REPL: A Python shell. Use this to execute python commands. Input should be a valid python command. If you want to see the output of a value, you should print it out with `print(...)`., args: {'query': {'title': 'Query', 'type': 'string'}}
wikipedia: A wrapper around Wikipedia. Useful for when you need to answer general questions about people, places, companies, facts, historical events, or other subjects. Input should be a search query., args: {'query': {'title': 'Query', 'type': 'string'}}
duckduckgo_search: A wrapper around DuckDuckGo Search. Useful for when you need to answer questions about current events. Input should be a search query., args: {'query': {'title': 'Query', 'description': 'search query to look up', 'type': 'string'}}
multiply: multiply(first_int: 'int', second_int: 'int') -> 'int' - Multiply two integers together., args: {'first_int': {'title': 'First Int', 'type': 'integer'}, 'second_int': {'title': 'Second Int', 'type': 'integer'}}
add: add(first_int: 'int', second_int: 'int') -> 'int' - Add two integers., args: {'first_int': {'title': 'First Int', 'type': 'integer'}, 'second_int': {'title': 'Second Int', 'type': 'integer'}}
exponentiate: exponentiate(base: 'int', exponent: 'int') -> 'int' - Exponentiate the base to the exponent power., args: {'base': {'title': 'Base', 'type': 'integer'}, 'exponent': {'title': 'Exponent', 'type': 'integer'}}

Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input).

Valid "action" values: "Final Answer" or Python_REPL, wikipedia, duckduckgo_search, multiply, add, exponentiate

Provide only ONE action per $JSON_BLOB, as shown:

```
{
"action": $TOOL_NAME,
"action_input": $INPUT
}
```

Follow this format:

Question: input question to answer
Thought: consider previous and subsequent steps
Action:
```
$JSON_BLOB
```
Observation: action result
... (repeat Thought/Action/Observation N times)
Thought: I know what to respond
Action:
```
{
"action": "Final Answer",
"action_input": "Final response to human"
}

Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:```$JSON_BLOB```then Observation
Human: Take 3 to the fifth power and multiply that by the sum of twelve and three, then square the whole result

Thought: I need to calculate 3 to the fifth power, then find the sum of twelve and three, multiply those two values, and finally square the result.
Action:
```
{
"action": "exponentiate",
"action_input": {
"base": 3,
"exponent": 5
}
}
```
Observation: 243
Thought:
(reminder to respond in a JSON blob no matter what)"

从(6)到(19)基本上在重复之前的逻辑,就不在累述了。

(20)最终返回用户结果:13286025。从整个Agent执行逻辑的分析,可以看到Agent执行器使用了LLM进行推理,然后根据推理的结果,去调用对应的工具,获得需要的知识,整个推理执行的过程可能循环往复多次,最终返回用户答案。

四、总结

这篇文章是LangChain开发系列第二篇,Agent智能体篇。首先介绍了Agent是什么,以及Agent的核心思想。如果说LLM是大脑,那么Agent就是给大脑装上了手脚眼睛后的智能体。Agent的核心思想是使用LLM作为推理引擎,来动态的确定要采取哪些操作,使用哪些工具以及按什么顺序执行。然后通过一个使用六个工具的Agent智能体实战案例,分析了Agent的实现原理。希望能给大家起到一定的参考作用,同时也欢迎共同探讨。 后续文章会继续分析RAG检索增加生成技术在LangChain中的使用,敬请期待。

文章转自微信公众号@顶尖程序员

#你可能也喜欢这些API文章!