Building AI Agents with Agno — I Actually Ran It with Gemini and Built-in Tools
개요
Agno는 LangChain의 무거운 의존성 트리와 복잡한 추상화 계층에 대한 대안으로 제시되는 Python 기반 AI 에이전트 프레임워크이며, 다양한 LLM과의 연동, 멀티모달 지원, 멀티 에이전트 오케스트레이션을 핵심 철학으로 삼고 있습니다.
주요 내용
- Agno의 핵심 철학:
- 모델 독립성: OpenAI, Anthropic, Google, Ollama, Cohere 등 70개 이상의 LLM을 동일한 코드 구조로 플러그인하여 사용할 수 있습니다.
- 멀티모달 기본 지원: 텍스트, 이미지, 오디오, 비디오 에이전트 모두 동일한 API 표면을 사용합니다.
- 멀티 에이전트 오케스트레이션: Team 클래스를 통해 coordinate, route, collaborate 모드를 매개변수 변경으로 전환할 수 있습니다.
- 설치 및 기본 구조:
pip install agno google-genai ddgs wikipedia와 같이 핵심 패키지와 필요한 도구별 의존성을 별도로 설치하여 기본 설치를 간결하게 유지합니다.- Agno는 Gemini API 키를 자동으로 초기화하며,
GOOGLE_API_KEY또는GEMINI_API_KEY를 사용합니다. - 주요 기능 및 실험 결과:
- 계산기 도구:
Agent클래스와CalculatorTools를 사용하여 수학 연산을 수행하며, LLM의 추측 대신 도구를 호출하는 것을 확인했습니다. (Trap #1:show_tool_calls는debug_mode=True로 대체, Trap #2:gemini-2.0-flash는gemini-2.5-flash로 대체 필요) - Wikipedia 에이전트:
WikipediaTools를 사용하여 질의하고, 첫 번째 검색 실패 시 자동으로 쿼리를 재구성하여 재시도하는 ReAct 루프를 내부적으로 실행합니다. - 구조화된 출력: Pydantic 모델을 사용한 구조화된 출력을 위해
output_model대신output_schema매개변수를 사용해야 하며, 결과는 Pydantic 인스턴스로 반환됩니다. - 멀티 에이전트 팀:
Team클래스에서members매개변수에 에이전트 리스트를 전달하며,mode="coordinate"설정 시 협력 모드로 작동합니다. (Trap #3:agents=매개변수는 존재하지 않으며members=를 사용) - 내장 도구: 100개 이상의 내장 도구를 제공하며, API 키 설정으로 손쉽게 웹 검색, Slack, Notion, GitHub, Postgres 연동 에이전트를 구축할 수 있습니다. 각 도구는 자체 의존성을 가지므로 사전 설치가 필요합니다.
- 한계점:
- 응답 속도: Gemini API 왕복 및 도구 호출 오버헤드로 인한 지연 시간이 존재합니다.
- 디버깅:
debug_mode=True는 비구조화된 로그를 출력하며, LangSmith 또는 LangFuse 통합 가이드가 부족합니다. - 문서 지연: API 변경 사항(예:
show_tool_calls,output_model,agents=)이 문서에 즉시 반영되지 않아 GitHub 예시를 확인해야 합니다. - 순차적 실행:
Team의coordinate모드는 v2.6.17에서 병렬 실행을 지원하지 않습니다.
시사점
Agno는 빠른 프로토타이핑, 복잡한 API 래퍼 없이 여러 도구를 통합해야 하는 에이전트, 소규모 에이전트 팀 구성에 유용하며, 실시간 스트리밍 UI나 정밀한 오류 처리 및 재시도 보장이 필요한 프로덕션 환경에서는 LangGraph와 같은 프레임워크가 더 적합할 수 있습니다.
원문을 불러오는 중...
댓글
GitHub Discussions