추론, 계획 및 도구 사용을 위한 AI 에이전트 구조에 대한 서베이 논문

:pytorch:PyTorchKR:kr:

  • 최근 LLM의 불길(?)이 여기저기로 옮겨붙고 있습니다. Multimodal이나 Small LM과 같은 주제들와 함께, 단순히 응답에서 그치지 않고 도구 등을 사용하여 실제 문제를 해결하는 Agent에서도 많은 연구들이 이뤄지고 있습니다. 예를 들어, GitHub 이슈를 스스로 해결하는 SWE-AgentAutoCodeRover와 같은 시도나, Android API를 별도의 Token으로 만들어 학습시킨 Octopus-v2들이 눈에 띄고 있으며, Agent를 위한 프레임워크인 TigerNPi, CopilotKit나 웹 브라우저를 자동화하는 Skyvern, AI Employe 등과 같은 다양한 시도들이 있습니다.

  • 오늘 소개하는 논문은 이러한 AI Agent의 구조에 대한 서베이 논문으로, 크게 하나의 Agent가 독립적으로 동작하는 경우(= Single Agent)와 2개 이상의 Agent들이 서로 협력 또는 계층적으로 동작하는 경우(= Multi Agent)로 나누어 살펴보고 있습니다. 아무래도 Survey Paper면서도 References 섹션을 제외하면 11페이지 가량의 짧은 논문이다보니 깊은 내용보다는 전체적으로 어떠한 구조들이 시도되고 있는지를 주로 살펴보시면 좋을 것 같습니다. :smiley:

추론, 계획 및 도구 사용을 위한 AI 에이전트 구조에 대한 서베이 논문 / The Landscape of Emerging AI Agent Architectures for Reasoning, Planning, and Tool Calling: A Survey

소개

ChatGPT 출시 이후 RAG(Retrieval-Augmented Generation)를 비롯하여 대규모 언어 모델(LLM, Large Language Model) 그 자체를 활용하는 것 외에, AutoGPT나 BabyAGI 등과 같은 '에이전트(Agent)'라는 차세대 AI 애플리케이션을 시도하고 있습니다. 이 서베이 논문은 AI Agent 분야에서 이뤄지고 있는 여러가지 발전들을 살펴보고자 하며, 특히 AI 에이전트들이 어떻게 주어진 목표를 이루기 위해 추론(Reasoning)하고 계획을 수립(Planning)하며, 적절한 도구를 선택하여 사용(Tool Calling)하는지에 초점을 맞추고 있습니다.

LLM이 별도의 추가 입력 없이, 사용자로부터 입력받은 텍스트만을 사용하여 결과를 출력하는 Zero-shot Prompt와 달리, 에이전트는 보다 복잡한 상호 작용과 자동화된 구성 및 관리(Orchestration)가 가능합니다. 특히, 에이전트 시스템에는 계획(planning), 반복(loops), 반영(reflection)을 비롯한 다양한 제어 구조들(other control structures)이라는 개념을 통해 모델의 고유한 추론 기능을 크게 활용할 수 있습니다. 특히, 도구나 플러그인, 함수 호출과 같은 기능을 통해 단순히 사용자에게 텍스트 응답을 제공하는 것이 아니라 직접 동작을 통해 결과를 제공하는 End-to-End 시스템의 구축을 가능하게 합니다.

개방형 텍스트 필드에 입력하면 추가 입력 없이 결과를 얻는 대규모 언어 모델의 제로 샷 프롬프트와 달리 에이전트를 사용하면 보다 복잡한 상호 작용과 오케스트레이션이 가능합니다. 특히 에이전트 시스템에는 계획, 루프, 반영 및 기타 제어 구조라는 개념이 있어 모델의 고유한 추론 기능을 크게 활용하여 엔드투엔드 작업을 수행할 수 있습니다. 도구, 플러그인 및 함수 호출을 사용할 수 있는 기능과 함께 상담원은 보다 범용적인 작업을 수행할 수 있는 역량을 갖추게 됩니다.

이렇한 에이전트 시스템에는 크게 단일 에이전트(Single Agnet) 구조와 다중 에이전트(Multi Agent) 구조가 있으며, 어떠한 구조가 복잡한 작업을 해결하는데 적합한지에 대해서는 아직 연구가 진행 중입니다. 일반적으로 문제가 잘 정의되어 있고 사용자의 피드백이 필요하지 않은 경우에는 단일 에이전트 구조로도 우수한 성능을 낼 수 있지만, 협업과 여러 가지 실행 경로가 필요한 경우에는 멀티 에이전트 구조가 더 효과적이라는 시각이 있습니다.

주요 개념 및 용어

먼저, AI 에이전트 구조(AI Agent Architecture)를 이해하고 설계하는데 있어 필요한 주요한 개념들을 알아보겠습니다. 각각의 용어와 개념에 대한 이해를 바탕으로, 이 서베이 논문이 다루고 있는 다양한 에이전트 구현 사례와 설계 선택의 영향을 더 깊이 있게 파악할 수 있을 것입니다:

  • AI 에이전트(Agent): 목표를 달성하기 위해 여러 번에 걸쳐 반복적으로 계획을 세우고 행동을 취할 수 있는 언어 모델(LM, Language Model) 기반의 개체를 말합니다. 이 때, 각각의 에이전트는 서로 다른 역할을 수행하도록 별도의 페르소나(Persona)가 주어집니다. 이 페르소나는 일종의 역할(role)과 같은 것으로, 에이전트에 대한 설명을 비롯하여 접근 가능한 도구들을 정의하는 역할 등을 포함하고 있습니다.
  • 단일 에이전트 아키텍처(Single-Agent Architecture): 하나의 언어 모델이 모든 추론(reasoning), 계획(planning), 실행(execution)을 담당하는 구조를 말합니다. 이 경우, 에이전트는 다른 에이전트와의 상호작용 없이 독립적으로 작업을 수행합니다.

  • 다중 에이전트 아키텍처(Multi-Agent Architecture): 두 개 이상의 에이전트가 협업하여 작업을 수행하는 구조를 말합니다. 각 에이전트는 고유한 페르소나를 가지며, 동일하거나 서로 다른 언어 모델과 도구를 사용할 수 있습니다. 다중 에이전트 시스템은 다시 수직형(Vertical)과 수평형(Horizontal)으로 나눌 수 있습니다.

    • 수직형 아키텍처(Vertical Architecture): 하나의 리드 에이전트(Lead Agent)가 다른 에이전트들을 관리하고 지시하는 구조입니다. 이 경우, 주도 에이전트를 중심으로 의사소통이 이루어집니다.

    • 수평형 아키텍처(Horizontal Architecture): 모든 에이전트가 동등한 지위를 가지며, 그룹 토론을 통해 정보를 공유하고 협업하는 구조입니다.

  • 추론(Reasoning): 에이전트가 주어진 정보를 바탕으로 논리적인 결론을 도출하거나 문제를 해결하는 과정을 말합니다. 이는 에이전트가 복잡한 상황을 이해하고 적절한 행동을 선택하는 데 필수적인 능력입니다.

  • 계획 수립(Planning): 에이전트가 목표를 달성하기 위해 일련의 행동을 순서대로 정리하는 과정을 말합니다. 이는 문제를 더 작은 하위 문제로 분해하고, 각 단계에서 필요한 행동을 결정하는 것을 포함합니다.

  • 도구 사용(Tool Use): 에이전트가 외부 데이터 소스, API, 기능 등과 상호작용할 수 있는 능력을 말합니다. 도구 사용을 통해 에이전트는 더 많은 정보를 수집하고 활용할 수 있으며, 실제 환경에 변화를 일으킬 수 있습니다.

  • 언어 모델(Language Model, LM): 자연어 데이터를 기반으로 학습된 AI 모델로, 인간의 언어 사용 패턴을 모방할 수 있습니다. 언어 모델은 텍스트 생성, 질의응답, 번역 등 다양한 자연어 처리(NLP, Natural Language Processing) 작업에 활용됩니다. 대표적인 언어 모델로는 GPT(Generative Pre-trained Transformer) 시리즈, BERT(Bidirectional Encoder Representations from Transformers) 등이 있습니다.

  • 강화 학습(Reinforcement Learning, RL): 에이전트가 환경과 상호작용하면서 시행착오를 통해 학습하는 방법입니다. 에이전트는 행동(action)을 선택하고, 그에 따른 보상(reward)을 받습니다. 이 과정을 반복하면서 에이전트는 장기적인 관점에서 최적의 행동 정책(policy)을 학습하게 됩니다. 강화 학습은 게임 플레이, 로봇 제어 등 다양한 분야에서 활용되고 있습니다.

  • 벤치마크(Benchmark): AI 모델이나 에이전트의 성능을 평가하기 위한 표준화된 테스트 또는 데이터셋을 말합니다. 벤치마크를 통해 서로 다른 모델 간의 성능을 객관적으로 비교할 수 있으며, 연구의 발전 방향을 제시할 수 있습니다. 대표적인 벤치마크로는 ImageNet(이미지 분류), SQuAD(질의응답), GLUE(자연어 이해) 등이 있습니다.

