Skip to navigation

Agent Configuration

View as Markdown

Configuration files define model connections, MCP clients, tools, agents, prompts, object stores, and telemetry. The VSS Agent is built on NVIDIA NeMo Agent Toolkit.

The examples on this page follow the shipped Warehouse configuration:

deploy/docker/industry-profiles/warehouse-operations/vss-agent/configs/config.yml

Developer profiles use the same top-level structure but select different tools. Use the configuration file for the profile you deploy as the source of truth:

  • deploy/docker/developer-profiles/dev-profile-base/vss-agent/configs/config.yml
  • deploy/docker/developer-profiles/dev-profile-lvs/vss-agent/configs/config.yml
  • deploy/docker/developer-profiles/dev-profile-search/vss-agent/configs/config.yml
  • deploy/docker/developer-profiles/dev-profile-alerts/vss-agent/configs/config.yml

File Structure

general: # Frontend and telemetry
object_stores: # Report and chart storage
function_groups: # MCP clients
functions: # Tools and sub-agents
llms: # LLM and VLM connections
workflow: # Top-level routing agent

Model Configuration

The llms section registers model endpoints with NAT. Names in this section are references used by tools and agents.

llms:
llm:
_type: ${LLM_MODEL_TYPE:-nim}
model_name: ${LLM_NAME}
base_url: ${LLM_BASE_URL}/v1
max_tokens: 4096
temperature: 0.0
rtvi_vlm:
_type: openai
model_name: ${VLM_NAME}
base_url: ${RTVI_VLM_BASE_URL}/v1
temperature: 0.0
ParameterRequiredDescription
_typeYesNAT model provider, such as nim or openai.
model_nameYesModel ID advertised by the endpoint.
base_urlProvider-dependentOpenAI-compatible API base URL. Shipped configurations append /v1.
max_tokensNoMaximum generated tokens.
temperatureNoSampling temperature; 0.0 selects deterministic sampling.
model_kwargsNoProvider-specific request options.

See Configure the LLM and Configure the VLM for supported model-placement examples.

MCP Clients

The Warehouse configuration connects to Video Analytics MCP with the streamable HTTP transport.

function_groups:
video_analytics_mcp:
_type: mcp_client
server:
transport: streamable-http
url: ${VIDEO_ANALYSIS_MCP_URL}/mcp
include:
- video_analytics__get_incidents
- video_analytics__get_incident
- video_analytics__get_fov_histogram
- video_analytics__get_sensor_ids
ParameterRequiredDescription
_typeYesMust be mcp_client.
server.transportYesMCP transport. The shipped VA-MCP configuration uses streamable-http.
server.urlYesMCP endpoint, including the /mcp path.
includeNoExact server tool names exposed to the Agent.

Tool references use the client name, a period, and the exposed tool name. For example: video_analytics_mcp.video_analytics__get_incidents.

Tools Reference

video_understanding

Analyzes video with the configured VLM.

video_understanding:
_type: video_understanding
vlm_name: ${VLM_MODEL_TYPE:-nim}_vlm
max_frames: 30
min_pixels: 3136
max_pixels: 12845056
reasoning: false
video_url_tool: vst_video_url
vlm_mode: ${VLM_MODE}
vst_internal_url: ${VST_INTERNAL_URL}
enable_audio: ${ENABLE_AUDIO:-false}
ParameterRequiredDefaultDescription
vlm_nameYes—Reference to a model in llms.
max_framesNo24Maximum sampled frames. Profiles override this for their model.
max_fpsNo2Maximum sampled frames per second.
min_pixelsNo1568Minimum sampled-frame pixel budget.
max_pixelsNo345600Maximum sampled-frame pixel budget. Profiles override this for their model.
reasoningNofalseEnables reasoning for supported Cosmos Reason models.
video_url_toolNo—Tool used to obtain a VST clip URL.
time_formatNoisoiso for UTC timestamps or offset for seconds from stream start.
vlm_modeNolocalModel placement: remote, local, or local_shared.
vst_internal_urlNo—VST URL reachable from the Agent and local VLM.
enable_audioNofalseSends full MP4 input to supported audio-aware VLMs.

The time_format value must match the related VST clip and snapshot tools.

VST clip and snapshot tools

Tool instance names are profile-defined. The Warehouse profile names the instances vst_video_url and vst_picture_url, while their registered NAT types are vst.video_clip and vst.snapshot.

