PAGES
← all tools
◆ UNCATEGORIZED

Object-Oriented Agents

v0.0.10 open-source

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

Summary

Object-Oriented Agents (NOOA) is an open-source, Apache 2.0-licensed Python framework for building AI agents, distributed as a library you install with pip install nooa or uv add nooa and import into your own code. Rather than treating prompts, tools, callbacks, and workflows as separate abstractions, as many agent frameworks do, it lets a developer express an agent's state, capabilities, prompts, and typed interfaces as a single Python class, which makes it a fit for application developers building agentic systems rather than for security teams directly, though an included cybergym example shows it used to build a cybersecurity-oriented agent. Recent hardening work has removed an eval()-based code execution path in its CodeAct constructor, confined shell-tool file operations to the working directory, and added auth and CORSCORSA browser mechanism that lets a server declare which foreign origins may read its HTTP responses, enforced by the browser to block unauthorized cross-site requests from JavaScript. restrictions to its local trace viewer, work that suggests active, ongoing maintenance.

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

How Object-Oriented Agents helps

Can I let an agent run shell commands without giving it access to my whole filesystem?

confines the shell tool's file operations to the current working directory, so commands the agent issues cannot read or write paths outside that tree

Can I let an agent generate and run code without opening an arbitrary code-execution hole?

decodes the agent's constructor strings with an AST-based parser instead of evaluating them, so the code-generation path no longer accepts arbitrary executable input

Who else can reach the trace viewer I run to inspect an agent's execution?

requires an auth token and enforces a CORS restriction on the viewer API, so only requests carrying the token from an allowed origin can read a run's traces

all 10 features, with the evidence for each →

Languages

Not documented

Features

10 capabilities · 1 backed by code, an API document or a real run

Built from Object-Oriented Agents's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What Object-Oriented Agents offers you

  • Command-line interface2
  • CI/CD pipeline integration1
  • Plugin API support1
  • Plugin system1
All capabilities 10 capabilities
Agent sandbox hardening shipped Restricts agent-executed operations — including shell file access, LLM endpoint selection, and code evaluation — to bounded, pre-approved surfaces to limit the blast radius of agent actions. 8 releases · first seen Jul 2026

release 8 total

  • Constrains playground custom-model endpoint and api_key_env to server-declared pairs, preventing arbitrary endpoint injection. v0.0.7 · Jul 2026 · source · release history
  • Constrains playground custom-model endpoint and api_key_env to server-declared pairs, preventing clients from supplying arbitrary LLM endpoints. v0.0.7 · Jul 2026 · source · release history
  • Replaces eval() in the CodeAct constructor-string coercion path with an AST decoder, removing arbitrary code execution from that code path. v0.0.7 · Jul 2026 · source · release history
  • Confines ShellTools file operations within the current working directory, reducing the blast radius of LLM-generated shell actions. v0.0.7 · Jul 2026 · source · release history
  • Constrains playground custom-model endpoint and api_key_env fields to server-declared pairs, blocking arbitrary endpoint injection. v0.0.7 · Jul 2026 · source · release history
  • Constrains ShellTools file operations to the current working directory, limiting lateral file access. v0.0.7 · Jul 2026 · source · release history
Trace viewer access controls shipped Secures the local trace-viewer API with auth tokens, CORS restrictions, and ingest-path resource limits to narrow its attack surface and cap resource consumption. 6 releases · first seen Jul 2026

release

  • Requires an auth token and restricts CORS on the viewer API, hardening the exposed surface. v0.0.7 · Jul 2026 · source · release history
  • Enforces resource limits on viewer ingest to bound memory and CPU consumption under high trace volume. v0.0.7 · Jul 2026 · source · release history
  • Adds authentication token requirement and CORS restrictions to the viewer API, preventing unauthenticated access to trace data. v0.0.7 · Jul 2026 · source · release history
  • Adds resource limits on the viewer ingest path to cap memory and request size for the trace-viewer API. v0.0.7 · Jul 2026 · source · release history
  • Adds resource limits on the Viewer ingest API to cap payload sizes and prevent abuse. v0.0.7 · Jul 2026 · source · release history
  • Requires an auth token and restricts CORS on the viewer API, narrowing the attack surface of the local trace viewer. v0.0.7 · Jul 2026 · source · release history
Enhanced observability and trace portability shipped Adds LLM routing metadata to traces, qualifies method spans with agent class names, and provides a portable journal file exporter for offline trace storage. 5 releases · first seen Aug 2026

release

  • Qualifies method spans with the owning agent class name in the trace viewer, making multi-agent traces easier to read. v0.0.10 · Sep 2026 · source · release history
  • Qualify method spans with the owning agent class in the viewer v0.0.10 · Sep 2026 · source · release history
  • Adds LLM routing metadata to generation observability, surfacing which backend handled each LLM call in traces. v0.0.9 · Aug 2026 · source · release history
  • Adds a portable journal file exporter for tracing, giving teams an offline-portable trace format independent of a remote viewer. v0.0.9 · Aug 2026 · source · release history
  • Adds a portable journal file exporter for tracing, enabling offline and cross-environment trace storage. v0.0.9 · Aug 2026 · source · release history
