21. 에이전트와 멀티에이전트 아키텍처

LLM 시대, LangChain(랭체인)으로 배우는 AI 소프트웨어 개발

by AI개발자
gaebalai-blog_ai-v3-1.jpg

(1) 에이전트란?

에이전트는 환경과 상호작용하고 상황에 따라 행동을 선택하는 프로그램입니다. 에이전트는 환경으로부터의 입력을 수신하고, 그 입력에 기초하여 행동을 선택하고 환경에 대한 출력을 생성합니다. LLM은 에이전트의 유력한 구현수단으로 주목받고 있으며 수많은 연구가 진행되고 있습니다.


최근 연구에서는 LLM을 이용한 에이전트가 ReAct(Yao et al, 2023)나 Reflexion(Shinn et al. 2023)등의 수법에 의해 복잡한 추론이나 계획, 도구등의 활용을 실시할 수 있는 것으로 나타납니다. LLM기반 에이전트에 명확하게 정의가 있는 것은 아닙니다. 그러나 종종 에이전트는 다음과 같은 특징을 가지고 있습니다.


뇌, 지각, 행동의 3가지 요소를 가짐 (Xi et al. 2023)

단기기억, 장기기억을 가지고 과거의 정보 활용 (N. Liu et al, 2024)


에이전트는 인간과 마찬가지로 환경을 인식하고 생각하며 행동하는 능력을 가지고 있습니다. 여기서 말하는 '뇌'는 에이전트의 의사결정을 담당하는 핵심부분이며 주로 LLM이 담당합니다. LLM은 주어진 정보로부터 적절한 행동을 추론하는 지능을 제공합니다.


'지각'은 센서나 API등을 통해 환경으로부터 정보를 취득하는 기능입니다. 지각을 통해 에이전트는 환경의 상태를 인식할 수 있습니다. 환경에서 얻은 정보를 LLM 프롬프트에 통합하면 에이전트가 지각 기반 추론을 수행할 수 있습니다.


'행동'은 에이전트가 환경에 작업을 수행하는 기능입니다. 이 기능에는 도구를 호출하고 다른 에이전트로 메시지를 보내는 등이 포함됩니다.


이 3가지 요소가 갖추어져 에이전트는 환경과 상호작용하면서 목표를 달성할 수 있습니다. '지각'을 기반으로 '뇌(LLM)'를 추론하고 결과에 따라 '행동'을 선택하면 에이전트가 환경에 적절한 응답을 할 수 있습니다. ReAct는 에이전트의 행동을 제어하는 방법 중 하나입니다. 또한 에이전트는 '기억'을 갖고 있어 보다 정교한 행동이 가능합니다. 기억에는 '단기기억'과 '장기기억'의 2종류가 있습니다. 단기기억은 대화와 같은 짧은 시간 규모로 필요한 정보를 유지하는데 사용됩니다. 이를 통해 에이전트는 상호작용의 맥락을 이해하고 적절한 응답을 생성할 수 있습니다. 단기기억은 특정작업을 수행하는 동안 유지되지만 작업이 끝나면 사라집니다.


반면, 장기기억은 더 긴 시간 규모에서 필요한 정보를 유지하는데 사용됩니다. 예를 들어, 과거작업의 경험과 관련 지식등이 포함됩니다. 에이전트는 이 장기기억을 활용하여 과거의 실패를 반복하지 않고, 효율적으로 작업을 수행할 수 있습니다. 이러한 기억기능은 에이전트가 더 지능적으로 행동하는데 중요한 역할을 합니다. Reflexion은 단기기억과 장기기억을 결합하여 에이전트의 행동을 제어하는 기법 중 하나입니다. 또한 RAG도 장기기억을 실현하는 방법 중 하나로 사용할 수 있습니다.



(2) 멀티 에이전트 아키텍처

