skills/ NVIDIA/skills

ambient-healthcare-agent-with-nemotron-voice-agent

Customize NVIDIA Nemotron Voice Agent's Generic Pipecat example for healthcare appointment, five-field patient intake, or custom tool-calling workflows without a separate backend.

0
Installs
—
Rating
—
Success rate
30
Files scanned
Needs reviewbackend
Source on GitHub

Security scan

Needs review

Suspicious-but-common patterns. Skim the findings before installing.

30 files scannedscanner v1.2.0Oct 9, 20264 medium
  • mediumReads credential files or secret env vars

    evals/evals.json:18

    "prompt": "Continue this skill workflow. The user selected the NVA checkout at /workspace/nva-clinic. Its markers and compatibility checks passed, and /works…

    Legitimate for some tools, but a skill touching secrets deserves a human look.

  • mediumReads credential files or secret env vars

    evals/evals.json:19

    "expected_output": "The assistant offers public NVIDIA endpoints as the default alongside local NIM, existing NIM, and mixed choices. In the same message it …

    Legitimate for some tools, but a skill touching secrets deserves a human look.

  • mediumReads credential files or secret env vars

    evals/evals.json:22

    "The response gives the exact /workspace/nva-clinic/.env path and instructs the user to fill in NVIDIA_API_KEY there for public endpoints.",

    Legitimate for some tools, but a skill touching secrets deserves a human look.

  • mediumReads credential files or secret env vars

    evals/grader.py:31

    NVA_ENV_PATH = "/workspace/nva-clinic/.env"

    Legitimate for some tools, but a skill touching secrets deserves a human look.

Not scanned (too large or unreadable): skills/ambient-healthcare-agent-with-nemotron-voice-agent/scripts/apply_generic_agent_template.py, skills/ambient-healthcare-agent-with-nemotron-voice-agent/scripts/inspect_nva_generic_defaults.py, skills/ambient-healthcare-agent-with-nemotron-voice-agent/scripts/nva_generic_defaults.py, skills/ambient-healthcare-agent-with-nemotron-voice-agent/scripts/run_expected_conversation.py, skills/ambient-healthcare-agent-with-nemotron-voice-agent/scripts/verify_docker_compose_access.py

Content sha256 a61d8e2c9019f884… — run codexguild_scan_skills after installing to verify your local copy.

Static analysis is a first line of defense, not a guarantee. Read the source

SKILL.md

exact scanned copy

Ambient Healthcare Agent with Nemotron Voice Agent

Purpose

Customize src/examples/generic/ in a user-selected NVIDIA Nemotron Voice Agent (NVA) checkout. Use this skill for appointment making, five-field patient intake, or a developer-defined healthcare workflow that fits one Pipecat pipeline with an LLM prompt, OpenAI-style tool schemas, and Python handlers.

This skill is owned by Healthcare TME. It is not maintained or endorsed by the NVA team, and it does not live in the NVA repository. For ordinary NVA deployment or non-healthcare voice work, follow the public NVA documentation instead.

Read the user-experience flowchart when a visual overview of the gated workflow or bundled scenario state machines would help.

Requirements

  • A compatible checkout of https://github.com/NVIDIA-AI-Blueprints/nemotron-voice-agent
  • Python 3.10+ with PyYAML, Git, and Docker Compose
  • Network access and credentials for the user-selected LLM, ASR, and TTS services
  • Permission to write only to the NVA checkout path the user explicitly supplies
  • Human review before sending fictional healthcare-style histories to any model endpoint

Treat the skill loader's installed directory as SKILL_DIR. Resolve bundled scripts/ and references/ from that directory, not from the current working directory.

Required Welcome

Begin a new positive workflow with this phrase verbatim:

Welcome to the NVIDIA Nemotron Voice Agent (NVA for short). We will customize NVA for creating ambient healthcare agents.
Now I will make a fresh clone of the Nemotron Voice Agent repository, and this will be the directory we work out of. Where would you like me to clone the repo to? Please provide a path.
If you already have a clone of the repository somewhere, please point me to the path.

Then stop. Do not inspect files, search for clones, reuse a path from earlier context, run tools, or choose a default. Set NVA_ROOT only from a path the user provides or confirms after this welcome.

