终于有人说清楚了基于大模型的Agent进行任务规划的10种方式(附代码和论文)

盘点军工行业软件研发的那些常用GJB标准 GJB5000、2786、438、141、102、8114等... 阅读详情

在 OpenAI AI 应用研究主管 Lilian Weng 的博客**《大语言模型(LLM)支持的自主式代理》**[1]中,将规划能力视为关键的组件之一,用于将任务拆解为更小可管理的子任务,这对有效可控的处理好更复杂的任务效果显著。

图片基于大语言模型(LLM)的自主代理组成

人是如何做事的?

在日常工作中,我们通常将一项任务拆解成几个步骤:制定计划、执行计划、检查结果,然后将成功的作为标准,未成功的则留待下一次循环解决,这种方法已经被证明是高效完成任务的经验总结。

而这就是PDCA[2],是美国质量管理专家休哈特博士提出的,由戴明采纳、宣传,获得普及,所以又称戴明环。基于 PDCA 模型可以将一般项目分为四个阶段,即 Plan(计划)——Do(执行)——Check(检查)—— Act(处理)。把一件事情做出计划、然后实施计划、检查计划分析哪些出现了问题并提出解决方案、然后成功的纳入标准,不成功的进入下一个循环去解决,循环往复,从而形成一套标准化的流程。

在这里插入图片描述
PDCA模型

Agent 是怎样工作的

而 Agent 的执行过程与人做事的方式类似,其中最有效的就是 ReAct 框架的思路,它来自论文**《ReAct:在语言模型中协同推理与行动》[3],作者发现让 Agent 执行下一步行动的时候,加上大模型自己的思考过程,并将思考过程、执行的工具及参数、执行的结果放到提示词中,就能使得模型对当前和先前的任务完成度有更好的反思能力,从而提升模型的问题解决能力。**

比如斯坦福 AI 小镇项目[4],AutoGPT[5]等去年大火的 Agent 的项目,都可以看到 ReAct 的思路,LangChain 框架中直接以 ReAct 为基础定义了几种代表性 Agent (CONVERSATIONAL_REACT_DESCRIPTION、ZERO_SHOT_REACT_DESCRIPTION 等)。

Thought: …

Action: …

Observation: …

…(重复以上过程,即表示 ReAct 的工作过程)

构建 Agent

下面通过代码构建一个最基本的 Agent,不过这里有必要提前了解几个关键概念,有助于更好地理解 Agent 的工作过程。

  • AgentAction:它主要包含两部分信息,tool表示 Agent 将要调用的工具的名称,tool_input表示传递给这个工具的具体输入。
  • AgentFinish:它有一个 return_values 参数,是一个字典,该字典的 output值表示要返回给用户的字符串信息。
  • intermediate_steps:表示 Agent 先前的操作及其相应的结果。它是一个列表,列表中的每个元素是一个包含AgentAction和其执行结果的元组,这些信息对于未来的决策非常重要,因为它让 Agent 了解到目前为止已经完成了哪些工作。
定义工具

定义 Agent 要调用的工具,一个用于获取句子中不同汉字的数量的函数,同时将工具函数绑定到模型上

def count_unique_chinese_characters(sentence):
    """用于计算句子中不同汉字的数量"""
    unique_characters = set()
    for char in sentence:
        if '\u4e00' <= char <= '\u9fff':
            unique_characters.add(char)
    return len(unique_characters)

# 将工具函数绑定到模型上
llm_with_tools = llm.bind(functions=[format_tool_to_openai_function(count_unique_chinese_characters)])
定义 Agent

定义一个 Agent,用于处理用户输入、大模型输出及对输出内容解析:

prompt = ChatPromptTemplate.from_messages(
    [
        ("user", "{input}"),
        MessagesPlaceholder(variable_name="agent_output"),
    ]
)

llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
# 构建一个Agent,它将处理输入、提示、模型和输出解析
agent = (
    {
        "input": lambda x: x["input"],
        "agent_output": lambda x: format_to_openai_function_messages(
            x["intermediate_steps"]
        ),
    }
    | prompt
    | llm_with_tools
    | OpenAIFunctionsAgentOutputParser()
)
Agent 执行

下面就是 Agent 的执行过程,主体实际是一个主循环,直到输出预期结果,实际情况中会对循环次数进行控制,以防止无休止执行下去,耗光资源

# 用于存储中间结果
intermediate_steps = []
while True:
    # 调用Agent并处理输出
    output = agent.invoke(
        {
            "input": sentence,
            "intermediate_steps": intermediate_steps,
        }
    )
    # 检查是否完成处理,如果完成则退出循环
    if isinstance(output, AgentFinish):
        final_result = output.return_values["output"]
        break
    else:
        print(f"工具名称: {output.tool}")
        print(f"工具输入: {output.tool_input}")
        tool = {"count_unique_chinese_characters": count_unique_chinese_characters}[output.tool]
        observation = tool.run(output.tool_input)
        intermediate_steps.append((output, observation))
