Agent Customization
The VSS Agent is built on NVIDIA NeMo Agent Toolkit (NAT), which allows you to extend the agent with custom functions, tools, and MCP servers.
Custom Functions
Custom functions are registered in the functions: section of your config file. Each function references a registered Python function by its _type name.
For detailed documentation on writing and registering custom functions, see: NAT Writing Custom Functions
Adding Custom MCP Servers
You can connect to your own MCP (Model Context Protocol) servers to extend the agent’s capabilities.
MCP clients are configured in the function_groups: section.
Supported Transports:
Configuration Example:
CLI Tool Inspection:
You can discover available tools from an MCP server before configuring:
For complete MCP client documentation including authentication, timeout configuration, reconnection settings, and troubleshooting, see: NAT MCP Client Documentation
Building Your Own MCP Server
To create your own MCP server that can be consumed by the VSS Agent:
Customizing Report Generation
To learn more about customizing agent report generation, see Report Generation.
Adding a Knowledge Layer (RAG)
Opt-in. A pluggable retrieval surface registered as _type: knowledge_retrieval,
exposed to the LLM as a named tool. This page documents five backends — one in the
default agent image and four behind opt-in Python extras (marked experimental below):
frag_api also accepts verify_ssl and timeout.
To enable an experimental backend, add --extra <backend> to the uv sync line in
services/agent/docker/Dockerfile and rebuild the agent image.
To enable a retriever, update the profile’s config file (or add a new one) with three patches:
1. Register the function block.
2. Expose it to the workflow.
3. Update the routing rules in workflow.prompt to tell the LLM when to use
this tool.
Example ArangoDB Graph Retrieval Setup
The following example shows how to connect the VSS Agent to an existing
ArangoDB graph through the experimental arango_graph knowledge retrieval
backend. The VSS Agent reads graph data; it does not create, ingest, update, or
model customer graphs.
This example uses the following graph:
Start ArangoDB for local testing:
If the VSS Agent runs in the mdx_default Docker network, attach the
container to that network:
ARANGO_NO_AUTH=1 disables authentication. Use it only for an isolated
local test. Use a read-only account with restricted collection permissions
for other environments.
From the services/agent directory, run the following script to create
the example graph:
Add the retriever to the functions section of the VSS Agent config:
Add the tool to the workflow and update workflow.prompt to tell the LLM when
to use it:
llm_name selects the LLM that generates ArangoDB Query Language (AQL)
queries and summarizes results. schema_description describes the graph, and
graph_semantics maps user terms to relationships. Collection allowlists
guide the LLM to use only the listed vertex and edge collections.
allow_dangerous_requests: true is required before LangChain runs generated
AQL. It does not make the query safe or restrict database access. Use read-only
ArangoDB credentials to enforce retrieval-only access.
Optionally add arango_aql_examples under backend_config when schema
guidance alone does not produce reliable queries:
The response should identify the node_b/b1 record named Beta.
Collection allowlists guide AQL generation but do not enforce database security. Restrict access with ArangoDB user permissions.
Reference config_rag.yml files ship with the dev-profile-base and
dev-profile-lvs Docker and Helm developer profiles. Use one of these — or
your own custom config — by pointing VSS_AGENT_CONFIG_FILE at it in your
deployment.
Related
- Configure the VLM — Configure local or remote VLMs including audio-enabled VLMs
- Model customization overview — Fine-tuning and swapping embedding models (RT-CV, RT-Embedding); see also Models
- Agent Configuration - Configuration reference
- Video Analytics MCP Server - Video Analytics MCP tools reference
- Report generation - Customizing report generation
- Agent Evaluation - Test and evaluate custom agent behaviors