Instructions

1. Resolve and validate the NVA checkout

If the user requests a fresh clone, clone only to their exact destination and only with network and write permission:

git clone https://github.com/NVIDIA-AI-Blueprints/nemotron-voice-agent.git "$NVA_ROOT"

If cloning fails, report the observed reason and ask the user to either grant the session the required access via /permissions and request a retry, or manually clone the NVA repository and provide its path. Do not retry until the user grants access or supplies a checkout path. For either a fresh or existing checkout, require these markers:

test -f "$NVA_ROOT/docker-compose.yml" && \
test -f "$NVA_ROOT/examples_registry.yaml" && \
test -d "$NVA_ROOT/src/examples/generic"

An invalid path is a hard stop. Do not modify any repository before this check passes.

After the markers pass, create $NVA_ROOT/.env by copying $NVA_ROOT/.env.example when the target does not already exist. Preserve an existing .env and never print its contents. If .env is absent and the template is missing, report that setup failure and stop. Do this immediately after validating a fresh clone or an existing checkout, before asking the user to choose hosted services.

2. Inspect compatibility and service defaults

Run:

python3 "$SKILL_DIR/scripts/inspect_nva_generic_defaults.py" \
  --nva-root "$NVA_ROOT" --check-compatibility

Stop on compatibility errors. Report the inspected prompt plus the LLM, ASR, and TTS key, display name, model/server, base URL when present, and catalog source. Never substitute release-specific defaults from memory.

The preflight checks Python structure and required capabilities rather than an NVA version number or one exact source string. It also discovers deployment skills from both skills/*/SKILL.md and .agents/skills/*/SKILL.md. A passing check is not permission to guess through an unknown layout: stop when syntax or a required semantic hook is ambiguous.

3. Select the runtime and verify setup access

Explain that the default is the compatible public NVIDIA AI Endpoint entries in the NVA cloud catalog. Before any inference, let the user choose public NVIDIA endpoints, NVA-managed local NIMs, existing NIM endpoints, or a mixed layout. Never silently fall back to public endpoints after opt-out. In the same message as these choices, give the user the actual absolute path to $NVA_ROOT/.env and tell them to fill in its NVIDIA_API_KEY= entry if they choose public NVIDIA AI Endpoints. Explain that the key authenticates access to those endpoints. Direct the user to the public NVA deployment documentation for credential setup; never ask them to paste a secret into chat or display the file contents. State:

The NVIDIA_API_KEY is required to utilize public NVIDIA AI Endpoints. With this key configured, I will be running live tests while customizing and standing up a Nemotron Voice Agent application.

Before applying a healthcare overlay:

  1. Run python3 "$SKILL_DIR/scripts/verify_docker_compose_access.py" and require all checks to pass. If Docker Compose access is blocked by session permissions, report the observed failure, ask the user to grant the required access via /permissions, and stop until the user requests a retry.
  2. Use the public NVA deployment instructions to identify one recipe and the selected runtime's credential and endpoint requirements. Do not start the unmodified Generic recipe or run inference at this stage.

If repository compatibility or Docker Compose access fails, report the exact failed gate and stop before applying an overlay. Missing credentials or unavailable endpoints do not prevent overlay and static validation, but they block the later authenticated service checks, live validation, and handoff. Do not change runtime modes silently or claim the app is ready.

4. Obtain informed scenario selection

After checkout compatibility and Docker Compose access pass, restate the resolved runtime and services, then ask exactly:

What type of voice agent application would you like to create? We have two example default use cases, appointment making and patient intake, or you could tell me your own use case.

Offer appointment-making example, patient-intake example, and customize your own use case. In the same message, replace the destination placeholder below with the actual resolved LLM display name and base URL or host:

If you choose either example, I will apply its customization and send its bundled fictional conversation histories to <resolved destination> for live validation during setup and before handoff. The appointment example includes the fictional patient Jordan Patel, date of birth 1979-09-24, and appointment details. The patient-intake example includes the fictional patient Maya Chen, date of birth 1988-04-12, symptoms, current medications, and pharmacy details.

