ワンクリックで
npa-agent
Use when operating the NPA agent VM, chat UX, API grounding, bootstrap deployment, or verify-live checks.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when operating the NPA agent VM, chat UX, API grounding, bootstrap deployment, or verify-live checks.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when ingesting, validating, curating, or querying production sensor data as a versioned dataset-of-record, or wiring the dataset-ingest-curate workflow.
Use when generating adversarial scenarios via RL, ranking mined failures of a policy-under-test, or wiring the adversarial-scenario-hardening workflow.
Use when navigating the Cosmos3 integration in NPA or locating upstream Cosmos3 framework files, defaults, scripts, configs, recipes, and docs.
Use when Cosmos3 setup, fetch, inference, CUDA, uv, Docker, Hugging Face, GitHub, NGC, or checkpoint staging fails in NPA or in an upstream Cosmos framework checkout.
Use when setting up Cosmos3 access through NPA, checking source or Hugging Face reachability, staging the public Cosmos3 framework and checkpoint cache, or deciding which NPA workflow to use before inference.
Use for Claude Code reviews that need robotics, simulation, GPU-routing, sim-to-real, or BDD100K pipeline domain context.
| name | npa-agent |
| description | Use when operating the NPA agent VM, chat UX, API grounding, bootstrap deployment, or verify-live checks. |
The NPA agent is a public HTTPS workbench VM with basic-auth UI, grounded chat, Sim Assets + Cameras panels, embedded Rerun viewer, and Sim2Real submit hooks.
npa agent …)skills/workflows/agent-fresh-operate/SKILL.mdGET /api/… replies) or false “Loaded Franka” messagesskills/atomic/agent-visual-feedback/SKILL.mdnpa/.venv/bin/npa agent fresh-setup --project rtxpro --name agent --project-id <project-id> --tenant-id <tenant-id> --region us-central1
npa/.venv/bin/npa agent bootstrap --project rtxpro --name agent
# Existing agents missing credentials: refresh long-lived npa-agent SA + restage VM env
npa/.venv/bin/npa agent bootstrap --project rtxpro --name agent --refresh-credentials
NPA_AGENT_CHAT_LIVE=1 npa/.venv/bin/npa agent verify-live --project rtxpro --name agent
bash npa/scripts/verify_agent_franka.sh
bash npa/scripts/verify_agent_rerun_bundle.sh
bash npa/scripts/verify_byof_onboarding_live.sh
npa agent deploy provisions a dedicated long-lived npa-agent service account when
IAM allows it; otherwise bootstrap reuses existing terraform_state / saved credentials.
Persists ssh_key_path + credentials on the agent record and stages
llm.env, s3.env, and nebius.env on the VM. Bootstrap resolves SSH from
the agent record (or --ssh-key / NPA_SSH_KEY) — not from workbench SSH config.
All npa agent … and nebius IAM commands run on the operator/dev VM.
The agent VM only receives staged /opt/npa-agent/*.env files.
npa-agent cannot be created)Bootstrap tries in order:
npa-agent SA — create or reuse if IAM allows~/.npa/credentials.yaml S3 keys + optional nebius.service_account_idprojects.<alias>.terraform_state from the original deploylerobot-training id from IAM errors when agent-sa cannot read IAMBootstrap persists the resolved SA id into the agent record, credentials block, and
~/.npa/credentials.yaml when discovered.
For the full BYOF live pipeline (agent + container + GPU on the configured project):
export NPA_E2E_PROJECT=rtxpro
export NPA_BYOF_LIVE_PIPELINE=1
bash npa/scripts/verify_byof_onboarding_live.sh
Project Kubernetes settings resolve from ~/.npa/config.yaml (projects.<alias>.kubernetes)
and ~/.npa/clusters/<cluster>/kubeconfig — not from any operator VM hostname.
For real BYOF container build/push/inspect, set NPA_BYOF_LIVE_CONTAINER=1 and run
bash npa/scripts/verify_byof_onboarding_live.sh on a host with Docker and
nebius (NPA_NEBIUS_PROFILE=agent-sa for registry write). Default validation
repo is LeIsaac; override with NPA_BYOF_REPO_URL / NPA_BYOF_REPO_REF.
For full BYOF GPU smoke (SkyPilot submit), also set NPA_BYOF_LIVE_GPU=1 and run
the same script on a host with Docker, nebius, sky, and registry pull
access. GPU train YAML and SkyPilot config resolve from the project kubernetes
block (gpu_profile: rtxpro, byof_train_yaml, skypilot_config).
Auth secrets live at ~/.npa/agents/<project>/<name>/auth.env (AGENT_USER, AGENT_PASSWORD).
Agent bootstrap now stages operator config + credentials on the VM at ~/.npa/{config,credentials}.yaml so the VM can run infra commands without re-entering project metadata. Bootstrap also installs Nebius CLI (if missing) and seeds a cursor-sa profile backed by /mnt/cloud-metadata/token when the VM has attached SA metadata; if token-backed profile setup is present but unusable, bootstrap fails fast instead of silently skipping it.
Token Factory model selection is configurable via --llm-model and --llm-models (NPA_AGENT_LLM_MODEL and NPA_AGENT_LLM_MODELS on the VM), with /api/models exposed for UI/model picker refresh.
https://<public_ip>/ (self-signed cert on VM IP)/login-help.html and /welcome (mobile-safe XHR/fetch sign-in; URL-embed fallback on desktop only)/healthz first to accept the self-signed certificate, then sign in at /login-help.htmlsessionStorage basic-auth fallback — sign out by clearing site data or use /login-help.html againfetch calls use credentials: "include" for session basic authlocalhost, 127.0.0.1, or port 8080 — use same-origin /api/… pathsIntent router in npa/src/npa/cli/agent_chat.py (embedded in remote backend.py at bootstrap):
| Intent | Example triggers | APIs |
|---|---|---|
sim2real_status | "current status", "workflow status" | sim-viz/status, workflows/sim2real/status |
sim_assets | "sim assets", "selection" | sim-assets, sim-assets/selection |
cameras | "cameras", "workspace camera" | sim-assets/cameras |
tools_catalog | "tools", "toolRef" | tools |
configure_s3 | "configure S3", "bucket" | tools (nebius-infra) |
cosmos3 | "cosmos3", "setup cosmos" | skill steps (operator machine) |
load_franka | "load franka", "show demo" | sim-viz/load-franka-demo |
find_artifacts | "what can I view?", "browse artifacts" | artifacts/runs, artifacts/run/{id}, sim-viz/load-artifact |
onboard_solution | "containerize github repo", "onboard workbench solution" | tools, workflows/validate, workflows/plan |
BYOF onboarding: load skills/workflows/byof-onboard/SKILL.md (source of truth for base profiles, workloads, live verify). Chat replies reference this skill path — do not paste the full procedure into agent_chat.py.
Rules:
GET /api/… as the chat reply**key**: \value``)"grounded": true and "apis_used": ["sim-viz/status", …]format_live_context_block(state) JSON snapshot into the system promptUse the VM as a grounded drafting surface, then run operator-machine commands for real workflow execution:
# Agent VM draft surface
GET /api/workflows/draft
POST /api/workflows/draft
POST /api/workflows/validate
POST /api/workflows/plan
POST /api/workflows/submit
# Operator machine (authoritative execution path)
npa/.venv/bin/npa workbench workflow validate-spec <spec.yaml> --json
npa/.venv/bin/npa workbench workflow plan-spec <spec.yaml> --run-id <run_id> --json
npa/.venv/bin/npa workbench workflow run-spec <spec.yaml> --plan-only --scheduler-plan --json
Guidance:
*_uri keys under prefix paths.--assume-decision promote_checkpoint|loop_back.Rerun wasm inside /rerun/?url=… cannot send HTTP basic auth and does not
reliably consume parent-created blob: URLs across browsers. Bootstrap publishes
the active recording to unauthenticated /rerun/recordings/sim2real.rrd for the
iframe, while the parent page still validates authenticated access by fetching
/api/sim-viz/rrd-blob.
Use this order:
.rrd to /opt/npa-agent/recordings/sim2real.rrd.url= at same-origin /rerun/recordings/sim2real.rrd?t=....fetch("/api/sim-viz/rrd-blob", { credentials: "include" }) as the
authenticated blob/bytes health gate and fallback.Do not point the iframe directly at /api/sim-viz/rrd (black screen / auth
failure in browser contexts).
Submitted Sim2Real runs must not reuse the stock Franka/demo .rrd as if it
were run-specific data. POST /api/workflows/sim2real/submit and chat requests
such as "start/run the Sim2Real pipeline" should launch the agent-local Sim2Real
runner, update the standalone Run status/logs panel from
/api/workflows/sim2real/status and /api/workflows/sim2real/runs/{run_id},
and only mark Rerun ready after a real run recording URI is present.
Run-specific recordings should open on a useful 3D scene overview (world/table,
world/franka/*, world/cube) plus rollout/signal panels, not only sparse rollout
or held-out image streams.
All paths are under /api/ (nginx proxies to FastAPI backend on :8787).
GET /api/health{"ok": true, "tool_refs": 19}
GET /api/session{
"selection": {"robot_preset": "franka", "sim_backend": "isaac", "scene_spec_uri": "stock://scene/default"},
"sim_viz": {"run_id": "franka-demo", "stage": "demo", "camera": "workspace", "rerun_ready": true},
"latest_submit": {},
"camera_selection": ["workspace"],
"chat_history": []
}
POST /api/chatRequest: {"messages": [{"role": "user", "content": "what is the current sim2real status"}]}
Grounded response:
{
"ok": true,
"model": "nvidia/Cosmos3-Super-Reasoner",
"reply": "**Sim2Real status** … **run_id**: `franka-demo` …",
"grounded": true,
"apis_used": ["sim-viz/status", "workflows/sim2real/status"]
}
GET /api/sim-viz/status{
"run_id": "franka-demo",
"stage": "demo",
"camera": "workspace",
"rrd_uri": "file:///opt/npa-agent/sim2real.rrd",
"rerun_ready": true,
"rerun_iframe_url": "/rerun/?url=…"
}
POST /api/sim-viz/load-franka-demoBody: {"camera": "workspace"} → generates .rrd, restarts Rerun service, returns sim_viz.
GET /api/artifacts/runs?prefix=&limit=100 discovers run prefixes from storage.GET /api/artifacts/run/{run_id} lists all artifacts for that run with render hints.POST /api/sim-viz/load-artifact loads an explicit artifact (s3_uri or run_id + key).render="download" fallback).GET /api/sim-viz/rrd-blobAuthenticated octet-stream of .rrd bytes (for parent blob URL).
GET /api/sim-assetsScene/robot specs + current selection and resolved_uris.
GET /api/sim-assets/cameras{"cameras": [{"name": "workspace", "placement": "stock_workspace", "fov": 60.0}], "selected": ["workspace"]}
POST /api/workflows/sim2real/submitSubmits workflow with current selection; updates latest_submit and sim_viz.run_id.
GET /api/sim-viz/runs lists indexed run snapshots.GET /api/sim-viz/recordings lists available .rrd recordings.POST /api/sim-viz/load-run or POST /api/sim-viz/select-run switches active run quickly.GET /api/tools{"tool_refs": ["workbench.genesis.train", "..."]}
npa/src/npa/cli/agent.pynpa/src/npa/cli/agent_chat.pynpa/scripts/verify_agent_franka.shnpa/scripts/agent_fresh_setup_loop.sh (see skills/workflows/agent-fresh-operate/SKILL.md)npa/scripts/agent_mature_verify_loop.sh/api/...) for browser actions; avoid localhost guidance.