Agents
•
Chain과 더불어 랭체인에서 가장 중요한 개념 중 하나
•
다양한 tool을 사용하여 사용자의 입력에 따라 상황에 맞게 다른 결과를 반환받을 수 있다.
•
이제까지 설명했던 component들이 모두 LLM과 text와의 상호 작용 위주였다면, agent는 외부 다른 리소스와 상호작용이 가능하게끔 도와준다.
•
기본적으로 agent에는 다양한 tool들이 있다.
•
구글 검색 결과를 활용할 수 있는 serpapi 부터 날씨 정보를 알 수 있는 openweather api 등 수많은 기능들을 제공하며 지금 현재도 계속 추가되고 있다.
LLM과 에이전트(Agent), 그리고 툴(Tools)이 상호작용하여 사용자 요청을 처리하는 과정을 설명한 흐름도
1. Request (사용자 요청)
•
설명: 사용자는 에이전트에게 질문이나 요청을 보낸다. 예를 들어, 특정 주제에 대한 정보를 검색하거나 계산을 요청할 수 있다.
•
역할: 사용자의 질문이 시스템에 입력된다.
2. Agent (에이전트)
•
설명: 에이전트는 사용자의 요청을 받아 시스템과 상호작용하며, 툴들을 함수처럼 호출할 수 있다.
System + Request + Tools as Functions: 에이전트는 시스템과 툴을 함께 사용하여 요청을 처리할 준비를 한다.
•
역할: 에이전트는 요청을 처리할 방법을 결정하고, 필요하면 툴을 호출해 작업을 수행한다.
3. Function Call (함수 호출)
•
설명
◦
에이전트는 사용자의 요청을 처리하기 위해 특정 툴(예: 검색 툴)을 호출한다.
◦
예를 들어, 사용자의 질문을 검색할 필요가 있을 경우, 검색 툴을 호출해 검색을 수행한다.
Search + Query: 사용자의 질의가 검색 툴로 전달된다.
•
역할: 에이전트는 요청을 적절한 툴로 전달해 실제 작업을 수행하도록 한다.
4. Tools (툴)
•
설명
◦
툴은 실제 작업을 수행하는 외부 시스템이다.
◦
여기서는 검색 툴(Search Tool)이 사용되며, 사용자의 요청에 맞는 정보를 검색한다.
•
역할: 툴은 에이전트가 요청한 작업(예: 검색)을 처리하고 결과를 반환한다.
5. Search Tool (검색 툴)
•
설명: 이 툴은 사용자의 질의에 맞는 정보를 검색하고, 그 결과를 에이전트에게 반환한다.
•
역할: 요청된 정보를 검색한 후 그 결과를 다시 에이전트로 전달한다.
6. Response Handling (응답 처리)
•
설명
◦
에이전트는 검색 결과를 받아 사용자의 요청과 함께 다시 LLM으로 전달한다.
◦
LLM은 이 데이터를 바탕으로 응답을 생성한다.
System + Request + Search Result: 시스템은 요청과 검색 결과를 결합하여 LLM에게 전달한다.
•
역할: 에이전트는 툴의 결과를 이용해 LLM이 최종 응답을 생성하도록 준비한다.’
7. LLM (대형 언어 모델)
•
설명
◦
LLM은 전달받은 데이터를 바탕으로 응답을 생성한다.
◦
해당 예시에선 ChatGPT 3.5가 사용된다.
◦
LLM은 사용자의 요청과 검색된 데이터를 분석해 답변을 완성한다.
•
역할: LLM은 데이터를 기반으로 적절한 답변을 생성하는 역할을 한다.
8. Response (최종 응답)
•
설명
◦
LLM이 생성한 최종 응답이 사용자에게 전달된다.
◦
이 응답은 사용자의 요청에 대한 완성된 답변이다.
•
역할: 시스템이 생성한 답변이 사용자에게 최종적으로 반환된다.