RAG Blueprint
NVIDIAOfficialCreated by NVIDIA RAG
- Skill
- Tool integration
- Automation and integrations
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The NVIDIA RAG Blueprint skill provides a structured operational framework for managing RAG services. It automates the detection of deployment environments (Docker, Helm, or library-based) and guides users through installation, configuration, troubleshooting, and teardown procedures. By mapping user intent to specific reference documentation and configuration files, it ensures consistent management of features like Agentic RAG, VLM, guardrails, and ingestion pipelines.
What it does
- Deploys and manages RAG services using Docker Compose or Helm charts.
- Configures specific RAG features such as Agentic RAG, VLM, and NeMo Guardrails.
- Troubleshoots service health and connectivity issues.
- Provides automated environment detection to identify active services and configuration locations.
- Supports lifecycle management including startup, shutdown, and teardown of RAG infrastructure.
- Validates configuration changes against live service states.
When to use it
- When you need to deploy or tear down an NVIDIA RAG Blueprint environment.
- When you need to enable or toggle specific features like Agentic RAG or VLM.
- When a RAG service is reporting errors or is in an unhealthy state.
- When you need to update configuration settings for models, search, or observability.
Advantages
- Standardizes operational procedures across different deployment types.
- Reduces manual configuration errors by referencing source-of-truth documentation.
- Automates environment discovery to quickly identify the correct configuration files.
- Provides clear paths for both global deployment-wide changes and per-request overrides.
Usage examples
- “Deploy the RAG Blueprint.”
- The agent will read the deployment documentation and initiate the setup process based on the detected environment.
- “Enable Agentic RAG.”
- The agent will identify the current deployment mode, locate the relevant configuration file, and guide you through enabling the agentic pipeline.
- “My RAG service is unhealthy.”
- The agent will run diagnostic checks on the containers or pods and suggest troubleshooting steps based on the error state.
- “Stop all RAG services.”
- The agent will execute the shutdown sequence to safely tear down the RAG infrastructure.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/nvidia/rag-blueprint/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip rag-blueprint.zip -d .agents/skills
Documentation by NVIDIA RAG
NVIDIA RAG Blueprint
Purpose
Use this skill for NVIDIA RAG Blueprint operations: deployment, configuration, troubleshooting, shutdown, and feature management across Docker, Helm, and library deployments.
Instructions
Match the user request to the intent routing table below.
Read the referenced playbook before making changes.
Use repository docs and deployment config files as the source of truth.
Verify the affected service or workflow after changes.
Prerequisites
NVIDIA RAG Blueprint repository checkout.
Docker/Compose or Kubernetes/Helm for deployments.
Python 3.11+ for library workflows.
NVIDIA GPU tooling for self-hosted NIM services.
Autonomy Principles
Auto-detect everything: GPU, VRAM, drivers, Docker, CUDA, disk, OS, ports, existing services, NGC key, repo state.
If it can be checked with a command, check it — don't ask the user.
Ask only when user action is required: providing an API key, confirming data deletion, or choosing between equally valid options.
Once analysis is done, route to the correct workflow and execute.
Intent Detection
Determine what the user wants and route immediately:
| User Intent | Action |
|---|---|
| Deploy, install, set up, start RAG | Read and follow references/deploy.md |
| Configure, enable, change, toggle a feature | Use the Configure section below |
| Troubleshoot, debug, fix, error, unhealthy | Read and follow references/troubleshoot.md |
| Stop, shutdown, tear down, clean up | Read and follow references/shutdown.md |
If the intent is ambiguous, infer from context (e.g., "RAG isn't working" → troubleshoot; "get RAG running" → deploy). Only ask if genuinely unclear.
Configure
Requires a running RAG deployment. If services are not running, deploy first via references/deploy.md.
Match the user's request to a reference file, then read and follow it:
| Feature Keywords | Reference |
|---|---|
| VLM, VLM embeddings, image captioning | references/configure/vlm.md |
| NeMo Guardrails | references/configure/guardrails.md |
| Agentic RAG, planning/execution agent, agentic streaming, stage events | references/configure/agentic-rag.md |
| Query rewriting, decomposition, multi-turn | references/configure/query-and-conversation.md |
| Ingestion (text-only, audio, Nemotron Parse, OCR, batch CLI, NV-Ingest, volume mount, performance) | references/configure/ingestion.md |
| Search, retrieval, hybrid search, multi-collection, metadata, filters, Elasticsearch filters, reranker, topK, accuracy/performance | references/configure/search-and-retrieval.md |
| LLM/embedding/ranking model changes, vector DB, Milvus/Elasticsearch auth, service keys, model profiles, ports/GPU | references/configure/models-and-infrastructure.md |
Reasoning, thinking mode, reasoning_content, self-reflection, prompts, generation params (tokens, temperature, citations), per-request LLM params | references/configure/reasoning-and-generation.md |
| Summarization | references/configure/summarization.md |
| Observability (tracing, Zipkin, Grafana, Prometheus) | references/configure/observability.md |
| Multimodal query (image + text) | references/configure/multimodal-query.md |
| Data catalog (collection/document metadata) | references/configure/data-catalog.md |
| User interface (UI settings, reasoning panel, metadata filters) | references/configure/user-interface.md |
| API reference (endpoints, schemas) | references/configure/api-reference.md |
| Evaluation (RAGAS metrics) | references/configure/evaluation.md (and skill rag-eval) |
| MCP server & client, agent toolkit | references/configure/mcp.md |
| Migration (version upgrades) | references/configure/migration.md |
| Notebooks (setup and catalog) | references/configure/notebooks.md |
Configure Flow
Match the user's request to a reference file from the table above.
Detect what's running:
echo "=== NIM ===" && docker ps --format '{{.Names}}' 2>/dev/null | grep -iE '(nim-llm|nemotron-(vlm-)?embedding|nemotron-ranking|nemotron-vlm|nemotron-3-nano-omni|page-elements|graphic-elements|table-structure|nemotron-ocr)' || echo "NO_LOCAL_NIMS"; echo "=== RAG ===" && docker ps --format '{{.Names}}' 2>/dev/null | grep -iE '(rag-server|ingestor-server|elasticsearch|milvus|seaweedfs|lancedb)' || echo "NO_DOCKER_RAG"; echo "=== K8S ===" && kubectl get pods -n rag 2>/dev/null | head -5 || echo "NO_K8S"; echo "=== LIBRARY ===" && ps aux 2>/dev/null | grep -E '(nvidia_rag|uvicorn.*rag)' | grep -v grep || echo "NO_LIBRARY"Use this table to determine platform, deployment type, and where config lives:
Local NIMs running? RAG services running? Deployment Type Config Location Yes (Docker) Any Self-hosted deploy/compose/.envNo Yes (Docker) NVIDIA-hosted deploy/compose/nvdev.envYes (K8s pods) Any Self-hosted values.yaml(NIM sections)No Yes (K8s pods) NVIDIA-hosted values.yaml(envVars)— Library processes Library mode notebooks/config.yamlNo No Not running Deploy first via references/deploy.mdTell the user what you detected and ask to confirm. Example: "I see local NIM containers running (nim-llm-ms, nemotron-vlm-embedding-ms) — this is a self-hosted deployment. Config file is
deploy/compose/.env. Correct?"Check current feature state before changing anything — read the config location from step 3, then cross-check the live service:
Docker:
docker exec rag-server env 2>/dev/null | grep -E "<VAR_NAME>"Helm:
kubectl get pod -n rag -l app=rag-server -o jsonpath='{.items[0].spec.containers[0].env}' 2>/dev/null
If the config file and live service disagree, tell the user the service has stale config and will need a restart.
If the feature needs extra GPUs, check availability against hardware restrictions (see below):
nvidia-smi --query-gpu=index,name,memory.total,memory.used --format=csv,noheader 2>/dev/null || echo "NO_GPU"Read the reference file and apply changes:
Docker: edit the env file (uncomment to enable, re-comment to disable — the env file is the source of truth). Then restart the affected service:
source <env-file> && docker compose -f deploy/compose/<compose-file> up -dService Compose File rag-server docker-compose-rag-server.yamlingestor-server docker-compose-ingestor-server.yamlElasticsearch, Milvus, etcd, SeaweedFS vectordb.yamlNIM containers (LLM, embedding, ranking, VLM, OCR, parse, audio, extraction) nims.yamlguardrails docker-compose-nemo-guardrails.yamlobservability (Grafana, Prometheus, Zipkin) observability.yamlHelm: edit
values.yaml, then upgrade:helm upgrade rag <chart> -n rag -f values.yamlLibrary: edit
notebooks/config.yaml, then restart the Python process
Verify:
Docker:
docker ps --format "table {{.Names}}\t{{.Status}}" | head -20; curl -s http://localhost:8081/v1/health?check_dependencies=true 2>/dev/null | head -1Helm:
kubectl get pods -n rag; kubectl rollout status deployment/rag-server -n rag --timeout=120sLibrary:
curl -s http://localhost:8081/v1/health 2>/dev/null | head -1
If restart fails, read
references/troubleshoot.md. If multiple features requested, repeat from step 1 for each.
Examples
"Deploy RAG" -> route to
references/deploy.md."Enable VLM" -> route to
references/configure/vlm.md."RAG is unhealthy" -> route to
references/troubleshoot.md."Stop RAG" -> route to
references/shutdown.md.
Limitations
Operational guidance only applies to this RAG Blueprint repository.
Live deployment changes require a running Docker, Helm, or library target.
Secrets such as
NGC_API_KEYmust be supplied by the user environment.
Troubleshooting
| Error / signal | What to do |
|---|---|
| Services are not running | Follow references/deploy.md before configuring features. |
| Restart or health check fails | Follow references/troubleshoot.md. |
| User requests teardown | Follow references/shutdown.md and confirm destructive cleanup. |
When User Says "Configure" Without Specifics
Run steps 2–3 above, then read the identified config file to list what's currently enabled:
grep -E "^(export )?(ENABLE_|APP_)" <config-file> 2>/dev/null | sortSummarize what's running and enabled, then ask which feature to change.
Hardware Restrictions
Read docs/support-matrix.md for current GPU requirements per deployment mode.
Read docs/service-port-gpu-reference.md for port mappings and GPU assignments.
| GPU | Feature Restrictions |
|---|---|
| B200 | No VLM, No Guardrails, No Nemotron Parse. May need multi-GPU LLM (LLM_MS_GPU_ID). |
| RTX PRO 6000 | No Nemotron Parse. No Audio on Helm. |
Files
- ATTRIBUTION.mdAdded by AutoGineer901 B
- BENCHMARK.md4.6 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md11.1 KiB
- eval/h100.json2.5 KiB
- eval/nvidia_hosted.json3.6 KiB
- references/configure/agentic-rag.md5.0 KiB
- references/configure/api-reference.md1.6 KiB
- references/configure/data-catalog.md1.7 KiB
- references/configure/evaluation.md2.8 KiB
- references/configure/guardrails.md1.6 KiB
- references/configure/ingestion.md3.6 KiB
- references/configure/mcp.md1.3 KiB
- references/configure/migration.md1.6 KiB
- references/configure/models-and-infrastructure.md4.6 KiB
- references/configure/multimodal-query.md2.0 KiB
- references/configure/notebooks.md2.8 KiB
- references/configure/observability.md1.4 KiB
- references/configure/query-and-conversation.md3.7 KiB
- references/configure/reasoning-and-generation.md3.8 KiB
- references/configure/search-and-retrieval.md4.0 KiB
- references/configure/summarization.md2.1 KiB
- references/configure/user-interface.md1.7 KiB
- references/configure/vlm.md3.6 KiB
- references/deploy.md7.9 KiB
- references/deploy/docker-nvidia-hosted.md2.2 KiB
- references/deploy/docker-retrieval-only.md1.6 KiB
- references/deploy/docker-self-hosted.md2.3 KiB
- references/deploy/docker.md4.3 KiB
- references/deploy/helm-mig.md2.0 KiB
- references/deploy/helm-openshift.md3.6 KiB
- references/deploy/helm-standard.md2.3 KiB
- references/deploy/helm.md5.6 KiB
- references/deploy/library-full.md2.2 KiB
- references/deploy/library-lite.md1.8 KiB
- references/deploy/library.md2.2 KiB
- references/shutdown.md4.7 KiB
- references/troubleshoot.md8.8 KiB
- skill-card.md3.1 KiB
- skill.oms.sig12.5 KiB
references/troubleshoot.md
RAG Troubleshooting
Auto-Triage: Run First
Start with this diagnostic sweep:
echo "=== CONTAINERS ===" && docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" 2>/dev/null | grep -E "(rag|elasticsearch|milvus|seaweedfs|nim|ingest|redis|etcd|embedding|ranking)" | head -25; echo "=== HEALTH ===" && curl -s http://localhost:8081/v1/health?check_dependencies=true 2>/dev/null || echo "RAG_UNREACHABLE"; curl -s http://localhost:8082/v1/health?check_dependencies=true 2>/dev/null || echo "INGESTOR_UNREACHABLE"; echo "=== LOGS ===" && for svc in rag-server ingestor-server nim-llm-ms nemotron-vlm-embedding-ms nemotron-embedding-ms nemotron-ranking-ms elasticsearch seaweedfs; do echo "--- $svc ---"; docker logs --tail 20 "$svc" 2>/dev/null | grep -iE "(error|fail|exception|timeout|oom|permission)" || echo "OK"; done; echo "=== GPU ===" && nvidia-smi 2>/dev/null | head -20 || echo "NO_GPU"; echo "=== DISK ===" && df -h / | tail -1; echo "=== DOCKER_DISK ===" && docker system df 2>/dev/null; echo "=== VOLUMES ===" && docker volume ls --filter "name=^rag-vol-" 2>/dev/null; echo "=== K8S ===" && kubectl get pods -n rag 2>/dev/null | head -20 || echo "NOT_K8S"Analyze all output, then diagnose and fix. If Auto-Triage doesn't reveal the cause, dig deeper into the specific failing service's logs (docker logs <service> --tail 100 or kubectl logs <pod> -n rag --tail 100).
Confirm with the user before deleting data (volumes, collections, model cache), changing deployment mode, or modifying API keys.
Source Documentation for Detailed Diagnosis
Read these docs to find specific issue descriptions, causes, and fixes:
docs/troubleshooting.md— primary reference: all common issues with detailed symptoms/fixesdocs/debugging.md— Pipeline debugging: monitoring deployment, verifying endpoints, tracing requestsdocs/service-port-gpu-reference.md— Complete port/GPU mapping table for all services
Expected Deployment Times
If user reports "deployment is taking too long," compare against these baselines:
| Mode | First Run | Subsequent |
|---|---|---|
| Docker (self-hosted) | 15--30 min (model downloads) | 2--5 min |
| Docker (NVIDIA-hosted) | 5--10 min (no model downloads) | 1--2 min |
| K8s/Helm | 60--70 min (NIM cache 40--50 min + init 10--15 min + pod startup 5--10 min) | 10--15 min |
If deployment exceeds these times, check NIM container logs: docker logs nim-llm-ms --tail 50 and model cache disk usage: watch -n 10 'du -sh ~/.cache/model-cache/'.
Service Health Endpoints
Read docs/service-port-gpu-reference.md for the complete port/GPU mapping. Quick check:
| Service | URL | Expected |
|---|---|---|
| RAG Server | http://localhost:8081/v1/health?check_dependencies=true | {"status":"healthy"} |
| Ingestor | http://localhost:8082/v1/health?check_dependencies=true | {"status":"healthy"} |
| NV-Ingest | http://localhost:7670/v1/health/ready | 200 OK |
| VLM Embedding NIM (default) | http://localhost:9081/v1/health/ready | 200 OK |
| LLM NIM | http://localhost:8999/v1/health/ready | 200 OK |
| Ranking NIM | http://localhost:1976/v1/health/ready | 200 OK |
| Elasticsearch | http://localhost:9200/_cluster/health | green or yellow |
Kubernetes Monitoring Commands
kubectl get nimcache -n rag
kubectl get pods -n rag
kubectl logs -f <pod-name> -n rag
kubectl get pvc -n rag
kubectl get events -n rag --sort-by='.lastTimestamp'Pods in ContainerCreating or Init state during model download is expected. Use kubectl get nimcache -n rag -w to watch download progress.
Enable Debug Logging
export LOGLEVEL=DEBUG
docker compose -f deploy/compose/docker-compose-ingestor-server.yaml up -d --no-deps ingestor-server
docker compose -f deploy/compose/docker-compose-rag-server.yaml up -d --no-deps rag-serverSymptom-to-Fix Quick Index
Match the symptom from Auto-Triage output, then read docs/troubleshooting.md for the detailed fix. For pipeline debugging steps, read docs/debugging.md.
| Symptom | Category | Quick Fix |
|---|---|---|
NIM container stuck at (health: starting) >30min | NIM Startup | Check GPU memory, NGC auth, disk space. First-run model downloads are slow — wait and monitor cache size. |
| Elasticsearch unhealthy / search returns nothing | Elasticsearch | Restart vectordb compose. Check port 9200, disk, credentials, and rag-vol-elasticsearch. |
| Document upload fails / ingestor health check fails | NV-Ingest | Check Redis, OCR NIMs. Rate limit (429) → reduce batch vars. Large PDFs → reduce batch size. |
| Chat returns errors / /generate fails | RAG Server | Check LLM NIM health, embedding NIM, cloud API key. Verify APP_LLM_MODELNAME matches deployed NIM. |
DNS resolution failed for <service>:<port> | Networking | Service container not running. Check docker ps, restart missing service. |
| Port already in use | Networking | lsof -i :<port> to find conflicting process. See port table above. |
GPU out of memory / torch.OutOfMemoryError | GPU | Kill other GPU processes, use --profile rag for fewer NIMs, or set correct NIM_MODEL_PROFILE. |
nvidia-container-cli: unknown device | GPU | GPU ID exceeds available GPUs. Run nvidia-smi -L, adjust *_GPU_ID vars to valid IDs. |
| Disk full / insufficient space | Disk | docker system prune -f, remove unused images, check model cache size. |
no configuration file provided: not found | Docker Compose | Run from the repo root directory. |
too many open files | Docker Compose | Set LimitNOFILE=65536 in containerd override, restart containerd. |
| PVC stuck in Pending | Helm | Create missing StorageClass or update PVC. |
ProvisioningFailed access mode mismatch | Helm | Patch NIMCache to ReadWriteOnce. |
| Ingestor OOMKilled | Helm | Increase memory limits in values.yaml. Set SUMMARY_MAX_PARALLELIZATION=1. |
| Elasticsearch timeout during ingestion | Elasticsearch | Increase ES_REQUEST_TIMEOUT (default 600s). |
| Need to inspect or reset persisted Docker data | Volumes | Use docker volume ls --filter "name=^rag-vol-"; see docs/troubleshooting.md#manage-persistent-data-volumes. |
| Hallucination / out-of-context responses | Quality | Add missing-info handling to prompt in prompt.yaml. |
| Embedding dimensions mismatch | Models | Set APP_EMBEDDINGS_DIMENSIONS to match model output. Re-ingest. |
| Hybrid/dense search type mismatch | Search | Align APP_VECTORSTORE_SEARCHTYPE on ingestor and rag-server. Re-ingest. |
| Confidence threshold filtering all results | Search | Lower RERANKER_SCORE_THRESHOLD (range 0.0–1.0, default 0.0). |
| OCR not starting / connection errors | OCR | Check GPU memory, NGC auth. Verify OCR_GRPC_ENDPOINT/OCR_HTTP_ENDPOINT match running service. |
| NVIDIA API credits exhausted | Cloud | Contact NVIDIA representative for additional credits. |
| Image-only PDFs not ingesting | Ingestion | Enable APP_NVINGEST_EXTRACTINFOGRAPHICS. Consider image captioning. |
Troubleshooting Checklists
Ingestion Checklist
[ ] All required containers running (ingestor-server, nv-ingest-ms-runtime, milvus, redis)
[ ] Vector database accessible (
curl http://localhost:9200/_cluster/healthfor default Elasticsearch, orcurl http://localhost:9091/healthzfor Milvus)[ ] Embedding service healthy (
curl http://localhost:9081/v1/health/readyfor default VLM embedding, orcurl http://localhost:9080/v1/health/readyfortext-embed)[ ] File format supported and size <= 400 MB
[ ] Sufficient disk space (
df -h /)[ ] GPU resources available (
nvidia-smi)
Retrieval Checklist
[ ] RAG server running and healthy
[ ] LLM service accessible (
curl http://localhost:8999/v1/health/ready)[ ] Vector database contains data (collection exists with documents)
[ ] Collection name is correct
[ ] Query format is valid
Quality Checklist
[ ] Reranker is enabled and healthy
[ ] Top-K values are appropriate
[ ] Collection has sufficient relevant data
[ ] Query rewriting configured correctly
[ ] Prompt template appropriate for use case
Full Reset
Destroys all data (volumes, images, caches). Confirm with the user before running.
If nothing else works and the user confirms:
cd "$(git rev-parse --show-toplevel)"
docker compose -f deploy/compose/docker-compose-nemo-guardrails.yaml down 2>/dev/null
docker compose -f deploy/compose/observability.yaml down 2>/dev/null
docker compose -f deploy/compose/docker-compose-rag-server.yaml down 2>/dev/null
docker compose -f deploy/compose/docker-compose-ingestor-server.yaml down 2>/dev/null
docker compose -f deploy/compose/vectordb.yaml down 2>/dev/null
docker compose -f deploy/compose/nims.yaml down 2>/dev/null
docker volume ls -q --filter "name=^rag-vol-" | xargs -r docker volume rm
docker system prune -afThen deploy fresh using the deploy workflow.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools, Needs an MCP server, Needs network access, Needs an API key
The author says: NVIDIA RAG Blueprint repository checkout; Docker/Compose or Kubernetes/Helm for deployments; Python 3.11+ for library workflows; NVIDIA GPU tooling for self-hosted NIM services.
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- NVIDIA RAG
- Publisher
- NVIDIA (Official)
- Source
- NVIDIA/skills · skills/rag-blueprint · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by NVIDIA RAG or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download rag-blueprint.zip