AUTO GEN: ENABLING NEXT-GEN LLM APPLICATIONS VIA MULTI-AGENT CONVERSATION

Taewoo Kim·2025년 1월 6일

[Prompt Engineering]

목록 보기
6/7

1. Introduction

기존 연구에서 multiple agents의 장점

  1. encourage divergent thinking
  2. improve factuality and reasoning
  3. provide guardrails

최근 LLM의 발전으로 일반적인 타당성(feasibility)와 유용성(utility)이 확인되는 3가지 이유

  1. cooperate through conversations : 채팅에 최적화된 LLM(GPT-4)은 피드백 수용 및 대화형 학습을 통해 LLM간 협력 가능.
  2. Various configurable agents : 서로 다른 설정으로 agent를 구성하여 다양한 역할 수행
  3. Complex task segmentation : 복잡한 작업을 단순한 하위 작업으로 나눠 대화를 통해 협력

2. The AutoGen Frame

다양한 도메인에서 복잡한 LLM 애플리케이션을 간단하고 효율적으로 개발하기 위해 multi-agent workflows를 통합하는 것을 목표로 함.

Customizable and Conversable Agents

conversable agent를 메시지를 주고 받으며 대화를 시작하거나 이어갈 수 있는 특정 역할을 가진 Entity로 정의함. 주고받은 메시지를 기반으로 internal context를 유지하며, 다양한 기능을 수행하도록 구성될 수 있음.

에이전트 기능 :

  • Agent capabilities powered by LLMs, humans, and tools
    1. LLM: 고급 LLM의 기능(role playing, implicit state inference, progress making from conversation history, providing feedback, adapting from feedback, coding 등)을 활용하여 높은 수준의 자율성과 기술 제공,
    2. Humans : 특정 대화에서 인간의 입력을 요청하거나 작업을 실행하도록 설계
    3. Tools : 코드 실행 또는 함수 호출을 통해 작업 수행

  • Conversable Agent: highest-level agent abstraction이며, 기본적으로 LLMs, humans, tools를 사용할 수 있음.
  • Assistant Agent, UserProxyAgent : 사전 구성된 ConversableAgent의 subclasses

특징:

  1. 다양한 역할 : 코드 작성, 코드 실행, 인간 피드백 연결, 출력 검증 등의 역할을 수행할 수 있음
  2. 확장 가능성 : 기본적으로 제공되는 기능을 기반으로 에이전트를 사용자 요구에 맞게 확장 가능.
  3. LLM과의 결합 : 피드백 수용 및 대화형 진행 능력을 활용하여, 모듈형 방식으로 다양한 기능을 조합.

Conversation Programming

AutoGen은 복잡한 LLM 애플리케이션 워크플로우를 다중 에이전트 대화로 단순화하고 통합하기 위한 프로그래밍 패러다임을 Conversation Programming이라고 정의

주요단계:

  1. 대화 가능한 에이전트 정의 : 각 에이전트는 특정 역할과 기능을 가지도록 설정됨.
    • 예 : 코드 작성 에이전트, 검증 에이전트, 데이터 검색 에이전트
  2. 에이전트 간 상호작용 설계: 에이전트 간의 상호작용을 설계하여 작업 흐름을 제어.
    • 예 : 코드 작성 에이전트가 코드를 생성하면, 다른 에이전트가 검증하고 실행한 뒤 결과를 피드백하는 흐름.

Unified interfaces and auto-reply mechanism for automated agent chat.

  • 에이전트가 다른 에이전트로부터 메시지를 받으면, 자동으로 generate_reply를 호출하여 응답을 생성하고, 종료 조건이 충족되지 않는 한 다시 메시지를 보낸 에이전트로 응답을 전달.
  • Developer Code에 있는 사용자 정의된 자동 응답 메커니즘으로 대화가 자동으로 진행됨