CLI configuration options verified Adds command-line flags for sample timeouts, pipeline/job URLs for private GitLab integration, retry limits, and internal model alias wheels. 5 other sources · first seen Sep 2026

Also counts toward: CI/CD pipeline integration, Command-line interface

command line

  • --sample-timeout v0.0.10 · Sep 2026
  • --pipeline-url — private GitLab pipeline URL v0.0.10 · Sep 2026
  • --max-retries — Retries for transient viewer errors such as HTTP 503. v0.0.10 · Sep 2026
  • --internal-wheel — explicit internal model-alias wheel v0.0.10 · Sep 2026
  • --job-url — private GitLab job URL v0.0.10 · Sep 2026
Cybersecurity agent examples shipped Provides a NOOA cybergym example demonstrating how to build a cybersecurity-oriented agent on the OO Agents framework. 4 releases · 1 other source · first seen Jul 2026

release

  • Adds a portfolio-based NOOA agent to the CyberGym benchmark environment. v0.0.9 · Aug 2026 · source · release history
  • Adds a nooa CyberGym agent example demonstrating object-oriented agent patterns for cyber exercise environments. v0.0.7 · Jul 2026 · source · release history
  • Adds a NOOA cybergym agent example (examples/) demonstrating a cybersecurity-oriented agent built on the OO Agents framework. v0.0.7 · Jul 2026 · source · release history
  • Adds an NOOA CyberGym agent example demonstrating how to build a cyber-domain agent with the OO Agents framework. v0.0.7 · Jul 2026 · source · release history

docs

  • Model-agnostic Python framework for building AI agents using object-oriented classes with LLM-driven methods.
Durable human-in-the-loop execution shipped Supports suspend-and-resume patterns for agent execution across sessions, with examples for ACP integration. 3 releases · first seen Sep 2026

release

  • Adds durable human-in-the-loop suspend-and-resume example, demonstrating how to pause and continue agent execution across sessions. v0.0.10 · Sep 2026 · source · release history
  • Adds nooa-acp / nooa[acp] package to serve durable coding sessions over the Agent Client Protocol (ACP), enabling use with ACP hosts such as Zed. v0.0.10 · Sep 2026 · source · release history
  • Serve durable coding sessions over ACP v0.0.10 · Sep 2026 · source · release history
LLM routing and model support shipped Enables dynamic LLM selection at runtime and extends routing support to include latest reasoning models via LiteLLM. 2 releases · 1 other source · first seen Aug 2026

release

  • Routes GPT-5.6 reasoning tool calls through LiteLLM, extending model-agnostic routing to the latest OpenAI reasoning models. v0.0.10 · Sep 2026 · source · release history
  • All nemo_flow_* symbols are renamed to nemo_relay_*; any code importing or referencing nemo_flow_* names will break. v0.0.9 · Aug 2026 · source · release history

example

  • Dynamically select an LLM per-call (e.g. based on task complexity) instead of binding one model at class definition time. from nooa import Agent from nooa.unifiedllm import get_llm_client def pick_llm(): return get_llm_client("ollama_chat/qwen3:1.7b", api_base="http://localhost:11434") class AdaptiveAgent(Agent):… v0.0.9 · Aug 2026 · source
PyPI package distribution shipped Publishes the framework as an installable Python package on PyPI via Trusted Publishing, enabling standard pip or uv installs from official GitHub Releases. 3 releases · first seen Jul 2026

release

  • Allows a callable to be passed to @strategy(llm=...) so LLM selection can be decided at runtime rather than at class-definition time. v0.0.9 · Aug 2026 · source · release history
  • Allows a callable to be passed to @strategy(llm=...), enabling dynamic LLM selection per strategy invocation instead of a static reference. v0.0.9 · Aug 2026 · source · release history
  • Publishes the package to PyPI via Trusted Publishing on GitHub Releases, enabling pip install nooa / uv add nooa installs from official releases. v0.0.7 · Jul 2026 · source · release history
CLI extensibility via entry points shipped Allows external packages to register new CLI subcommands via Python entry points without modifying the core framework. 2 releases · first seen Aug 2026

Also counts toward: Command-line interface, Plugin API support, Plugin system

release

  • Enables external packages to add nooa subcommands via Python entry points, allowing third-party plugins to extend the CLI without forking. v0.0.9 · Aug 2026 · source · release history
  • Lets external packages register new nooa subcommands via Python entry points, making the nooa CLI extensible without modifying core. v0.0.9 · Aug 2026 · source · release history
Interactive multi-agent collaboration shipped Provides a shared interactive session foundation enabling multiple agents to collaborate within a single context. 1 release · first seen Aug 2026

release

  • Adds a shared interactive session foundation, enabling multiple agents to collaborate within a single interactive context. v0.0.9 · Aug 2026 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Release-note detail over time

See how much detail Object-Oriented Agents puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

3 entries

  1. September 20261
  2. August 20261
  3. July 20261
    Show

    3 entries

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →