Skip to content

{{ community_contribution_banner }}

!!! info “Language Support” This provider is only supported in Python.

strands-nvidia-nim is a custom model provider that enables Strands Agents to work with Nvidia NIM APIs. It bridges the message format compatibility gap between Strands Agents SDK and Nvidia NIM API endpoints.

Features:

  • Message Format Conversion: Automatically converts Strands’ structured content to simple string format required by Nvidia NIM
  • Tool Support: Full support for Strands tools with proper error handling
  • Clean Streaming: Proper streaming output without artifacts
  • Error Handling: Context window overflow detection and Strands-specific errors

Install strands-nvidia-nim from PyPI:

Terminal window
pip install strands-nvidia-nim strands-agents-tools
from strands import Agent
from strands_tools import calculator
from strands_nvidia_nim import NvidiaNIM
model = NvidiaNIM(
api_key="your-nvidia-nim-api-key",
model_id="meta/llama-3.1-70b-instruct",
params={
"max_tokens": 1000,
"temperature": 0.7,
}
)
agent = Agent(model=model, tools=[calculator])
agent("What is 123.456 * 789.012?")
Terminal window
export NVIDIA_NIM_API_KEY=your-nvidia-nim-api-key
import os
from strands import Agent
from strands_tools import calculator
from strands_nvidia_nim import NvidiaNIM
model = NvidiaNIM(
api_key=os.getenv("NVIDIA_NIM_API_KEY"),
model_id="meta/llama-3.1-70b-instruct",
params={"max_tokens": 1000, "temperature": 0.7}
)
agent = Agent(model=model, tools=[calculator])
agent("What is 123.456 * 789.012?")

The NvidiaNIM provider accepts the following parameters:

ParameterDescriptionExample
api_keyYour Nvidia NIM API key"nvapi-..."
model_idModel identifier"meta/llama-3.1-70b-instruct"
paramsGeneration parameters{"max_tokens": 1000}

Popular Nvidia NIM models:

  • meta/llama-3.1-70b-instruct - High quality, larger model
  • meta/llama-3.1-8b-instruct - Faster, smaller model
  • meta/llama-3.3-70b-instruct - Latest Llama model
  • mistralai/mistral-large - Mistral’s flagship model
  • nvidia/llama-3.1-nemotron-70b-instruct - Nvidia-optimized variant
model = NvidiaNIM(
api_key="your-api-key",
model_id="meta/llama-3.1-70b-instruct",
params={
"max_tokens": 1500,
"temperature": 0.7,
"top_p": 0.9,
"frequency_penalty": 0.0,
"presence_penalty": 0.0
}
)

This provider exists specifically to solve message formatting issues between Strands and Nvidia NIM. If you encounter this error using standard LiteLLM integration, switch to strands-nvidia-nim.

The provider includes detection for context window overflow errors. If you encounter this, try reducing max_tokens or the size of your prompts.