2024년 11월 23일 토요일

RAG LLM 기반 멀티 에이전트 시스템 개발 경험기

이 글은 LLM 기반 멀티 에이전트 시스템을 개발해 본 후 개인적으로 느낌 경험을 남긴다.

멀티 에이전트를 개발하는 방법은 다양하다. 지금까지 경험한 바로는 랭체인과 같은 라이브러리의 기능들을 많이 이용하기 보다는 LLM과 에이전트의 핵심 기능에 집중해 구현하는 것이 효과적이었다.

예를 들어, 다음 그림과 같이, 뉴스나 차트를 읽어 해석하여, 사용자 질문에 대해 LLM이 추론하는 방식의 에이전트를 개발한다고 하자.
신문 차트 기반 에이전트 개념

이 경우, 랭체인과 같은 라이브러리의 복잡한 기능을 사용하는 것 보다 LLM의 기본적인 기능에 집중하는 것이 오히려 나을 때가 있다. 처음에는 라이브러리의 관련 함수를 이용해 에이전트를 개발하려 하였으나, 1) 확률적?으로 에이전트가 동작되는 문제, 2) 복잡한 라이브러리 의존성 문제, 3) 복잡한 호출 경로로 인한 디버깅 문제, 4) 불명확한 함수 호출 문제 등이 발생하였다. 

결론적으로, 랭체인 예제, 튜터리얼, 블로그 등에서 알려주는 것을 해본 결과, LLM 조작에 핵심적인 부분만 구현하고, 나머지 확률적이고 불명확한 함수들을 사용하지 않는 편이 좋은 성능을 얻을 수 있다.

다음은 단순히 Tool과 LLM을 이용해 개발된 결과를 보여준다.

레퍼런스