Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
193 changes: 74 additions & 119 deletions docs/about-nemo-fabric/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,127 +1,83 @@
---
title: "NVIDIA NeMo Fabric"
title: "NVIDIA NeMo Fabric Documentation"
sidebar-title: "Overview"
description: "Configure, plan, run, and observe agent harnesses through one typed execution contract."
template-library-version: "1.0.0"
---
{/* SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0 */}

NeMo Fabric is the harness-management layer that turns multiple agent runtimes
into one configurable, observable execution surface. Applications use the same
versioned config, lifecycle, result, artifact, and telemetry contracts whether
the selected harness is Hermes, Codex SDK, or a custom adapter.
[NVIDIA NeMo Fabric](https://github.com/NVIDIA/NeMo-Fabric) is the
harness-management layer that turns multiple agent runtimes into one
configurable, observable execution surface. Applications use the same versioned
config, lifecycle, result, artifact, and telemetry contracts whether the
selected harness is [Hermes Agent](https://hermes-agent.nousresearch.com/docs/), [Codex](https://openai.com/codex/), or a custom adapter.

NeMo Fabric owns the seam between an application and its harness. It resolves
configuration, selects an adapter, drives the runtime lifecycle,
and returns normalized evidence without leaking harness-specific control code
into the caller.
configuration, selects an adapter, drives the runtime lifecycle, and returns
normalized evidence without leaking harness-specific control code into the
caller.

## What NeMo Fabric gives you
## Benefits

NeMo Fabric gives applications one contract across every supported harness.

<CardGroup cols={2}>
<Card title="Portable configuration">
<Card title="Portable Configuration">
Use a versioned `agent.yaml` package or construct the same typed
`FabricConfig` in Python. Applications create variants from typed copies;
portable file packages can use ordered profiles.
</Card>
<Card title="Harness-neutral execution">
<Card title="Harness-Neutral Execution">
Plan and invoke different harnesses through one Rust core, CLI, and Python
SDK instead of embedding harness launch logic in every consumer.
</Card>
<Card title="Typed lifecycle contracts">
<Card title="Typed Lifecycle Contracts">
Resolve configs, inspect capabilities, run one-shot jobs, and hold
multi-turn runtimes with typed requests, plans, handles, and results.
</Card>
<Card title="Normalized evidence">
<Card title="Normalized Evidence">
Collect output, errors, lifecycle events, artifact manifests, and telemetry
references in stable contracts suitable for platforms and evaluations.
</Card>
</CardGroup>

## How NeMo Fabric fits

```text
Application or evaluation harness
|
| Python SDK or `fabric` CLI
v
NeMo Fabric Rust core
config -> plan -> lifecycle
|
| resolved adapter contract
v
Hermes | Codex SDK | custom harness
|
v
RunResult + artifacts + events + telemetry references
```

The CLI and Python SDK are separate interfaces over the same core. File-backed
and typed configs converge on the same resolved config and run-plan contracts.
Adapters own harness-specific preparation and invocation; consumers own the
request and the use of returned evidence.

## Quick start

Install `just` 1.50.0+ if it is not already available.

```bash
cargo install just --locked
```

Refer to the [official installation guide](https://just.systems/man/en/installation.html)
for more details.

Ensure that the Cargo bin directory is in your `PATH`:

```bash
export PATH="$HOME/.cargo/bin:$PATH"
```

Create a Python virtual environment and activate it (replace `3.13` with your preferred Python version):

```bash
uv venv -p 3.13 --seed .venv
source .venv/bin/activate
```

Install the Python SDK with its native binding and the CLI from a source
checkout:
## Use Cases

```bash
just build-all
```
Teams use NeMo Fabric to run agents through a single contract, hold multi-turn
sessions over a live harness, and integrate agent execution into platforms and
evaluation pipelines.

Run the example through the Python SDK:
| Use Case | Reader Goal | Result |
| --- | --- | --- |
| Application integration | Run one-shot agent jobs from an application that owns its own config. | A normalized `RunResult` with output, artifacts, events, and telemetry references. |
| Multi-turn runtimes | Drive several ordered turns over one live harness runtime. | A stateful runtime handle you start, invoke, and stop through one lifecycle contract. |
| Platform and evaluation harnesses | Plan and invoke many harnesses behind one typed surface. | Stable, harness-neutral evidence suitable for platforms and evaluations. |

```python
import asyncio
from examples.code_review_agent import BASE_DIR, hermes_config
from nemo_fabric import Fabric
### Application Integration

An application owns its job config and consumes returned evidence. Configure an
agent package or typed `FabricConfig`, run it through the Python SDK, and read
the normalized `RunResult`. Refer to the [Python SDK guide](/sdk/python) for
typed requests and one-shot run examples.

async def main() -> None:
config = hermes_config()
client = Fabric()
result = await client.run(
config,
base_dir=BASE_DIR,
input="Reply with exactly: fabric works",
)
### Multi-Turn Runtimes

print(result.status)
When a workflow needs several ordered turns over one live harness, start a
runtime and invoke it turn by turn before stopping it. Refer to the
[Runtime reference](/reference/api/python-library-reference/runtime) for the
start, invoke, and stop lifecycle.

### Platform and Evaluation Harnesses

asyncio.run(main())
```
Platforms and evaluation systems plan and invoke different harnesses behind one
typed surface, then consume stable evidence contracts. Use the `fabric` CLI or
committed JSON Schemas to validate packages and build language bindings.

Harness installation and credential requirements differ by adapter. The
[repository quick start](https://github.com/NVIDIA/NeMo-Fabric#quick-start-hermes)
contains the complete Hermes environment recipe.
## Choose Your Interface

Refer to the [Python SDK guide](/sdk/python) for planning, diagnostics, typed
requests, and multi-turn runtime examples.

## Choose your interface
Use the following table to choose the NeMo Fabric interface that best fits how
your application works with harnesses:

| Interface | Use it when | Start with |
Comment thread
coderabbitai[bot] marked this conversation as resolved.
| --- | --- | --- |
Expand All @@ -134,46 +90,45 @@ Use `agent.yaml` when the agent package is the portable artifact. Use
`FabricConfig` when a platform already owns a larger job or deployment object
and wants to pass only its NeMo Fabric slice in memory.

## Core workflow
## Core Workflow

NeMo Fabric is organized around one flow from configuration to normalized
evidence:

```text
Application or evaluation harness
|
| Python SDK or `fabric` CLI
v
NeMo Fabric Rust core
config -> plan -> lifecycle
|
| resolved adapter contract
v
Hermes Agent | Codex | custom harness
|
v
RunResult + artifacts + events + telemetry references
```

1. **Configure** an agent package or typed `FabricConfig` with a harness adapter,
environment, models, tools, skills, MCP, and telemetry.
2. **Create variants** from deep copies to vary harness, model, environment, or
observability settings without mutating the base config. File-backed
packages may instead apply ordered profiles.
observability settings without mutating the base config. File-backed packages
may instead apply ordered profiles.
Comment thread
dagardner-nv marked this conversation as resolved.
3. **Plan and diagnose** to resolve the adapter and check capabilities and
requirements before spending work on a runtime.
4. **Run or start a runtime** through the shared start, invoke, and stop
lifecycle contract.
5. **Consume evidence** from `RunResult`: output, structured failure details,
artifacts, events, and telemetry references.

## Next steps
## Learn More

<CardGroup cols={2}>
<Card
title="Client API"
href="/reference/api/python-library-reference/client"
>
Resolve, plan, diagnose, run, and start stateful runtimes.
</Card>
<Card
title="Runtime"
href="/reference/api/python-library-reference/runtime"
>
Invoke multiple ordered turns and stop runtime handles safely.
</Card>
<Card
title="Types"
href="/reference/api/python-library-reference/types"
>
Explore all mutable config objects and immutable request, plan, result,
artifact, telemetry, and runtime models.
</Card>
<Card
title="Errors"
href="/reference/api/python-library-reference/errors"
>
Handle config, capability, lifecycle, state, and native-extension failures.
</Card>
</CardGroup>
Continue exploring NeMo Fabric through these resources.

- **Installation** — [Installation](/getting-started/install) to set up the runtime and adapters.
- **Quickstart** — [Quickstart](/getting-started/quick-start) to build from source and run the SDK example.
- **Beginner Tutorial** — [Beginner Tutorial](/getting-started/quickstart) to run a simple agent end to end.
- **Python SDK** — [Python SDK](/sdk/python) for planning, diagnostics, typed requests, and multi-turn runtimes.
- **API Reference** — [Client API](/reference/api/python-library-reference/client) to resolve, plan, diagnose, run, and start stateful runtimes.
64 changes: 61 additions & 3 deletions docs/about-nemo-fabric/release-notes.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,66 @@
---
title: "Release Notes"
description: "Release notes for NVIDIA NeMo Fabric."
title: "Release Notes for NVIDIA NeMo Fabric"
sidebar-title: "Release Notes"
description: "New features, fixed issues, and known issues for each NVIDIA NeMo Fabric release."
template-library-version: "1.0.0"
---
{/* SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0 */}

To be filled out at release time
This documentation contains the release notes for [NVIDIA NeMo Fabric](/about-ne-mo-fabric/overview).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify the slug for the overview page in Fern configuration.

# Check docs.yml or index.yml for the overview page slug
rg -n 'about-ne-mo-fabric\|about-nemo-fabric' docs/index.yml docs/docs.yml 2>/dev/null || echo "No index/docs config found, check manually"

# Also verify the overview file exists
fd -i 'overview.mdx' docs/

Repository: NVIDIA/NeMo-Fabric

Length of output: 235


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== files of interest =="
git ls-files 'docs/**' 'README.md' | rg 'about-nemo-fabric|index\.yml|docs\.yml|fern|config|overview\.mdx|release-notes\.mdx'

echo
echo "== search for slug metadata =="
rg -n --hidden --glob '!**/node_modules/**' --glob '!**/.git/**' \
  'about-ne-mo-fabric|about-nemo-fabric|slug:|permalink:|route:|path:' \
  docs README.md . 2>/dev/null || true

echo
echo "== overview frontmatter =="
sed -n '1,80p' docs/about-nemo-fabric/overview.mdx

echo
echo "== release notes header =="
sed -n '1,60p' docs/about-nemo-fabric/release-notes.mdx

Repository: NVIDIA/NeMo-Fabric

Length of output: 50375


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '== relevant files ==\n'
git ls-files 'docs/about-nemo-fabric/*' 'docs/**/*' | rg 'about-nemo-fabric|fern|index\.yml|docs\.yml'

printf '\n== slug references ==\n'
rg -n --hidden --glob 'docs/**' --glob '!**/node_modules/**' \
  'about-ne-mo-fabric|about-nemo-fabric|slug:|permalink:|route:|path:' \
  docs 2>/dev/null | head -n 200

printf '\n== overview.mdx head ==\n'
sed -n '1,40p' docs/about-nemo-fabric/overview.mdx

printf '\n== release-notes.mdx head ==\n'
sed -n '1,30p' docs/about-nemo-fabric/release-notes.mdx

Repository: NVIDIA/NeMo-Fabric

Length of output: 26192


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '== fern / docs config files ==\n'
git ls-files | rg '(^|/)(fern.*|.*fern.*|docs\.yml|index\.yml|config\.yml|config\.yaml|site\.yml|site\.yaml)$'

printf '\n== slug / alias references in config files ==\n'
rg -n --hidden --glob '!**/node_modules/**' --glob '!**/.git/**' \
  'about-ne-mo-fabric|about-nemo-fabric|slug:|alias:|aliases:|redirect|canonical' \
  . 2>/dev/null | head -n 200

printf '\n== root docs-related config heads ==\n'
for f in $(git ls-files | rg '(^|/)(fern.*|.*fern.*|docs\.yml|index\.yml|config\.yml|config\.yaml|site\.yml|site\.yaml)$'); do
  printf '\n--- %s ---\n' "$f"
  sed -n '1,80p' "$f"
done

Repository: NVIDIA/NeMo-Fabric

Length of output: 50375


Fix the overview link slug. docs/about-nemo-fabric/release-notes.mdx:10 points to /about-ne-mo-fabric/overview, but the docs route is /about-nemo-fabric/overview in docs/index.yml.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/about-nemo-fabric/release-notes.mdx` at line 10, Correct the NeMo Fabric
overview link in the release-notes content to use the
`/about-nemo-fabric/overview` slug, matching the route defined in
`docs/index.yml`.

Source: Path instructions


## Release `<Number.Number.Number>`

{/* Provide the release summary here. Replace the following paragraph with your own. */}
This release `<focus / soul / spirit of the release>`...

### Highlights

This release contains the following key changes:

- Item 1. For details, refer to [Link to documentation](doc.mdx).
- Item 2. For details, refer to [Link to documentation](doc.mdx).
- Item 3. For details, refer to [Link to documentation](doc.mdx).

{/* Optional: include this section if you have support matrix or compatibility updates for this release. */}
### Support Matrix and Compatibility Updates

This release includes the following support matrix and compatibility updates:

- Added support for `<platform>`. For details, refer to [Support Matrix](support-matrix.mdx).
Comment thread
coderabbitai[bot] marked this conversation as resolved.

### Fixed Known Issues

This version fixes the following known issues:

- Fixed known issue 1. For details, refer to [Link to documentation](doc.mdx) or [Link to troubleshooting](troubleshooting.mdx).
- Fixed known issue 2. For details, refer to [Link to documentation](doc.mdx) or [Link to troubleshooting](troubleshooting.mdx).
- Fixed known issue 3. For details, refer to [Link to documentation](doc.mdx) or [Link to troubleshooting](troubleshooting.mdx).

For the full list of known issues, refer to [Known Issues](#all-known-issues).

## All Known Issues

{/* Provide the known issues list here. Replace the following information with your own, or state that there are no known issues in this release. */}
The known issues for NVIDIA NeMo Fabric are the following:

- (New in version N.N.0) Known issue 1. [Link to documentation](doc.mdx) or [Link to troubleshooting](troubleshooting.mdx).
- (New in version N.N.0) Known issue 2. [Link to documentation](doc.mdx) or [Link to troubleshooting](troubleshooting.mdx).
- Known issue 3. [Link to documentation](doc.mdx) or [Link to troubleshooting](troubleshooting.mdx).

{/* Optional: include this section if you want to link directly to previous versions of the release notes. */}
## Release Notes for Previous Versions

Find the release notes for previous versions at the following links:

- [N.N.N](link.mdx)
- [N.N.N](link.mdx)
- [N.N.N](link.mdx)

## Related Topics

{/* Provide a list of links to related topics. Include correct page titles and file names for the links. */}
For more information, refer to the following related topics:

- [related-topic-1](link.mdx)
- [related-topic-2](link.mdx)
2 changes: 1 addition & 1 deletion docs/getting-started/install.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Install NVIDIA NeMo Fabric"
title: "NVIDIA NeMo Fabric Installation"
description: "Install guide."
---
{/* SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Expand Down
66 changes: 66 additions & 0 deletions docs/getting-started/quick-start.mdx

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure where this document came from, we don't need a quickstart and a quick-start

Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: "NVIDIA NeMo Fabric Quickstart"
sidebar-title: "Quickstart"
description: "Install NeMo Fabric from a source checkout and run a simple agent through the Python SDK."
---
{/* SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0 */}

Install `just` 1.50.0+ if it is not already available.

```bash
cargo install just --locked
```

Refer to the [official installation guide](https://just.systems/man/en/installation.html)
for more details.

Ensure that the Cargo bin directory is in your `PATH`:

```bash
export PATH="$HOME/.cargo/bin:$PATH"
```

Create a Python virtual environment and activate it (replace `3.13` with your preferred Python version):

```bash
uv venv -p 3.13 --seed .venv
source .venv/bin/activate
```

Install the Python SDK with its native binding and the CLI from a source
checkout:

```bash
just build-all
Comment on lines +9 to +35

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Should Fix — Document Required Setup Tools

Line 9 invokes cargo and Line 27 invokes uv, but neither prerequisite is established. Add an initial prerequisites step linking to Installation, explicitly requiring Rust with Cargo and uv, and state that just build-all runs from the source-checkout root. As per coding guidelines, keep documented commands aligned with current repository behavior and write complete procedures.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/getting-started/quick-start.mdx` around lines 9 - 35, Add an initial
prerequisites step to the quick-start documentation linking to the Installation
guide and explicitly requiring Rust with Cargo and uv before their commands are
used. Clarify that just build-all must be run from the source-checkout root,
while preserving the existing setup sequence and commands.

Sources: Coding guidelines, Path instructions

```

Run the example through the Python SDK:

```python
import asyncio
from examples.code_review_agent import BASE_DIR, hermes_config
from nemo_fabric import Fabric


async def main() -> None:
config = hermes_config()
client = Fabric()
result = await client.run(
config,
base_dir=BASE_DIR,
input="Reply with exactly: fabric works",
)

print(result.status)


asyncio.run(main())
```

Harness installation and credential requirements differ by adapter. The
[repository quick start](https://github.com/NVIDIA/NeMo-Fabric#quick-start-hermes)
contains the complete Hermes environment recipe.

Refer to the [Python SDK guide](/sdk/python) for planning, diagnostics, typed
requests, and multi-turn runtime examples.
2 changes: 1 addition & 1 deletion docs/getting-started/quickstart.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "NVIDIA NeMo Fabric Quickstart"
title: "NVIDIA NeMo Fabric Beginner Tutorial"
description: "Get started with NVIDIA NeMo Fabric."
---
{/* SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Expand Down
Loading
Loading