47 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| <!--Copyright 2024 The HuggingFace Team. All rights reserved.
 | ||
| 
 | ||
| Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 | ||
| the License. You may obtain a copy of the License at
 | ||
| 
 | ||
| http://www.apache.org/licenses/LICENSE-2.0
 | ||
| 
 | ||
| Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 | ||
| an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 | ||
| specific language governing permissions and limitations under the License.
 | ||
| 
 | ||
| ⚠️ Note that this file is in Markdown but contain specific syntax for our doc-builder (similar to MDX) that may not be
 | ||
| rendered properly in your Markdown viewer.
 | ||
| 
 | ||
| -->
 | ||
| # 多步骤 agent 是如何工作的?
 | ||
| 
 | ||
| ReAct 框架([Yao et al., 2022](https://huggingface.co/papers/2210.03629))是目前构建 agent 的主要方法。
 | ||
| 
 | ||
| 该名称基于两个词的组合:"Reason" (推理)和 "Act" (行动)。实际上,遵循此架构的 agent 将根据需要尽可能多的步骤来解决其任务,每个步骤包括一个推理步骤,然后是一个行动步骤,在该步骤中,它制定工具调用,使其更接近解决手头的任务。
 | ||
| 
 | ||
| ReAct 过程涉及保留过去步骤的记忆。
 | ||
| 
 | ||
| > [!TIP]
 | ||
| > 阅读 [Open-source LLMs as LangChain Agents](https://huggingface.co/blog/open-source-llms-as-agents) 博客文章以了解更多关于多步 agent 的信息。
 | ||
| 
 | ||
| 以下是其工作原理的视频概述:
 | ||
| 
 | ||
| <div class="flex justify-center">
 | ||
|     <img
 | ||
|         class="block dark:hidden"
 | ||
|         src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/Agent_ManimCE.gif"
 | ||
|     />
 | ||
|     <img
 | ||
|         class="hidden dark:block"
 | ||
|         src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/Agent_ManimCE.gif"
 | ||
|     />
 | ||
| </div>
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 我们实现了两个版本的 ToolCallingAgent:
 | ||
| - [`ToolCallingAgent`] 在其输出中生成 JSON 格式的工具调用。
 | ||
| - [`CodeAgent`] 是一种新型的 ToolCallingAgent,它生成代码块形式的工具调用,这对于具有强大编码性能的 LLM 非常有效。
 | ||
| 
 | ||
| > [!TIP]
 | ||
| > 我们还提供了一个选项来以单步模式运行 agent:只需在启动 agent 时传递 `single_step=True`,例如 `agent.run(your_task, single_step=True)` |