NVIDIA, 아전트 인텔리전스 툴킷에 Agno 통합 방법 소개
NVIDIA의 Agent Intelligence 툴킷은 다중 AI 에이전트가 협력하여 작업을 수행하는 복잡한 AI 워크플로를 효율적으로 연결하고 최적화하는 오픈 소스 라이브러리입니다. 이 툴킷은 개발자가 빠르게 구축, 평가, 프로파일링 및 가속화할 수 있도록 설계되었습니다. Agent Intelligence 툴킷은 LangChain, LlamaIndex, Semantic Kernel, CrewAI 등 다양한 플랫폼에서 기존 에이전트, 도구, 워크플로를 통합하는 역할을 합니다. 이 툴킷은 이러한 구성 요소들을 함수 호출로 취급하여 조합 가능하고 재사용할 수 있도록 합니다. 에이전트 툴킷을 '지휘자'로 생각하면, 여러 AI 에이전트 팀의 워크플로를 효과적으로 조정하는 역할을 이해하기 쉽습니다. 또한, 이 툴킷은 지연 시간과 토큰 사용량 등을 추적하기 위한 프로파일링, 최적화, 확장성, 관찰 가능성 도구를 제공하여 기업급 에이전트 시스템의 성능을 보증합니다. Agent Intelligence 툴킷의 핵심 강점은 확장성입니다. 이 포스트에서는 Agno라는 추가적인 에이전트 프레임워크를 통합하여 툴킷을 확장하는 방법을 설명합니다. Agno는 이전에 Phidata로 알려졌던, 특히 다중 모드 기능을 가진 에이전트를 구축하기 위한 경량 라이브러리입니다. Agno는 대형 언어 모델(LLMs)을 통합된 API로 노출시키고, 메모리, 지식, 도구, 추론 등의 '슈퍼파워'를 부여합니다. Agno는 26,000개 이상의 GitHub 스타를 받으며, 모델에 독립적이면서 빠르고 본질적으로 다중 모드입니다. Agno의 전체 기능 목록은 GitHub의 agno-agi/agno 페이지에서 확인할 수 있습니다. Agent 툴킷의 주요 기능 Agent 툴킷 생태계에서 일반적으로 사용되는 기능과 용어들은 다음과 같습니다: 워크플로(Workflow): Agent 툴킷 애플리케이션의 주요 진입점으로, YAML 설정 파일로 완전히 구성됩니다. 이 파일은 워크플로에서 사용할 엔티티(함수, LLMs, 임베더 등)와 일반 설정을 지정합니다. 패키지(Package): 모듈화된 구성 요소나 플러그인으로, 툴킷의 기능을 확장하여 다양한 프레임워크, 도구, 워크플로를 통합할 수 있습니다. 예를 들어, CrewAI의 다중 에이전트 협업 워크플로는 agentiq-crewai 패키지를 사용합니다. 플러그인(Plugin): 새로운 도구, 에이전트, 워크플로 등을 라이브러리에 추가하기 위한 확장 가능한 플러그인 시스템을 제공합니다. 이 시스템은 엔트리 포인트와 데코레이터 두 가지 주요 개념을 중심으로 설계되었습니다. 엔트리 포인트는 툴킷이 Python 환경에서 설치된 모든 분포 패키지에서 플러그인을 발견할 수 있게 합니다. 데코레이터는 개발자가 플러그인을 라이브러리에 등록할 수 있도록 합니다. Agno를 Agent Intelligence 툴킷에 통합하기 이 섹션에서는 Agno를 Agent 툴킷에 통합하는 단계를 설명합니다. 동일한 단계를 적용하여 다른 에이전트 프레임워크를 통합할 수도 있습니다. 단계 0: 필수 사항 NVIDIA NIM 마이크로서비스를 접근할 때 Agent 툴킷 워크플로를 실행하는 데 특정 GPU 요구 사항은 없습니다. 그러나 자체 호스팅 NIM을 사용한다면 선택한 NIM에 필요한 특정 GPU 또는 GPU 여러 개가 필요합니다. Agent 툴킷과 설치 단계에 대한 자세한 내용은 GitHub의 NVIDIA/AIQToolkit 페이지에서 확인할 수 있습니다. 단계 1: 새로운 Agent Toolkit 패키지 생성 Agent 툴킷은 외부 프레임워크와 통합하기 위해 packages 디렉토리에 있는 패키지를 사용합니다. Agno를 Agent 툴킷에 연결하기 위해 새 패키지 agentiq_agno를 생성합니다. AgentIQ/packages/ 하위에 agentiq_agno라는 새 폴더를 만들고, agentiq_crewai와 같은 기존 패키지 구조를 연구하여 기본 구조를 설정합니다. 다음으로, 패키지와 그 종속성을 정의하는 pyproject.toml 파일을 구성합니다. 이 파일에는 다음과 같은 내용이 포함되어야 합니다: ```toml [build-system] requires = ["setuptools", "wheel"] build-backend = "setuptools.build_meta" [project] name = "agentiq_agno" version = "0.0.1" description = "Integration of Agno with NVIDIA Agent Intelligence Toolkit" dependencies = [ "agentiq", "agno", "requests" ] [project.entry-points."aiq-agno-tools"] serp_api_tool = "agentiq_agno.serp_api_tool:SerpApiToolConfig" ``` 그 후, NVIDIA NIM을 사용한 LLM 클라이언트를 정의합니다. 다음 코드 샘플은 @register_llm_client 데코레이터를 사용하여 Agno 통합을 위한 LLM 클라이언트를 등록합니다. ```python from agentiq import register_llm_client from agno import AgnoClient @register_llm_client class AgnoLLMClient(AgnoClient): def init(self, args, kwargs): super().init(args, **kwargs) ``` 다음으로, Agno와 호환되도록 Agent 툴킷 함수를 Agno의 Tool 클래스로 감싸는 도구 래퍼를 등록합니다. agno_tool_wrapper의 소스 코드를 참조하세요. 단계 2: 새로운 툴킷 패키지 설치 새로 생성한 Agno 패키지와 새로운 플러그인을 설치하려면 다음 명령을 실행합니다. bash pip install -e . 단계 3: 새롭게 지원되는 에이전트 프레임워크를 사용한 맞춤 워크플로 생성 이 예제에서는 Agno를 사용하여 개인 금융 에이전트 워크플로를 생성합니다. 이 에이전트는 NVIDIA LLM NIM을 사용하여 개인화된 금융 계획을 생성하며, 연구, 계획, 예산 작성, 투자 전략, 저축 목표 등을 자동화하여 사용자가 금융 미래를 주도할 수 있도록 합니다. Agent 툴킷은 워크플로 관리를 위한 명령 줄 인터페이스 집합을 제공합니다. agentiq 프로젝트 루트에서 다음 명령을 실행하여 필요한 파일과 디렉토리 구조를 자동으로 생성하여 새로운 워크플로 agno_personal_finance를 설정할 수 있습니다. bash aiq init --workflow agno_personal_finance 이 명령은 agentiq/examples 디렉토리 아래에 다음과 같은 파일과 폴더를 생성합니다. examples/ └── agno_personal_finance/ ├── config.yml ├── pyproject.toml └── agno_personal_finance_function.py 이 구조는 시작 템플릿이며, 이제 세부 정보를 채워넣어야 합니다. pyproject.toml ```toml [build-system] requires = ["setuptools", "wheel"] build-backend = "setuptools.build_meta" [project] name = "agentiq_agno" version = "0.0.1" description = "Integration of Agno with NVIDIA Agent Intelligence Toolkit" dependencies = [ "agentiq", "agno", "requests" ] [project.entry-points."aiq-agno-tools"] serp_api_tool = "agentiq_agno.serp_api_tool:SerpApiToolConfig" ``` agno_personal_finance_function.py ```python from agentiq import AgentFunction from agno import AgnoClient, Tool import requests class AgnoPersonalFinanceFunctionConfig: def init(self, user Goals, current_situation): self.user_goals = user_goals self.current_situation = current_situation @AgentFunction("agno_personal_finance") def agno_personal_finance(config: AgnoPersonalFinanceFunctionConfig): # 사용자 입력 기반으로 금융 조언, 투자 기회, 저축 전략을 검색 researcher_agent = AgnoClient() search_results = researcher_agent.search(config.user_goals, config.current_situation) # 계획 에이전트가 개인화된 금융 계획을 생성 planner_agent = AgnoClient() financial_plan = planner_agent.plan(search_results) return financial_plan ``` config.yml ```yaml llm: name: Llama 3.3 70B Instruct url: https://build.nvidia.com/llm/instruct functions: - name: agno_personal_finance config: user_goals: "60세까지 은퇴" current_situation: "40세, NVIDIA의 머신 러닝 엔지니어, 안정적인 수입, 적절한 저축률" tools: - name: serp_api_tool config: api_key: "your_serp_api_key" ``` 단계 4: 재사용 가능한 함수로 워크플로 정교화 Agent 툴킷의 특징 중 하나는 빌더를 사용하여 프레임워크에 독립적인 방식으로 도구를 가져오거나 생성할 수 있다는 것입니다. 이는 도구가 재사용 가능하게 만든다는 것을 의미합니다. 현재 agno_personal_finance 구현에서 연구 에이전트는 사용자 입력 기반으로 금융 조언, 투자 기회, 기타 정보를 검색하기 위해 Serp API 검색 도구를 호출합니다. 다음 섹션에서는 툴킷에 재사용 가능한 Serp API 검색 함수를 추가하는 방법을 설명합니다. 먼저, Agent 툴킷 플러그인 다이어그램(그림 2)을 연구하여 이 재사용 가능한 함수를 패키지 수준에서 추가하는 것이 가장 적합하다는 것을 결정합니다. 이는 SerpApiTools가 Agno 프레임워크에서 정의된 클래스이기 때문입니다. 그런 다음, SerpApiToolConfig 설정 클래스를 추가하고, serp_api_tool 함수를 구현하며, 이 새로운 함수를 툴킷에 등록합니다. serp_api_tool 함수의 완전한 소스 코드를 참조하세요. 이 새로운 함수가 툴킷에 등록된 후, 툴킷 빌더에서 이 함수를 발견할 수 있습니다. 원래 워크플로에서 Serp API 검색 도구를 구성하는 코드 줄을 다음과 같이 수정합니다. python search_tool = SerpApiTool(api_key="your_serp_api_key") python search_tool = builder.get_tool("serp_api_tool") 마지막으로, 새로운 serp_api_tool 함수가 agentiq_agno 패키지에 추가되었으므로, 해당 패키지의 pyproject.toml 엔트리 포인트를 수정해야 합니다. 새로운 aiq_agno_tools 엔트리 포인트를 확인하세요. toml [project.entry-points."aiq-agno-tools"] serp_api_tool = "agentiq_agno.serp_api_tool:SerpApiToolConfig" 단계 5: 새로운 워크플로 설치 및 실행 다음 명령을 실행하여 새로운 워크플로를 설치합니다. bash pip install -e . 워크플로를 시작하기 전, 두 개의 환경 변수를 설정해야 합니다. bash export SERP_API_KEY="your_serp_api_key" export NVIDIA_NIM_URL="https://build.nvidia.com/llm/instruct" 마지막으로, aiq run 명령을 사용하여 워크플로를 실행합니다. bash aiq run --workflow agno_personal_finance 다음은 샘플 응답입니다. ``` 워크플로 결과: ["40세의 NVIDIA 머신 러닝 엔지니어가 60세까지 은퇴하기 위한 개인화된 금융 계획을 만드는 데는 여러 요인을 고려해야 합니다. 현재 수입, 지출, 저축, 투자 목표 등을 포함합니다. 안정적인 수입과 적절한 저축률을 가정할 때, 다음과 같은 계획이 가능합니다: 1. 은퇴 저축: 401(k) 또는 IRA와 같은 은퇴 계정에 수입의 10%에서 15%를 적립합니다. NVIDIA는 매칭 프로그램을 제공하므로, 매칭을 최대한 활용하도록 충분히 적립하는 것이 중요합니다. 2. 투자 전략: 저렴한 인덱스 펀드나 ETF에 큰 부분을 할당하여 넓은 다양성과 상대적으로 안정적인 성과를 얻습니다. 가능한 할당 비율은 다음과 같습니다: * 60% 주식 (40% 미국, 20% 국제) * 30% 채권 (20% 정부, 10% 기업) * 10% 대체 투자 (부동산, 원자재 등) 3. 저축률: 단기 및 장기 목표, 은퇴, 비상금, 큰 구매 등을 위해 수입의 20%에서 25%를 저축하도록 노력합니다. 4. 지출 관리: 주거, 식비, 교통, 보험 등 필요한 지출을 포함하는 예산을 작성합니다. 불필요한 지출을 줄이고, 여유 자금을 저축과 투자에 할당하도록 합니다. 5. 세금 최적화: 세금 유예 계정에 기여하는 것을 고려합니다."] ``` 결론 NVIDIA Agent Intelligence 툴킷은 개발자가 복잡한 에이전트 AI 워크플로를 빠르게 구축, 평가, 프로파일링, 가속화할 수 있도록 지원합니다. 이 툴킷은 오픈 소스이며 매우 확장 가능하며, 이러한 특징은 다양한 요구에 맞게 기능을 맞춤화할 수 있는 환경을 제공합니다. 본 포스트는 Agno와 같은 추가적인 에이전트 프레임워크를 통합하여 Agent 툴킷을 강화하는 과정을 상세히 설명했습니다. 이 과정은 툴킷의 유연성을 보여주며, 기업 환경에서 혁신적인 AI 에이전트 기반 솔루션을 구축할 수 있는 기반을 마련합니다. 새로운 프레임워크와 워크플로를 원활하게 통합함으로써, Agent 툴킷은 에이전트 기반 시스템에서 가능한 범위를 확장하고, 특정 사용 사례에 맞춰 정밀하고 효율적으로 적용할 수 있게 합니다. 자세한 내용, 설정 옵션, 고급 응용 프로그램 등은 공식 문서에서 확인할 수 있습니다. 준비 되셨다면, NVIDIA Agent Toolkit Hackathon에 등록하여 NVIDIA GeForce RTX 5090을 획득할 기회를 얻으세요.