vst_video_url:
_type: vst.video_clip
vst_internal_url: ${VST_INTERNAL_URL}
vst_external_url: ${VST_EXTERNAL_URL}
overlay_config: true
time_format: iso
enable_audio: ${ENABLE_AUDIO:-false}
vst_picture_url:
_type: vst.snapshot
vst_internal_url: ${VST_INTERNAL_URL}
vst_external_url: ${VST_EXTERNAL_URL}
overlay_config: true
time_format: iso
ParameterRequiredDefaultDescription
vst_internal_urlYes—VST URL for service-to-service calls.
vst_external_urlYes—Browser-reachable VST URL returned to clients.
overlay_configNofalseRequests object-detection overlays.
time_formatNooffsetTimestamp format; keep it aligned across related tools.
enable_audioNofalsevst.video_clip only: preserves audio in generated clips.
timeout_secondsNo10.0vst.snapshot only: snapshot request timeout.

VST sensor-list tool

The Warehouse top agent uses vst_sensor_list to retrieve the sensor names currently available from VST.

vst_sensor_list:
_type: vst.sensor_list
vst_internal_url: ${VST_INTERNAL_URL}
ParameterRequiredDefaultDescription
vst_internal_urlYes—VST URL used to list available sensors.

chart_generator

Generates bar and pie charts and stores them in the configured object store.

ParameterRequiredDefaultDescription
object_store_nameNo—Object-store entry for generated images.
object_store_base_urlNohttp://localhost:8000/static/Directory URL used to serve chart images.

multi_incident_formatter

Formats incident data with video and snapshot URLs and optional charts.

ParameterRequiredDefaultDescription
video_url_toolYes—Tool that returns incident video URLs.
picture_url_toolYes—Tool that returns incident snapshot URLs.
incidents_toolYes—Incident-listing tool.
chart_generator_toolNo—Chart tool used when chart generation is enabled.
generate_chartNofalseGenerates an incident chart.
chart_base_urlNohttp://localhost:38000/reports/Public base URL for charts.
display_limitNo20Incidents displayed with full details; valid range is 1–100.

template_report_gen

Generates incident reports from VLM analysis and an optional Markdown template.

ParameterRequiredDefaultDescription
object_storeYes—Object-store entry used for reports.
base_urlNohttp://localhost:8000/staticPublic report-file base URL.
template_pathNoEmptyReport-template directory.
template_nameNo—Main template filename.
llm_nameFor custom templatesEmptyLLM used to populate the template.
video_understanding_toolFor custom templatesEmptyVLM analysis tool.
picture_url_toolNovst_picture_urlSnapshot tool.
video_url_toolNo—Video clip tool.
vlm_promptsNoEmpty listPrompts sent to the VLM.
report_promptNoEmptyLLM instructions; custom prompts must contain {template}.
agent_versionNov1.0.0Agent version recorded in reports.
save_local_copyNofalseAlso writes reports beneath output_dir.
output_dirNo./agent_reportsDirectory for local report copies.

get_fov_counts_with_chart

Fetches field-of-view object counts and generates a chart.

ParameterRequiredDefaultDescription
get_fov_histogram_toolYes—VA-MCP field-of-view histogram tool.
chart_generator_toolYes—Chart-generation tool.
chart_base_urlNohttp://localhost:38000/reports/Public base URL for charts.

geolocation

The Smart Cities profile can use this tool to resolve coordinates through OpenStreetMap.

ParameterRequiredDefaultDescription
timeoutNo10OpenStreetMap request timeout in seconds.

Agents

report_agent

Generates a report for an incident or directly uploaded video.

ParameterRequiredDefaultDescription
get_incidents_toolNo—VA-MCP incident-listing tool.
get_incident_toolNo—VA-MCP single-incident tool.
template_report_toolNo—Templated incident-report tool.
video_report_toolNo—Uploaded-video report tool used when VA-MCP is not configured.

multi_report_agent

Lists and formats multiple incidents.

ParameterRequiredDefaultDescription
multi_incident_toolYes—Tool that formats incident results and media URLs.
max_incidentsNo10000Maximum fetched incidents; valid range is 1–10000.

Top Agent Workflow

The top agent routes requests to direct tools and sub-agents.

