Skip to content
Closed
77 changes: 53 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,47 @@ SPDX-License-Identifier: Apache-2.0
[![Crates.io](https://img.shields.io/crates/v/nemo-fabric-cli?label=nemo-fabric-cli&color=B7410E&logo=rust)](https://crates.io/crates/nemo-fabric-cli)

<p align="center">
<img src="assets/fabric-hero-option2.png" alt="Diagram showing NeMo Fabric connecting applications, evaluations, and reinforcement learning rollouts to Hermes, Codex, Claude, and Deep Agents, with results, artifacts, and telemetry as outputs." width="1000">
<img src="assets/fabric-hero.png" alt="Diagram showing NeMo Fabric connecting applications, evaluation systems, and reinforcement learning rollouts to Hermes Agent, Codex, Claude Code, LangChain Deep Agents, and custom agents, with results, artifacts, and telemetry as outputs." width="1000">
</p>

NeMo Fabric gives users one configurable, observable way to run applications
across multiple agent harnesses. It standardizes configuration, lifecycle
management, and results without requiring a separate integration for every harness.
across agent harnesses and custom agents. It standardizes configuration,
lifecycle management, and results without requiring target-specific control
code in every consumer.

NeMo Fabric lets you change harnesses without rebuilding each integration,
isolate conflicting runtime dependencies, and manage harness configuration,
execution, and observability consistently. Every run returns normalized
results, artifacts, and telemetry for downstream systems to consume.
NeMo Fabric lets you change Adapter Targets without rebuilding each consumer
integration, isolate conflicting runtime dependencies, and manage target
configuration, execution, and observability consistently. Every run returns
normalized results, artifacts, and telemetry for downstream systems to
consume.

It provides:

- a versioned, typed configuration contract;
- ordinary Python composition for experiment variants;
- adapter integrations for harness-specific launch and control;
- a public adapter contract for harnesses and custom agents;
- adapter integrations for target-specific launch and control;
- a Python SDK backed by the Rust core;
- normalized run results, artifact manifests, and telemetry references.

## Supported Harnesses
## What's New in Fabric 0.2

Fabric 0.2 expands the adapter boundary beyond bundled harness integrations:

- The v1alpha2 adapter contract publishes canonical JSON Schemas,
dependency-free Python dataclasses, generated TypeScript types, maintained
authoring documentation, and a public adapter-building skill.
- Adapter Target Descriptors let independently installed custom agents select
a shared framework adapter and publish their own entry point and settings
schema without importing target code during planning.
- The NeMo Agent Toolkit reference demonstrates a shared adapter for multiple
registered workflows, while the LangGraph email-phishing example
demonstrates a dedicated custom-agent adapter.
- Native OpenAI Chat Completions streaming, MCP authentication and per-server
tool filters, and the compact mini-SWE-agent adapter extend the available
integration patterns.

## Bundled Harness Adapters

NeMo Fabric provides the following harness integrations. The package
expressions install the components shown in each column:
Expand All @@ -46,6 +66,14 @@ expressions install the components shown in each column:
| [LangChain Deep Agents](docs/integrations/harness/deepagents.mdx) | `nemo-fabric[deepagents]` | `nemo-fabric-adapters-deepagents[harness]` | `nemo-fabric-adapters-deepagents` |
| [mini-SWE-agent](docs/integrations/harness/mini-swe-agent.mdx) | `nemo-fabric[mini-swe-agent]` | `nemo-fabric-adapters-mini-swe-agent[harness]` | `nemo-fabric-adapters-mini-swe-agent` |

Custom agents use the same contract. Start with the
[NeMo Agent Toolkit shared adapter](external/nat/README.md) when one framework
adapter can load multiple registered agents, or the
[LangGraph custom-agent example](examples/langgraph_custom_agent/README.md)
when the application needs a dedicated adapter. The
[adapter contract overview](docs/adapter-contract/README.md) explains how to
choose and implement either path.

The `nemo-fabric` package always installs the runtime. Package-installable
harnesses provide root extras that add the corresponding adapter and supported
harness. Hermes Agent 0.20 and later is not available from PyPI; install it by
Expand Down Expand Up @@ -134,10 +162,10 @@ print(result.output.response)
`HarnessConfig.adapter_id` selects the Hermes Agent adapter. To use another
supported harness, install its package extra and set the corresponding adapter
ID. Pass harness-specific options through `HarnessConfig.settings` only when
the selected adapter descriptor declares them in `settings_schema`. Adapters
that expose selectable executables can accept `FabricConfig.workflow`; the
selected Adapter Target Descriptor defines the workflow entry point and
validates its settings.
the selected adapter descriptor declares them in `settings_schema`. A shared
framework adapter can expose registered custom agents through
`FabricConfig.workflow.target_id`; the selected Adapter Target Descriptor
defines the workflow entry point and validates its settings.

For a guided version of this example, refer to the
[`01_quickstart.ipynb` notebook](examples/notebooks/01_quickstart.ipynb). The
Expand Down Expand Up @@ -224,7 +252,7 @@ flowchart TB
Config["Typed configuration\nFabricConfig"]
Core["NeMo Fabric Rust core\nresolve | plan | create | invoke | destroy"]
Adapter["Selected NeMo Fabric adapter"]
Harness["Agent harness runtime\nHermes Agent | Codex | Claude Code | LangChain Deep Agents | custom"]
Harness["Adapter Target\nagent harness | shared framework | custom agent"]
Artifacts["Normalized results and artifacts\nresponse | logs | patches | telemetry refs"]
Relay["NVIDIA NeMo Relay\nATOF | ATIF | OTel | OpenInference when enabled"]

Expand Down Expand Up @@ -268,23 +296,24 @@ following resources to build or validate a consumer integration:
calculator verification test. You can also run the same task with Hermes
Agent or Claude and evaluate coding tasks with SWE-Bench.

### Harness Integrations
### Adapter Integrations

Harness integrations are southbound: they connect NeMo Fabric to agent harnesses
through adapters. Use the following reference to compare the integrations:
Adapter integrations are southbound: they connect NeMo Fabric to agent
harnesses and custom agents. Use these references to compare and build them:

- [Adapter compatibility and guides](adapters/README.md): compare bundled
harness support, runtime ownership, telemetry integration, and package guides.
- [Adapter contract](docs/adapter-contract/README.md): build third-party
adapters against the canonical schemas or the dependency-free Python and
TypeScript contract bindings.
- [Adapter contract](docs/adapter-contract/README.md): follow the incremental
guide for a minimum adapter, custom-agent patterns, canonical schemas, and
Python or TypeScript contract bindings.
- [Adapter examples](docs/adapter-contract/examples.md): compare the complete
Hermes Agent harness adapter, the minimum-surface mini-SWE-agent adapter, the
shared NeMo Agent Toolkit reference, and the dedicated LangGraph example.

## Roadmap

- **Custom harness adapter contract:** Publish and evolve canonical schemas and
dependency-free language bindings for third-party harness integrations.
- **Experimental NVIDIA NeMo Agent Toolkit adapter:** Develop an experimental adapter
for running NeMo Agent Toolkit workflows through the NeMo Fabric lifecycle.
- **Third-party adapter registry:** Extend installed and explicit descriptor
discovery with a provider-backed registry and catalog experience.
- **OOAgents:** Add support for
[OOAgents](https://github.com/NVIDIA-NeMo/labs-OO-Agents).
- **Remote agents:** Add support for invoking remotely hosted agents through the
Expand Down
14 changes: 8 additions & 6 deletions adapter-contract/python/pypi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache-2.0
[![GitHub](https://img.shields.io/badge/github-repo-blue?logo=github)](https://github.com/NVIDIA/NeMo-Fabric/)
[![Release](https://img.shields.io/github/v/release/NVIDIA/NeMo-Fabric?color=green)](https://github.com/NVIDIA/NeMo-Fabric/releases)

![Diagram showing NeMo Fabric connecting applications, evaluations, and reinforcement learning rollouts to Hermes, Codex, Claude, and Deep Agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero-option2.png)
![Diagram showing NeMo Fabric connecting applications, evaluation systems, and reinforcement learning rollouts to harnesses and custom agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero.png)

`nemo-fabric-adapter-contract` provides the typed Python configuration and
execution contract implemented by NeMo Fabric adapters. It does not include a
Expand All @@ -30,9 +30,9 @@ Import `AgentConfig` from the contract models module:
from nemo_fabric_adapter_contract.models import AgentConfig
```

An adapter descriptor opts into the southbound configuration with
`config.input=agent_config`. Python adapters using the optional common
lifecycle host pass `AgentConfig.from_mapping` as the `config_loader`.
NeMo Fabric delivers `AgentConfig` as the southbound configuration. Python
adapters using the optional common lifecycle host pass
`AgentConfig.from_mapping` as the `config_loader`.

## Install

Expand All @@ -48,6 +48,8 @@ Install the optional `pydantic` extra to enable Pydantic interoperability.
pip install "nemo-fabric-adapter-contract[pydantic]"
```

Refer to the [NeMo Fabric documentation](https://docs.nvidia.com/nemo/fabric)
for adapter and configuration guidance. Source code is available in the
Use the maintained
[adapter contract documentation](https://github.com/NVIDIA/NeMo-Fabric/tree/main/docs/adapter-contract)
and [canonical JSON Schemas](https://github.com/NVIDIA/NeMo-Fabric/tree/main/schemas/adapter-contract)
as the implementation source of truth. Source code is available in the
[NVIDIA NeMo Fabric repository](https://github.com/NVIDIA/NeMo-Fabric).
10 changes: 7 additions & 3 deletions adapter-contract/typescript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,20 @@ import type {

const descriptor: AdapterDescriptor = {
contract_version: ADAPTER_CONTRACT_VERSION,
adapter_id: "pi",
harness: "pi",
adapter_kind: "process",
adapter_id: "com.acme.fabric.example",
adapter_kind: "http",
};
```

Property names intentionally match the JSON wire format and remain
`snake_case`. Optional properties are distinct from properties whose value may
be `null`.

Use the maintained
[adapter contract documentation](https://github.com/NVIDIA/NeMo-Fabric/tree/main/docs/adapter-contract)
for the implementation sequence and the bundled schemas for runtime
validation.

## Invocation Types

The package root also exports the same request and result models as the Python
Expand Down
25 changes: 20 additions & 5 deletions adapters/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All
SPDX-License-Identifier: Apache-2.0
-->

# NVIDIA NeMo Fabric Agent Harness Adapters
# NVIDIA NeMo Fabric Adapters

NeMo Fabric adapters translate the normalized NeMo Fabric contract into
harness-native models, tools, sessions, and telemetry. Use this reference to
compare the bundled adapters and then open the linked package guide for
installation, authentication, and configuration details.
NeMo Fabric adapters translate the normalized NeMo Fabric contract into the
native models, tools, sessions, and telemetry of an agent harness or custom
agent. Use this reference to compare the bundled harness adapters, then refer
to the custom-agent examples when building a shared framework adapter or a
dedicated adapter.

The adapter descriptor selected in `RunPlan` is authoritative for normalized
configuration, its adapter-owned settings schema, and telemetry support.
Expand Down Expand Up @@ -40,6 +41,20 @@ schemas come from independently registered Adapter Target Descriptors.
| [Hermes Agent](hermes/README.md) | `nvidia.fabric.hermes` | `nemo-fabric-adapters-hermes` | 3.11-3.13 |
| [mini-SWE-agent](mini-swe-agent/README.md) | `nvidia.fabric.mini-swe-agent` | `nemo-fabric-adapters-mini-swe-agent` | 3.11+ |

## Custom-Agent Adapter References

Custom-agent support uses the same adapter contract as the bundled harnesses:

- The [NeMo Agent Toolkit reference adapter](../external/nat/README.md) shows
one shared framework adapter with separately registered calculator and
email-phishing targets.
- The [LangGraph custom-agent example](../examples/langgraph_custom_agent/README.md)
shows a dedicated adapter beside an application-owned graph.

Start with the
[adapter contract overview](../docs/adapter-contract/README.md) to choose an
integration shape and implement the minimum lifecycle.

## Configuration Compatibility

| Agent Harness | Models | Tool Policy | MCP | Skills | Subagents |
Expand Down
2 changes: 1 addition & 1 deletion adapters/claude/pypi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache-2.0
[![GitHub](https://img.shields.io/badge/github-repo-blue?logo=github)](https://github.com/NVIDIA/NeMo-Fabric/)
[![Release](https://img.shields.io/github/v/release/NVIDIA/NeMo-Fabric?color=green)](https://github.com/NVIDIA/NeMo-Fabric/releases)

![Diagram showing NeMo Fabric connecting applications, evaluations, and reinforcement learning rollouts to Hermes, Codex, Claude, and Deep Agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero-option2.png)
![Diagram showing NeMo Fabric connecting applications, evaluation systems, and reinforcement learning rollouts to harnesses and custom agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero.png)

`nemo-fabric-adapters-claude` provides a NeMo Fabric adapter for [Claude Code](https://claude.com/product/claude-code).

Expand Down
2 changes: 1 addition & 1 deletion adapters/codex/pypi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache-2.0
[![GitHub](https://img.shields.io/badge/github-repo-blue?logo=github)](https://github.com/NVIDIA/NeMo-Fabric/)
[![Release](https://img.shields.io/github/v/release/NVIDIA/NeMo-Fabric?color=green)](https://github.com/NVIDIA/NeMo-Fabric/releases)

![Diagram showing NeMo Fabric connecting applications, evaluations, and reinforcement learning rollouts to Hermes, Codex, Claude, and Deep Agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero-option2.png)
![Diagram showing NeMo Fabric connecting applications, evaluation systems, and reinforcement learning rollouts to harnesses and custom agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero.png)

`nemo-fabric-adapters-codex` provides a NeMo Fabric adapter for use with [Codex](https://openai.com/codex/).

Expand Down
12 changes: 7 additions & 5 deletions adapters/common/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@ Install the package directly when developing an adapter:
pip install nemo-fabric-adapters-common
```

Refer to the [NeMo Fabric documentation](https://docs.nvidia.com/nemo/fabric)
Use the maintained
[adapter contract documentation](https://github.com/NVIDIA/NeMo-Fabric/tree/main/docs/adapter-contract)
for adapter and configuration guidance. Source code is available in the
[NVIDIA NeMo Fabric repository](https://github.com/NVIDIA/nemo-fabric/).
[NVIDIA NeMo Fabric repository](https://github.com/NVIDIA/NeMo-Fabric/).

## Persistent Local Hosts

Expand Down Expand Up @@ -74,8 +75,7 @@ generated
[`openai-stream-record.schema.json`](https://github.com/NVIDIA/NeMo-Fabric/blob/main/schemas/adapter-contract/openai-stream-record.schema.json)
chunk and explicit-end envelopes.

Adapters whose descriptor sets `config.input` to `agent_config` can ask the
host to validate the southbound contract before `start`:
Adapters can ask the host to validate the southbound contract before `start`:

```python
from nemo_fabric_adapter_contract.models import AgentConfig
Expand All @@ -84,7 +84,9 @@ lifecycle.serve(AdapterRuntime, config_loader=AgentConfig.from_mapping)
```

The runtime then receives an `AgentConfig` instance in `payload["config"]`.
Omitting `config_loader` preserves the legacy `FabricConfig` mapping.
New adapters must provide this loader. Omitting `config_loader` is a legacy
host behavior and is not the v1alpha2 adapter configuration contract;
`FabricConfig` never crosses the supported southbound boundary.

NeMo Fabric calls the factory once per local host to create one runtime instance and
serializes invocations through that instance. The host keeps one event loop
Expand Down
2 changes: 1 addition & 1 deletion adapters/common/pypi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache-2.0
[![GitHub](https://img.shields.io/badge/github-repo-blue?logo=github)](https://github.com/NVIDIA/NeMo-Fabric/)
[![Release](https://img.shields.io/github/v/release/NVIDIA/NeMo-Fabric?color=green)](https://github.com/NVIDIA/NeMo-Fabric/releases)

![Diagram showing NeMo Fabric connecting applications, evaluations, and reinforcement learning rollouts to Hermes, Codex, Claude, and Deep Agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero-option2.png)
![Diagram showing NeMo Fabric connecting applications, evaluation systems, and reinforcement learning rollouts to harnesses and custom agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero.png)

`nemo-fabric-adapters-common` provides shared helper methods for NeMo Fabric
adapter implementations. Adapter packages typically declare this package as a
Expand Down
2 changes: 1 addition & 1 deletion adapters/deepagents/pypi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache-2.0
[![GitHub](https://img.shields.io/badge/github-repo-blue?logo=github)](https://github.com/NVIDIA/NeMo-Fabric/)
[![Release](https://img.shields.io/github/v/release/NVIDIA/NeMo-Fabric?color=green)](https://github.com/NVIDIA/NeMo-Fabric/releases)

![Diagram showing NeMo Fabric connecting applications, evaluations, and reinforcement learning rollouts to Hermes, Codex, Claude, and Deep Agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero-option2.png)
![Diagram showing NeMo Fabric connecting applications, evaluation systems, and reinforcement learning rollouts to harnesses and custom agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero.png)

`nemo-fabric-adapters-deepagents` provides a NeMo Fabric adapter for use with [LangChain Deep Agents](https://www.langchain.com/deep-agents).

Expand Down
2 changes: 1 addition & 1 deletion adapters/hermes/pypi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SPDX-License-Identifier: Apache-2.0
[![GitHub](https://img.shields.io/badge/github-repo-blue?logo=github)](https://github.com/NVIDIA/NeMo-Fabric/)
[![Release](https://img.shields.io/github/v/release/NVIDIA/NeMo-Fabric?color=green)](https://github.com/NVIDIA/NeMo-Fabric/releases)

![Diagram showing NeMo Fabric connecting applications, evaluations, and reinforcement learning rollouts to Hermes, Codex, Claude, and Deep Agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero-option2.png)
![Diagram showing NeMo Fabric connecting applications, evaluation systems, and reinforcement learning rollouts to harnesses and custom agents, with results, artifacts, and telemetry as outputs.](https://raw.githubusercontent.com/NVIDIA/NeMo-Fabric/refs/heads/main/assets/fabric-hero.png)

`nemo-fabric-adapters-hermes` provides a NeMo Fabric adapter for use with [Hermes Agent](https://hermes-agent.nousresearch.com/).

Expand Down
Binary file removed assets/fabric-hero-option2.png
Binary file not shown.
Binary file added assets/fabric-hero.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading