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 가 잘못된 응답을 해서 도구를 호출하지 못할 확률이 많이 줄었다고 함.
'Generative AI > Agent' 카테고리의 다른 글
Multi AI Agent Systems with crewAI (0) | 2024.06.25 |
---|---|
AI Agents in LangGraph (0) | 2024.06.18 |
Agent 의 동작 과정 (0) | 2024.05.29 |