workflow:
_type: top_agent
llm_name: llm
log_level: INFO
max_iterations: 15
max_history: 20
llm_reasoning: true
planning_enabled: true
tool_names:
- get_fov_counts_with_chart
- vst_sensor_list
- vst_picture_url
subagent_names:
- report_agent
- multi_report_agent
prompt: |
You are a routing agent...
ParameterRequiredDefaultDescription
llm_nameYes—LLM used by the routing agent.
log_levelNoINFOAgent log level.
max_iterationsNo10Maximum routing iterations.
max_historyNo10Retained conversation messages; 0 disables history.
llm_reasoningNofalseEnables model reasoning.
planning_enabledNofalseEnables plan-then-execute routing.
tool_namesNoEmpty listDirect tools available to the top agent.
subagent_namesNoEmpty listStreaming sub-agents available to the top agent.
promptYes—Routing and tool-use instructions.

Telemetry

general:
telemetry:
tracing:
phoenix:
_type: phoenix
endpoint: ${PHOENIX_ENDPOINT}/v1/traces
project: WH-vss-agent-${VSS_AGENT_VERSION}
ParameterRequiredDescription
_typeYesTelemetry provider; the shipped configuration uses phoenix.
endpointYesOTLP/HTTP tracing endpoint.
projectYesPhoenix project used to group traces.

For setup and trace inspection, see Agent Observability.

Evaluation Configuration

The eval: section configures the evaluation framework. See Agent Evaluation for evaluator types and examples.

Environment Variables

Profile .env files and the final local Compose override file supply values to the Agent container. Create and select that file as described in Configuration.

VariablePurpose
HOST_IPDeployment host used to derive externally reachable URLs.
VSS_AGENT_VERSIONAgent image-tag and Phoenix telemetry-project suffix; it is not used by the version endpoint. Set VSS_CONTAINER_TAG alongside it when the telemetry suffix should change without selecting a different image.
VSS_AGENT_CONFIG_FILEAgent configuration path inside the container.
VSS_AGENT_HOST, VSS_AGENT_PORTAgent bind address and container port; the default container port is 8000.
HITL_ENABLEDDefaults to true for the in-stack VSS Agent in Docker Compose, enabling structured prompts in the VSS UI. Set to false to skip those dialogs. The NemoClaw OpenClaw harness uses a separate default of false and asks follow-up questions in chat.
VSS_AGENT_OBJECT_STORE_TYPEObject-store entry used by report and chart tools.
VSS_AGENT_REPORTS_BASE_URLPublic base URL for reports and charts.
VSS_AGENT_TEMPLATE_PATH, VSS_AGENT_TEMPLATE_NAMEReport-template directory and filename.
VIDEO_ANALYSIS_MCP_URLVA-MCP base URL used by the MCP client.
VST_INTERNAL_URLVST URL reachable from the Agent and local model services.
VST_EXTERNAL_URLBrowser-reachable VST URL placed in responses.
LLM_NAME, LLM_BASE_URLLLM model ID and endpoint root.
VLM_NAME, VLM_BASE_URLVLM model ID and endpoint root.
VLM_MODEL_TYPESelects the VLM entry prefix. Valid values are nim, openai, vllm, and rtvi; the Agent configuration appends _vlm to resolve nim_vlm, openai_vlm, vllm_vlm, or rtvi_vlm.
VLM_MODEVLM placement used for media handling.
RTVI_VLM_BASE_URLInternal RT-VLM endpoint root used by rtvi_vlm.
ENABLE_AUDIOPreserves and forwards audio for supported VLMs; default false.
PHOENIX_ENDPOINTPhoenix OTLP/HTTP endpoint root.
NVIDIA_API_KEY, OPENAI_API_KEYOptional credentials for a selected remote provider.
HF_TOKENOptional credential for gated Hugging Face model weights.

GET /api/v1/version reports the installed nvidia-vss-core version, stamped into the image at build time as <release line>+tree.<source tree sha> — the release line being the nearest v* git tag (3.3.0-rc0+tree.<sha> on the 3.3.0 line before its release). No environment variable sets or overrides it; nothing needs to be configured for a stock image to report its version.

The checked-in profile files already define the service URLs and stable defaults. For a Docker Compose deployment, a user-overrides.env file should contain only values you need to change. See Configuration for file precedence. For example, an override can contain:

Edit user-overrides.env
VLM_MODE=local_shared
LLM_NAME=nvidia/nemotron-3.5-lightning-30b-a3b
LLM_BASE_URL=http://vss-llm-nim:8000
VLM_NAME=nim_nvidia_cosmos3-nano-reasoner_bf16-final
VLM_BASE_URL=http://rtvi-vlm:8000
VLM_MODEL_TYPE=rtvi