logo

자율 에이전트

자율 에이전트 autonomous agent

  • 인간의 개입 없이 스스로 작업을 수행할 수 있는 시스템 또는 소프트웨어 프로그램
  • LLM을 사용하여 사용자로부터 입력된 자연어를 이해
  • 입력된 정보를 바탕으로 최적의 행동을 결정하고, 이를 수행하기 위한 계획을 수립
  • 결정된 계획에 따라 도구를 사용하여 작업을 수행
  • 반복적인 상호작용을 통해 학습하며, 시간이 지남에 따라 성능이 향상

자율 에이전트의 도구, 기억, 계획, 행동 구성도

구글 딥마인드의 자율 에이전트 레벨 분류

  • 자율성 없음: 사람이 모든 일을 함
  • 도구로서 AI: 사람이 제어권을 가지고 AI는 하위 작업을 자동화
  • 컨설턴트로서 AI: AI가 중요한 역할을 맡지만 주도권은 사람이 가짐
  • 협력자로서 AI: AI와 사람이 동등한 입장에서 협력
  • 전문가로서 AI: AI가 주도하고 사람은 방향 제시 및 피드백
  • 에이전트로서 AI: 완전 자동

구글 딥마인드의 AI 자율성 레벨 분류표

에이전트와 구성 요소

  • 프로필(profile): 자율 에이전트의 역할 정의
  • 기억(memory): 자율 에이전트의 기억을 담당
  • 계획(planning): 자율 에이전트가 수행할 일을 계획
  • 행동(action): 자율 에이전트의 결정을 수행

에이전트의 프로필, 기억, 계획, 행동 구성 요소

단일 에이전트와 멀티에이전트

  • 작업이 복잡해질수록, 모든 것을 하는 단일 "슈퍼 에이전트"는 비효율적이 됨
  • 인간 조직을 모방한 "전문가 팀" 접근 방식 채택
    • 여러 에이전트의 집단 지성과 전문화된 프로필을 활용
    • 다양한 능력을 가진 별개의 에이전트로 전문화
    • 복잡한 프로세스를 개별 하위 작업으로 분할하고, 각 작업을 전담 전문 에이전트에게 할당
    • 각 에이전트가 더 단순하고, 집중적이며, 구축/테스트/유지보수가 쉬워짐
  • 인간 그룹 작업의 협력적 특성을 모방하여 여러 에이전트가 계획, 토론, 의사결정에 참여함으로써 전체적 능력이 향상
  • 다양한 에이전트 간의 상호작용을 통해 복잡한 현실 세계 환경을 효과적으로 시뮬레이션하는 데도 사용할 수 있음

역할 분리 기반 에이전트 구조

  • 협력(cooperative): 공유된 목표를 향해 함께 작업. 집단적 해결책 향상을 위한 정보 교환
  • 토론(debate): 논쟁적 상호작용에 참여. 각자의 관점이나 해결책 제시 및 방어. 합의나 개선된 해결책 도출이 목적
  • 경쟁(competitive): 각자 자신의 목표를 위해 작업. 다른 에이전트의 목표와 충돌할 수 있음

협업 전략

  • 규칙 기반(Rule-based)
    • 사전에 정의된 엄격한 규칙에 따라 상호작용
    • 장점: 효율성, 높은 예측 가능성, 일관성, 공정성
    • 단점: 불확실성이 높거나 복잡한 과제에 적용이 어려움
  • 역할 기반(Role-based)
    • 전문 지식에 따라 사전에 정의된 역할(예: 관리자, 개발자)을 수행
    • 장점: 모듈성, 재사용성
    • 단점: 경직된 구조, 전체 수행이 에이전트 간 연결에 의존
  • 모델 기반(Model-based)
    • 협업 방식이 고정되어 있지 않고 모델에 의해 확률적으로 결정됨
    • 장점: 상황이 계속 변하는 동적 환경에서 효과적. 노이즈나 예기치 않은 사건에 대해 탄력적으로 대응 가능
    • 단점: 복잡한 모델링이 필요하여 설계 및 배포가 어렵고, 계산적으로 비용이 많이 들 수 있음