Control by a fusion of programming and natural language.

  • AutoGen에서는 control flow management에서 프로그래밍 언어와 자연어를 다양한 패턴으로 사용할 수 있음.

    1. Natural language control via LLM .

      • LLM-backed agents를 자연어로 제어할 수 있음.

    2. Programming language control.

      • Python 코드를 사용해 종료 조건, 인간 입력 모드, 도구 실행 논리 등을 지정할 수 있음. (예: 최대 자동 응답 횟수)
      • Figure 2의 “Conversation-Driven Control Flow”부분
    3. Control transition between natural and programming language.

      • AutoGen은 자연어와 프로그래밍 언어 간의 유연한 제어 전환도 지원
  • 사전 정의된 흐름을 따르는 static conversation 외에도, 여러 에이전트를 사용하는 dynamic conversation flow도 지원. 이를 구현하기 위해 다음 두 가지 일반적인 방법을 제공

    1. Customized Generate Reply Function
      • customized generate_reply function 내에서 하나의 에이전트는 현재의 대화를 유지하면서 현재 message와 context의 내용을 기반으로 다른 에이전트와의 대화를 호출할 수 있음.
    2. Function Call
      • LLM이 대화 상태에 따라 특정 함수를 호출할지 여부를 결정. 호출된 함수 내에서 추가 에이전트에게 메시지를 전달함으로써, LLM은 동적 다중 에이전트 대화를 진행할 수 있음.
  • GroupChatManager를 통해 더 복잡한 동적 그룹 채팅도 지원.

3. Application of AutoGen

  • real-world relevance (A1, A2, A4, A5, A6)
  • problem difficulty and solving capabilities enabled by autogen(A1, A2, A3, A4)
  • innovative potential (A5, A6)

A1: Math Problem Solving

AutoGen을 사용하여 수학 문제를 자동으로 해결하는 시스템을 구현(GPT-4 기반, SymPy 라이브러리 사용)

Scenario 1: Autonomous Problem Solving

  • AssistantAgent와 UserProxyAgent를 바로 사용
  • MATH 데이터셋에서 난이도 5에 해당하는 120개의 문제와 전체 테스트셋을 대상으로 평가.

Scenario 2: Human-in-the-loop Problem Solving

인간 없이 해결하기 어려운 문제는 UserProxyAgent를 human_input_mode = “ALWAYS”로 설정하고 보조 에이전트의 도움을 받음.

Scenario 3: Multi-User Problem Solving.

AutoGen을 사용하여 다수의 유저가 대화 중에 참여할 수 있도록 설계.

다중 사용자

  • 학생은 Student Proxy를 통해 LLM기반 Student Assistant와 문제를 해결.
  • 학생 보조자가 문제를 해결하지 못하거나, 기대 부합하지 않으면 ask for expert 함수 호출(GPT Function Call Feature)을 활용

A2: Retrieval-Augmented Chat

  • Retrieval-augmented User Proxy : 문서를 처리, 분할, 임베딩을 계산해 벡터 DB에 저장
  • Retrieval-augmented Assistant : 사용자 질문과 검색된 문서 내용을 활용해 코드를 생성하거나 질문에 대한 답변을 생성 ****

A3: ALF Chat

ALFWorld는 실제 가정 환경을 시뮬레이터한 텍스트 기반 환경에서 의사결정 과제를 다룸

  • Assistant Agent : 문제를 해결하기 위한 계획을 생성하고 작업을 제안.
  • Executor Agent: Assistant의 지시를 따라 작업을 실행하고 환경에서 피드백을 수집.
  • Grounding Agent: Assistant에 상식적 사실을 제공하여 의사결정 능력을 향상.

A4: Multi-agent Coding

  • Commander :
    • 사용자 질문을 수신하고 에이전트 간의 작업을 조정.
    • 사용자 상호작용 관련 메모리를 관리하여 문맥 정보를 공유
  • Writer :
    • 코드를 작성하고 실행 결과를 해석
    • Coder와 Interpreter의 역할을 통합
  • Safeguard:
    • 생선된 코드의 안정성을 검토
    • 보안 위협이나 악성 코드 여부를 확인.

A5: Dynamic Group Chat

A6: Conversational Chess

0개의 댓글