Instrument Tool And LLM Calls
SkillAI & modelsLets your agent wrap existing tool and LLM calls with NeMo Relay scopes for lifecycle events, middleware, and guardrails.
Then ask your AI: use the Instrument Tool And LLM Calls skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.
About this skill
Use this skill when an application owns tool or LLM/provider call sites and needs to wrap them with NeMo Relay scopes and managed execution APIs for lifecycle events, middleware, or guardrails.
What this skill tells your AI
The instructions your AI receives, as published by nvidia/skills in skills/nemo-relay-instrument-calls/SKILL.md and read by Ahel’s review.
Use this skill when an app already has tool functions or model/provider calls and needs to run them through NeMo Relay correctly. Keep the original callable behavior stable while adding Relay lifecycle capture.
Default Guidance
- Put a scope around the natural agent, request, workflow, or graph boundary.
- Use managed execution APIs first:
- Rust:
tool_call_execute(ToolCallExecuteParams::builder()...),llm_call_execute(LlmCallExecuteParams::builder()...) - Python:
tools.execute(...),llm.execute(...) - Node.js:
toolCallExecute(...),llmCallExecute(...) - Go:
tools.Execute(...),llm.Execute(...)or the top-level wrappers
- Rust:
- Use manual lifecycle APIs only when the host framework cannot be wrapped by the managed execute helpers.
Embedded Runtime Semantics
- Managed tool and LLM execution runs conditional-execution guardrails first on the raw input. If rejected, the runtime emits a standalone mark event and does not run request intercepts or the callable.
- Request intercepts run after conditional guardrails and rewrite the real input that reaches execution intercepts and the callback.
- Sanitize-request guardrails affect emitted start-event payloads only. They do not rewrite the caller-visible request or arguments.
- Execution intercepts wrap the callback with the middleware
nextpattern and may short-circuit by returning their own result. - Sanitize-response guardrails affect emitted end-event payloads only. The value returned to application code remains the raw callback or execution-intercept result.
- If execution fails after the start event has been emitted, the runtime still emits an end event without a semantic output payload.
- Tool calls are named operations with JSON-compatible arguments and results. Keep the original tool callable responsible for business logic; let NeMo Relay own lifecycle events, middleware, and metadata.
- LLM calls use an
LLMRequestmade of metadata plus content. Pass model names and stable call identifiers when they matter for trace export or diagnostics. - Manual lifecycle APIs are for framework adapters that already own execution. If you use them, every start call needs a matching end or error path with the relevant semantic payloads supplied explicitly.
- Partial middleware APIs such as
request_intercepts(...)andconditional_execution(...)are for advanced adapters that need one middleware family before calling a provider manually. - Streaming LLM wrappers collect chunks and finalize a response at stream end; dropping the stream early can prevent finalizers and subscribers from seeing a complete output.
Checklist
- Scope boundary chosen before the first tool or LLM call
- Existing tool function wrapped without losing its original arguments/result
- Existing LLM/provider call wrapped at the right abstraction layer
- Optional metadata, attributes, or model name attached where useful
- Context propagation handled if the call hops threads or async tasks
Use Another Skill When
Choose another skill when the task requires a neighboring workflow:
- Use
nemo-relay-plugin-observabilityfor traces, ATIF, or export setup. - Use
nemo-relay-debug-runtime-integrationto debug missing events or load failures. - Use
nemo-relay-instrument-context-isolationfor per-request isolation or worker-pool guidance. - Use
nemo-relay-plugin-buildfor reusable, configuration-activated runtime behavior.
Related Skills
Use these skills for adjacent workflows:
- Start onboarding with
nemo-relay-get-started. - Add typed wrappers with
nemo-relay-instrument-typed-wrappers. - Configure export with
nemo-relay-plugin-observability. - Package reusable behavior with
nemo-relay-plugin-build.
Signals
- GitHub stars
- 4k
- Forks
- 434
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
nemo-relay-instrument-calls- Source
- github.com/nvidia/skills
Related picks
Skill · samber
The pick for Godbos-golang
Skill · sickn33
The pick for Goduplicate-js
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · sickn33
The pick for JavaScriptpython-design-patterns
Skill · wshobson
The pick for Pythonrust-engineer
Skill · jeffallan
The pick for Rust