효과적인 에이전트를 위한 주요 고려사항

에이전트가 실제 문제를 효과적으로 해결하기 위해서는 추론(reasoning), 계획 수립(planning), 그리고 도구 사용(tool use) 능력이 필수적입니다. 이 장에서는 각각의 능력이 왜 중요한지, 그리고 어떤 방식으로 구현될 수 있는지 살펴보겠습니다.

추론과 계획 수립의 중요성

추론은 인간의 인지 능력 중 가장 기본적이면서도 핵심적인 부분입니다. 우리는 추론을 통해 문제를 해결하고, 의사결정을 내리며, 주변 세계를 이해합니다. AI 에이전트 역시 복잡한 환경과 상호작용하고, 자율적인 의사결정을 내리며, 다양한 작업을 수행하기 위해서는 강력한 추론 능력이 필요합니다.

특히, 에이전트는 환경으로부터 피드백을 받거나 새로운 정보를 습득했을 때, 이를 바탕으로 기존의 계획을 수정할 수 있어야 합니다. 이를 위해서는 유연한 추론 능력이 뒷받침되어야 합니다. 만약 에이전트가 단순히 정해진 규칙에 따라 행동한다면, 예상치 못한 상황에 제대로 대처하기 어려울 것입니다.

계획 수립은 추론 능력과 밀접히 연관되어 있습니다. 에이전트는 주어진 목표를 달성하기 위해 효과적인 행동 시퀀스를 생성해야 하는데, 이는 복잡한 추론 과정을 필요로 합니다. 일반적으로 계획 수립 과정은 아래 나열된 다섯 가지 접근 방식 중 하나 이상을 활용합니다:

  1. 작업 분해(Task Decomposition): 주어진 문제를 더 작고 다루기 쉬운 하위 문제로 나누는 방법입니다. 에이전트는 각 하위 문제를 순차적으로 해결함으로써 전체 목표에 도달할 수 있습니다.

  2. 다중 계획 선택(Multi-Plan Selection): 에이전트가 여러 개의 대안적인 계획을 생성한 뒤, 그 중 가장 적합한 계획을 선택하는 방법입니다. 이를 통해 에이전트는 다양한 가능성을 고려하고, 상황에 맞는 최적의 계획을 수립할 수 있습니다.

  3. 외부 모듈 기반 계획 수립(External Module-Aided Planning): 에이전트가 미리 정의된 외부 모듈이나 알고리즘을 활용하여 계획을 생성하는 방법입니다. 이는 복잡한 계획 수립 과정을 단순화할 수 있지만, 모듈의 성능과 범용성에 크게 의존하게 됩니다.

  4. 반영과 개선(Reflection and Refinement): 에이전트가 수립한 계획을 실행하면서 얻은 경험과 피드백을 바탕으로 계획을 지속적으로 개선하는 방법입니다. 이는 에이전트가 환경의 변화에 적응하고, 더 나은 성능을 달성하는 데 도움이 됩니다.

  5. 메모리 증강 계획 수립(Memory-Augmented Planning): 에이전트가 과거의 경험이나 지식을 활용하여 계획을 수립하는 방법입니다. 이를 위해서는 에이전트가 중요한 정보를 효과적으로 저장하고 검색할 수 있는 메모리 메커니즘을 갖추어야 합니다.

대부분의 에이전트 패턴에는 이러한 기술 중 하나 이상을 호출하여 행동을 실행하기 전에 계획을 세우는 전용 계획 단계가 포함되어 있습니다. 예를 들어, PLaG(Plan Like a Graph)는 계획을 방향성 그래프로 표현하고 여러 단계를 병렬로 실행하는 접근 방식입니다. PLaG는 많은 독립적인 하위 작업이 포함되어 있고 비동기 실행의 이점을 누릴 수 있는 작업에서 다른 방법에 비해 상당한 성능 향상을 제공할 수 있습니다.

효과적인 도구 사용의 중요성

에이전트가 실제 환경에서 작업을 수행하기 위해서는 다양한 도구를 활용할 수 있어야 합니다. 여기서 도구란 에이전트가 호출할 수 있는 모든 종류의 함수나 API를 의미합니다. 도구를 사용함으로써 에이전트는 외부 데이터 소스와 상호작용하고, 필요한 정보를 수집하거나 환경에 변화를 일으킬 수 있습니다.

광범위한 도구 사용이 필요한 문제는 흔히 복잡한 추론을 요구하는 문제이기도 합니다. 따라서 효과적인 도구 사용을 위해서는 앞서 언급한 추론 및 계획 수립 능력이 선행되어야 합니다. 에이전트는 주어진 문제를 해결하기 위해 어떤 도구를 사용해야 하는지 판단하고, 도구 사용의 순서와 방법을 계획해야 합니다.

단일 에이전트와 다중 에이전트 아키텍처 모두 추론 및 도구 호출 단계를 사용하여 어려운 작업을 해결할 수 있습니다. 많은 방법들이 큰 문제를 더 작은 하위 문제로 분해한 다음 적절한 도구를 사용하여 각 하위 문제를 순차적으로 해결하는 등 작업을 정확하게 완료하기 위해 추론, 메모리, 반영의 여러 반복을 사용합니다. 그러나 일부 연구에 따르면 이러한 긴 시퀀스를 완료하는 데 있어 단일 에이전트 패턴은 종종 어려움을 겪는다고 합니다.

이러한 문제는 다중 에이전트 패턴을 통해 해결될 수 있습니다. 다중 에이전트 패턴에서는 개별 에이전트가 병렬로 하위 작업을 수행할 수 있기 때문입니다. 많은 다중 에이전트 패턴이 복잡한 문제를 여러 개의 작은 작업으로 분해하는 것으로 시작합니다. 그런 다음 각 에이전트는 자체 도구 세트를 사용하여 독립적으로 각 작업을 해결합니다.

도구 사용의 효과를 극대화하기 위해서는 에이전트가 수행할 작업과 관련된 적절한 도구 세트를 제공하는 것이 중요합니다. 예를 들어, 웹 검색을 수행하는 에이전트에게는 검색 엔진 API를 호출할 수 있는 도구가 필요한 반면, 이미지 분류를 수행하는 에이전트에게는 이미지 처리 라이브러리를 활용할 수 있는 도구가 제공되어야 합니다.

또한, 에이전트가 도구를 사용하는 과정에서 발생할 수 있는 오류나 예외 상황을 적절히 처리할 수 있어야 합니다. 이를 위해서는 에이전트가 도구 사용의 결과를 모니터링하고, 필요한 경우 대안적인 행동을 취할 수 있는 유연성을 갖추어야 합니다.

단일 에이전트 아키텍처 (Single Agent Architecture)

단일 에이전트 아키텍처는 하나의 언어 모델이 추론, 계획 수립, 도구 사용 등 모든 작업을 독립적으로 수행하는 구조를 말합니다. 이러한 단일 에이전트 구조는 작업이 잘 정의되어 있고 다른 에이전트 페르소나나 사용자로부터의 피드백이 필요하지 않을 때 유용하게 동작합니다. 단일 에이전트 시스템의 주요 장점은 하나의 도구 세트와 정의된 범위만 필요로 하기 때문에 시스템의 운영 및 유지 관리의 복잡성을 줄일 수 있다는 것입니다.

