一、Agents的本質

Agents是什么?

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

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由多個協(xié)作的智能代理構成,這些代理能自主行動、響應環(huán)境、與其他代理或用戶交互,并根據(jù)目標、規(guī)則和知識執(zhí)行任務或決策。

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

二、Agents的原理

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

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

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

Agents的工作流程

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

三、Agents的應用

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

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

工具鏈

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

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

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

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

@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

創(chuàng)建工具函數(shù)

二、創(chuàng)建提示模板:從 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()

創(chuàng)建提示模版

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

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)

創(chuàng)建代理和執(zhí)行器

四、調用代理:代理會根據(jù)輸入和提示模板動態(tài)地調用適當?shù)墓ぞ吆瘮?shù)來完成運算,并返回運算結果。

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

上一篇:

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

下一篇:

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

我們有何不同?

API服務商零注冊

多API并行試用

數(shù)據(jù)驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉化潛力

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

#AI深度推理大模型API

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

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