# 打印最终结果
print(final_result)

一个最基本的 Agent 就构建结束了,这就是当下大家在各种文章上看到的产品层面构建 Agent(代理、智能体、智能代理、AI 代理等)的底层原理,其实很简单。

更复杂的任务

仔细观察上面的例子,很显然,只提供了一个工具,而且任务足够简单,当然可以清晰的执行,但是如果面对很复杂的任务场景,任务粒度拆解不细,导致执行步骤无法穷尽,循环就始终无法结束,这样的 Agent 也就无法完成复杂问题了。所以 Agent 要真正可用,任务拆解和规划是极为关键的一步,所以这方面也成为热门研究方向,下面将常见的思路简单介绍下(后台回复【论文】获取论文合集):

  1. Zero-Shot(零样本提示,来自论文**《微调后的语言模型是零样本学习者》**[6]):在提示词中简单地加入“一步一步思考”,引导模型进行逐步推理。
  2. Few- Shot(小样本提示,来自论文**《语言模型是小样本学习者》**[7]):给模型展示解题过程和答案,作为样例(如果只提供一个样例,又叫 One-Shot),以便于解答新问题。
  3. COT(思维链,来自论文《链式思维提示在大型语言模型中引发推理》[8]),思维链提示即将一个复杂的多步骤推理问题细化为多个中间步骤,然后将这些中间答案组合起来共同解决问题。其有效性已在这篇论文(揭示思维链背后的奥秘:一个理论视角[9])中得到验证。
  4. Auto CoT(来自论文**《大型语言模型中的自动思维链提示》**[10]):大模型在解题前自动从数据集中查询相似问题进行自我学习,但需要专门的数据集支持。
  5. Meta CoT(来自论文**《Meta-CoT:在大型语言模型中使用通用链式思考提示应对混合任务场景》**[11]):在 Auto CoT 的基础上,先对问题进行场景识别,进一步优化自动学习过程。
  6. Least-to-Most (来自论文从简到难的提示使大型语言模型能够进行复杂推理[12]):该策略的核心是把复杂问题划分成若干简易子问题,并依次解决,在处理每个子问题时,前一个子问题的解答有助于下一步。比如提示词中加入“针对每个问题,首先判断是否需分解子问题。若不需,则直接回答;若需,则拆分问题后,整合子问题解答,以得出最优、最全面及最确切的答案。”,启用大模型的思维模式,细化问题,从而获得更佳的结果。
  7. Self-Consistency CoT(来自论文自洽性可以提高语言模型中思维链的推理能力[13]):在多次输出中选择投票最高的答案。自洽性利用了一个复杂推理问题通常有多种不同的思路,但最终可以得到唯一正确答案的本质,自洽性提升了思维链在一系列常见的算术和常识推理基准测试中的性能,比如在提示词中加入"对于每个问题,你将思考 5 种不同的想法,然后将它们结合起来,输出措辞最佳,最全面和最准确的答案。"
  8. TOT (全称 Tree of Thoughts,思维树,来自论文**《思维树:利用大型语言模型进行深思熟虑的解决问题》**[14]):构建一个树状结构来存储各步推理过程中产生的多个可能结果作为末梢节点。在进行状态评估以排除无效结果之后,基于这些末梢节点继续进行推理,从而发展出一棵树。接着,利用深度优先搜索(DFS)或广度优先搜索(BFS)算法连接这些节点,形成多条推理链。最终,将这些推理链提交至一个大模型以评估哪个结果最为合适。
  9. GOT (全称 Graph of Thoughts,思维图谱,来自论文**《思维图谱:用大型语言模型解决复杂问题》**[15]):思维图谱是将大型语言模型的输出抽象成一个灵活的图结构,其中思考单元作为节点,节点间的连线代表依赖关系。这种方式模拟人类解决问题的思维组合,它能合并多条推理链,自然回溯到有效的推理链,并行地探索独立的推理链,更贴近人类思维方式,从而增强了推理能力。
  10. Multi-Persona Self-Collaboration(来自论文**《释放大型语言模型中的认知协同:通过多重人格自我协作的任务解决代理》**[16]):模拟多个角色协作解决问题。

在这些技巧中,Zero-Shot、Few-Shot、Self-Consistency 和 Least-to-Most 在提示词层面易于应用且效果显著。

上述论文中的思路已经在很多开源或商业 Agent 产品中采用了。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
Hifiasm参数调优实战:当N50不理想时的7个排查方向与解决方案 本文详细解析了Hifiasm参数调优实战,针对基因组组装中N50不理想的7个排查方向与解决方案。通过调整--hom-cov、-D、-N等核心参数,结合HiFi数据和参考基因组分析,有效提升组装质量。文章以猪毛菜基因组为例,展示了从2.1MB到4.3MB的N50优化过程,为生物信息学研究者提供实用指南。 阅读详情