단일 에이전트 아키텍처에서 에이전트의 성공적인 목표 달성은 적절한 계획 수립과 자기 수정 능력에 크게 의존합니다. 만약 에이전트가 스스로를 평가하고 효과적인 계획을 세우는 능력이 부족하다면, 작업 수행 과정에서 무한 루프에 빠지거나 사용자의 기대에 미치지 못하는 결과를 생성할 수 있습니다.

단일 에이전트 아키텍처는 특히 명확하게 정의된 도구 집합을 사용하고 프로세스가 잘 정의된 작업에 유용합니다. 이러한 경우 에이전트는 다른 에이전트의 피드백 없이도 효과적으로 작업을 완료할 수 있습니다. 논문에 소개된 단일 에이전트 아키텍처들의 예시로는 ReAct, RAISE, Reflexion, AutoGPT+P, LATS이며, 아래와 같이 정리하였습니다. (:pytorch::kr:: 이해를 돕기 위해 논문에 소개된 내용들 외, 다른 내용들도 일부 추가하여 정리하였습니다.)

단일 에이전트 구조의 예: ReAct(Reason + Act)

ReAct(Reason + Act) 는 "이성적으로 사고한 다음 행동한다(Reason + Act)"는 컨셉의 방식으로, AI 에이전트가 작업에 대해 무엇인가를 수행하기 전, 먼저 '생각'을 하고 그 다음에 '행동'하도록 설계한 구조입니다. ReAct 방식에서 에이전트는 먼저 주어진 작업에 대한 '생각(thought)'을 기록하고, 기록한 '생각'을 바탕으로 행동을 수행하고, 그 결과를 관찰합니다. 이후 이러한 단계들을 문제를 해결할 때까지 여러번 반복하는 것이 특징으로, 관찰을 통해 생성된 피드백을 바탕으로 에이전트가 접근 방식을 미세조정할 수 있도록 합니다.

예를 들어, 사용자가 AI 에이전트에게 "5월 15일에 뉴욕에서 열리는 콘서트 티켓을 예매해줘"라는 요청을 하는 상황을 가정해보겠습니다. ReAct 방식을 적용한 AI 에이전트는 "콘서트 티켓 예매를 위해서는 날짜, 장소, 공연자 정보가 필요하다"라는 추론을 하고 이 생각을 기록합니다. 그 뒤, 이렇게 기록된 생각을 바탕으로, 에이전트는 사용자에게 "공연자가 누구인지 알려주시겠어요?"라고 질문하는 행동을 취합니다. 이러한 질문에 대해 사용자가 "테일러 스위프트"라고 답하면, 에이전트는 이를 관찰하고 "테일러 스위프트의 콘서트 티켓을 예매하기 위해서는 티켓 판매 사이트에 접속해야 한다"라는 추론을 추가로 한 뒤, 이러한 생각을 추가로 기록해둡니다. 그러한 다음, 이 생각을 행동으로 옮기기 위해 AI 에이전트는 티켓 판매 사이트에 접속하여 티켓을 예매하는 행동을 취합니다. 이러한 과정을 거쳐 예매가 완료되면, 에이전트는 "티켓 예매가 성공적으로 완료되었다"라는 최종 결과를 사용자에게 알리는 방식입니다.

즉, ReAct는 문제 이해부터 해결까지의 투명하고 추적 가능한 경로를 제공하고, 반복적으로 실행하며 문제 해결 과정을 통합하는 것이 특징입니다. 이를 통해 에이전트가 생각하고 동작하는 방식이 모두 문서화가 가능하기 때문에, 사용자는 이를 통해 상호운용성과 신뢰성을 향상시킬 수 있다는 장점이 있습니다.

결과적으로 ReAct 방식을 다양한 언어 이해 및 의사 결정 작업에 적용한 결과, 제로샷 프롬프팅에 비해 향상된 성능을 보였지만, 방식은 에이전트가 반복적으로 동일한 생각과 행동을 생성하여 작업을 완료하지 못하고 루프에 빠질 수 있다는 한계가 있습니다.

:pytorch::kr: ReAct 방식에 대한 더 자세한 설명은 다음 링크들을 참고해주세요:

단일 에이전트 구조의 예: RAISE

RAISE 방식은 ReAct를 기반으로 하면서 인간의 단기 및 장기 기억과 유사한 메모리 구성 요소를 추가한 방식입니다. AI 에이전트는 이렇게 추가한 메모리 구성 요소에 작업과 관련한 정보를 저장하고 검색할 수 있으며, 이를 통해 더 긴 상호작용 또는 더 복잡한 작업에서의 문맥을 유지할 수 있도록 합니다.

먼저 단기 저장을 위한 공간은 일종의 메모장(스크래치패드, Scratchpad)과 같이 사용하며 최근의 작업과 관련한 내용들을 저장(Working Memory)하고, 장기 저장을 위한 공간에는 이전에 진행했던 유사한 사례들에 대한 데이터셋을 저장(Example Pool)하고 사용합니다.

예를 들어, 사용자가 AI 에이전트에게 "주요 프로젝트 데드라인에 맞춰 업무 일정을 재조정하라"는 요청하는 상황을 가정해보겠습니다. RAISE 방식을 적용한 AI 에이전트는 과거에 비슷한 프로젝트를 관리한 경험에서 얻은 데이터를 장기 메모리(Example Pool)에서 불러옵니다. 이를 기반으로 각 팀원의 업무 부담을 분석하고, 재조정된 일정을 제안합니다. 이러한 문제 과정을 다음과 같이 정리할 수 있습니다:

  • 기억 호출: 이전에 성공적으로 완료된 프로젝트 관리 데이터를 장기 메모리에서 검색합니다.
  • 전략 수립: 과거 데이터와 현재 프로젝트 요구 사항을 비교 분석하여 최적의 일정 조정 방안을 마련합니다.
  • 피드백 반영: 일정 조정안을 팀원들에게 제시하고 받은 피드백을 반영하여 최종 일정을 확정합니다.

이러한 과정을 통해 RAISE 방식은 ReAct 방식에 비해 효율성과 결과의 품질을 향상시킬 수 있었습니다. 또한, AI 에이전트에 사용하는 LLM을 파인튜닝하면 더 작은 모델을 사용하더라도 최상의 성능을 얻을 수 있음을 보여주었습니다. 그러나 RAISE는 여전히 복잡한 논리를 이해하는 데 어려움을 겪으며, 에이전트가 자신의 역할이나 지식에 대해 환각을 일으키는 문제가 있었습니다.

:pytorch::kr: RAISE 방식에 대한 더 자세한 설명은 다음 링크들을 참고해주세요:

단일 에이전트 구조의 예: Reflexion

Reflexion은 언어적 피드백을 통한 자기 성찰(self-reflection)을 사용하는 단일 에이전트 패턴입니다. 이 방식은 AI 에이전트가 스스로의 성능을 평가하고, 피드백을 생성한 뒤, 이에 따라 행동을 조정할 수 있도록 설계된 것이 특징입니다. Reflexion 방식의 AI 에이전트는 작업 수행 중 스스로의 행동과 이에 따른 결과를 모니터링합니다. 이렇게 모니터링한 결과는 LLM 기반의 평가자(Evaluator)에게 전달되어 AI 에이전트에게 구체적이고 관련성있는 피드백을 제공합니다.

예를 들어, 고객 서비스를 담당하는 Reflexion 방식의 AI 에이전트가 고객의 불만을 처리하는 상황을 상상해 보겠습니다. Reflexion 방식을 사용하는 에이전트는 먼저 고객의 문제를 듣고, 자신의 데이터베이스에서 유사한 문제에 대한 성공적인 해결 사례를 검토합니다. 그 후, 이를 바탕으로 문제 해결 방안을 제안하고, 실행 후 반응을 평가하여 필요에 따라 계속 조정합니다. 이러한 문제 해결 과정을 정리하면 다음과 같습니다:

  • 문제 이해: 고객의 문제를 정확하게 파악하고, 이에 대한 초기 반응을 형성합니다.
  • 성공 사례 검토: 과거 유사한 문제를 해결한 경험을 데이터베이스에서 조회하여 현재 문제에 적용 가능한 해결 방안을 찾습니다.
  • 솔루션 조정 및 평가: 제안된 해결책을 실행한 후 고객의 반응을 관찰하고, 그에 따라 솔루션을 미세 조정합니다.

