NVIDIA-labs OO Agents (NOOA) - Python 클래스로 에이전트를 정의하는 프레임워크
5 hours ago
3
- 에이전트의 상태/기능/프롬프트/입출력 규칙을 하나의 Python 클래스 안에 함께 정의하는 모델 독립적 프레임워크
- 클래스의 필드는 상태, 메서드는 기능, 독스트링은 프롬프트, 타입 어노테이션은 입출력 계약 역할을 함
- 일반 Python 코드가 들어 있는 메서드는 그대로 실행되고, 본문을 ...으로 비워 둔 메서드는 실행 시 LLM이 처리하는 생성 메서드가 됨
- 모델은 Jupyter 스타일의 REPL에서 Python 코드를 작성하고 self의 메서드와 객체, 임포트한 모듈, 헬퍼 함수를 호출해 작업함
- Python 메서드와 타입 정보가 도구 인터페이스 역할을 하므로, 프롬프트/도구 스키마/콜백/워크플로를 별도로 연결하는 작업을 줄일 수 있음
- 실제 Python 객체를 별도 JSON 형태로 변환하지 않고 메서드 인수로 전달할 수 있으며, 타입 검증에 실패한 출력은 자동으로 재시도함
- 에이전트도 일반 Python 코드처럼 테스트/리팩터링/버전 관리할 수 있고, 결정론적 코드와 LLM이 판단하는 부분을 한 클래스에서 조합할 수 있음
- Anthropic/OpenAI/Ollama/vLLM 등 LiteLLM이 지원하는 호스팅/로컬 모델을 선택할 수 있음
- LLM 호출과 코드 실행, 메서드 호출을 기본 추적하며 nooa start-dev로 브라우저 기반 트레이스 뷰어를 실행함
- LLM이 생성한 Python 코드는 파일 삭제나 정보 유출 같은 위험한 동작을 할 수 있으므로, 컨테이너/VM/NVIDIA OpenShell 같은 운영체제 수준의 샌드박스에서 실행해야 함
- pip install nooa 또는 uv add nooa로 설치하며 CLI/메모리/ACP/벤치마크 기능은 별도 패키지로 제공
- 연구용 소프트웨어이며 Apache-2.0 라이선스
-
Homepage
-
Tech blog
- NVIDIA-labs OO Agents (NOOA) - Python 클래스로 에이전트를 정의하는 프레임워크