一、Agents的本質

Agents是什么?

Agents 的核心概念是利用語言模型來選擇一系列要執行的動作。與傳統的硬編碼動作鏈不同,Agents 使用語言模型作為推理引擎來確定要執行哪些動作以及它們的執行順序。

Agents
The core idea of agents is to use a language model to choose a sequence of actions to take. In chains, a sequence of actions is hardcoded (in code). In agents, a language model is used as a reasoning engine to determine which actions to take and in which order.

Agents由幾個部分組成。

Agents 組成部分

Agents能干什么?

Agent System由多個協作的智能代理構成,這些代理能自主行動、響應環境、與其他代理或用戶交互,并根據目標、規則和知識執行任務或決策。

在Lilian Weng的博客中,她闡述了以LLM為核心的AI Agents系統,其中LLM負責推理、決策和生成語言,還需結合規劃、記憶和工具使用等關鍵組件來完善功能。

二、Agents的原理

Agents的工作流程:通過結合大型語言模型(LLM)的推理能力和外部工具的執行能力,接收任務后進行思考、行動、接收反饋并重復這些步驟,直至任務完成或達到終止條件。

Agents流程包含以下四個核心步驟:

如果任務還沒有完成,LLM Agent會重復上述步驟,直到任務完成或達到某個終止條件。

Agents的工作流程

Agent Types:在LangChain中,Agent Types定義了不同類型的代理(Agents),這些代理使用不同的策略和方法來與用戶和工具進行交互,以完成各種任務。

三、Agents的應用

Agents應用場景:在需要根據不同輸入動態決定工具使用次數和順序的復雜任務中,實現靈活智能的決策和處理。

工具鏈:有些任務的處理流程是固定的,我們可以預先設定一個工具鏈來按順序處理。

工具鏈

但有些任務的處理流程是動態的,需要根據輸入來決定使用哪些工具以及如何使用。

Agents是一種可以實現這種動態決策的機制,它可以根據輸入和當前狀態來選擇下一步的操作,從而實現更加靈活和智能的任務處理。

Agents應用創建:使用 LangChain 庫創建一個簡單的代理(agent),該代理能夠處理數學運算任務。

一、創建工具函數:通過裝飾器?@tool 創建了三個工具函數:multiply(乘法)、add(加法)和 exponentiate(指數運算)。這些函數接收整數作為參數,并返回運算結果。

@tool
1
2 def multiply(first_int: int, second_int: int) -> int:
3 return first_int * second_int
4
5 @tool
6 def add(first_int: int, second_int: int) -> int:
7 return first_int + second_int
8
9 @tool
10 def exponentiate(base: int, exponent: int) -> int:
11 return base ** exponent

創建工具函數

二、創建提示模板:從 LangChain Hub 中獲取一個提示模板。這個模板用于指導大型語言模型(LLM)如何生成響應。

from langchain import hubfrom langchain.agents import AgentExecutor, create openai tools agentfrom langchain openai import ChatOpenAI
# Get the prompt to use - you can modify this!prompt = hub.pull("hwchase17/openai-tools-agent"prompt.pretty_print()

創建提示模版

三、創建代理和執行器:選擇一個大型語言模型來驅動代理。使用所選的模型、工具函數和提示模板來構建 OpenAI Tools 代理。同時,創建一個代理執行器,將代理和工具函數傳遞給它。

model = ChatOpenAl(model="gpt-3.5-turbo-1106" temperature=0)agent = create openai tools agent(model, tools, prompt)agent executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

創建代理和執行器

四、調用代理:代理會根據輸入和提示模板動態地調用適當的工具函數來完成運算,并返回運算結果。

agent executor.invoke(
0
"input. "Take 3 to the fifth power and multiply that by the sum of twelve and three, then square tl
5

本文章轉載微信公眾號@架構師帶你玩轉AI

上一篇:

大模型開發 - 一文搞懂 LangChain(三):Retrieval

下一篇:

大模型開發 - 一文搞懂 LangChain(五):Chains
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費