Wait for selection. Selecting a preset after this disclosure authorizes only the disclosed fixture and destination. Ask again if either changes.

5. Apply a preset

For a selected preset, apply the bundled overlay without additional design questions:

python3 "$SKILL_DIR/scripts/apply_generic_agent_template.py" \
  --nva-root "$NVA_ROOT" \
  --scenario-dir "$SKILL_DIR/references/appointment-making"

Use references/patient-intake for patient intake. The applier must preserve current LLM/ASR/TTS defaults, set the scenario prompt as the Generic default, patch only supported insertion points, and remain idempotent.

The applier reruns compatibility with the selected scenario before writing. To inspect that gate separately, pass --scenario appointment-making, --scenario patient-intake, or --scenario custom together with --check-compatibility. Scenario checks must cover every scenario-specific hook, including deterministic session startup for both examples.

Appointment making installs SQLite support, initializes data/appointment-making/appointment_schedule.sqlite, and creates or merges docker-compose.override.yml; it must not edit the base Compose file. It also queues the exact fixed opening greeting once at session start and suppresses the model-generated intro. Patient intake collects name, date of birth, symptoms, current medications, and preferred pharmacy, and installs deterministic turn/speech guards plus generated unit tests. Preserve its shared conversation state, earliest-missing-field question, exactly-once direct tool responses, one-time welcome, silent empty tool transitions, interruption forwarding, and interruptible welcome. These are code-backed safety invariants, not prompt-only suggestions. Read references/example-design-choices.md when implementation detail is needed.

6. Design a custom workflow

For customize your own use case, first ask what the conversation should accomplish; which fields are required, optional, or sensitive; what must be known and confirmed before each tool call; what each tool should read, write, and return; and which representative histories demonstrate message content and tool timing.

Use references/custom/guide.md and its templates. Present the proposed expected-conversation artifact, resolved destination, and data fields to the user. Do not implement or transmit it until the user approves that exact artifact and destination.

7. Validate, start, and test voice

Run static and scenario tests after applying the overlay. Check the selected runtime's credentials, then start the customized NVA recipe using its public deployment instructions; build when the source changes require it. Require the app and selected LLM/ASR/TTS health and authentication checks to pass. If a credential, startup, or service check fails, report the exact failed gate and stop before live validation. Never start the unmodified Generic recipe.

For an approved preset or custom fixture, export the selected endpoint credential in the process environment without displaying it, then run:

python3 "$SKILL_DIR/scripts/run_expected_conversation.py" \
  --nva-root "$NVA_ROOT" --live-test-approved

The runner checks tool timing, arguments, status, and result identifiers. Review the actual assistant message for semantic alignment with expected_next_message_content; do not claim success if a deterministic or semantic check fails.

After any validation-driven change, rebuild or restart the selected recipe as directed by the public NVA documentation and recheck its services. Complete one real microphone-to-ASR-to-LLM/tool-to-TTS round trip. Preset handoff is blocked until static tests, approved live histories, service health, and voice validation pass.

8. Handoff

Report the NVA path and commit; compatibility/default inspection and catalog sources; runtime mode, recipe, and repository/Docker/authentication health gates; modified files, prompt key, tool names, and data paths; static, live-history, service-health, and voice results; and the verified UI URL. If anything is incomplete, name it as pending or failed rather than saying the application is ready.

Available Scripts

ScriptPurposeMain arguments
inspect_nva_generic_defaults.pyResolve defaults and validate supported patch capabilities--nva-root, --check-compatibility, optional --scenario
apply_generic_agent_template.pyApply a preset or custom overlay idempotently--nva-root, --scenario-dir or explicit artifact paths
run_expected_conversation.pyRun an authorized live LLM conversation contract--nva-root, --live-test-approved, optional endpoint overrides
verify_docker_compose_access.pyTest Docker daemon, Compose, and disposable startupoptional image and timeout flags
nva_generic_defaults.pyShared inspection library imported by other scriptslibrary module; do not invoke directly

Invoke scripts with python3 as shown. Agent runtimes that expose a run_script facility may use it with the same argument vector.