이렇듯, Reflexion 방식은 LLM 평가자가 에이전트에게 구체적이고 관련성 있는 피드백을 제공하는 방식을 적용하여 작업 수행 중 발생하는 실수를 인지하고 수정할 수 있습니다. 이를 통해 작업 수행의 성공률이 높아지고 ReAct 및 사고의 연쇄(CoT, Chain-of-Thought) 방식에 비해 환각이 감소했습니다. 그러나 Reflexion은 최적화되지 않은 국소 최소 솔루션(non-optimal local minima solutions)에 취약하며, 평가자로 사용하는 언어 모델의 토큰 길이(Context-Length) 한계로 인해 장기 기억의 용량이 제한될 수 있어 확장된 상호작용에서의 효과가 제한될 수 있는 한계가 있습니다.

:pytorch::kr: Reflexion 방식에 대한 더 자세한 설명은 다음 링크들을 참고해주세요:

단일 에이전트 구조의 예: AutoGPT+P(Planning)

AutoGPT+P(Planning) 는 기존의 AutoGPT 방식에 계획(Planning) 기능을 추가하여 자연어를 이해하고 로봇 작업을 수행하는 AI 에이전트의 능력을 강화한 방식입니다. 이러한 방식은 목표 탐색, 대안 제안, 또는 사용자 도움 요청과 같은 기능을 통합하여 에이전트가 자신의 목표를 효과적으로 달성할 수 있도록 합니다.

즉, 자연어로 로봇을 제어하는 에이전트의 추론 한계를 해결하기 위해 객체 감지(Object Detection) 및 객체 어포던스 매핑(OAM, Object Affordance Mapping)을 LLM 기반 계획 시스템과 결합시킵니다. 이를 통해 에이전트는 누락된 객체를 찾기 위해 환경을 탐색하고 대안을 제안하거나 사용자에게 도움을 요청할 수 있습니다.

예를 들어, 로봇이 특정 물체를 찾아야 하는 작업이 주어진 상황을 예시로 생각해보겠습니다. AutoGPT+P를 사용하는 에이전트는 먼저 환경 내에서 객체를 감지하고, 해당 객체에 대한 정보를 바탕으로 적합한 도구를 선택합니다. 이후, 계획 도구(Plan Tool), 부분 계획 도구(Partial Plan Tool), 대안 제안 도구(Suggest Alternative Tool), 탐색 도구(Explore Tool) 중 하나를 사용하여 작업을 완수합니다. 이러한 문제 해결 과정에서의 주요 단계는 다음과 같습니다:

  • 객체 감지: 에이전트는 주변 환경을 분석하여 필요한 객체를 찾습니다.
  • 도구 선택: 감지된 객체를 바탕으로 에이전트는 가장 적합한 도구를 선택합니다.
  • 계획 실행: 선택된 도구를 사용하여 구체적인 작업 계획을 수립하고 실행합니다.

또한, 언어 모델만을 독자적으로 사용하여 계획을 생성하지 않고, 계획 도메인 정의 언어(PDDL, Planning Domain Definition Language)를 도입하였습니다. PDDL은 문제 영역에 대한 도메인 정의(Domain Definition)와 해당 도메인의 개별 문제에 대한 구체적인 정보를 제공하는 문제 인스턴스(Problem Instance)를 정의합니다. 이를 통해 AutoGPT+P는 복잡한 작업에 대한 자연어 기반의 지시를 작업 계획으로 번역하여 AI 에이전트가 잘 동작할 수 있게 합니다.

하지만 도구 선택의 정확성이 상황에 따라 다를 수 있으며, AI 에이전트가 작업 수행 중 루프에 빠지거나, 비효율적인 탐색을 수행할 수 있다는 문제점이 있습니다.

:pytorch::kr: AutoGPT+P 방식에 대한 더 자세한 설명은 다음 링크들을 참고해주세요:

단일 에이전트 구조의 예: LATS(Language Agent Tree Search)

LATS(Language Agent Tree Search, 언어 에이전트 트리 탐색) 는 계획 수립 및 행동, 추론을 통합하는 트리(Tree) 검색 기법을 적용한 것이 특징인 단일 에이전트 동작 방식으로 몬테카를로 트리 검색(MCTS, Monte Carlo Tree Search)로부터 영감을 받았습니다. 몬테카를로 트리 검색(MCTS) 기법은 복잡한 의사결정 과정을 최적화하기 위해 사용하는 알고리즘 중 하나로, 무작위 샘플링과 통계적 추론을 결합하여 통계적 탐색을 수행하여 가능한 선택들을 효율적으로 평가하여 최적의 결정을 진행합니다.

LATS는 에이전트의 상태를 노드로, 에이전트의 행동을 노드간 이동으로 표현함으로써 다양한 선택들을 효과적으로 평가하고 최적의 행동을 결정하는 것을 목표로 합니다. 즉, 트리 검색 방식을 사용해 언어 모델의 결정 과정을 최적화하여 복잡한 대화나 문제 해결 시 보다 효율적이고 정교하게 동작할 수 있게 합니다.

예를 들어, LATS 방식으로 동작하는 AI 에이전트에게 "한국의 수도는 어디인가요?"라는 질문이 주어졌다고 가정해보겠습니다. 이 때 AI 에이전트는 주어진 질문을 루트 노드로 하는 탐색 트리를 생성하게 됩니다. 여기에 언어 모델을 사용하여 가능한 답변 후보들(예: 서울, 평양, 부산 등)을 생성하고, 각 후보를 탐색 트리의 자식 노드로 추가합니다. 그 뒤, AI 에이전트는 각 후보 노드에 대해 언어 모델을 사용하여 해당 답변의 타당성을 평가하는 휴리스틱 점수를 계산합니다. 이러한 과정을 통해 휴리스틱 점수가 가장 높은 노드(예: 서울)를 선택하고, 해당 노드에서 다음 단계의 탐색을 수행합니다. 이렇게 노드들을 이동하며 선택된 노드가 충분한 정보를 포함하고 있다고 판단되면, 에이전트는 해당 노드를 최종 답변으로 제시합니다. 만약 이렇게 선택된 노드가 불충분한 정보를 포함하고 있다면, 에이전트는 추가적인 정보를 수집하기 위해 탐색을 계속합니다.

LATS는 복잡한 태스크를 해결할 때 높은 성능을 보이지만, 알고리즘의 복잡성과 반영구적인 단계로 인해 상대적으로 더 많은 연산 자원과 시간이 소요됩니다. 또한, 간단한 질문 응답 벤치마크에서는 검증되었지만, 도구 호출이나 복잡한 추론을 포함하는 더 견고한 시나리오에서의 테스트는 아직 부족하다는 평가가 있습니다.

:pytorch::kr: LATS 방식에 대한 더 자세한 설명은 다음 링크들을 참고해주세요:

단일 에이전트 아키텍처 정리

이러한 단일 에이전트 아키텍처들은 각자의 고유한 접근 방식으로 에이전트의 추론, 계획 수립, 그리고 실행 능력을 향상시키고자 합니다. 다음과 같이 정리해볼 수 있습니다:

  • ReAct는 사고 과정을 명시적으로 모델링하고 행동과 밀접하게 연계하는 것에 중점을 둡니다.
  • RAISE는 인간의 기억 구조를 모방하여 에이전트가 장기적인 맥락을 유지할 수 있도록 합니다.
  • Reflexion은 언어적 피드백을 활용한 자기 반영을 통해 에이전트가 스스로의 행동을 개선할 수 있게 합니다.
  • AutoGPT+P는 자연어 인터페이스와 객체 감지, 어포던스 매핑(OAM)을 활용하여 에이전트의 자율성을 높이고자 합니다.
  • LATS는 트리 탐색과 언어 모델을 결합하여 효과적인 추론과 계획 수립을 가능케 합니다.

