labs-OO-Agents logo

labs-OO-Agents

labs-OO-agents

Developer ToolsAI AgentsPythonNOASSERTION 524 77Health 77
NVIDIApaper arXivblog NVIDIA
GitHub

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

Agents as Python objects with typed state and methods
LLM-driven agentic methods via `...` syntax
Pythonic and agent-ready design with typed I/O
Auto-retry and live-object arguments
Model-callable context and event APIs
Integration with tools via `self` (no separate tool schemas)
Traceable LLM calls and code execution
Support for structured output and tools
Compatibility with various LLM providers (via LiteLLM)

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.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for labs-OO-Agents

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
labs-OO-Agents | MushyBook