[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-nemo-relay-plugin-observability":3,"mdc--kco92p-key":51,"related-org-nvidia-nemo-relay-plugin-observability":654,"related-repo-nvidia-nemo-relay-plugin-observability":815},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":46,"sourceUrl":49,"mdContent":50},"nemo-relay-plugin-observability","configure NeMo Relay observability","Use this skill when choosing or configuring NeMo Relay observability through the built-in plugin, subscribers, or exporters, including raw ATOF events, ATIF trajectories, OpenTelemetry traces, OpenInference export, or custom event handling.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Observability","observability","tag",{"name":17,"slug":18,"type":15},"Monitoring","monitoring",{"name":20,"slug":21,"type":15},"OpenTelemetry","opentelemetry",{"name":9,"slug":8,"type":15},75,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNeMo-Relay","2026-07-23T05:43:38.477024","Apache-2.0",41,[29,30,31,32,33,34,35,36,37,38,39,8,14,40,41,42,43,44,45],"agents","ai","atif","atof","claude-code","codex","deepagents","hermes-agent","langchain","langgraph","middleware","openclaw","openinference","optimization","otel","runtime","security",{"repoUrl":24,"stars":23,"forks":27,"topics":47,"description":48},[29,30,31,32,33,34,35,36,37,38,39,8,14,40,41,42,43,44,45],"Multi-language agent runtime and library for execution scope management, lifecycle events, and middleware on tool and LLM calls.","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNeMo-Relay\u002Ftree\u002FHEAD\u002Fskills\u002Fnemo-relay-plugin-observability","---\nname: nemo-relay-plugin-observability\ndescription: Use this skill when choosing or configuring NeMo Relay observability through the built-in plugin, subscribers, or exporters, including raw ATOF events, ATIF trajectories, OpenTelemetry traces, OpenInference export, or custom event handling.\nlicense: Apache-2.0\nmetadata:\n  author: NVIDIA Corporation and Affiliates\n---\n\n# Configure Observability Plugins\n\nStart with one exporter managed by the built-in Observability plugin. This is\nthe default for reusable process configuration and the best first plugin for\nmost users because it makes Relay's captured activity visible.\nChoose one proof output before layering additional telemetry destinations.\n\nUse manual subscriber or exporter APIs only when a test, script, or application\nneeds direct control over registration names, collection windows, or flush\ntiming. Both paths consume the same canonical event stream.\n\n## Choose The Output\n\nSelect the output that best matches the user's immediate inspection target:\n\n- **Console or custom event handling**\n  Use a manual subscriber for short-lived in-process inspection.\n- **Raw canonical lifecycle events**\n  Use ATOF JSONL; read `references\u002Fatof.md`.\n- **Portable execution trajectories**\n  Use ATIF; read `references\u002Fatif.md`.\n- **General OTLP tracing**\n  Use OpenTelemetry; read `references\u002Fopentelemetry.md`.\n- **OpenInference-aware backends**\n  Use OpenInference; read `references\u002Fopeninference.md`.\n\nChoose one output first and verify it before adding another. ATOF is the\ndefault local proof because it preserves the raw event stream with the least\ntranslation. Use synthetic, non-sensitive payloads for the first proof. Add and\nverify sanitization before exporters receive production payloads, and never\ndisplay complete event records while validating an exporter.\n\n## Embedded Event And Subscriber Model\n\nUse this model when explaining how capture and export relate:\n\n- NeMo Relay emits one canonical event stream from scopes, marks, managed tool\n  calls, managed LLM calls, middleware, and manual lifecycle APIs.\n- Subscribers consume events without defining the event model. Multiple\n  subscribers can observe the same stream for logging, export, analytics, or\n  diagnostics.\n- Global subscribers remain active process-wide until removed.\n- Scope-local subscribers are owned by one active scope and disappear when that\n  scope closes.\n- Plugin-installed subscribers are reusable, configuration-driven runtime\n  components.\n- Exporter-oriented subscribers preserve raw ATOF or translate the event stream\n  into ATIF, OpenTelemetry, or OpenInference output.\n- Event payloads reflect sanitized post-guardrail input and output when calls\n  use managed helpers or manual lifecycle params provide those fields.\n- LLM annotations follow the freshness rules:\n  - Each owning agent scope starts fresh, and a `compaction` mark refreshes it.\n  - The first subsequent LLM start retains complete annotation history. Later\n    starts retain system instructions, the latest user message, and every\n    following assistant or tool message.\n  - When a request codec supplies an annotation, Relay applies the same\n    event-only projection to provider-shaped event input without changing\n    provider execution.\n- Event fields include semantic input\u002Foutput through the ATOF `data` field,\n  typed profile data such as `model_name` and `tool_call_id`, and codec-provided\n  annotated LLM request\u002Fresponse data for in-process subscribers and exporters.\n- First-class skill tools and the requests to read a complete `SKILL.md`\n  automatically emit `skill.load` marks under the tool span. The payload\n  contains only `skill_name`; metadata records the load source and tool name.\n  Partial reads do not count, and ambiguous slash-command expansions use the\n  separate `skill.load.inferred` name. The eager mark remains present if tool\n  execution later fails.\n\n## Shared Lifecycle\n\n1. Create the exporter or subscriber.\n2. Register it with a unique name before the relevant scoped work.\n3. Run NeMo Relay-instrumented work inside scopes.\n4. Flush if deterministic delivery is needed and the binding supports it.\n5. Deregister it, then shut it down when the process or subsystem is done.\n\n## Binding Names\n\nUse the names exported by the selected language binding:\n\n- Python: `nemo_relay.subscribers.register(...)`,\n  `AtofExporter`, `AtifExporter`, `OpenTelemetrySubscriber`, and\n  `OpenInferenceSubscriber`\n- Node.js: root exports `registerSubscriber(...)`, `AtofExporter`,\n  `AtifExporter`, `OpenTelemetrySubscriber`, and `OpenInferenceSubscriber`\n- Rust: `nemo_relay::api::subscriber` and `nemo_relay::observability::*`\n- Go: source-first wrappers expose equivalent register, exporter, and subscriber\n  lifecycle methods\n\n## Load A Reference When\n\nLoad only the reference required by the selected output:\n\n- Load `references\u002Fatof.md` for raw JSONL events used in local debugging or\n  offline inspection.\n- Load `references\u002Fatif.md` for ATIF trajectories.\n- Load `references\u002Fopentelemetry.md` for OTLP\u002FOpenTelemetry traces.\n- Load `references\u002Fopeninference.md` for OpenInference semantic traces.\n\n## Use Another Skill When\n\nChoose another skill when the task belongs to an adjacent workflow:\n\n- Use `nemo-relay-plugin-build` to package subscriber-based export behavior as\n  a reusable plugin.\n- Use `nemo-relay-get-started` or `nemo-relay-instrument-calls` when no scope,\n  tool call, or LLM call has been instrumented.\n- Use `nemo-relay-debug-runtime-integration` to diagnose missing telemetry.\n\n## Related Skills\n\nUse these skills for adjacent workflows:\n\n- Instrument application calls with `nemo-relay-instrument-calls`.\n- Add typed wrappers with `nemo-relay-instrument-typed-wrappers`.\n- Package reusable behavior with `nemo-relay-plugin-build`.\n- Diagnose missing events with `nemo-relay-debug-runtime-integration`.\n",{"data":52,"body":55},{"name":4,"description":6,"license":26,"metadata":53},{"author":54},"NVIDIA Corporation and Affiliates",{"type":56,"children":57},"root",[58,67,73,78,85,90,176,181,187,192,327,333,362,368,373,477,483,488,536,542,547,595,601,606],{"type":59,"tag":60,"props":61,"children":63},"element","h1",{"id":62},"configure-observability-plugins",[64],{"type":65,"value":66},"text","Configure Observability Plugins",{"type":59,"tag":68,"props":69,"children":70},"p",{},[71],{"type":65,"value":72},"Start with one exporter managed by the built-in Observability plugin. This is\nthe default for reusable process configuration and the best first plugin for\nmost users because it makes Relay's captured activity visible.\nChoose one proof output before layering additional telemetry destinations.",{"type":59,"tag":68,"props":74,"children":75},{},[76],{"type":65,"value":77},"Use manual subscriber or exporter APIs only when a test, script, or application\nneeds direct control over registration names, collection windows, or flush\ntiming. Both paths consume the same canonical event stream.",{"type":59,"tag":79,"props":80,"children":82},"h2",{"id":81},"choose-the-output",[83],{"type":65,"value":84},"Choose The Output",{"type":59,"tag":68,"props":86,"children":87},{},[88],{"type":65,"value":89},"Select the output that best matches the user's immediate inspection target:",{"type":59,"tag":91,"props":92,"children":93},"ul",{},[94,106,125,142,159],{"type":59,"tag":95,"props":96,"children":97},"li",{},[98,104],{"type":59,"tag":99,"props":100,"children":101},"strong",{},[102],{"type":65,"value":103},"Console or custom event handling",{"type":65,"value":105},"\nUse a manual subscriber for short-lived in-process inspection.",{"type":59,"tag":95,"props":107,"children":108},{},[109,114,116,123],{"type":59,"tag":99,"props":110,"children":111},{},[112],{"type":65,"value":113},"Raw canonical lifecycle events",{"type":65,"value":115},"\nUse ATOF JSONL; read ",{"type":59,"tag":117,"props":118,"children":120},"code",{"className":119},[],[121],{"type":65,"value":122},"references\u002Fatof.md",{"type":65,"value":124},".",{"type":59,"tag":95,"props":126,"children":127},{},[128,133,135,141],{"type":59,"tag":99,"props":129,"children":130},{},[131],{"type":65,"value":132},"Portable execution trajectories",{"type":65,"value":134},"\nUse ATIF; read ",{"type":59,"tag":117,"props":136,"children":138},{"className":137},[],[139],{"type":65,"value":140},"references\u002Fatif.md",{"type":65,"value":124},{"type":59,"tag":95,"props":143,"children":144},{},[145,150,152,158],{"type":59,"tag":99,"props":146,"children":147},{},[148],{"type":65,"value":149},"General OTLP tracing",{"type":65,"value":151},"\nUse OpenTelemetry; read ",{"type":59,"tag":117,"props":153,"children":155},{"className":154},[],[156],{"type":65,"value":157},"references\u002Fopentelemetry.md",{"type":65,"value":124},{"type":59,"tag":95,"props":160,"children":161},{},[162,167,169,175],{"type":59,"tag":99,"props":163,"children":164},{},[165],{"type":65,"value":166},"OpenInference-aware backends",{"type":65,"value":168},"\nUse OpenInference; read ",{"type":59,"tag":117,"props":170,"children":172},{"className":171},[],[173],{"type":65,"value":174},"references\u002Fopeninference.md",{"type":65,"value":124},{"type":59,"tag":68,"props":177,"children":178},{},[179],{"type":65,"value":180},"Choose one output first and verify it before adding another. ATOF is the\ndefault local proof because it preserves the raw event stream with the least\ntranslation. Use synthetic, non-sensitive payloads for the first proof. Add and\nverify sanitization before exporters receive production payloads, and never\ndisplay complete event records while validating an exporter.",{"type":59,"tag":79,"props":182,"children":184},{"id":183},"embedded-event-and-subscriber-model",[185],{"type":65,"value":186},"Embedded Event And Subscriber Model",{"type":59,"tag":68,"props":188,"children":189},{},[190],{"type":65,"value":191},"Use this model when explaining how capture and export relate:",{"type":59,"tag":91,"props":193,"children":194},{},[195,200,205,210,215,220,225,230,261,290],{"type":59,"tag":95,"props":196,"children":197},{},[198],{"type":65,"value":199},"NeMo Relay emits one canonical event stream from scopes, marks, managed tool\ncalls, managed LLM calls, middleware, and manual lifecycle APIs.",{"type":59,"tag":95,"props":201,"children":202},{},[203],{"type":65,"value":204},"Subscribers consume events without defining the event model. Multiple\nsubscribers can observe the same stream for logging, export, analytics, or\ndiagnostics.",{"type":59,"tag":95,"props":206,"children":207},{},[208],{"type":65,"value":209},"Global subscribers remain active process-wide until removed.",{"type":59,"tag":95,"props":211,"children":212},{},[213],{"type":65,"value":214},"Scope-local subscribers are owned by one active scope and disappear when that\nscope closes.",{"type":59,"tag":95,"props":216,"children":217},{},[218],{"type":65,"value":219},"Plugin-installed subscribers are reusable, configuration-driven runtime\ncomponents.",{"type":59,"tag":95,"props":221,"children":222},{},[223],{"type":65,"value":224},"Exporter-oriented subscribers preserve raw ATOF or translate the event stream\ninto ATIF, OpenTelemetry, or OpenInference output.",{"type":59,"tag":95,"props":226,"children":227},{},[228],{"type":65,"value":229},"Event payloads reflect sanitized post-guardrail input and output when calls\nuse managed helpers or manual lifecycle params provide those fields.",{"type":59,"tag":95,"props":231,"children":232},{},[233,235],{"type":65,"value":234},"LLM annotations follow the freshness rules:\n",{"type":59,"tag":91,"props":236,"children":237},{},[238,251,256],{"type":59,"tag":95,"props":239,"children":240},{},[241,243,249],{"type":65,"value":242},"Each owning agent scope starts fresh, and a ",{"type":59,"tag":117,"props":244,"children":246},{"className":245},[],[247],{"type":65,"value":248},"compaction",{"type":65,"value":250}," mark refreshes it.",{"type":59,"tag":95,"props":252,"children":253},{},[254],{"type":65,"value":255},"The first subsequent LLM start retains complete annotation history. Later\nstarts retain system instructions, the latest user message, and every\nfollowing assistant or tool message.",{"type":59,"tag":95,"props":257,"children":258},{},[259],{"type":65,"value":260},"When a request codec supplies an annotation, Relay applies the same\nevent-only projection to provider-shaped event input without changing\nprovider execution.",{"type":59,"tag":95,"props":262,"children":263},{},[264,266,272,274,280,282,288],{"type":65,"value":265},"Event fields include semantic input\u002Foutput through the ATOF ",{"type":59,"tag":117,"props":267,"children":269},{"className":268},[],[270],{"type":65,"value":271},"data",{"type":65,"value":273}," field,\ntyped profile data such as ",{"type":59,"tag":117,"props":275,"children":277},{"className":276},[],[278],{"type":65,"value":279},"model_name",{"type":65,"value":281}," and ",{"type":59,"tag":117,"props":283,"children":285},{"className":284},[],[286],{"type":65,"value":287},"tool_call_id",{"type":65,"value":289},", and codec-provided\nannotated LLM request\u002Fresponse data for in-process subscribers and exporters.",{"type":59,"tag":95,"props":291,"children":292},{},[293,295,301,303,309,311,317,319,325],{"type":65,"value":294},"First-class skill tools and the requests to read a complete ",{"type":59,"tag":117,"props":296,"children":298},{"className":297},[],[299],{"type":65,"value":300},"SKILL.md",{"type":65,"value":302},"\nautomatically emit ",{"type":59,"tag":117,"props":304,"children":306},{"className":305},[],[307],{"type":65,"value":308},"skill.load",{"type":65,"value":310}," marks under the tool span. The payload\ncontains only ",{"type":59,"tag":117,"props":312,"children":314},{"className":313},[],[315],{"type":65,"value":316},"skill_name",{"type":65,"value":318},"; metadata records the load source and tool name.\nPartial reads do not count, and ambiguous slash-command expansions use the\nseparate ",{"type":59,"tag":117,"props":320,"children":322},{"className":321},[],[323],{"type":65,"value":324},"skill.load.inferred",{"type":65,"value":326}," name. The eager mark remains present if tool\nexecution later fails.",{"type":59,"tag":79,"props":328,"children":330},{"id":329},"shared-lifecycle",[331],{"type":65,"value":332},"Shared Lifecycle",{"type":59,"tag":334,"props":335,"children":336},"ol",{},[337,342,347,352,357],{"type":59,"tag":95,"props":338,"children":339},{},[340],{"type":65,"value":341},"Create the exporter or subscriber.",{"type":59,"tag":95,"props":343,"children":344},{},[345],{"type":65,"value":346},"Register it with a unique name before the relevant scoped work.",{"type":59,"tag":95,"props":348,"children":349},{},[350],{"type":65,"value":351},"Run NeMo Relay-instrumented work inside scopes.",{"type":59,"tag":95,"props":353,"children":354},{},[355],{"type":65,"value":356},"Flush if deterministic delivery is needed and the binding supports it.",{"type":59,"tag":95,"props":358,"children":359},{},[360],{"type":65,"value":361},"Deregister it, then shut it down when the process or subsystem is done.",{"type":59,"tag":79,"props":363,"children":365},{"id":364},"binding-names",[366],{"type":65,"value":367},"Binding Names",{"type":59,"tag":68,"props":369,"children":370},{},[371],{"type":65,"value":372},"Use the names exported by the selected language binding:",{"type":59,"tag":91,"props":374,"children":375},{},[376,418,454,472],{"type":59,"tag":95,"props":377,"children":378},{},[379,381,387,389,395,397,403,404,410,412],{"type":65,"value":380},"Python: ",{"type":59,"tag":117,"props":382,"children":384},{"className":383},[],[385],{"type":65,"value":386},"nemo_relay.subscribers.register(...)",{"type":65,"value":388},",\n",{"type":59,"tag":117,"props":390,"children":392},{"className":391},[],[393],{"type":65,"value":394},"AtofExporter",{"type":65,"value":396},", ",{"type":59,"tag":117,"props":398,"children":400},{"className":399},[],[401],{"type":65,"value":402},"AtifExporter",{"type":65,"value":396},{"type":59,"tag":117,"props":405,"children":407},{"className":406},[],[408],{"type":65,"value":409},"OpenTelemetrySubscriber",{"type":65,"value":411},", and\n",{"type":59,"tag":117,"props":413,"children":415},{"className":414},[],[416],{"type":65,"value":417},"OpenInferenceSubscriber",{"type":59,"tag":95,"props":419,"children":420},{},[421,423,429,430,435,436,441,442,447,449],{"type":65,"value":422},"Node.js: root exports ",{"type":59,"tag":117,"props":424,"children":426},{"className":425},[],[427],{"type":65,"value":428},"registerSubscriber(...)",{"type":65,"value":396},{"type":59,"tag":117,"props":431,"children":433},{"className":432},[],[434],{"type":65,"value":394},{"type":65,"value":388},{"type":59,"tag":117,"props":437,"children":439},{"className":438},[],[440],{"type":65,"value":402},{"type":65,"value":396},{"type":59,"tag":117,"props":443,"children":445},{"className":444},[],[446],{"type":65,"value":409},{"type":65,"value":448},", and ",{"type":59,"tag":117,"props":450,"children":452},{"className":451},[],[453],{"type":65,"value":417},{"type":59,"tag":95,"props":455,"children":456},{},[457,459,465,466],{"type":65,"value":458},"Rust: ",{"type":59,"tag":117,"props":460,"children":462},{"className":461},[],[463],{"type":65,"value":464},"nemo_relay::api::subscriber",{"type":65,"value":281},{"type":59,"tag":117,"props":467,"children":469},{"className":468},[],[470],{"type":65,"value":471},"nemo_relay::observability::*",{"type":59,"tag":95,"props":473,"children":474},{},[475],{"type":65,"value":476},"Go: source-first wrappers expose equivalent register, exporter, and subscriber\nlifecycle methods",{"type":59,"tag":79,"props":478,"children":480},{"id":479},"load-a-reference-when",[481],{"type":65,"value":482},"Load A Reference When",{"type":59,"tag":68,"props":484,"children":485},{},[486],{"type":65,"value":487},"Load only the reference required by the selected output:",{"type":59,"tag":91,"props":489,"children":490},{},[491,503,514,525],{"type":59,"tag":95,"props":492,"children":493},{},[494,496,501],{"type":65,"value":495},"Load ",{"type":59,"tag":117,"props":497,"children":499},{"className":498},[],[500],{"type":65,"value":122},{"type":65,"value":502}," for raw JSONL events used in local debugging or\noffline inspection.",{"type":59,"tag":95,"props":504,"children":505},{},[506,507,512],{"type":65,"value":495},{"type":59,"tag":117,"props":508,"children":510},{"className":509},[],[511],{"type":65,"value":140},{"type":65,"value":513}," for ATIF trajectories.",{"type":59,"tag":95,"props":515,"children":516},{},[517,518,523],{"type":65,"value":495},{"type":59,"tag":117,"props":519,"children":521},{"className":520},[],[522],{"type":65,"value":157},{"type":65,"value":524}," for OTLP\u002FOpenTelemetry traces.",{"type":59,"tag":95,"props":526,"children":527},{},[528,529,534],{"type":65,"value":495},{"type":59,"tag":117,"props":530,"children":532},{"className":531},[],[533],{"type":65,"value":174},{"type":65,"value":535}," for OpenInference semantic traces.",{"type":59,"tag":79,"props":537,"children":539},{"id":538},"use-another-skill-when",[540],{"type":65,"value":541},"Use Another Skill When",{"type":59,"tag":68,"props":543,"children":544},{},[545],{"type":65,"value":546},"Choose another skill when the task belongs to an adjacent workflow:",{"type":59,"tag":91,"props":548,"children":549},{},[550,563,583],{"type":59,"tag":95,"props":551,"children":552},{},[553,555,561],{"type":65,"value":554},"Use ",{"type":59,"tag":117,"props":556,"children":558},{"className":557},[],[559],{"type":65,"value":560},"nemo-relay-plugin-build",{"type":65,"value":562}," to package subscriber-based export behavior as\na reusable plugin.",{"type":59,"tag":95,"props":564,"children":565},{},[566,567,573,575,581],{"type":65,"value":554},{"type":59,"tag":117,"props":568,"children":570},{"className":569},[],[571],{"type":65,"value":572},"nemo-relay-get-started",{"type":65,"value":574}," or ",{"type":59,"tag":117,"props":576,"children":578},{"className":577},[],[579],{"type":65,"value":580},"nemo-relay-instrument-calls",{"type":65,"value":582}," when no scope,\ntool call, or LLM call has been instrumented.",{"type":59,"tag":95,"props":584,"children":585},{},[586,587,593],{"type":65,"value":554},{"type":59,"tag":117,"props":588,"children":590},{"className":589},[],[591],{"type":65,"value":592},"nemo-relay-debug-runtime-integration",{"type":65,"value":594}," to diagnose missing telemetry.",{"type":59,"tag":79,"props":596,"children":598},{"id":597},"related-skills",[599],{"type":65,"value":600},"Related Skills",{"type":59,"tag":68,"props":602,"children":603},{},[604],{"type":65,"value":605},"Use these skills for adjacent workflows:",{"type":59,"tag":91,"props":607,"children":608},{},[609,620,632,643],{"type":59,"tag":95,"props":610,"children":611},{},[612,614,619],{"type":65,"value":613},"Instrument application calls with ",{"type":59,"tag":117,"props":615,"children":617},{"className":616},[],[618],{"type":65,"value":580},{"type":65,"value":124},{"type":59,"tag":95,"props":621,"children":622},{},[623,625,631],{"type":65,"value":624},"Add typed wrappers with ",{"type":59,"tag":117,"props":626,"children":628},{"className":627},[],[629],{"type":65,"value":630},"nemo-relay-instrument-typed-wrappers",{"type":65,"value":124},{"type":59,"tag":95,"props":633,"children":634},{},[635,637,642],{"type":65,"value":636},"Package reusable behavior with ",{"type":59,"tag":117,"props":638,"children":640},{"className":639},[],[641],{"type":65,"value":560},{"type":65,"value":124},{"type":59,"tag":95,"props":644,"children":645},{},[646,648,653],{"type":65,"value":647},"Diagnose missing events with ",{"type":59,"tag":117,"props":649,"children":651},{"className":650},[],[652],{"type":65,"value":592},{"type":65,"value":124},{"items":655,"total":814},[656,674,692,703,715,729,742,756,769,780,794,803],{"slug":657,"name":657,"fn":658,"description":659,"org":660,"tags":661,"stars":671,"repoUrl":672,"updatedAt":673},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[662,665,668],{"name":663,"slug":664,"type":15},"Documentation","documentation",{"name":666,"slug":667,"type":15},"MCP","mcp",{"name":669,"slug":670,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":675,"name":675,"fn":676,"description":677,"org":678,"tags":679,"stars":689,"repoUrl":690,"updatedAt":691},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[680,683,686],{"name":681,"slug":682,"type":15},"Containers","containers",{"name":684,"slug":685,"type":15},"Deployment","deployment",{"name":687,"slug":688,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":693,"name":693,"fn":694,"description":695,"org":696,"tags":697,"stars":689,"repoUrl":690,"updatedAt":702},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[698,701],{"name":699,"slug":700,"type":15},"CI\u002FCD","ci-cd",{"name":684,"slug":685,"type":15},"2026-07-14T05:25:59.97109",{"slug":704,"name":704,"fn":705,"description":706,"org":707,"tags":708,"stars":689,"repoUrl":690,"updatedAt":714},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[709,710,711],{"name":699,"slug":700,"type":15},{"name":684,"slug":685,"type":15},{"name":712,"slug":713,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":716,"name":716,"fn":717,"description":718,"org":719,"tags":720,"stars":689,"repoUrl":690,"updatedAt":728},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[721,724,725],{"name":722,"slug":723,"type":15},"Debugging","debugging",{"name":712,"slug":713,"type":15},{"name":726,"slug":727,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":730,"name":730,"fn":731,"description":732,"org":733,"tags":734,"stars":689,"repoUrl":690,"updatedAt":741},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[735,738],{"name":736,"slug":737,"type":15},"Best Practices","best-practices",{"name":739,"slug":740,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":743,"name":743,"fn":744,"description":745,"org":746,"tags":747,"stars":689,"repoUrl":690,"updatedAt":755},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[748,751,754],{"name":749,"slug":750,"type":15},"Machine Learning","machine-learning",{"name":752,"slug":753,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":757,"name":757,"fn":758,"description":759,"org":760,"tags":761,"stars":689,"repoUrl":690,"updatedAt":768},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[762,765],{"name":763,"slug":764,"type":15},"QA","qa",{"name":766,"slug":767,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":770,"name":770,"fn":771,"description":772,"org":773,"tags":774,"stars":689,"repoUrl":690,"updatedAt":779},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[775,776],{"name":684,"slug":685,"type":15},{"name":777,"slug":778,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":781,"name":781,"fn":782,"description":783,"org":784,"tags":785,"stars":689,"repoUrl":690,"updatedAt":793},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[786,789,790],{"name":787,"slug":788,"type":15},"Code Review","code-review",{"name":712,"slug":713,"type":15},{"name":791,"slug":792,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":795,"name":795,"fn":796,"description":797,"org":798,"tags":799,"stars":689,"repoUrl":690,"updatedAt":802},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[800,801],{"name":763,"slug":764,"type":15},{"name":766,"slug":767,"type":15},"2026-07-14T05:25:54.928983",{"slug":804,"name":804,"fn":805,"description":806,"org":807,"tags":808,"stars":689,"repoUrl":690,"updatedAt":813},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[809,812],{"name":810,"slug":811,"type":15},"Automation","automation",{"name":699,"slug":700,"type":15},"2026-07-30T05:29:03.275638",496,{"items":816,"total":915},[817,830,844,861,873,886,900],{"slug":592,"name":592,"fn":818,"description":819,"org":820,"tags":821,"stars":23,"repoUrl":24,"updatedAt":829},"debug NeMo Relay runtime integrations","Use this skill when NeMo Relay is installed or imported but application-side runtime behavior is missing or incorrect, including load failures, inactive scopes, missing events, and plugin or adaptive wiring problems.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[822,823,826,828],{"name":722,"slug":723,"type":15},{"name":824,"slug":825,"type":15},"Engineering","engineering",{"name":827,"slug":39,"type":15},"Middleware",{"name":9,"slug":8,"type":15},"2026-07-17T05:30:27.286964",{"slug":572,"name":572,"fn":831,"description":832,"org":833,"tags":834,"stars":23,"repoUrl":24,"updatedAt":843},"get started with NeMo Relay","Use this skill when first-time NeMo Relay users want to try Relay, choose the least-complex supported quick start, or verify initial value through the CLI, a maintained integration, or direct Python, Node.js, or Rust instrumentation before production setup.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[835,838,839,842],{"name":836,"slug":837,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},{"name":840,"slug":841,"type":15},"Onboarding","onboarding",{"name":687,"slug":688,"type":15},"2026-07-23T05:43:39.488827",{"slug":845,"name":845,"fn":846,"description":847,"org":848,"tags":849,"stars":23,"repoUrl":24,"updatedAt":860},"nemo-relay-install","install NeMo Relay for various environments","Use this skill when choosing or running NeMo Relay installation for the CLI, Python, Node.js, Rust, OpenClaw, Hermes, or maintained framework integrations before runtime configuration or quick-start setup.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[850,851,852,855,856,857],{"name":836,"slug":837,"type":15},{"name":684,"slug":685,"type":15},{"name":853,"slug":854,"type":15},"Node.js","nodejs",{"name":9,"slug":8,"type":15},{"name":687,"slug":688,"type":15},{"name":858,"slug":859,"type":15},"Rust","rust","2026-07-17T05:30:31.443244",{"slug":580,"name":580,"fn":862,"description":863,"org":864,"tags":865,"stars":23,"repoUrl":24,"updatedAt":872},"instrument LLM calls with NeMo Relay","Use this skill when an application owns tool or LLM\u002Fprovider call sites and needs to wrap them with NeMo Relay scopes and managed execution APIs for lifecycle events, middleware, or guardrails.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[866,867,870,871],{"name":810,"slug":811,"type":15},{"name":868,"slug":869,"type":15},"LLM","llm",{"name":827,"slug":39,"type":15},{"name":9,"slug":8,"type":15},"2026-07-17T05:30:29.31214",{"slug":874,"name":874,"fn":875,"description":876,"org":877,"tags":878,"stars":23,"repoUrl":24,"updatedAt":885},"nemo-relay-instrument-context-isolation","isolate NeMo Relay execution contexts","Use this skill when concurrent requests, async tasks, threads, workers, goroutines, or agents need independent NeMo Relay scope stacks and correct ancestry propagation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[879,882,883,884],{"name":880,"slug":881,"type":15},"Concurrency","concurrency",{"name":824,"slug":825,"type":15},{"name":827,"slug":39,"type":15},{"name":9,"slug":8,"type":15},"2026-07-17T05:30:33.080543",{"slug":630,"name":630,"fn":887,"description":888,"org":889,"tags":890,"stars":23,"repoUrl":24,"updatedAt":899},"instrument NeMo Relay typed wrappers","Use this skill when adding NeMo Relay typed wrappers, domain types, or provider codecs while preserving JSON middleware semantics and caller-visible behavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[891,894,897,898],{"name":892,"slug":893,"type":15},"API Development","api-development",{"name":895,"slug":896,"type":15},"JSON","json",{"name":827,"slug":39,"type":15},{"name":9,"slug":8,"type":15},"2026-07-23T05:43:40.456621",{"slug":901,"name":901,"fn":902,"description":903,"org":904,"tags":905,"stars":23,"repoUrl":24,"updatedAt":914},"nemo-relay-migrate-from-flow","migrate applications from NeMo Flow to Relay","Use this skill when migrating applications, examples, integrations, documentation, manifests, or repository code from NeMo Flow to NeMo Relay across Python, Rust, Node.js, Go, C FFI, CLI, configuration, and observability surfaces.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[906,909,910,911,912,913],{"name":907,"slug":908,"type":15},"Go","go",{"name":752,"slug":753,"type":15},{"name":853,"slug":854,"type":15},{"name":9,"slug":8,"type":15},{"name":687,"slug":688,"type":15},{"name":858,"slug":859,"type":15},"2026-07-17T05:30:28.259456",10]