그러나 이들 아키텍처는 여전히 한계를 가지고 있습니다. 복잡한 질문에 대한 이해, 장기적인 맥락(Context) 유지, 최적화되지 않은 솔루션 등의 문제는 앞으로 해결해야 할 과제로 남아 있습니다. 또한, 실제 환경에서의 적용 가능성과 확장성을 입증하기 위해서는 더 다양한 태스크와 도메인에서의 검증이 필요할 것입니다.

향후 연구에서는 이러한 단일 에이전트 아키텍처들의 장점을 결합하고 단점을 보완하는 방향으로 나아갈 것으로 예상됩니다. 예를 들어, ReAct의 명시적 사고 모델링과 RAISE의 메모리 메커니즘을 접목하거나, Reflexion의 자기 반영 기법을 AutoGPT+P의 로봇 제어에 적용하는 등의 시도가 이루어질 수 있을 것입니다. 또한, 강화 학습, 그래프 뉴럴 네트워크, 인과 추론 등 다른 AI 기술과의 융합을 통해 에이전트의 능력을 한 단계 더 발전시키는 것도 중요한 연구 방향이 될 것입니다.

다중 에이전트 아키텍처 (Multi Agent Architecture)

다중 에이전트 아키텍처는 둘 이상의 에이전트가 협력하여 복잡한 태스크를 수행하는 패러다임으로, AI 에이전트들 간의 역할 분담과 다양한 관점에서의 피드백을 통해 복잡한 문제를 효과적으로 해결할 수 있는 가능성을 제시합니다. 많은 다중 에이전트 아키텍처에서, 여러 에이전트들의 모임(Teams of Agents)은 계획 수립, 실행, 평가의 각 단계에 맞춰 동적으로 생성 및 재구성(reorganize)됩니다. 이러한 역동적인 팀 구성은 특정한 작업을 그에 적합한 에이전트를 할당하고, 불필요한 에이전트를 제거함으로써 전체 시스템의 효율성을 높일 수 있습니다.

효과적인 다중 에이전트 아키텍처의 핵심 요소로는 명확한 리더십, 동적인 팀 구성, 그리고 팀 구성원 간의 효과적인 정보 공유 등이 있습니다. 이를 통해 에이전트들은 각자의 전문성을 살리면서도 전체 목표 달성을 위해 유기적으로 협력할 수 있게 됩니다. 논문에 소개된 이러한 다중 에이전트 아키텍처들의 예시로는 Embodied LLM 에이전트들의 조직화된 팀 협력 학습, DyLAN, AgentVerse, MetaGPT이 있으며, 아래와 같이 정리하였습니다. (:pytorch::kr:: 이해를 돕기 위해 논문에 소개된 내용들 외, 다른 내용들도 일부 추가하여 정리하였습니다.)

다중 에이전트 구조의 예: 실체화된 LLM 에이전트들의 조직화된 팀 협력 학습 (Embodied LLM Agents Learn to Cooperate in Organized Teams)

실체화된 LLM 에이전트들의 조직화된 팀 협력 학습(Embodied LLM Agents Learn to Cooperate in Organized Teams) 논문은 에이전트 팀의 리더가 전체 팀 성능에 미치는 영향을 연구한 사례입니다. 즉, 시뮬레이션 및 물리적 환경 내에서 효과적으로 의사소통하고 협력할 수 있는 에이전트 팀을 생성하기 위해 대규모 언어 모델(LLM)을 활용하는 새로운 접근 방식에 대해 연구한 것입니다. 그 결과, 이 연구가 제안하는 프레임워크는 LLM 에이전트가 지시에 과도하게 응답하고 준수하는 경향을 해결하는 방향으로 설계되었으며, 이는 다중 에이전트 협력에서 혼란과 중복을 초래할 수 있습니다.

논문에서는 리더 에이전트를 통한 수직적 구조와 에이전트 간 자유로운 의사소통을 허용하는 수평적 구조를 비교하는 연구를 진행하였습니다. 그 결과에 따르면, 리더가 있는 에이전트 팀이 리더가 없는 팀에 비해 작업 완료 속도가 약 10% 빨랐던 것으로 나타났습니다. 이러한 결과는 리더의 존재가 팀원들이 정보 교환과 협력에 더 집중할 수 있도록 해주기 때문인 것으로 분석됩니다. 리더가 없는 팀에서는 에이전트들이 대부분의 시간을 서로에게 지시를 내리는 데 할애했던 반면(전체 의사소통의 약 50%), 리더가 있는 팀에서는 리더가 지시를 내리는 데 60%의 의사소통을 사용하여 다른 팀원들이 정보 교환과 안내 요청에 더 집중할 수 있었습니다.

이러한 구조 하에서 에이전트는 효율적이고 목적 있는 정보 교환을 보장하기 위해 메시지를 방송하거나 특정 수신자를 선택하거나 침묵을 선택하는 구조화된 의사소통 단계에서 운영됩니다. 이 구조화된 접근 방식은 통신의 중복 문제를 완화하고 에이전트 행동을 집단 목표와 더 밀접하게 조정하는 데 도움이 됩니다. 이 아키텍처의 주요 구성 모듈은 다음과 같습니다:

  • 구성 모듈(Configurator Module): 각 에이전트의 초기 조건과 역할을 설정합니다.
  • 인식 모듈(Perception Module): 환경 관찰을 텍스트로 변환합니다.
  • 메모리 모듈(Memory Module): 역사적 데이터를 저장하고 검색하여 결정을 정보화합니다.
  • 실행 모듈(Execution Module): 팀이 결정한 행동을 수행합니다.

그 외, 이 연구에서는 비판(critic)과 조정(coordinate) 역할을 갖는 에이전트를 추가하여 '비판-반영(Critic-Reflect) 프로세스'를 추가한 것이 주요 특징입니다. LLM 비판자는 팀 상호작용에서 발생하는 대화와 행동을 통해 팀의 성능을 평가하고 피드백을 제공하는 역할을 하고, LLM 조정자는 비판자의 피드백을 반영하여 팀 전반을 구성하는 프롬프트를 조정하여 전반적인 효율성과 효과를 높입니다.

결과적으로 리더십이 순환되는 동적 팀 구조를 가진 에이전트 그룹이 작업 완료 시간과 의사소통 비용 측면에서 가장 우수한 성능을 보였습니다. 이는 리더십과 역동적인 팀 구조가 에이전트 팀의 추론, 계획 수립, 효과적인 작업 수행 능력을 전반적으로 향상시킬 수 있음을 시사합니다.

:pytorch::kr: 실체화된 LLM 에이전트들의 조직화된 팀 협력 학습 연구에 대한 더 자세한 설명은 다음 링크들을 참고해주세요:

다중 에이전트 구조의 예: DyLAN (Dynamic LLM-Agent Network)

DyLAN(Dynamic LLM-Agent Network, 동적 LLM 에이전트 네트워크) 은 복잡한 작업 수행에 특화된 프레임워크로, 동적인 상황에 대응할 수 있는 LLM 기반의 다중 에이전트 네트워크입니다. 이 방식은 복잡한 문제를 해결하기 위해 여러 에이전트가 협력하면서도 각각의 역할을 동적으로 조정할 수 있도록 설계되었습니다. 에이전트들은 주어진 작업을 효율적으로 분담하고, 상황에 따라 역할을 변경할 수 있으며, 과제 수행 중에 발생하는 정보를 기반으로 지속적으로 학습하고 조정합니다.

DyLAN의 특징은 각 에이전트가 이전 라운드의 작업에서 얼마나 기여했는지를 평가하고, 평가 결과 상위에 랭크된 에이전트들만 다음 실행 라운드로 진행시킨다는 점입니다. 즉, 서로 정보를 공유할 수 있으면서 별도의 리더가 없는 수평적 특징을 갖는 네트워크에서 효율적인 에이전트들만 선택적으로 남겨 전체적인 성능을 높이고자 합니다. DyLAN은 arXiv나 PubMed와 같은 논문 데이터셋에서 필요한 정보를 추출하고 요약하는 작업과 SQL 쿼리 생성, 수학 문제 풀이, 프로그래밍과 같은 다양한 벤치마크에서 우수한 성능을 보였습니다. 특히, 산술 및 일반적인 추론 능력을 측정하는 벤치마크에서 기존 방법들을 능가하는 결과를 보여주었습니다. 이는 에이전트들의 기여도를 지속적으로 재평가하고 순위를 매김으로써 주어진 작업을 수행하는 데 더 적합한 에이전트 팀을 구성할 수 있음을 보여줍니다.

