偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

智能體常用策略FunctionCalling和ReAct有什么區(qū)別?

人工智能
Dify 內(nèi)置了兩種 Agent 策略:Function Calling 和 ReAct,但二者有什么區(qū)別呢?在使用時(shí)又該如何選擇呢?接下來我們一起來看。

Dify 內(nèi)置了兩種 Agent 策略:Function Calling 和 ReAct,但二者有什么區(qū)別呢?在使用時(shí)又該如何選擇呢?接下來我們一起來看。

1.Function Calling

Function Call 會(huì)通過將用戶指令映射到預(yù)定義函數(shù)或工具,LLM 先識別用戶意圖,再?zèng)Q定調(diào)用哪個(gè)函數(shù)并提取所需參數(shù)。

它的核心是調(diào)用外部函數(shù)或工具,屬于一種明確的工具調(diào)用機(jī)制

優(yōu)點(diǎn)

  • 精確:對于明確的任務(wù),可以直接調(diào)用相應(yīng)的工具,無需復(fù)雜的推理過程。
  • 易于集成外部功能可以將各種外部 API 或工具封裝成函數(shù)供模型調(diào)用。
  • 結(jié)構(gòu)化輸出:模型輸出的是結(jié)構(gòu)化的函數(shù)調(diào)用信息,方便下游節(jié)點(diǎn)處理。
  • 執(zhí)行效率高:對于簡單、明確的任務(wù),執(zhí)行速度快。

缺點(diǎn)

  • 如果任務(wù)定義不明確或用戶意圖模糊,LLM 可能難以準(zhǔn)確選擇工具或提取參數(shù)。
  • 對于需要多輪推理才能確定調(diào)用哪個(gè)工具的任務(wù),不夠靈活。

適用場景

  • 需要根據(jù)用戶意圖精確調(diào)用特定工具的自動(dòng)化任務(wù)。
  • 需要與外部 API 或服務(wù)進(jìn)行交互的場景。
  • 數(shù)據(jù)檢索、信息查詢并以特定格式呈現(xiàn)的應(yīng)用

2.ReAct

ReAct=Reason+Act,推理+行動(dòng),LLM 首先思考當(dāng)前狀態(tài)和目標(biāo),然后選擇并調(diào)用合適的工具,工具的輸出結(jié)果又將引導(dǎo) LLM 進(jìn)行下一步的思考和行動(dòng),如此循環(huán),直到問題解決。

舉例說明

舉個(gè)例子,正常情況下,當(dāng)我們在計(jì)算一個(gè)商品的價(jià)格時(shí),它的執(zhí)行步驟是這樣的:

  • 查詢商品原價(jià)。
  • 計(jì)算商品優(yōu)惠價(jià)。
  • 計(jì)算商品最終價(jià)格=商品原價(jià)-優(yōu)惠價(jià)。

但某個(gè)商品情況比較特殊,它在以上第二步中存儲的不是優(yōu)惠價(jià),而是折扣價(jià)(例如 8 折優(yōu)惠),那么此時(shí)商品的最終價(jià)格的計(jì)算公式就變成了以下方式:

  • 查詢商品原價(jià)。
  • 查詢商品折扣價(jià)。
  • 計(jì)算商品最終價(jià)格=商品原價(jià) X 商品折扣價(jià)。

在這種情況下就要使用 ReAct 策略了,因?yàn)?ReAct 策略會(huì)根據(jù)第二步的觀測結(jié)果,分析并改變第三步的計(jì)算公式,保證任務(wù)的精準(zhǔn)執(zhí)行,這種情況下就要使用 React 策略。

核心機(jī)制

  • ReAct 是一個(gè)迭代過程,LLM 在“思考(Reason)-> 行動(dòng)(Act)-> 觀察(Observe)”的循環(huán)中逐步推進(jìn)任務(wù)。
  • LLM 首先分析當(dāng)前狀態(tài)和目標(biāo),選擇并調(diào)用工具,然后根據(jù)工具的輸出進(jìn)行下一步的思考和行動(dòng),直到問題解決。

優(yōu)點(diǎn)

  • 利用外部信息:可以有效使用外部工具來收集模型單獨(dú)無法處理的任務(wù)所需的信息。
  • 可解釋性好:推理和行動(dòng)步驟交織在一起,允許一定程度上跟蹤 Agent 的過程。
  • 廣泛適用性:適用于需要外部知識或特定行動(dòng)的任務(wù),例如問答、信息檢索和任務(wù)執(zhí)行。
  • 靈活性高:對于復(fù)雜、多步驟的任務(wù),以及需要探索和動(dòng)態(tài)調(diào)整策略的場景,具有更好的適應(yīng)性。

缺點(diǎn)

  • 執(zhí)行速度和成本:由于涉及多次 LLM 調(diào)用,ReAct 通常比 Function Calling 更慢,并且消耗更多的 tokens。
  • 推理穩(wěn)定性:在很大程度上取決于 LLM 的推理能力以及提示(Instruction)的質(zhì)量。
  • 輸出解析復(fù)雜:ReAct 過程中 LLM 產(chǎn)生的“思考”文本格式可能不一致,給解析和提取關(guān)鍵信息帶來挑戰(zhàn)。

適用場景

  • 需要進(jìn)行探索性研究、從多個(gè)來源收集和綜合信息的任務(wù)。
  • 問題解決方案路徑不明確,需要通過迭代嘗試和調(diào)整來找到答案的復(fù)雜問題。
  • 需要較高可解釋性,希望了解 Agent 決策過程的場景。

3.Function Calling VS React

Function Calling 和 React 區(qū)別如下:

  • Function Calling 更適合簡單、明確的任務(wù),強(qiáng)調(diào)直接調(diào)用工具的高效性。
  • ReAct 更適合復(fù)雜、多步驟的任務(wù),強(qiáng)調(diào)推理過程的靈活性和可解釋性。
責(zé)任編輯:姜華 來源: 磊哥和Java
相關(guān)推薦

2017-11-17 08:17:48

2024-05-06 10:55:38

2022-09-07 18:32:57

并發(fā)編程線程

2020-03-09 20:56:19

LoRaLoRaWAN無線技術(shù)

2020-11-09 14:07:53

PyQtQt編程

2022-06-06 14:53:02

LoRaLoRaWAN

2022-09-08 18:38:26

LinuxWindowsmacOS

2021-05-16 14:26:08

RPAIPACIO

2024-05-27 00:40:00

2024-03-05 18:59:59

前端開發(fā)localhost

2022-02-27 15:33:22

安全CASBSASE

2024-09-09 13:10:14

2021-12-17 14:40:02

while(1)for(;;)語言

2022-08-02 08:23:37

SessionCookies

2023-12-25 15:40:55

React開發(fā)

2010-03-19 09:48:12

智能交換機(jī)

2023-12-15 09:21:17

ObjectJavaString

2022-08-22 07:06:32

MyBatisSQL占位符

2022-08-31 08:33:54

Bash操作系統(tǒng)Linux

2025-03-10 09:30:00

SpringJava開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號