推理 LLM
任务分类
- 决策(AlfWorld)
- 推理(HotQA): HotpotQA是一个基于百科知识库的问答任务,主要是测试agent在大量文本中推理的推理能力。
- 代码生成(HumanEval)
Prompt Engineering
Prompt 工程(Prompt Engineering),又称提示工程,是指设计和优化用于与生 成式人工智能模型交互的Prompt的过程。经过良好设计的Prompt通常由任务说明、上下文、问题、输出格式 四个基本元素组成:
- 任务说明——向模型明确提出具体的任务要求。任务说明应当清晰、直接, 并尽可能详细地描述期望模型完成的任务。
- 上下文——向模型提供的任务相关背景信息,用以增强其对任务的理解以及 提供解决任务的思路。上下文可以包括特定的知识前提、目标受众的背景、 相关任务的示例,或任何有助于模型更好地理解任务的信息。
- 问题——向模型描述用户的具体问题或需要处理的信息。这部分应直接涉及 用户的查询或任务,为模型提供一个明确的起点。问题可以是显式的提问, 也可以是隐式的陈述句,用以表达用户的潜在疑问。
- 输出格式——期望模型给出的回答的展示形式。这包括输出的格式,以及任何特定的细节要求,如简洁性或详细程度。例如,可以指示模型以JSON格 式输出结果。 Prompt 的四个基本元素——任务说明、上下文、问题和输出格式,对于大语言 模型生成的效果具有显著影响。这些元素的精心设计和组合构成了Prompt工程的 核心
Prompt Engineering,也称为In-Context Learning,是指如何在不更新模型权重的情况下与 LLM 通信以指导其行为以获得预期结果的方法。这是一门实证科学,快速工程方法的效果可能因模型而异,因此需要大量的实验和启发式方法。
上下文学习(In-Context Learning, ICL)是一种通过构造特定的Prompt,来使得语言模型理解并学习下游任务的范式,这些特定的Prompt中可以包含演示示例,任务说明等元素。上下文学习实现的关键在于如何设计有效的Prompt,以引导模型理解任务的上下文和目标
Zero-shot, One-shot and few-shot learning 是 In-Context Learning 的三类类基本范式, 常出现在 LLM 的基准测试中(LLM performance benchmarking)。
- Zero-shot learning 是直接将问题输入到 LLM 模型,从而获取回答。在此种学习方式下,仅需向模型提供任务说明,而无需 提供任何示例。其具有强大的场景泛化能力。但零样本学习的性能完全依赖 于大语言模型的能力,并且在处理任务时可能表现欠佳。
- One-shot learning 是仅需为模型提供一个示例,贴合人类“举一反 三”的学习模式。不过,单样本学习的效果强依赖于示例相对于任务的代表 性
- Few-shot learning 这种方法通过为模型提供少量的示例(通常为几个至十 几个),显著提升模型在特定任务上的表现。但在,示例的增加会显著增加大 语言模型推理时的计算成本。示例的代表性和多样性也将影响其生成效果
Reasoning (协同推理)& COT(思维链)
为让大语言模型进一步具备解决数学推理问题的能力,22年1月,谷歌大脑团队的Jason Wei、Xuezhi Wang等人提出了最新的Prompting机制——Chain of Thought(简称CoT)。
思维链提示(Chain-of-Thought,CoT)通过模拟人类解决复杂问题时的思考过程,引导大语言模型在生成答案的过程中引入一系列的中间推理步骤。这种方法不仅能够显著提升模型在推理任务上的表现,而且还能够揭示模型在处理复杂问题时的内部逻辑和推理路径。
Manual COT (Few-shot CoT)
CoT方法的核心是构造合适的Prompt以触发大语言模型一步一步生成推理路 径,并生成最终答案。早期方法在构造Prompt时,加入少量包含推理过程的样本 示例(Few-Shot Demonstrations),来引导模型一步一步生成答案
思维链的开山之作 [2201.11903] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 该论文全部作者包括Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Brian Ichter, Fei Xia, Ed Chi, Quoc Le, Denny Zhou PS,上面的最后一位作者Denny zhou是Google deepmind推理团队的首席科学家
简言之就是给模型推理步骤的prompt,让其学习人类如何一步步思考/推理,从而让模型具备基本的推理能力,最终可以求解一些简单甚至相对复杂的数学推理能力
以下是一个示例(下图左侧为standard prompting,下图右侧为基于Cot的prompt,高亮部分为chain-of-thought),模型在引入基于Cot技术的prompt的引导下,一步一步算出了正确答案,有没有一种眼前一亮的感觉?相当于模型具备了逻辑推理能力
注意,这里首先是使用 In-Context-Learning(上下文学习)的范式来进行prompt,是在 In-Context-Learning 的范式中,增加了对思维推理 Chain of thought 的问答示范,从而希望LLM在给出答案的时候,也像模像样地进行推理,可以让LLM在推理任务上大幅提升。
这种CoT的方法,虽然十分有效,但需要手工写很多推理过程交给模型作为示范,虽然说对于同一类问题我们只用写一套就行了,但是当场景一换,或者问题改变时,之前有效的示范,可能效果就会打折了,因此还是比较费劲的。
Zero-shot CoT
于是,很快啊,就有学者提出了名为Zero-shot CoT的方法。[2205.11916] Large Language Models are Zero-Shot Reasoners 这篇文章发现:大模型,尤其是足够大的模型,可能不需要你费劲吧啦地写一堆CoT来作为prompt了,它自己可能就会推理了,秘诀就是加上一句咒语:“Let's think step by step.”
具体则是需要 LLM 两次生成:
- 先使用 “Let's think step by step.” 让模型自己给出推理过程
- 把原始问题以及给出的推理过程再合在一起,让模型抽取出最终答案。
其实第二步是不一定需要的,这里只是为了直接给出答案,所以加了第二步。
另一个类似的 "Let's work this out it a step by step to be sure we have the right answer" [2211.01910] Large Language Models Are Human-Level Prompt Engineers
Zero-Shot COT vs Manual COT
COT vs basic ICL
下图对比了 CoT 跟其他方法的差别:
Auto COT
[2210.03493] Automatic Chain of Thought Prompting in Large Language Models
Zero-shot CoT 和 Manual CoT,前者实际上没有使用 In-Context-Learning,而后者使用了 In-Context-Learning。ICL 提供了LLM更多的示范信息,可能能让LLM在输出的时候更加规范。
那么能不能利用 Zero-shot CoT 来让 LLM 产生很多带有推理的QA pair,然后把这些QA pair加入到prompt中,构成ICL的上文,再让LLM进行推理。
作者假设的是这样一个场景:我们有一大堆的待测试的问题(没有标注,不知道正确答案和推理过程),我们要怎么利用 LLM 和这么一个无标注问题集合,在不进行手工编写CoT的情况下,提升LLM回答这些模型的质量。
作者的基本思路是这样的:
- 给定待测试的问题q,从无标注问题集合中,采样一批问题;
- 使用 GPT-3 作为产生推理过程的工具,即直接使用 “Let's think step by step.” 咒语,来对这一批采样的问题产生推理过程;
- 把产生的这些问题和推理过程,构成In-Context-Learning的上文加入到prompt中,再让LLM对问题q进行回答。
关键就在于这个采样过程,作者分别先测试了两种简单的采样过程:
- 随机采样,Random-Q-CoT
- 基于跟待测试q的相似度进行采样,Retrieval-Q-CoT
实验发现,居然随机采样还要更好一些。经过探究,作者发现GPT-3自动产生推理过程是有一定比例出错的,而出错的问题也容易聚集
Self-Consistency
[2203.11171] Self-Consistency Improves Chain of Thought Reasoning in Language Models
- 首先,用一组人工书写的思维链示例来 prompt 语言模型。
- 接着,从语言模型的解码器中抽出一组候选输出,生成一组多样化的候选推理路径。自我一致性与大多数现有的采样算法兼容,包括:temperature 采样、top-k 采样和 nucleus(核)采样。
- 最后,通过将抽样的推理路径边际化(marginalization)来汇总答案,并在生成的答案中选择最一致的答案。
更详细地说,假设生成的答案 ai 来自一个固定的答案集 ai∈A 。给定一个 prompt 和一个问题,自我一致性引入了一个额外的潜在变量 ri ,表示第 i 个输出的推理路径的 token 序列,生成推理路径 ri 用来生成最终答案 ai 。
TOT
[2305.10601] Tree of Thoughts: Deliberate Problem Solving with Large Language Models
其模仿了人类在解决问题时,会有一个反复选择回溯的过程。人们会不断从多个候选答案中选择最好的那个,并且如果一条思维路子走不通,就会回溯到最开始的地方,选择另一种思维路子进行下去。基于这种现实生活 的观察,研究者在CoT的基础上提出了思维树(TreeofThoughts,ToT)、思维图(Graphof Thoughts, GoT)等三思后行模式下的CoT变体。
通过在每个步骤中探索多种推理可能性来扩展思维链。它首先将问题分解为多个思考步骤,并在每个步骤中生成多个思考,从而形成一个树状结构。搜索过程可以是广度优先搜索(BFS)或深度优先搜索(DFS),每个状态都通过分类器(通过提示)或多数投票进行评估。
ToT 将推理过程构造为一棵思维树,ToT的具体实例从以下四个角度对思维树进行构造。
- 拆解(如何将中间过程分解为思考步骤):将复杂问题拆分成多个简单子问题,每个子问题的解答过程对应一个思维过程。思维过程拆解的形式和粒度依任务类别而定,例如在数学推理任 务上以一行等式作为一个思维过程,在创意写作任务上以内容提纲作为思维过程。
- 衍生(如何从每个状态生成潜在的思考):模型需要根据当前子问题生成可能的下一步推理方向。衍生有两种模式:样本启发和命令提示。样本启发以多个独立的示例作为上下文,增大衍生空间,适合于创意写作等思维空间宽泛的任务;命令提示在Prompt中指明 规则和要求,限制衍生空间,适用于24点游戏等思维空间受限的任务。
- 评估(如何启发性地评估状态):利用模型评估推理节点合理性。根据任务是否便于量化评分,选择投 票或打分模式。投票模式中,模型在多节点中选择,依据票数决定保留哪些节点;打分模式中,模型对节点进行评分,依据评分结果决定节点的保留。
- 搜索(使用什么搜索算法):从一个或多个当前状态出发,搜索通往问题解决方案的路径。依据任 务特点选择不同搜索算法。可以使用深度优先搜索、广度优先搜索等经典搜 索算法,也可以使用A*搜索、蒙特卡洛树搜索等启发式搜索算法。
总结
- Basic prompt: 一问一答,直来直去
- COT:理性推理
- TOT: 集思广益
- Self-Consistency: 三思而后行
LLM+P
HelloPDDL — AI Planning in PDDL-Descripted World PDDL (Planning domain definition language ,规划域定义语言是一种尝试用来规范 AI规划 的语言 ,于1998年开发。是一种一阶语言(first-order language) L 语言,其定义了我们如何使用有限的单词和符号来形成复杂的,类似句子的实体。它把规划问题的模型分为两个主要部分:领域描述(domain description) 和 问题描述(problem description)
- 对象(Objects):“世界”中我们所感兴趣的事物。
- 谓词(Predicates):我们感兴趣的事实(例如对象的属性),可以是真或假。
- 初始状态(Initial State):我们开始所处的“世界”状态,即开始时为真的事物。
- 目标规范(Goal Specification):我们期望的结束时的世界状态,即我们希望最终成为真实的事物。
- 行为/操作(Actions/Operators):改变世界状态的方式,即发生后能改变事实(真与假)的事情。
Planning.Wiki - The AI Planning & PDDL Wiki: planning.wiki
[2304.11477] LLM+P: Empowering Large Language Models with Optimal Planning Proficiency
利用 PDDL 作为中间语言来描述如何将问题拆分成 Plan,首先将提问翻译成 Promble PDDL , 然后基于 Domain PDDL 生成一个 PDDL Plan ,最后将 PDDL Plan 翻译成自然语言。 这里计划的生成的是利用了外部工具,整个外部工具 PDDL 常用于 robotic 领域,还未应用于其他一些领域
Agentic & Self-Reflection
COT 是思维链,有了思考的能力,但缺少执行,也就是空想,没有落地。
ReAct
GitHub - ysymyth/ReAct: [ICLR 2023] ReAct: Synergizing Reasoning and Acting in Language Models
[2210.03629] ReAct: Synergizing Reasoning and Acting in Language Models


ReAct的思想是将智能体的行动空间和语言空间进行组合,语言空间中的行动,我们将其称为思考或推理痕迹,不会影响外部环境,因此不会产生观察反馈 相反,思考旨在通过对当前上下文进行推理来组合有用的信息,并更新上下文以支持未来的推理或行动 如上述两个图所示,可能存在各种类型的有用思考
LLM 用自然语言基于思维链生成 reasoning 路径,同时给 LLM 提供感知外部信息的能力,比如调用搜索引擎的 API。
ReAct 的 prompt 模版显示要求 LLM 进行问题的拆分,逐步思考, 常见格式如下:
Thought: ...
Action: ...
Observation: ...
... (Repeated many times)
ReAct(reason, act) 整合了推理和行动能力,是一种使用自然语言推理解决复杂任务的语言模型。ReAct旨在用于允许LLM执行某些操作的任务。例如,在MRKL(Modular Reasoning, Knowledge and Language)系统中,LLM可以与外部API交互以检索信息。当提出问题时,LLM可以选择执行操作以检索信息,然后根据检索到的信息回答问题。
ReAct系统可以被视为具有推理和行动能力的MRKL系统
ReAct本质上就是把融合了Reasoning和Acting的一种范式,推理过程是浅显易懂,仅仅包含thought-action-observation步骤,很容易判断推理的过程的正确性,使用ReAct做决策甚至超过了强化学习,上图显示的是四种prompt方法的比较,(1)第一种是标准的,第二种是Chain-of-thought(仅推理),图c是仅执行。(d)是ReAct,解决了一个HotpotQA的问题;(2)比较了Act-only和ReAct的方法来解决AlfWorld游戏的问题。总之,chain-of-thought推理是一个静态的黑盒,它没有用到外部的知识,所以在推理过程中会出现事实幻想(fact hallucination)和错误传递(error propagation)的问题。Act-only的方法很显然就是没有利用LLM的推理能力。ReAct克服了普遍存在的问题思维链推理中的幻觉和错误传播问题,通过与简单的维基百科API交互,生成类似于人的任务解决型轨迹,解释性进一步增强。
ReAct框架是一种提示技术,由普林斯顿大学教授与谷歌研究人员合作开发。ReAct代表推理+行动,旨在增强LLMs的推理能力,使它们能够在模拟环境中智能地推理和行动。ReAct的目标是使LLMs能够模仿人类在现实世界中的操作方式,我们在那里用语言推理并采取行动来获取信息。这项进步对于重塑我们如何与语言模型互动具有重大潜力。ReAct框架是灵活的,旨在协同LLMs的推理能力和可操作的输出。它允许LLMs与外部工具交互,从而增强其决策过程。使用React,LLMs可以理解和生成文本,根据他们的理解做出明智的决定并采取行动。
ReAct结合了推理和行动以解决复杂的语言推理和决策任务。虽然链式思维(CoT)提示已经表明LLMs可以为算术和常识推理等任务生成推理痕迹,但其缺乏对外部世界的访问可能会导致事实虚构等问题。ReAct通过让LLMs为任务生成口头推理痕迹和动作来解决这个问题。语言模型可以根据输入生成响应,但ReAct通过允许模型与其环境互动来增强这一点。这种互动是通过模型可以用来提问或执行任务以获取更多信息和更好地理解情况的文本动作实现的。例如,在面临多跳推理问题时,ReAct可能发起多个搜索动作,每个动作都可能是对外部工具的调用。这些动作的结果随后被用于生成最终答案。ReAct提示可能包括动作示例、这些动作产生的观察结果以及在此过程中人类的转录思想。通过促使LLM交替思考和行动,ReAct将其转变为环境中的活跃代理,能够以与人类一致的方式解决问题。
原文链接:blog.csdn.net/v_JULY_v/ar…
2023年新生代大模型Agents技术,ReAct,Self-Ask,Plan-and-execute,以及AutoGPT, HuggingGPT等应用 - 知乎 (zhihu.com)
Self-ask
[2210.03350] Measuring and Narrowing the Compositionality Gap in Language Models
Self-ask是一种follow-up的使用范式,仅仅包含follow-up, immediate answer步骤,至于follow-up多少个step,完全由它自己决定,估计这就是Self-ask的名字的由来。如上图,白色背景的是prompt,绿色背景的文本是LM的输出,下划线的是inference-time的问题。Self-ask需要一个或者少量的prompt来演示如何回答的提示问题。我们的提示从这些例子开始,之后我们附加inference-time question,然后在prompt的末尾插入短语“Are follow up questions needed here:",因为我们发现这样做会略微改善结果。然后模型输出一个响应。在大多数情况下,它首先输出“Yes”,这意味着后续行动问题是必要的。然后LM输出第一个follow-up问题,回答它,然后继续询问并回答follow-up问题,直到它决定有足够的信息为止。最终会输出:"So the final answer is:",这使得最终答案可以很容易根据":"解析出来。
Plan and Solve Prompting
Plan-and-execute agents这个方法本质上是先计划再执行,即先把用户的问题分解成一个个的子任务,然后再执行各个子任务,最后合并输出得到结果。做法也比较简单,prompt的形式需要改变一下,前面的论文使用的是“Let’s think step by step”,在这里使用新的prompt,“Let’s first understand the problem and devise a plan to solve the problem. Then, let’s carry out the plan and solve the problem step by step”,图a表示的是Zero-shot-Cot Prompting,图b使用的是Plan-and-Solve(PS)prompting,图(c)显示的是answer extracting prompting。Zero-shot-CoT鼓励LLM生成多步骤用“Let’s think step by step”进行推理,当问题复杂时,它仍然可能产生错误的推理步骤。与Zero-shot-CoT不同,PS提示首先要求LLM设计一个计划,通过生成一个步骤来解决问题计划和执行计划以找到答案。
Reflexion
[2303.11366] Reflexion: Language Agents with Verbal Reinforcement Learning
Reflexion 有一个类似 RL 的过程,在 ReAct 的 reasoning 过程和 action 之后增加了一个 reward 模型计算 reward 值,并将计算出一个 heuristic 值,从而基于 self-refection 结果决定是否重置,并开启一轮新的推理。
Reflexion框架包含四个组成部分:
- Actor: Actor由LLM担任,主要工作是基于当前环境生成下一步的动作。
- Evaluator: Evlauator主要工作是衡量Actor生成结果的质量。就像强化学习中的Reward函数对Actor的执行结果进行打分。
- Self-reflexion:Self-reflexion一般由LLM担任,是Reflexion框架中最重要的部分。它能结合离散的reward信号(如success/fail)、trajectory等生成具体且详细语言反馈信号,这种反馈信号会储存在Memory中,启发下一次实验的Actor执行动作。相比reward分数,这种语言反馈信号储存更丰富的信息,例如在代码生成任务中,Reward只会告诉你任务是失败还是成功,但是Self-reflexion会告诉你哪一步错了,错误的原因是什么等。
- Memory:分为短期记忆(short-term)和长期记忆(long-term)。在一次实验中的上下文称为短期记忆,多次试验中Self-reflexion的结果称为长期记忆。类比人类思考过程,在推理阶段Actor会不仅会利用短期记忆,还会结合长期记忆中存储的重要细节,这是Reflexion框架能取得效果的关键。
An LLM Compiler for Parallel Function Calling
# An LLM Compiler for Parallel Function Calling The reasoning capabilities of the recent LLMs enable them to execute external function calls to overcome their inherent limitations, such as knowledge cutoffs, poor arithmetic skills, or lack of access to private data. This development has allowed LLMs to select and coordinate multiple functions based on the context to tackle more complex problems. However, current methods for function calling often require sequential reasoning and acting for each function which can result in high latency, cost, and sometimes inaccurate behavior. To address this, we introduce LLMCompiler, which executes functions in parallel to efficiently orchestrate multiple function calls. Drawing inspiration from the principles of classical compilers, LLMCompiler enables parallel function calling with three components: (i) a Function Calling Planner, formulating execution plans for function calling; (ii) a Task Fetching Unit, dispatching function calling tasks; and (iii) an Executor, executing these tasks in parallel. LLMCompiler automatically generates an optimized orchestration for the function calls and can be used with both open-source and closed-source models. We have benchmarked LLMCompiler on a range of tasks with different patterns of function calling. We observe consistent latency speedup of up to 3.7x, cost savings of up to 6.7x, and accuracy improvement of up to ~9% compared to ReAct. Our code is available at this https URL.
Agent
Agent 定义:
- Reasoning
- Planning
- Reflection
- Tool Use
- Multi Agent
Deepseek r1:14B
中文
嗯,我现在要理解什么是Autonomous Agent。我之前听说过这个词,特别是在人工智能和机器人学的领域,但具体是什么意思呢?让我一步一步地思考一下。首先,从字面上来看,“autonomous”意味着自我管理或自主的,“agent”通常指一个代表或实体。所以大概就是能够自主运作的实体吧。那它具体指的是什么呢?
我记得Autonomous Agent应该具备一些智能特性,比如感知环境和做出决策。也就是说,这样的代理不需要外部控制,可以独立行动来完成任务。这可能涉及到软件 或者机器人。
接下来,我应该考虑它的核心特点。首先,Autonomous Agent必须具备感知能力,也就是能获取周围的信息。例如,一个自动驾驶汽车需要通过传感器收集道路、车 辆和行人的信息。然后,它需要有处理这些信息的能力,做出决策,比如转向或加速。所以智能性和决策能力是关键。
另外,Autonomous Agent应该有明确的目标。这意味着它的行为都是为了实现某个预定的目标。例如,扫地机器人要完成清扫整个房间的任务,它的目标就是覆盖所 有区域并清理垃圾。
我还记得听说过的不同类型的Autonomous Agent。比如简单反射型,可能只基于当前感知做出反应,没有复杂的内部状态。而基于模型的则会根据环境模型来预测结 果,这样可以更灵活地应对变化。效用驱动型则是以最大化某种效益为目标,学习如何在环境中获得最大的奖励。还有目标驱动型,这类代理有明确的目标,并通过 规划和推理来实现。
应用场景方面,Autonomous Agent有很多例子,比如自动驾驶汽车、工业机器人、智能助手(如Siri或Alexa),以及无人飞行器。每个领域都展示了Autonomous Agent的不同能力,从移动到与人类交互。
现在我想,为什么需要Autonomous Agent呢?它们能够提高效率,因为可以自动化处理重复性任务;增强安全性,特别是在危险环境中代替人类工作;提升生活质量 ,通过智能设备帮助我们完成日常事务。
不过,我也要考虑挑战。比如技术复杂性,开发一个能适应各种情况的代理并不容易。还有环境动态变化的问题,如何让代理快速学习和调整策略?此外,安全性和 伦理问题也很重要,确保自主系统在做出决策时不引发负面后果。
总的来说,Autonomous Agent是一个能够感知环境、独立决策并采取行动以实现目标的智能实体。它们在多个领域都有广泛应用,并且随着技术进步,未来可能会更 加多样化和智能化。
Autonomous Agent:自主代理的定义与解析
1. 概念界定
- 自主性:Autonomous Agent能够自我管理,无需外部指令,独立完成任务。
- 智能性:具备感知、推理、规划及决策能力,能够在复杂环境中做出合理选择。
2. 核心特点
- 感知与互动:通过传感器或数据输入了解环境,并与其进行交互。
- 目标导向:设定明确目标,行为旨在达成这些目标。
- 自主决策:基于当前信息和内部模型做出实时决策。
3. 分类
- 简单反射型:仅根据当前感知做出反应,无复杂内部逻辑。
- 基于模型型:利用环境模型预测结果,具备更强的灵活性和适应性。
- 效用驱动型:以最大化效益为目标,通过学习优化行为策略。
- 目标驱动型:设定具体目标,并运用规划与推理实现。
4. 应用领域
- 自动驾驶汽车:实时感知并决策,确保行车安全。
- 工业机器人:在制造业中执行精确操作,提高效率。
- 智能助手:如Siri、Alexa,帮助用户完成日常任务,提升生活质量。
- 无人飞行器:用于侦察或物流运输,在复杂环境中导航。
5. 优势
- 高效性:自动化处理任务,节省时间和资源。
- 安全性:在危险环境替代人类工作,降低风险。
- 便利性:通过智能设备改善日常生活。
6. 挑战
- 技术复杂性:需应对多变环境和复杂问题。
- 动态适应性:快速学习与调整能力的要求。
- 安全与伦理:确保决策的安全性和符合伦理标准,避免负面后果。
总结 Autonomous Agent是具备感知、智能、自主决策能力的智能实体,广泛应用于多个领域。随着技术进步,它们将变得更加多样化和智能化,为社会带来更多的便利与 发展机遇。
英文
Okay, so I'm trying to understand what an autonomous agent is. From the initial explanation, it seems like an autonomous agent is something that can make decisions and take actions on its own without needing constant input from a human. That makes sense because when we hear "autonomous," things like self-driving cars come to mind.The answer mentioned different types of agents: simple reflex-based, model-based, utility-based, and learning agents. Let me break each down to get a clearer picture.
First, a simple reflex-based agent. It sounds like it reacts directly to the environment based on predefined rules. So, if I think about a traffic light controller as an example, it changes lights based on programmed timings. That makes sense—it doesn't learn or adapt beyond what's preprogrammed; it just follows the same set of instructions over and over.
Next up is model-based agents. These seem a bit more advanced because they use internal models to predict outcomes. The thermostat example given fits here: it not only reacts to current temperature but also considers how heating changes affect the environment over time. So, if it's colder than usual, it might turn on earlier or adjust differently based on past behavior or forecasts.
Utility-based agents are all about maximizing some form of utility or value. The rat in a maze example is interesting—choosing paths that lead to more cheese (higher reward). It makes me think of economic models where decisions are made based on maximizing benefits, whether it's foraging efficiency or resource allocation.
Learning agents are at the top of the complexity scale. They improve their performance through experience and feedback. The game-playing AI is a perfect example here—like how AlphaGo learns by playing numerous games against itself to refine its strategies. This type seems most like humans because we also learn from our experiences, adjusting our behaviors based on outcomes.
I'm trying to think of more examples to solidify these concepts. For reflex-based agents, maybe something like a vending machine that dispenses items when coins are inserted—completely automated without any decision-making beyond the programmed responses.
For model-based, besides thermostats and traffic lights, perhaps a simple robot vacuum cleaner that plans its path around obstacles instead of just bumping into them randomly. It would have internal models to navigate efficiently.
Utility-based agents could be in finance, like an algorithm trading stocks to maximize profit based on market data and predefined utility functions that prioritize certain outcomes over others.
Learning agents are everywhere in modern tech—like recommendation systems on streaming platforms that learn user preferences over time by observing which shows you watch or skip, adjusting the suggestions accordingly.
I'm also considering the differences between these types. Reflex-based relies solely on current inputs without considering past interactions or future consequences beyond a basic model. Model-based adds some predictive capability but still might follow predefined rules based on internal models. Utility-based introduces objectives to optimize for, making decisions that maximize those objectives. Learning agents, however, use experience and feedback loops to enhance their decision-making over time, leading to more adaptive behaviors.
Another thought—how do these types overlap or integrate? For instance, a model-based agent could also be a learning agent if it adjusts its internal models based on experiences. So maybe the classification isn't strict but serves as a spectrum from simple to complex decision-making.
I'm also curious about the applications of each type. Reflex-based agents are great for reliable and predictable environments where changes are minimal. Model-based might handle more dynamic situations by predicting outcomes, making them suitable for scenarios with some unpredictability. Utility-based is ideal when there's a clear metric to optimize, like in resource allocation or economic systems. Learning agents shine in highly variable and complex environments where the optimal actions aren't known in advance.
In summary, an autonomous agent operates independently, reacting to its environment through programmed rules or advanced learning. The type of agent determines how it processes information and makes decisions, ranging from simple reflexes to sophisticated models and continuous learning.\
An autonomous agent is a system capable of independent decision-making and action execution within its environment. These agents vary in complexity and functionality, categorized into four main types:
-
Reflex-Based Agents: These agents operate based on predefined rules, responding directly to current inputs without considering past interactions or future outcomes. Examples include vending machines and traffic light controllers.
-
Model-Based Agents: Utilizing internal models to predict environmental changes, these agents make decisions considering both current and future states. Applications include robot vacuum cleaners planning paths and thermostat systems adjusting settings based on forecasts.
-
Utility-Based Agents: Focused on optimizing specific objectives or utilities, these agents prioritize actions that maximize predefined values. Examples range from foraging algorithms to financial trading systems aiming to maximize profits.
-
Learning Agents: These advanced agents enhance their performance through experience and feedback, often using machine learning techniques. Applications include game AI like AlphaGo and recommendation systems in streaming platforms.
Each type of agent is suited for different environments and complexities, with potential overlaps allowing for more integrated approaches. Autonomous agents are fundamental across various technologies, from simple automation to complex adaptive systems.
2023 lilianweng LLM Powered Autonomous Agents
LLM Powered Autonomous Agents | Lil'Log (lilianweng.github.io)
OpenAI早就不卷大模型,开始卷AI Agents了?这是一篇来自OpenAI应用研究主管关于Agent的万字长文 - 知乎
大模型驱动的自主代理(LLM Powered Autonomous Agents) - 知乎
Agent 架构
基于 LLM 的驱动的 Agent 系统中,需要提供以下几个关键组件:
- Planning:
- 拆解子目标:将复杂任务拆解成多个简单,可完成的子目标,通过完成子目标,进一步完成复杂任务。
- 反思和改进:Agent 需要之前的执行结果进行反思和自动纠错,从而优化后续的动作,获得更优的结果。
- Memory:
- 短期记忆:一次任务期间的所有的上下文,利用模型的 few-slot 学习能力
- 长期记忆: Agent 需要具有检索模型之外信息的能力,一般通过向量数据库查询,或者 RAG 等。
- Tool use:
- Agent 支持根据模型输出,调用模型之外工具。从而获取实时信息,执行代码等能力。
Agent 流程
Agent 挑战
- 上下文长度限制
- 长期任务规划,复杂任务拆解能力
- LLM 基于自然语言的输出格式的可靠性
2024 吴达恩关于 Agent 的演讲
如今,我们在使用 ChatGPT 等 AI 工具时,基本我们会输入一个 Prompt,然后得到一个答案。这就有点像你给定一个主题,然后让一个人去写文章,你跟 Ta 说,坐在电脑边,去敲键盘吧!不断的打字直到写完全部。 相比之下,如果使用 Agentic Workflow,就好比你跟 Ta 说,先写一个大纲,如果需要的话去网上查点资料,再写一个草稿,然后思考你的草稿该怎么改,最后再修改,多次如此迭代。很多人没有意识到这会带来多大的优化,事实是我经常这样做,得到的效果非常惊艳。 Zero-shot模式:
- Zero-shot模式:
- GPT-3.5的Zero-shot性能为48%。
- GPT-4的Zero-shot性能显著提升,为67%。
结论:Zero-shot模式下,模型在没有具体任务示例的情况下,仅依赖于其预训练的知识来执行任务。这种情况下比拼的是模型的通用基础能力,可以理解为模型的“智商”,GPT-4表现好是意料之中的。
- AI Agent(智能体)模式:
- Reflection反馈模式通过模型自身的反思与调整来改进任务执行。
- Tool Use工具调用模式涉及模型调用外部工具或库来帮助解决任务。
- Planning规划模式通过提前计划和组织任务步骤来提高效率和准确性。
- Multiagent多智能体协作模式涉及多个智能体的协同工作,以提高整体任务执行能力。
结论1:添加了Agentic Workflow的AI Agent在任务执行中的表现显著提升,不论基座模型是GPT-3.5还是GPT-4。
结论2:即使基座模型是GPT-3.5,通过添加Agentic Workflow将其设计为AI Agent后,性能表现也超过了Zero-shot模式下的GPT-4!
2024 Anthropic building effective agents
Building effective agents \ Anthropic
Agent 还未有明确统一的定义,但有这样几种定义:
- Agent 是一个全自动系统,长时间独立执行操作,且可以使用多种 Tools 完成复杂任务。
- 另一种是将 workflows 的架构进行更加规范的定义
Anthropic 则是把各种形式的变体统称为 agentci systems,但是会区分 agents 和 workflows 在架构之间的差异。
- workflows 是 LLMs 和 tools 通过预先定义好的流程进行编排执行。
- agents 基于 LLM 的 planning 能力规划任务路径,Tool 的使用,自主控制如何完成任务。
Workflows
-
增强型LLM: 具备检索、工具和记忆等增强功能
-
提示链式调用: 将任务分解成一系列步骤,每个LLM调用处理前一个调用的输出。你可以在任何中间步骤添加程序检查(见下图中的“门控”)以确保过程正常进行。
-
路由将输入分类: 并将其引导至专门的后续任务。此工作流有助于关注点分离,构建更为专业化的提示。没有该工作流的情况下,优化一种输入类型可能会影响其他输入的表现。
-
LLM 有时可以同时处理一个任务,并将它们的输出进行程序化汇总。此工作流,即并行化。
-
调度器-工作者工作流: 一个中心LLM动态地将任务分解,分配给工作者LLM,并综合它们的结果
-
评估者-优化者工作流: 一个LLM调用生成响应,另一个LLM调用提供评估并在循环中反馈。
Agent
随着 LLM 在理解复杂输入、进行推理与规划、可靠地使用工具以及从错误中恢复方面的能力逐渐成熟,智能体(Agents)开始在生产环境中得到了广泛应用。智能体的工作通常始于人类用户的指令或互动讨论。一旦任务明确,智能体便能独立规划和执行任务,必要时会返回人类用户以获取更多信息或判断。在执行过程中,智能体需要在每个步骤获取来自环境的“真实信息”(如工具调用结果或代码执行)以评估其进展。智能体还可以在检查点或遇到障碍时暂停,并请求人类反馈。任务通常在完成时终止,但常常也会设置停止条件(如最大迭代次数)以保持对过程的控制。
2024 Google Agents 白皮书
详解Google《Agents》白皮书,揭开智能体(Agents)的神秘面纱 - 知乎
智能体定义
智能体可以被定义为一个试图通过观察世界并利用其工具来达成目标的应用程序。与传统的生成式AI模型不同,智能体具有自主性,能够在没有人类干预的情况下独立行动。它们不仅能够根据明确的指令执行任务,还能在没有明确指令的情况下,通过推理来决定下一步行动。智能体的核心在于其认知架构,即驱动其行为、决策和行动的三个基本组件:模型、工具和编排层。
模型、工具与编排层
模型:模型是智能体的核心决策者,通常是一个或多个语言模型(LM)。这些模型可以是通用的、多模态的,也可以根据特定任务进行微调。模型的选择应根据最终应用的需求,理想情况下,模型应具备与工具相关的数据签名。
工具:尽管生成式AI模型在文本和图像生成方面表现出色,但它们无法直接与外部世界互动。工具弥补了这一缺陷,使智能体能够与外部数据和系统交互,执行更广泛的任务。工具的形式多样,通常与常见的Web API方法(如GET、POST、PATCH和DELETE)对齐。
编排层:编排层描述了智能体如何循环处理信息、进行内部推理,并基于推理结果决定下一步行动。这个循环会持续进行,直到智能体达成目标或达到停止点。编排层的复杂性因任务而异,可能涉及简单的决策规则或复杂的逻辑链。
智能体与模型的区别
智能体与传统的生成式AI模型有几个关键区别:
- 知识扩展:模型的知识仅限于其训练数据,而智能体通过工具与外部系统连接,扩展了其知识范围。
- 会话管理:智能体能够管理会话历史(如聊天记录),支持多轮推理和预测,而模型通常只能进行单次推理。
- 工具实现:智能体原生支持工具的使用,而模型则需要通过复杂的提示工程来实现类似功能
构建生产级智能体应用需要集成用户界面、评估框架和持续改进机制。Google的Vertex AI平台提供了一个完全托管的开发环境,简化了这一过程。开发者可以通过自然语言界面快速定义智能体的目标、任务指令、工具和子智能体,轻松构建所需的系统行为。Vertex AI平台还提供了一系列开发工具,支持测试、评估、调试和改进智能体性能,使开发者能够专注于智能体的构建和优化。