LagnChain 에서는 다양한 Agent 가 있는데 Agent Type 을 구별하기 위한 몇가지 분류 기준을 제공해준다.

 

Intended Model Type (의도된 모델 유형):

  • Chat Models: 대화형 챗봇을 사용할 떄 좋은 유형임. 주로 이전 질문에 대한 맥락을 기반으로 답변을 하는 기능이 목적임.
  • LLMs: Chat Models 보다는 좀 더 다양한 목적임. 텍스트 생성, 요약, 번역 등 다양한 작업에 적합함.

 

Supports Chat History (채팅 기록 지원 여부):

  • 채팅 기록을 지원하는 에이전트 타입은 챗봇으로 사용할 수 있음
  • 채팅 기록을 지원하지 않는 에이전트 타입은 단일 작업에 더 적합하다.

 

Supports Multi-Input Tools (다중 입력 도구 지원 여부):

  • 여러 Input 을 지원해야 하는 도구를 사용해야하는지 여부임.
  • 일반적으로 단일 Input 으로 사용하는 도구일 경우 LLM 이 더 사용하기 쉽다고 함.

 

Supports Parallel Function Calling (병렬 함수 호출 지원 여부):

  • LLM 이 여러 도구를 동시에 호출할 수 있어야하는지 여부임. 속도가 더 빨라짐
  • 이건 LLM 이 좀 더 복잡한 일을 해야할 수 있으므로 일부 Agent 는 이게 적합하지 않을 수 있음.

 

Required Model Params (필요한 모델 파라미터):

  • 일부 Agent 는 OpenAI Function calling 과 같은 작업을 위해 추가 파라미터를 필요로 하다고 함.
  • 각 Agent 마다 파라미터가 필요한 경우 이를 기록해놓았음.

 

사용할 수 있는 Agent 정리: 

Agent Type Intended Model Type Supports Chat History Supports Multi-Input Tools Supports Parallel Function Calling Required Model Params When to Use API
Tool Calling Chat tools If you are using a tool-calling model Ref
OpenAI Tools Chat tools [Legacy] If you are using a recent OpenAI model (1106 onwards). Generic Tool Calling agent recommended instead. Ref
OpenAI Functions Chat   functions [Legacy] If you are using an OpenAI model, or an open-source model that has been finetuned for function calling and exposes the same functions parameters as OpenAI. Generic Tool Calling agent recommended instead Ref
XML LLM       If you are using Anthropic models, or other models good at XML Ref
Structured Chat Chat     If you need to support tools with multiple inputs Ref
JSON Chat Chat       If you are using a model good at JSON Ref
ReAct LLM       If you are using a simple model Ref
Self Ask With Search LLM         If you are using a simple model and only have one search tool R
ef

대표적인 Agent 정리

React Agent:

  • 우리가 일반적으로 말하는 Agent 임. 문제를 해결하고 위해서 Reasoning 으로 어떠한 행동을 해야하는지 생각하고, Acting 으로 행동을 하는거임. 필요하다면 도구를 이용하고.

 

OpenAI functions:

  • OpenAI Tools 의 등장으로 현재는 Deprecated 된 모델이긴 함. tools 는 한번에 여러 function 을 호출할 수 있는 기능이 추가되서 response time 이 짧아졌다고 함.
  • 그래도 이 Agent 에 대해 설명하자면, GPT-3.5 를 fine-tuning 해서 태어난 모델로 어떠한 명령이 주어졌을 때 어떠한 함수를 호출해야하는지를 명확히 학습한 모델로 함수 호출에 특화된 모델임.
  • 기존에는 프롬포트에 이 함수를 호출할거니까 응답을 이렇게 주면 돼 라고 명령을 내렸었음. 근데 이렇게만 한다면 가끔씩 LLM 이 잘못 동작해서 응답을 잇상하게 줘서 함수를 호출 못하는 경우가 생김. 이런 문제를 막기 위한 것.

 

Tool calling agent:

  • LLM 에게 여러개의 도구를 쥐어주면 문제를 해결하기 위해 알아서 잘 호출하게 만드는 Agent 임. 여러 도구를 한번에 호출하는 것도 가능함.
  • 이전 보다 Agent 가 잘못된 응답을 해서 도구를 호출하지 못할 확률이 많이 줄었다고 함.

+ Recent posts