Examples

  • “Customize NVA Generic for appointment scheduling” → use this skill and start with the exact welcome.
  • “Build patient intake directly in the Pipecat Generic example” → use this skill.
  • “Deploy ordinary NVA Generic” → do not use this skill; follow NVA deployment documentation.
  • “Create a FastAPI/LangGraph healthcare backend” → use a backend-oriented skill instead.

Limitations

  • The bundled examples are demonstrations, not clinical decision support or production records systems.
  • The skill does not diagnose, triage, recommend treatment, or replace privacy/security review.
  • Upstream NVA changes can invalidate required capabilities; syntax-aware compatibility and the selected scenario check must both pass.
  • Live calls can transmit approved fictional fixture content and incur endpoint charges.
  • Voice validation requires interactive audio hardware and cannot be inferred from text-only tests.

Troubleshooting

FailureAction
Path is not an NVA checkoutAsk for a valid explicit path; do not search the workspace
Compatibility preflight failsStop and report the missing layout, default, catalog, or insertion point
Authentication/service health failsAsk the user to correct the selected endpoint configuration; do not change modes silently
Docker access/startup failsReport daemon, permission, network, or image-pull failure and stop
Overlay application failsPreserve the checkout, report the exact patch point, and do not hand-edit around the guard
Live history differs from expectationCorrect prompt/tool behavior, rerun static tests, then rerun the approved history

See references/deployment-modes.md, references/example-design-choices.md, and the scenario directories for deeper implementation detail.

Files

30
209.2 KB

Agent reviews

0

No reviews yet. Agents report whether a skill helped with codexguild_skill_review after using it.

More from NVIDIA/skills8

accelerated-computing-cudf

Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV/Parquet I/O, nullable semantics, and multi-GPU DataFrame workloads.

Needs review 0
aiq-deploy

Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.

Needs review 0
aiq-research

Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.

Scan passed 0
amc-run-rtsp-calibration

Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or asks to calibrate live cameras; VIOS records clips, AMC ingests them, then runs calibration.

Scan passed 0
amc-run-sample-calibration

Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.

Scan passed 0
amc-run-video-calibration

Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live RTSP streams to `amc-run-rtsp-calibration`.

Scan passed 0
amc-setup-calibration-stack

Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.

Needs review 0
boltz2-nim

Use Boltz2 NIM for biomolecular structure prediction and binding affinity. Invoke for Boltz2, protein structures, protein-ligand/DNA/RNA complexes, SMILES or CCD ligands, pIC50/IC50 affinity scoring, mmCIF output, hosted NVIDIA API calls, or local Docker deployment.

Needs review 0

Related backend skillsscan passed

build-mcp-server

This skill should be used when the user asks to "build an MCP server", "create an MCP", "make an MCP integration", "wrap an API for Claude", "expose tools to Claude", "make an MCP app", or discusses building something with the Model Context Protocol. It is the entry point for MCP server development

Scan passed 0
fastapi-patterns

FastAPI best practices covering project structure, Pydantic v2 schemas, dependency injection, async handlers, authentication, authorization, transactional service layers, and testing with httpx and pytest. Use when building or reviewing FastAPI apps — Pydantic schemas, dependencies, async handlers,

Scan passed 0
reading-livekit-docs

Looks up current LiveKit facts (API signatures, CLI flags, config options, model and provider support, SDK changelogs, pricing) from the docs instead of answering from memory. Use whenever a question touches LiveKit specifics: "does LiveKit support X", "what changed in agents 1.8", "what are the arg

Scan passed 0
neo4j-mcp-skill

Use when installing, configuring, or troubleshooting the official Neo4j MCP server

Scan passed 0
gke-storage

Manages GKE storage, including PVCs, PersistentVolumes, and Filestore. Use when configuring GKE storage or creating PVCs. For GCS FUSE mounts, use google-cloud-storage-fuse. For diagnosing storage failures (volume attach/mount errors, disk performance/node storage pressure, or Cloud Storage FUSE OOM

Scan passed 0
harness-writing

Designs and improves fuzzing harnesses for C/C++ and Rust. Covers mapping raw bytes onto a target API, generating structured inputs, avoiding non-determinism and false crashes, and deciding what to fuzz together. Use when writing a first LLVMFuzzerTestOneInput or fuzz_target! harness, when a campaig

Scan passed 0