정리하면, DyLAN은 다음과 같은 방식으로 동작합니다.

  1. 주어진 태스크를 위한 초기 에이전트 그룹이 구성됩니다. 각 AI 에이전트들은 별도의 LLM을 사용하여 독립적으로 작업을 수행할 수도 있습니다.
  2. 각 AI 에이전트들은 다른 에이전트와 정보를 교환하고 협력하도록 하여, 유연성 및 문제 해결 능력을 향상시킵니다.
  3. 각 라운드 종료 시, 에이전트들의 기여도가 평가되고 상위 기여자만 다음 라운드에 참여합니다.
  4. 위 과정을 사용자가 지정한 작업을 완료될 때까지 반복됩니다.

하지만 이러한 장점에도 불구하고 DyLAN은 복잡한 시스템 구성과 에이전트 간의 조정이 필요하므로, 시스템의 초기 설정과 유지 관리에 상대적으로 많은 노력이 요구됩니다. 또한, 수평적으로 정보를 교환하므로 의사소통을 위한 오버헤드가 증가할 수 있으며, 에이전트의 기여도를 어떻게 평가하는지에 대한 정확한 지표가 필요합니다. 그 외에도 각 에이전트의 역할이 계속 변화하기 때문에 시스템 전체의 안정성을 확보하기 위한 추가적인 메커니즘이 필요할 수 있습니다.

:pytorch::kr: DyLAN 방식에 대한 더 자세한 설명은 다음 링크들을 참고해주세요:

다중 에이전트 구조의 예: AgentVerse

AgentVerse 는 각각의 AI 에이전트에게 명확한 역할을 부여하고, 임무 수행을 위한 단계별 계획을 제공하는 방식으로 추론 및 문제 해결 능력을 향상하는 다중 에이전트 아키텍처 방식 중 하나입니다. AgentVerse의 핵심은 각 에이전트의 역할이 명확히 정의되어 있다는 것과, 전체 팀의 효율성을 최대화하기 위해 서로 정보를 공유하며 구조화된 의사소통과 계획을 수립한다는 것에 있습니다. 이를 통해 각 에이전트의 역량을 최대한 활용하여 복잡한 문제를 효과적으로 해결할 수 있습니다.

AgentVerse는 작업 실행을 위해 모집(recruitment), 협업적 의사 결정(collaborative decision making), 독립적 행동 실행(independent action execution), 평가(evaluation)의 네 가지 주요 단계를 포함하고 있으며, 주어진 작업을 달성될 때까지 반복합니다. 각 단계를 명확하게 정의함으로써 AgentVerse는 에이전트 집단이 더 효과적으로 추론하고 토론하며 실행할 수 있도록 합니다. 예를 들어, 모집 단계에서는 목표 달성 진행 상황에 따라 에이전트를 제거하거나 추가할 수 있습니다. 이를 통해 문제 해결의 각 단계에 적합한 에이전트들이 참여할 수 있게 됩니다. 연구진은 수평적 팀 구조가 일반적으로 컨설팅과 같은 협업적 작업에 더 적합하고, 수직적 팀 구조는 도구 호출에 대한 책임을 명확하게 분리해야 하는 작업에 더 적합하다는 것을 발견했습니다.

AgentVerse의 동작 방식을 다음과 같이 정리해볼 수 있습니다:

  1. 태스크에 적합한 에이전트들이 모집됩니다.
  2. 에이전트들은 협업적 의사결정 과정을 통해 주어진 태스크를 더 작은 하위 태스크로 나누고, 이를 해결하기 위해 각자의 역할을 결정합니다.
  3. 에이전트들은 독립적으로 할당된 하위 태스크를 수행합니다.
  4. 하위 태스크 결과를 바탕으로, 에이전트들은 전체 결과를 평가하고 필요한 경우 추가 라운드를 진행합니다.

예를 들어, AgentVerse 방식을 적용한 에이전트 팀에 "신제품 마케팅 전략 수립"이라는 태스크를 해결하라는 지시를 내리는 경우, 다음과 같이 동작합니다. 1) 먼저 마케팅, 시장 조사, 디자인, 재무 등 관련 분야의 전문 에이전트들을 모집합니다. 이렇게 모집된 에이전트들은 회의를 통해 전략 수립을 위한 하위 태스크(시장 조사, 경쟁사 분석, 타겟 고객 선정, 마케팅 채널 결정, 예산 수립 등)를 도출하고, 각자의 역할을 분담합니다. 2) 각 에이전트들은 할당된 하위 태스크를 수행하고, 중간 결과를 공유하며 협업적 의사결정을 합니다. 이후 하위 태스크 결과를 바탕으로, 에이전트들은 통합 마케팅 전략을 수립합니다. 3) 이렇게 수립된 전략에 대해 에이전트들은 피드백을 제공하고, 필요한 경우 1)과 2) 단계를 수차례 반복하며 에이전트를 추가/삭제하는 과정을 거쳐 결과물을 수정하고 최종 전략을 완성합니다.

AgentVerse는 높은 수준의 조직화가 요구되며, 때때로 과도한 계획과 조정으로 인해 의사결정 과정에 오버헤드가 발생하고 문제 해결까지 시간이 지연될 수 있습니다. 또한, 모든 에이전트가 계획에 따라 정확히 작동하지 않을 경우 전체 시스템의 성능이 저하될 위험이 있습니다.

:pytorch::kr: AgentVerse 방식에 대한 더 자세한 설명은 다음 링크들을 참고해주세요:

다중 에이전트 구조의 예: MetaGPT

MetaGPT 는 다수의 AI 에이전트들이 서로 의사소통을 하며 공통의 문제를 해결할 수 있는 기능을 제공하는 다중 에이전트 아키텍처 방식입니다. 이 시스템은 에이전트들이 서로 의사소통을 하며, 구조화된 출력(예: 문서, 다이어그램)을 생성하여 공동의 목표를 달성하도록 지원합니다. 에이전트들은 특정 작업에 필요한 정보만을 공유하는 'Pub-Sub(publish-subscribe)' 메커니즘을 통해 효율적으로 정보를 교환할 수 있습니다. 분산 컴퓨팅 시스템에서 주로 사용하는 Pub-Sub 구조를 도입하여 모든 에이전트가 정보를 공유하지만, 자신의 목표와 작업에 관련한 정보만 선택적으로 읽을 수 있도록 하여 전체적인 목표 실행을 간소화하고 에이전트 간의 대화로 인한 잡음을 줄이는 데 도움이 됩니다.

MetaGPT의 동작 방식은 다음과 같습니다:

  1. 에이전트들은 공유된 메모리 공간을 통해 정보를 교환합니다.
  2. 각 에이전트는 구조화된 출력물(예: 문서, 다이어그램 등)을 생성하여 공유 메모리에 게시합니다.
  3. 에이전트들은 자신의 업무와 관련된 정보만 선택적으로 구독하여 읽습니다.
  4. 에이전트들은 구독한 정보를 바탕으로 자신의 태스크를 수행하고, 새로운 출력물을 생성하여 공유합니다.
  5. 위 과정은 전체 태스크가 완료될 때까지 반복됩니다.

이러한 MetaGPT 프레임워크는 에이전트들이 불필요한 정보 교환을 최소화하면서도 필요한 정보를 효과적으로 공유할 수 있는 능력에 있습니다. 이를 통해 전체 시스템의 효율성을 높이고, 각 에이전트의 작업 집중도를 향상시킬 수 있습니다. 그 결과, HumanEval 및 MBPP 벤치마크에서 MetaGPT의 다중 에이전트 아키텍처는 단일 에이전트 아키텍처에 비해 훨씬 우수한 결과를 보여주었습니다.

하지만 이러한 대화 능력은 작업 목표 달성과 직접적인 관련이 없는 불필요한 잡담으로 이어질 수 있다는 문제점이 있습니다. 또한, 고도의 정보 처리 및 필터링 능력을 요구하므로, 시스템 설계 및 구현이 복잡하고 고도의 기술적 지식을 필요로 합니다. 또한, 잘못된 정보 필터링은 임무 수행에 지장을 줄 수 있습니다.

