> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/relay/llms.txt.
> For full documentation content, see https://docs.nvidia.com/nemo/relay/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/relay/_mcp/server.

# Struct Atif Section Config

> Per-trajectory ATIF exporter config.

Generated from `cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-ffi`.

<pre />

Per-trajectory ATIF exporter config.

When enabled, this section creates a dispatcher that opens a separate [`crate::observability::atif::AtifExporter`](/reference/api/rust-library-reference/nemo-relay/observability/atif/struct-atifexporter) for each top-level agent or turn scope. The `{session_id}` placeholder in [`AtifSectionConfig::filename_template`](/reference/api/rust-library-reference/nemo-relay/observability/plugin_component/struct-atifsectionconfig) is required so concurrent sibling trajectories cannot overwrite each other's files.

## Fields

### `enabled: bool`

Whether ATIF export is active.

### `agent_name: String`

Human-readable agent name.

### `agent_version: String`

Agent version string.

### `model_name: String`

Default model name.

### `tool_definitions: Option<Vec<Value>>`

Tool definitions available to the agent.

### `extra: Option<Value>`

Extra ATIF agent metadata.

### `output_directory: Option<PathBuf>`

Directory containing trajectory JSON files. Ignored when [`storage`](/reference/api/rust-library-reference/nemo-relay/observability/plugin_component/struct-atifsectionconfig) is non-empty.

### `filename_template: String`

Filename template. `{session_id}` is replaced with the top-level trajectory scope UUID. When [`storage`](/reference/api/rust-library-reference/nemo-relay/observability/plugin_component/struct-atifsectionconfig) is non-empty, the rendered filename is appended to each backend's key prefix.

### `storage: Vec<AtifStorageConfig>`

Optional list of remote storage destinations. When non-empty, completed trajectories are uploaded to every configured backend instead of being written locally; the local file write at [`output_directory`](/reference/api/rust-library-reference/nemo-relay/observability/plugin_component/struct-atifsectionconfig) is skipped. Backends are independent: an upload failure on one destination is recorded against that destination and skipped on subsequent trajectories, while the other destinations continue to receive writes.

## Trait Implementations

### `impl Clone for AtifSectionConfig`

<pre />

#### `clone`

<pre />

#### `clone_from`

<pre />

### `impl Debug for AtifSectionConfig`

<pre />

#### `fmt`

<pre />

### `impl Default for AtifSectionConfig`

<pre />

#### `default`

<pre />

### `impl<'de> Deserialize<'de> for AtifSectionConfig`

<pre />

#### `deserialize`

<pre />

### `impl EditorConfig for AtifSectionConfig`

<pre />

#### `editor_schema`

<pre />

### `impl Serialize for AtifSectionConfig`

<pre />

#### `serialize`

<pre />