NVIDIA-NeMo/labs-OO-Agents

NVIDIA Object Oriented Agents: the Pythonic way to build AI Agents.

해결하는 문제

NOOA는 프롬프트, 도구, 기능, 상태를 단일 Python 클래스로 통합함으로써 AI 에이전트를 구축하는 더 직관적이고 Python스러운 방법을 제공합니다. 이는 이러한 요소들을 별도의 추상화로 관리할 필요를 없애며, 개발자가 타입 애노테이션, 문서 문자열, 객체 지향 프로그래밍과 같은 익숙한 소프트웨어 개발 기법을 사용하여 에이전트의 동작을 정의할 수 있게 해줍니다.

작동 방식

이 프레임워크는 에이전트를 Python 객체로 취급합니다. 빈 본체(...)를 가진 메서드를 런타임에 LLM이 구현하는 "생성 메서드"로 지정하는 독특한 접근 방식을 사용합니다.

  • 프롬프트를 문서 문자열로: 에이전트의 문서 문자열과 메서드 문서 문자열이 프롬프트로 사용됩니다.
  • 기능을 메서드로: Python 메서드가 에이전트의 도구와 인터페이스를 정의합니다.
  • 상태를 필드로: 객체의 타입 지정된 필드가 에이전트의 상태를 저장합니다.
  • 코드를 행동으로: 모델은 Jupyter 스타일의 REPL에서 Python 코드를 작성하여 self와 기타 헬퍼를 직접 접근함으로써 환경과 상호작용합니다.

대상 사용자

Python으로 AI 에이전트를 개발하고 싶은 개발자 중에서 표준 소프트웨어 개발 워크플로우(테스트, 추적, 리팩터링)와 LiteLLM을 통해 다양한 LLM을 지원하는 모델 독립형 프레임워크를 원하는 사람.

주요 특징

  • 객체 지향 인터페이스: 상태, 프롬프트, 도구를 단일 클래스 내에서 통합.
  • LLM 기반 메서드: 결정론적 Python 코드와 LLM 생성 로직을 원활하게 혼합 가능.
  • CodeAct 워크플로우: 도구 사용에 Python REPL을 활용하여 수동 도구 스키마 정의의 필요성을 줄입니다.
  • 모델 독립성: Claude, GPT, Ollama, vLLM 등 다양한 호스팅 및 로컬 모델을 지원.
  • 통합 추적: 전용 CLI와 뷰어를 통해 LLM 호출 및 코드 실행 추적을 내장 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트