멀티 에이전트 아키텍처는 에이전트 간의 연동방법을 결정하는 시스템 구조입니다. 개별 에이전트는 역할을 하며 환경과 다른 에이전트와의 상호작용을 통해 목적을 달성합니다.예를 들어, 소프트웨어 개발에서는 여러 에이전트가 코딩과 테스트를 담당하고 팀 전체에서 프로젝트를 진행합니다. 멀티 에이전트 아키텍처는 단일 에이전트 아키텍처, 수평 아키텍처 및 수직 아키텍처로 분류됩니다.


① 단일 에이전트 아키텍처

단일 에이전트 아키텍처는 하나의 에이전트가 모든 추론, 계획 및 도구 실행을 수행하는 아키텍처입니다. 이전에 소개한 LangChain(랭체인)의 에이전트는 단일 에이전트 아키텍처의 예입니다.

단일 에이전트 아키텍처의 대표적인 예로 ReAct(Yao et al, 2023), RAISE(N. Liu et al, 2024), Reflexion(Shinna et al, 2023), AutoGPT+P(Birr et al, 2024), LATS(Zhou et al, 2023) 이런 아키텍처에서는 행동을 취하기 전에 항상 추론 단계가 필요합니다. 또한 반복적으로 상태를 업데이트해서 목표에 접근해 가는 점도 공통입니다.


② 수평 아키텍처

수평 아키텍처는 모든 에이전트가 대등하며 하나의 그룹 토론에서 작업에 대해 토론하는 아키텍처입니다. 아래 그림은 수평 아키텍처를 보여줍니다. 에이전트 간의 커뮤니케이션은 모든 에이전트가 메시지를 읽고 쓸 수 있는 공유 스레드에서 이루어집니다. 즉, 모든 상담원이 대화를 공유합니다. 또한 에이전트는 작업을 완료하고 도구호출을 자발적으로 수행합니다. 수평 아키텍처는 협력, 피드백, 그룹 토큰이 가능한 작업에 적합합니다.

수평아키텍처의 예로는 DyLAN(Z. Liu et al, 2023), AgentVerse(W. Chen et al, 2023)이 있습니다. DyLAN은 각 라운드에서 에이전트 기여도를 평가하고 상위 에이ㅣ전트만 다음 라운드로 진행하는 동적팀 구성을 취하고 있습니다. AgentVerse는 그룹계획에 특화된 4가지 단계(채용, 협력적 의사결정, 독립적인 조치 수행, 평가)로 구성됩니다.


llm-langchain78.png 수평적 아키텍처


③ 수직 아키텍처

수직 아키텍처에서는 하나의 에이전트가 리더가 되고 다른 에이전트가 리더를 따르도록 구성합니다. 아래 그림은 수직 아키텍처를 보여줍니다. 일부 아키텍처에서는 개별 에이전트가 리더와만 통산할 수 있습니다. 모든 에이전트가 공유대화에 참여하고 리더가 명확하게 구별되는 경우도 있습니다.


수직 아키텍처의 특징은 리더가 존재하고 협력하는 에이전트 간에 역할이 명확하게 구별된다는 점입니다. Guo 논문(Guo et al. 2024)은 리더의 유무가 팀의 효율성에 큰 영향을 미치는 것을 보여줍니다. 리더가 있는 팀은 리더가 없는 팀에 비해 빨리 작업을 완료되었다는 결과를 보여줍니다. 리더가 없는 팀에서는 상담원의 많은 시간이 서로 지시를 나누는데 소요될 수 있는 것과 리더가 있는 팀에서는 리더가 지시를 내는 것으로 다른 멤버는 자신의 일에 집중할 수 있는 구조입니다.


llm-langchain79.png 수직 아키텍처


©2024-2025 GAEBAL AI, Hand-crafted & made with Damon Jaewoo Kim.


GAEBAL AI 개발사: https://gaebalai.com

AI 강의 및 개발, 컨설팅 문의: https://talk.naver.com/ct/w5umt5


keyword
이전 21화20. 에이전트 및 도구 사용