相关推荐

3. ChaosBlade-Box平台安装

参考自:https://chaosblade.io/docs/about-chaosblade/box-introduce/通过ChaosBlade-Box可实现chaosblade等已托管工具自动化部署,按照社区的建立的混沌实验模型统一实验场景,根据主机、Kubernetes、应用来划分目标资源,通过目标管理器来控制,在实验创建页面,可以实现白屏化的目标资源选择。

lldhsds的专栏 2485

一文详细拆解Agent工作原理|Agent研究

这是一种更可靠地将GPT的功能与外部工具和API相连的新方法,允许开发者更可靠地从模型中获得结构化的数据,为AI开发者提供了方便。向量数据库强大的检索功能就是基于向量相似度计算而达成的,是一种模糊匹配的检索,没有标准的准确答案,进而更高效地支撑更广泛的应用场景。本文通过详细拆解Agent从提示词接收、LLM大模型理解识别、知识库匹配、任务规划到行动执行等五个关键步骤,从而深入剖析Agent的工作原理,另外也将目前市面上Agent产品的能力项汇总,希望给大家带来一些启示。

企业级智能体,全行业解决方案,5000+企业签约,海量场景覆盖。 1万+

用matlab编程求矩阵的极大无关组,向量组极大无关组表示问题

已知向量组T:Eqn11.gif (3.16 KB, 下载次数: 1)2013-10-21 19:19 上传.(1) 求向量组T的秩,并判断向量组T的相关性;(2) 求T的极大线性无关组;(3) 将其余的向量用所求的极大线性无关组线性表示。程序:>> A=[1 1 3 2;-1 1 -1 3;5-2 8 9;-1 3 1 7]>> r=rank(A)>> A1=...

weixin_35094083的博客 7387

基于大模型的Agent进行任务规划的10种方式(附代码和论文)

定义 Agent 要调用的工具,一个用于获取句子中不同汉字的数量的函数,同时将工具函数绑定到模型上"""用于计算句子中不同汉字的数量"""# 将工具函数绑定到模型上。

zhishi0000的博客 2135

单细胞测序流程(五)t-sne聚类分析和寻找marker基因

系列文章目录 单细胞测序流程(一)简介与数据下载 单细胞测序流程(二)数据整理 单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图 单细胞测序流程(四)主成分分析——PCA 本期主讲内容——t-sne聚类分析和寻找marker基因 介绍:T-SNE是一种用于探索高维数据的非线性降维算法。它将多维数据映射到适合于人类观察的两个或多个维度。 一、课前准备 之前所使用的数据 R语言的IDE 二、过程 聚类分析的目的是根据细胞的差别所进行细胞分群,两个..

qq_45478665的博客 2万+

基于Cesium移动的天空云

天空中的云朵也算是一种天气气候的效果,它能更加逼真的反映当前的天气状况,可以是白云朵朵,也可以是乌云密布,结合其他天气效果,可以组合形成较为真实的三维可视化场景。

星云数海的博客,一个专注GIS十多年的GISer人。 447

基于大模型的 Agent 进行任务规划的10种方式

基于大模型的 Agent 基本组成应该包含规划(planning),工具(Tools),执行(Action),和记忆(Memory)四个方面,上一篇中多轮对话中让AI保持长期记忆的8种优化方式(附案例和代码)重点讲了进行长记忆管理的 8 种方案,本节将从 Agent 概念、ReAct 框架、示例、以及一些论文思路来具体聊下任务规划的话题,同时会辅以代码帮助理解,欢迎大家一起探讨。

weixin_43829633的博客 4021

13、数据来源介绍与操作指南

本文详细介绍了多种数据源的特点、操作步骤及适用场景,包括元数据数据源、MongoDB数据源、Pentaho Data Integration数据源、OLAP数据源、Pentaho分析数据源和OLAP4J数据源。通过流程图和表格对比,帮助用户理解不同数据源的选择与使用方法,并提供了实际应用案例和注意事项,旨在提升数据获取与分析效率,支持高效报告生成。

ik678901234的博客 150

掌握如何搭建高效的大模型任务流(一):LangChain任务流构建

大模型很多技术干货,都可以共享给你们,如果你肯花时间沉下心去学习,它们一定能帮到你!

2401_85375186的博客 1246

STM32H743的FDCAN使用方法(1):STM32CubeMX初始化代码生成

STM32H743的FDCAN使用方法(1):STM32CubeMX初始化代码生成。

kevin1499的博客 2566

4、风险管理、信息安全与信息管理的核心原则

