Examples and References
Use the example that matches the integration shape you chose. Review its descriptor, lifecycle implementation, and consumer configuration, in that order. The canonical schemas remain authoritative when an example omits a field.
Harness Adapter
Use the Hermes Agent adapter as the primary reference for integrating an opinionated harness. Its descriptor and runtime demonstrate normalized models, MCP, instructions, runtime settings, persistent session state, and Relay telemetry through one harness adapter.
Use mini-SWE-agent as the secondary minimum-surface reference when you want to understand the required boundary at a glance. Its package contains:
- A static Adapter Descriptor that accepts a small normalized config surface
- One runtime class with
start,invoke, andstop - The optional common Python lifecycle host
- One package README with a complete consumer configuration
The adapter retains the model, environment, agent, and conversation state in one runtime instance. It does not implement MCP, skills, telemetry, or native streaming, which keeps the required path visible.
Shared Adapter With Registered Custom Agents
Start with the NeMo Agent Toolkit reference when one adapter must support many custom agents built for a framework. Read these files in order:
nat.fabric-adapter.jsondeclarestarget_types: ["workflow"], normalized configuration, tool definition schema, and native OpenAI streaming.email-phishing-analyzer.fabric-target.jsonselects the shared adapter and supplies the workflow entry point and settings schema.calculator.fabric-target.jsonshows a second target that reuses the same adapter contract.adapter.pytranslatesAgentConfiginto NeMo Agent Toolkit configuration and owns the retained workflow lifecycle.
The consumer selects a target, not an entry point:
Planning resolves the target’s adapter and projects the target-owned entry
point into AgentConfig.workflow. A second target changes the target ID and
settings schema without changing the shared Adapter Descriptor.
Dedicated Custom-Agent Adapter
Start with the LangGraph email-phishing example when the custom application is the clearest integration boundary. Its directories make ownership explicit:
consumer/ownsFabricConfigand invocation.adapter/receivesAgentConfig, translates dependencies, and owns the lifecycle.agent/contains application behavior without an NVIDIA NeMo Fabric dependency.
The descriptor directly selects this adapter and does not declare
target_types or accept workflow. Its minimum path maps one model and one
system instruction, compiles the graph during start, invokes the retained
graph, and releases its references during stop. Optional MCP and Relay
modules are adjacent additions rather than requirements of the minimum
lifecycle.
Follow the Type Boundary
Across all examples, keep these ownership boundaries intact:
Use the
schemas/adapter-contract/ directory
for exact southbound wire shapes and Stage 1 to begin
your own descriptor.