archive

[Agent] Multi-agent systems이란? _ LangGraph

jylee00 2025. 4. 3. 16:58

 


이 글은 개인 공부를 위해 작성한 글로 계속 수정이 이뤄질 예정입니다.


Fully local multi-agent systems with LangGraph

요약정리

이 동영상은 LangGraph 프레임워크 내에서 Swarm 및 Supervisor 접근 방식에 초점을 맞춘 오픈 소스 및 로컬 모델을 사용하여 다중 에이전트 시스템을 구축하는 방법을 탐구합니다. 이 동영상은 이러한 시스템을 로컬로 실행할 수 있는 기능을 강조하며 효과적인 도구 호출이 가능한 소형 모델의 사용을 강조합니다.

주요 개념

  • 에이전트: 환경 피드백에 따라 자신의 행동을 안내하는 LLM으로, 본질적으로 루프에서 도구 호출을 수행합니다.
  • 워크플로: 사전 정의된 코드 경로가 있는 지향성 제어 흐름으로, 구조화된 실행에서 에이전트와 다릅니다.
  • 도구 호출: 정보를 수집하거나 작업을 수행하기 위해 모델이 외부 도구를 사용하는 기능으로, 에이전트 기능에 필수적입니다.

로컬 모델 고려 사항

  • 모델 선택: 이 비디오는 도구 호출에서 모델 성능을 평가하기 위한 버클리 기능 호출 리더보드를 참조합니다.
  • 권장 모델: 이 비디오는 강력한 도구 호출 기능과 관리 가능한 크기로 인해 로컬 에이전트 애플리케이션에 Qwen 2.5 모델 패밀리(특히 14B 지시 버전)가 효과적임을 강조합니다.
  • 이러한 모델은 Ollama를 통해 액세스 할 수 있습니다.

다중 에이전트 아키텍처

  • Swarm: 에이전트가 사용자와 상호 작용하고 서로 자유롭게 작업을 넘겨줄 수 있습니다.
    • 예를 들어, 항공편 도우미가 호텔 도우미에게 넘겨주는 경우.
  • Supervisor(감독자): 중앙 감독자 모델이 하위 에이전트 간의 작업 분배를 관리하고 하위 에이전트는 사용자와 직접 상호 작용하지 않습니다.
    • 감독자는 작업을 하위 에이전트에게 맡기고 최종 결과를 수신합니다.
    • 하나의 agent가 여러 tool을 사용하려다 보면 잘못된 tool을 호출할 수 있습니다.
    • 전문화된 작업을 수행하는 agent를 생성하여 작은 model에서의 성능을 높일 수 있습니다.
  • 아키텍처 비교: Swarm과 Supervisor 간의 선택은 특히 사용자 상호 작용 및 작업 관리와 관련하여 애플리케이션 요구 사항에 따라 달라집니다.

실제 구현

  • 사용된 라이브러리: LangGraph를 사용하여 다중 에이전트 시스템을 구축하고 모델 관리를 위해 LangChain 및 Ollama를 사용합니다.
  • 코드 예: 이 비디오에는 에이전트 생성 및 도구 통합을 포함하여 Swarm 및 Supervisor 아키텍처 설정을 보여주는 코드 스니펫이 포함되어 있습니다.
  • 도구 사용: LangGraph에서 미리 빌드된 create_react_agent는 루프 내에서 도구 호출 논리를 캡슐화하여 에이전트 생성을 간소화합니다.

시각화 및 디버깅

  • LangSmith: 다중 에이전트 워크플로를 추적하고 디버깅하여 에이전트 상호 작용과 도구 호출에 대한 통찰력을 제공합니다.
  • LangChain Studio: 다중 에이전트 시스템을 시각화하여 에이전트 간의 흐름과 상호 작용을 이해할 수 있습니다.

주요 내용

  • Qwen 2.5와 같은 적절한 모델 선택을 통해 다중 에이전트 시스템을 로컬로 구축할 수 있습니다.
  • LangGraph는 Swarm 및 Supervisor 아키텍처 모두를 위한 도구를 제공하여 다양한 애플리케이션 요구 사항에 맞습니다.
  • LangChain Studio 및 Smith와 같은 시각화 및 추적 도구는 다중 에이전트 시스템 개발 및 디버깅에 매우 중요합니다.

<출처>

https://www.youtube.com/watch?v=4oC1ZKa9-Hs&t=49s