本文深入探讨了风险管理、信息安全与信息管理的核心原则,涵盖Risk IT框架、ISO 31000标准以及信息安全与信息管理的关键原则。通过案例分析与实际应用挑战的解析,帮助组织更好地应对数字化时代的风险与安全问题,实现可持续发展。

bread的博客 120

大模型Agent

大模型Agent 一、背景知识1.会产生幻觉。2.结果并不总是真实的。3.对时事的了解有限或一无所知。4.很难应对复杂的计算。•Google搜索:获取最新信息•Python REPL:执行代码•Wolfram:进行复杂的计算•外部API:获取特定信息大模型 + 插件 + 执行流程 = Agent二、Agent框架LLM-based Agent 框架包含三个组成部分:控制端(Brain)、感知端(Perception)和行动端 (Action)。1、控制端:Brain。

weixin_43409127的博客 7087

Windows系统下载安装 Git 的详细教程

本文详细介绍了Windows系统下载安装Git的完整流程,包括从Git官方网站和阿里镜像下载安装包,逐步讲解安装向导中的各个设置选项,如安装路径、默认编辑器、行尾转换、终端模拟器等,并提供了每个步骤的截图和说明。安装完成后,博客还介绍了如何验证安装是否成功,以及如何配置Git的用户名和邮箱,确保可以正常使用Git进行版本控制。

加斯顿工程师的博客 801

【大模型驱动】Agent任务规划的10大创新方式!

定义 Agent 要调用的工具,一个用于获取句子中不同汉字的数量的函数,同时将工具函数绑定到模型上"""用于计算句子中不同汉字的数量"""# 将工具函数绑定到模型上# 构建一个Agent,它将处理输入、提示、模型和输出解析agent = (),| prompt。

2401_85390073的博客 928

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Agent专题】Agent开发篇:Agent任务拆解全流程+实用代码,附可运行代码&实战流程

2024年是大模型从“会聊天”走向“能干活”的关键一年。从AutoGPT、BabyAGI掀起热潮,到微软AutoGen落地企业场景,再到清华智源的AgentVerse大模型评测体系,一个共识逐渐浮出水面:**Agent的核心能力,不在“回答”,而在“拆解”**。

m0_59164520的博客 1329

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

必藏!大模型Agent任务拆解核心逻辑与代码实现指南

本文介绍了大模型从"会聊天"到"能干活"的转变,强调Agent的核心能力在于任务拆解而非简单回答。详细讲解了规划、分而治之、思维链、自我反思、多Agent协作等拆解策略,并提供了Python代码示例。文章还指出,构建可靠工具接口、使用框架封装、加入结果校验和Memory机制是让Agent系统落地的关键。任务拆解是让大模型从"对话者"变成"行动者"的基础技术。2024年是大模型从“会聊天”走向“能干活”的关键一年。。

优快云_224022的博客 1146

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

AI Agent & 大模型经典论文推荐

经常有人让我推荐一些 AI Agent 和大模型相关的经典论文,在这里列一些对我比较有启发的 paper,可以作为 Reading List。这里面大部分的 paper 都是今年刚发表的,但是也有一些文本大模型、图片视频生成模型的经典论文,把这些经典论文读明白是理解大模型的关键。

youmaob的博客 2015

Agent任务规划

Agent任务规划

进步报告。 943

一文说清AI Agent:大模型和它的区别是什么?

AI Agent与大模型的本质区别 AI Agent是能"行动"的大模型,而非简单升级版。核心区别在于:大模型仅提供信息(回答问题),而Agent能自主完成任务(执行操作)。Agent具备三大关键能力:1)自主规划任务步骤;2)调用各类工具执行操作;3)持续记忆用户偏好。其价值在于打破大模型"只说不做"的局限,通过实时获取信息、调用API等实现真实场景的自动化处理。当前Agent已在私人助理、代码审查等场景落地,其发展将改变而非取代人类工作方式,关键在于"会

楼兰剑客 453

大模型Agent落地实战:从核心原理到工业级任务规划器开发

本文介绍了大模型Agent从核心原理到工业级任务规划器开发的实战指南。重点解析了Agent"感知-规划-执行-反馈"的闭环架构,详细阐述了工业级任务规划器的开发过程,包括技术选型、核心模块实现和优化策略。文章通过代码示例展示了结构化需求解析、依赖关系处理和异常处理等关键环节,并总结了Prompt设计、依赖验证、工具解耦等工业级落地最佳实践。最终指出大模型Agent落地需要大模型语义理解与传统算法验证的协同,通过工程化手段确保稳定性,才能实现真正的产业级应用。

wudu_123456的博客 827
上一篇: 手把手教你用Agent大模型,我发现了Prompt工程师的10大必备技能
下一篇: 业内大佬强推的一本LLM大模型BERT神书!看完头皮发麻!(附PDF)
AI大模型_学习君
博客等级 码龄3年 6137粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值