:pytorch::kr: MetaGPT 방식에 대한 더 자세한 설명은 다음 링크들을 참고해주세요:

다중 에이전트 아키텍처 정리

지금까지 살펴본 다중 에이전트 아키텍처의 사례들은 에이전트 간 협업과 조직화를 통해 복잡한 문제를 보다 효과적으로 해결할 수 있도록 하는데 중점을 두고 있습니다. 특히, 단순히 에이전트 간 상호 작용이 증가한다고 해서 성능이 향상되는 것은 아니며, 오히려 체계적이고 효율적인 의사소통 구조와 역할 분담이 핵심임을 알 수 있습니다.

앞에서 살펴본 다중 에이전트 구조의 사례들을 정리해보면 다음과 같습니다:

  • "Embodied LLM Agents Learn to Cooperate in Organized Teams"은 리더의 존재와 역동적인 팀 구조가 에이전트 팀의 성능을 향상시킬 수 있음을 보여줍니다.
  • DyLAN은 에이전트의 기여도를 지속적으로 평가하고 상위 기여자로 팀을 구성하는 동적 네트워크 구조를 통해 효과적인 협업을 달성합니다.
  • AgentVerse는 모집, 협업적 의사 결정, 독립적 실행, 평가의 단계를 통해 구조화된 그룹 계획 수립 프로세스를 제안합니다.
  • MetaGPT는 구조화된 출력물 생성과 선택적 정보 공유를 통해 에이전트 간 효율적인 의사소통을 가능하게 합니다.

이러한 사례들은 명확한 역할 분담, 적응적인 팀 구성, 체계적인 의사 결정 프로세스 등이 다중 에이전트 시스템의 성능을 결정하는 중요한 요소임을 시사합니다. 또한, 에이전트 간 의사소통의 효율성을 높이기 위한 다양한 방법, 예를 들어 리더의 조정, 기여도 기반 팀 재구성, 구조화된 정보 공유 등이 제안되었습니다.

그러나 다중 에이전트 아키텍처 역시 한계점을 가지고 있습니다. 에이전트 간 조율에 드는 비용, 의사 결정의 복잡성 증가, 개별 에이전트의 자율성과 전체 목표 간의 균형 등은 해결해야 할 과제입니다. 또한, 에이전트 간 상호 작용이 증가할수록 예기치 않은 부작용이나 비효율성이 발생할 가능성도 있습니다.

다중 에이전트 아키텍처는 인공지능 기술의 실용화와 사회적 영향력 확대에 있어 중요한 역할을 할 것입니다. 협업과 조직화의 원리를 체계화하고 최적화하는 과정에서 얻어진 통찰은 인간 사회의 조직 운영에도 활용될 수 있을 것입니다. 앞으로 다중 에이전트 시스템의 발전이 가져올 변화와 혁신이 기대됩니다.

논의: 주요 발견 (Discussion: Key Finding)

단일 및 다중 에이전트 패턴 모두 추론과 도구 실행이 필요한 다양한 복잡한 작업에서 강력한 성능을 보여줍니다. 단일 에이전트 패턴은 정의된 페르소나와 도구 세트, 인간 피드백의 기회, 목표를 향해 반복적으로 작업할 수 있는 능력이 주어질 때 잘 작동합니다. 복잡한 목표에 대해 협업해야 하는 에이전트 팀을 구성할 때는 다음 중 하나 이상의 핵심 요소를 갖춘 에이전트를 배치하는 것이 유리합니다: 명확한 리더, 정의된 계획 단계와 새로운 정보를 학습함에 따라 계획을 개선할 수 있는 기회, 지능적인 메시지 필터링, 현재 하위 작업과 관련된 특정 기술을 보유한 동적 팀. 에이전트 아키텍처가 이러한 접근 방식 중 하나 이상을 채택한다면 단일 에이전트 아키텍처나 이러한 전술이 없는 다중 에이전트 아키텍처에 비해 성능 향상으로 이어질 가능성이 높습니다.

단일 에이전트와 다중 에이전트 아키텍처를 선택하는 일반적인 조건(Typical Conditions for Selecting a Single vs Multi-Agent Architecture)

앞서 살펴본 에이전트 패턴을 바탕으로, 단일 에이전트 패턴은 일반적으로 도구 목록이 좁게 정의되어 있고 프로세스가 명확한 작업에 적합하다는 것을 알 수 있습니다. 단일 에이전트는 하나의 에이전트와 도구 세트만 정의하면 되므로 구현도 일반적으로 더 쉽습니다. 또한 단일 에이전트 아키텍처는 다른 에이전트의 부정확한 피드백이나 관련 없는 잡담으로 인한 산만함 등의 제약을 받지 않습니다. 그러나 추론 및 개선 능력이 강건하지 않으면 실행 루프에 빠져 목표 달성에 진전을 이루지 못할 수 있습니다.

반면, 다중 에이전트 아키텍처는 작업 수행에 있어 다양한 페르소나의 피드백이 도움이 되는 경우에 적합합니다. 예를 들어, 문서 생성 작업에서는 한 에이전트가 다른 에이전트가 작성한 문서 섹션에 대해 명확한 피드백을 제공하는 다중 에이전트 아키텍처가 유용할 수 있습니다. 또한 다중 에이전트 시스템은 서로 다른 작업이나 워크플로우에 걸친 병렬 처리가 필요한 경우에도 유용합니다. 특히 Wang et al.의 연구에 따르면, 예시가 제공되지 않은 시나리오에서 다중 에이전트 패턴이 단일 에이전트보다 더 나은 성능을 보인다고 합니다. 다중 에이전트 시스템은 본질적으로 더 복잡하며 견고한 대화 관리와 명확한 리더십의 이점을 누릴 수 있습니다.

단일 및 다중 에이전트 패턴은 범위 면에서 서로 다른 능력을 가지고 있지만, 연구에 따르면 "에이전트에 제공되는 프롬프트가 충분히 강력하다면 다중 에이전트 토론이 반드시 추론을 향상시키는 것은 아니다"라고 합니다. 이는 에이전트 아키텍처를 구현하는 사람들이 필요한 추론 능력이 아닌 사용 사례의 전반적인 맥락을 기반으로 단일 또는 다중 에이전트를 결정해야 함을 시사합니다.

에이전트와 비동기 작업 실행(Agents and Asynchronous Task Execution)

단일 에이전트는 여러 비동기 호출을 동시에 시작할 수 있지만, 운영 모델은 본질적으로 서로 다른 실행 스레드에 걸친 책임 분할을 지원하지 않습니다. 즉, 작업이 비동기적으로 처리되더라도 별도의 의사 결정 주체에 의해 자율적으로 관리된다는 의미에서 진정한 병렬 처리는 아닙니다. 대신 단일 에이전트는 비동기 작업 묶음이 완료될 때까지 순차적으로 계획하고 실행한 후 평가하고 다음 단계로 넘어가야 합니다. 반면 다중 에이전트 아키텍처에서는 각 에이전트가 독립적으로 작동할 수 있어 보다 동적인 작업 분할이 가능합니다. 이러한 구조는 서로 다른 도메인이나 목표에 걸쳐 동시 작업 실행을 용이하게 할 뿐만 아니라 개별 에이전트가 다른 에이전트가 처리하는 작업의 상태에 구애받지 않고 다음 단계를 진행할 수 있게 함으로써 보다 유연하고 병렬적인 작업 관리 방식을 구현합니다.

피드백과 인간 감독이 에이전트 시스템에 미치는 영향(Impact of Feedback and Human Oversight on Agent Systems)

복잡한 문제를 해결할 때, 처음부터 정확하고 강력한 솔루션을 제공하는 경우는 거의 없습니다. 대신 잠재적인 솔루션을 제시한 후 이를 비판하고 개선해 나가는 과정을 거칩니다. 또한 다른 사람과 상의하여 다른 관점에서 피드백을 받을 수도 있습니다. 이러한 반복적 피드백과 개선의 아이디어는 에이전트가 복잡한 문제를 해결하는 데 있어 필수적입니다.

