전체 그래프
Agno

Agno Team

aiagent-frameworkagnomulti-agent

상위: Agno

요약

Agno의 Team은 여러 전문화된 에이전트가 협업하여 복잡한 태스크를 해결하는 구조이다. 리더 에이전트가 멤버에게 작업을 위임하고, 3가지 모드(Coordinate, Route, Broadcast)로 협업 패턴을 선택한다. 트리 구조로 서브팀을 중첩할 수 있다.

Team 모드

Coordinate (기본)

리더가 태스크를 분석하고, 적절한 멤버에게 위임하거나 직접 응답한다. 가장 유연한 모드.

Route

요청을 분석하여 가장 적합한 단일 에이전트로 라우팅한다. 고객 지원 트리아지처럼 "누가 처리할지"만 결정한다.

Broadcast

모든 멤버에게 동시에 작업을 위임한다. 여러 관점이 필요하거나 병렬 처리가 필요할 때 사용한다.

코드 예시

from agno.agent import Agent
from agno.team import Team
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.yfinance import YFinanceTools

# 전문화된 에이전트들
researcher = Agent(
    name="Researcher",
    model=OpenAIChat(id="gpt-4o"),
    tools=[DuckDuckGoTools()],
    instructions="You research topics thoroughly.",
)

analyst = Agent(
    name="Financial Analyst",
    model=OpenAIChat(id="gpt-4o"),
    tools=[YFinanceTools()],
    instructions="You analyze financial data.",
)

writer = Agent(
    name="Writer",
    model=OpenAIChat(id="gpt-4o"),
    instructions="You write clear, engaging reports.",
)

#  구성
investment_team = Team(
    name="Investment Committee",
    mode="coordinate",
    members=[researcher, analyst, writer],
    instructions="Collaborate to produce investment reports.",
    markdown=True,
)

investment_team.print_response(
    "Analyze Tesla stock and write a report",
    stream=True,
)

언제 Team을 사용하는가

Team이 필요한 경우:

  • 태스크가 여러 전문 도구/도메인을 요구
  • 단일 에이전트의 컨텍스트 윈도우가 부족
  • 에이전트별 역할이 명확히 분리됨

단일 Agent로 충분한 경우:

  • 태스크가 한 도메인에 한정
  • 토큰 비용이 중요
  • 시스템 복잡도를 최소화하고 싶음

Team의 장점

  • 전문화: 에이전트가 특정 도메인을 마스터
  • 병렬 처리: 독립적 서브태스크를 동시에 처리
  • 유지보수: 문제를 특정 에이전트에 격리하여 디버깅
  • 확장성: 에이전트를 추가하여 기능 확장 (기존 코드 수정 불필요)

Workflow와의 차이

TeamWorkflow
실행 방식유연한 협업 (동적)예측 가능한 파이프라인 (순차적)
적합한 경우복잡하고 동적인 문제 해결정해진 단계를 반복 실행
제어리더 에이전트가 런타임에 결정개발자가 단계를 미리 정의
감사동적 의사결정 추적명확한 감사 추적(audit trail)

관련 개념