에이전트 간 통신과 작업 조정

  • 계층 구조(layered): 같은 계층 내부 또는 인접 계층과 주로 상호작용
  • 분산 구조(decentralized): 계층 없이 에이전트 간 다대다 직접 통신
  • 중앙집중 구조(centralized): 중앙의 단일한 매개를 통해 상호작용
  • 공유 메시지 풀(Shared Message Pool): 메시지를 게시하고 구독하는 공유 풀 유지

에이전트 간 통신과 작업 조정 구조

계획, 실행, 검증 구조

  • MetaGPT: 제품 관리자, 설계자, 프로젝트 관리자, 엔지니어 및 QA 엔지니어의 5가지 역할을 정의
  • 모든 에이전트가 순차적으로 작업할 수 있도록 하는 소프트웨어 개발의 SOP를 따름
  • 문서와 다이어그램(구조화된 출력)으로 통신
  • 직접 대화하는 대신 "전역 메시지 풀"을 만들어 각자 자신의 작업을 게시

MetaGPT의 소프트웨어 개발 SOP와 역할 분담

MetaGPT에서 제품 관리자, 설계자, 엔지니어, QA 엔지니어가 산출물을 주고받는 예시

MetaGPT의 공유 메시지 풀과 엔지니어 에이전트 실행 구조

출처: MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework (https://arxiv.org/abs/2308.00352)

도구 사용형 에이전트 구조

  • 환경: 멀티 에이전트 시스템이 배치되고 상호작용하는 특정 맥락이나 설정
    • 예: 소프트웨어 개발, 게임, 금융 시장, 사회적 행동 모델링 등
  • 샌드박스 환경(sandbox): 시뮬레이션되거나 가상의 환경
    • 에이전트들이 자유롭게 상호작용하고 다양한 전략을 시험할 수 있음
    • 예: 소프트웨어 개발(코드 인터프리터를 시뮬레이션 환경으로 사용), 게임(게임 규칙을 시뮬레이션 환경으로 사용)
  • 물리적 환경(physical): 실제 물리적 객체와 상호작용하는 환경
    • 물리 법칙과 제약 조건을 따르는 실제 세계의 환경
    • 직접적인 물리적 결과를 수반하는 행동 필요
  • 무 환경(none): 특정한 외부 환경이 없는 경우
    • 에이전트들이 환경과 상호작용하지 않음
    • 토론이나 합의 도출을 위한 에이전트 간 커뮤니케이션만 이루어짐

멀티에이전트 시스템 설계 방법

  • 설계 순서
    • 전체 작업을 작은 단위로 분해
    • 각 에이전트의 역할과 책임을 정의
    • 에이전트 사이의 입력과 출력 형식을 정함
    • 작업 순서와 의사결정 흐름을 설계
    • 최종 결과를 검토하는 검증 단계를 둠
  • 핵심 원칙
    • 역할이 겹치면 비용과 오류가 늘어난다
    • 각 에이전트가 "무엇을 받고, 무엇을 내보내는지"가 명확해야 한다

멀티에이전트 적용 시 제약사항

  • 복잡도 증가: 에이전트가 많아질수록 전체 흐름을 이해하고 디버깅하기 어려워진다
  • 비용과 시간 증가: 여러 번 모델을 호출하므로 토큰 비용과 응답 시간이 늘어난다
  • 오류 전파: 앞 단계 에이전트의 잘못된 결과가 뒤 단계로 전달될 수 있다
  • 책임 불명확: 최종 결과가 틀렸을 때 어느 에이전트의 문제인지 파악하기 어렵다
  • 조정 비용: 역할 분담, 메시지 형식, 종료 조건을 제대로 설계하지 않으면 오히려 단일 에이전트보다 성능이 떨어질 수 있다
  • 적용 기준
    • 작업이 분명히 나눌 수 있을 때
    • 독립적인 검토나 비교가 필요할 때
    • 단일 에이전트가 너무 많은 역할을 맡아 성능이 떨어질 때 사용한다
Previous
검색 증강 생성