What is it?
What it is
NVIDIA-labs OO Agents (NOOA) is a model-agnostic Python framework that treats AI agents as native Python objects, where class fields represent state, methods represent capabilities, and docstrings serve as prompts.
Why it exists
To provide a more reliable and Pythonic way to build AI agents by unifying prompts, tools, callbacks, and workflows into a single object-oriented interface, allowing developers to use standard Python testing, tracing, and refactoring workflows.
Who should use it
AI engineersPython developersLLM application researchersSoftware engineers building agentic workflows
Who should avoid it
Users requiring production-ready stability without sandboxingDevelopers uncomfortable with LLM-generated code executionNon-Python programmers
How it works
A quick walkthrough in plain English
How labs-OO-Agents works
Step 1 of 3
You interact with it
Open labs-OO-Agents, send a request, or connect it to your stack.
Features
Advantages
- Leverages Python's ecosystem and familiarity
- Type safety through annotations
- Seamless integration with existing Python workflows
- Flexible agent design with object-oriented approach
- Traceability of agent actions and LLM interactions
- Reduces need for separate tool definitions
Disadvantages
- Research software with potential rough edges
- Requires sandboxing for LLM-generated code execution
- Safety risks due to LLM-generated code
- May need additional setup for security
- License is NOASSERTION (unclear terms)
Installation
native
uv init my-agent-project cd my-agent-project uv add nooa Or with pip: pip install nooa
FAQ
How do I install the NOOA framework?
You can install the core package with `uv add nooa` or `pip install nooa`. Optional sub-packages like CLI, memory, and benchmarks are available as extras (e.g., `uv add "nooa[cli,memory]"`) or as separate packages (`nooa-cli`, `nooa-memory`, `nooa-bench`). For development, install from source with `uv add "nooa @ git+https://github.com/NVIDIA-NeMo/labs-OO-Agents.git@main"`.
What safety precautions should I take when running agents that execute LLM-generated code?
NOOA includes AST checks and module deny-lists, but these are only defense-in-depth guardrails. The README stresses that you must run agents in a sandboxed environment isolated from your primary filesystem, such as a container, VM, or NVIDIA OpenShell, and not rely solely on in-process validators.
How can I trace and visualize my agent's execution?
Every LLM call, code execution, and method invocation is traced by default. If you have installed the CLI and viewer dependencies, start the trace viewer with `uv run nooa start-dev` (or `nooa start-dev` after installation) and open http://localhost:5001 in your browser. If the viewer isn't running, tracing is silently disabled.
How do I define an agent's capabilities and prompts in NOOA?
Agents are Python classes inheriting from `Agent`. Typed fields represent state, regular methods are deterministic Python, and methods with `...` bodies are generation methods implemented at runtime by an LLM. The method's signature defines the contract, its docstring serves as the prompt, and the method name and parameters shape the generated code.
Where can I find progressive examples to learn NOOA features like structured output, tools, and MCP?
The repository includes a full progressive tutorial under the `examples/` directory. See the examples README at https://github.com/NVIDIA-NeMo/labs-OO-Agents/blob/main/examples/README.md for step-by-step guides covering structured output, tools via `self`, strategies, tracing, context blocks, summarization, skills, MCP, sandbox usage, and more.
Featured in Videos
YouTube tutorials and walkthroughs for labs-OO-Agents
Alternatives
Similar projects ranked by category, topics, and text overlap.