이는 부분적으로 언어 모델이 응답 초반에 답변을 결정하는 경향이 있기 때문인데, 이는 목표 상태에서 점점 더 벗어나는 '눈덩이 효과'를 일으킬 수 있습니다. 피드백을 구현함으로써 에이전트는 진로를 수정하고 목표에 도달할 가능성이 훨씬 더 높아집니다.

또한 인간의 감독을 포함시키면 에이전트의 응답이 인간의 기대에 더 잘 부합하게 되어 즉각적인 결과가 개선되고, 에이전트가 비효율적이거나 유효하지 않은 접근 방식으로 빠질 가능성을 완화할 수 있습니다. 현재로서는 에이전트 아키텍처에 인간의 검증과 피드백을 포함하는 것이 보다 신뢰할 수 있고 믿을 만한 결과를 산출합니다.

언어 모델은 또한 아첨하는 행동을 보이는데, 이는 "공정하고 균형 잡힌 관점을 제시하는 것을 포기하더라도 사용자의 입장을 그대로 반영하는 경향"을 말합니다. 특히 AgentVerse 논문에서는 에이전트가 피드백이 건전하지 않더라도 다른 에이전트의 피드백에 영향을 받기 쉽다고 설명합니다. 이로 인해 에이전트 팀이 잘못된 계획을 생성하여 목표에서 벗어날 수 있습니다. 강력한 프롬프팅은 이를 완화하는 데 도움이 될 수 있지만, 에이전트 애플리케이션을 개발하는 사람들은 사용자나 에이전트 피드백 시스템을 구현할 때 위험을 인지하고 있어야 합니다.

그룹 대화와 정보 공유의 어려움(Challenges with Group Conversations and Information Sharing)

다중 에이전트 아키텍처의 한 가지 과제는 에이전트 간에 메시지를 지능적으로 공유하는 능력에 있습니다. 다중 에이전트 패턴은 "안녕하세요"와 같은 인사말에 빠지는 경향이 더 크지만, 단일 에이전트 패턴은 관리해야 할 팀 역학이 없기 때문에 주어진 작업에 집중하는 경향이 있습니다. 다중 에이전트 시스템에서의 불필요한 대화는 에이전트의 효과적인 추론 및 적절한 도구 실행 능력을 저하시켜 궁극적으로 에이전트를 작업에서 산만하게 만들고 팀 효율성을 떨어뜨릴 수 있습니다. 이는 에이전트들이 일반적으로 그룹 채팅을 공유하고 대화에서 모든 에이전트의 메시지를 볼 수 있는 수평형 아키텍처에서 특히 그렇습니다. 메시지 구독이나 필터링은 에이전트가 자신의 작업과 관련된 정보만 받을 수 있도록 하여 다중 에이전트 성능을 향상시킵니다.

수직형 아키텍처에서는 작업이 에이전트 스킬별로 명확하게 분할되는 경향이 있어 팀 내 산만함을 줄이는 데 도움이 됩니다. 그러나 주도 에이전트가 중요한 정보를 지원 에이전트에게 전달하지 못하고 다른 에이전트들이 필요한 정보를 알지 못한다는 사실을 깨닫지 못할 때 어려움이 발생합니다. 이러한 실패는 팀 내 혼란이나 결과의 환각으로 이어질 수 있습니다. 이 문제를 해결하기 위한 한 가지 방법은 시스템 프롬프트에 접근 권한에 대한 정보를 명시적으로 포함하여 에이전트가 상황에 맞는 적절한 상호 작용을 하도록 하는 것입니다.

역할 정의와 동적 팀의 영향(Impact of Role Definition and Dynamic Teams)

명확한 역할 정의는 단일 및 다중 에이전트 아키텍처 모두에 매우 중요합니다. 단일 에이전트 아키텍처에서 역할 정의는 에이전트가 제공된 작업에 집중하고, 적절한 도구를 실행하며, 다른 기능에 대한 환각을 최소화하도록 합니다. 유사하게 다중 에이전트 아키텍처에서의 역할 정의는 각 에이전트가 전체 팀에서 자신의 책임이 무엇인지 알고 설명된 능력이나 범위를 벗어나는 작업을 맡지 않도록 합니다. 개별 역할 정의 외에도, 명확한 그룹 리더를 세우는 것 역시 작업 할당을 간소화하여 다중 에이전트 팀의 전반적인 성과를 향상시킵니다. 또한 각 에이전트에 대해 명확한 시스템 프롬프트를 정의하면 에이전트가 비생산적인 의사소통에 참여하지 않도록 유도하여 불필요한 잡담을 최소화할 수 있습니다.

필요에 따라 에이전트를 시스템에 투입하거나 제외하는 동적 팀도 효과적인 것으로 나타났습니다. 이는 작업 계획 수립이나 실행에 참여하는 모든 에이전트가 해당 작업 라운드에 적합하도록 보장합니다.

현재 연구의 한계와 미래 연구를 위한 고려사항

지금까지 살펴본 AI 에이전트 구현은 언어 모델 기반 추론, 계획 수립, 도구 호출 능력의 급속한 발전을 보여줍니다. 단일 및 다중 에이전트 패턴 모두 고급 문제 해결 기술이 필요한 복잡한 다단계 문제를 해결할 수 있는 능력을 보여줍니다. 이 논문에서 논의된 주요 통찰은 최상의 에이전트 아키텍처가 사용 사례에 따라 다양하다는 것을 시사합니다. 선택한 아키텍처에 관계없이 성능이 가장 우수한 에이전트 시스템은 잘 정의된 시스템 프롬프트, 명확한 리더십과 업무 분담, 전용 추론/계획-실행-평가 단계, 동적 팀 구조, 인간 또는 에이전트 피드백, 지능형 메시지 필터링 중 하나 이상의 접근 방식을 적절히 통합하여 활용함으로써 문제를 해결하는 경향이 있습니다.

현재까지의 발전 상황으로 봤을 때, AI 에이전트의 미래는 유망할 것으로 보이지만, 해결해야 할 주목할만한 한계와 개선 영역 또한 있습니다. 포괄적인 에이전트 벤치마크, 실제 적용 가능성, 유해한 언어 모델 편향 완화와 관련된 과제는 신뢰할 수 있는 에이전트를 개발하기 위해 단기적으로 해결되어야 합니다. 정적 언어 모델에서 보다 동적이고 자율적인 에이전트로의 발전 과정을 살펴봄으로써 이 서베이 논문은 현재 AI 에이전트 분야에 대한 전체적인 이해를 제공하고 기존 에이전트 아키텍처를 활용하거나 맞춤형 에이전트 아키텍처를 개발하는 사람들을 위한 통찰력을 제공하는 것을 목표로 합니다.

종합적으로 볼 때, AI 에이전트 기술은 인간과 기계의 협업을 통해 복잡한 문제를 해결할 수 있는 잠재력을 지니고 있습니다. 그러나 이 기술을 실제 환경에 안정적으로 적용하기 위해서는 평가 방법, 윤리적 고려 사항, 실용성 등 다양한 측면에서의 발전이 필요합니다. 특히, 현실 세계의 복잡성을 반영할 수 있는 벤치마크 개발, 에이전트의 편향성과 공정성 문제 해결, 그리고 인간-에이전트 간 원활한 상호작용을 위한 인터페이스 설계 등이 중요한 연구 과제로 떠오르고 있습니다.

향후 연구에서는 기술적 발전과 함께 에이전트 기술의 사회적, 윤리적 영향에 대한 심도 있는 고찰이 필요할 것입니다. 이를 위해서는 연구자, 개발자, 정책 입안자 등 다양한 이해관계자들의 협력이 필수적입니다. 이 서베이 논문은 AI 에이전트 분야의 현재 상황과 미래 방향성에 대한 종합적인 이해를 제공하며, 보다 지능적이고 책임감 있는 에이전트 개발을 위한 기반을 마련하고 있습니다. AI 에이전트 기술이 인류에게 도움이 되는 방향으로 발전하기 위해서는 기술 개발과 함께 윤리적 고려 사항에 대한 지속적인 연구와 논의가 필요할 것입니다.

원문: The Landscape of Emerging AI Agent Architectures for Reasoning, Planning, and Tool Calling: A Survey




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: