赞
踩
Here’s the table of contents:
自主代理(Autonomous Agents)是由人工智能驱动的程序,当给定目标时,它们能够为自己创建任务,完成任务,创建新任务,重新确定任务列表的优先级,完成新的顶级任务,循环(递归的思想)直到达到目标。
可以给自主代理(Autonomous Agents)一个任务,比如发一个关于自主代理(Autonomous Agents)研究最新进展的邮件。他会先去理解分解这个任务目标,然后设定实施计划以及这几个计划的优先级,同时去辩证『冷静』的反思计划有没有漏洞,并将反思应用到执行过程中,然后就是自己不断的去换着关键词搜索总结最近的报道文章,然后是汇总、反思,看看有没有什么遗漏,最后组织成适合邮件的语言格式自动发送。
LLMs(大语言模型):LLMs是最核心的能力,无论推理还是问答以及后续的Prompt工程,都强依赖于LLM的能力。
Memory(上下文记忆):缓存任务的中间状态、保存会话的上下文信息,用于后续任务的处理。
Prompt Engineering(提示工程):提供给LLMs使用的提示信息。
Tools(工具箱):自主代理(Autonomous Agents)用来处理子任务的插件。
递归的思想:使自主代理(Autonomous Agents)完全自主的核心设计思想。
下面是基于
LangChain
实现的AutoGPT
类程序,可以让智能代理程序完成使用搜索引擎
和本地知识库
等工具的功能。
下面的案例展示了一个自主代理(Autonomous Agents)使用
GPT3.5
和工具箱(Tools)解决问题的运行过程。在这个案例中定义的可以使用的工具为数学计算工具(llm-math)
和Google搜索工具(serpapi)
,Agents
拿到问题后拆分为下面四个子任务:
1. 找到经理名称,Action Input: “易方达基金总经理”。
2. 找到经理年龄,Action Input: “易方达基金总经理刘晓艳 年龄”。
3. 年龄运行数学计算,Action Input: 42^0.76。
4. 整合各个子任务结果信息并生成答案。
前三个子任务逐个解决后,最后一个任务负责将答案进行整合输出一个完整的回复。
QA:易方达基金的总经理是谁?他今年的年龄是多少?他年龄的0.76次方是多少?
AGENTS:
Entering new AgentExecutor chain…
I need to find out the name of the manager and his age
Action: Search
Action Input: “易方达基金总经理”
Observation: 易方达基金总经理刘晓艳:以专业精神与投资者长期长情常相伴- 媒体报道- 易方达基金管理有限公司
Thought: I need to find out the age of the manager
Action: Search
Action Input: “易方达基金总经理刘晓艳 年龄”
Observation: 用总裁助理兼市场部总经理刘晓艳(女)的话说:她是一个很公正、很铁面无私的人,很适合做督察长的职务。 张南的台面上摆着三个电脑显示器,据她介绍, …
Thought: I need to calculate the age to the 0.76 power
Action: Calculator
Action Input: 42^0.76
Observation: Answer: 17.126533197047873
Thought: I now know the final answer
Final Answer: 易方达基金总经理刘晓艳今年42岁,他年龄的0.76次方是17.126533197047873。
Finished chain.
备注:需要注意的是上面的回答,易方达基金总经理刘晓艳的年龄得到的结果是错误的【这种问题也可以结合本地知识库来优化】。
下面的案例展示了一个自主代理(Autonomous Agents)使用
GPT3.5
和工具箱(Tools)解决问题的运行过程。在这个案例中定义的可以使用的工具为知识图谱查询工具(cypher_search)
,Agents
拿到问题后拆分为下面三个子任务:
1. 生成知识图谱查询代码Cypher。
2. 从知识图谱获取相关信息。
3. 整合结果信息并生成答案。
QA:嘉实物流产业基金,定位属于哪类基金?
Entering new AgentExecutor chain…
{
“action”: “Cypher search”,
“action_input”: “嘉实物流产业基金属于哪类基金?”
}
Entering new LLMCypherGraphChain chain…
Generated Cypher statement:
MATCH p0=(n2:投资类型)<-[r1:投资类型]-(n0:基金产品)-[r0:基金中文简称]->(n1:基金中文简称)-[r2:别名]->(n3:基金中文简称别名)
WHERE n3.value=‘嘉实物流产业基金’ RETURN n2.value AS value;
Finished chain.
Observation: 投资类型:股票型
Thought:{
“action”: “Final Answer”,
“action_input”: “嘉实物流产业基金投资类型属于股票型。”
}
Final Answer: 嘉实物流产业基金投资类型属于股票型。
Finished chain.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。