Get started¶
The Agentic Starter template repository provides a ready-to-use application template for building and deploying agentic workflows with multi-agent frameworks, a FastAPI backend server, a React frontend, and an MCP server. The template streamlines the process of setting up new agentic applications with minimal configuration requirements and supports local development and testing, as well as one-command deployments to production environments within DataRobot.
This guide covers installing the prerequisite tools and configuring your environment, then creating, deploying, and testing an agentic application using DataRobot's pre-built templates.
System requirements¶
Ensure your system meets the minimum requirements for running the Agentic Starter template:
- Operating system: macOS, Linux, or Windows
- Python: Version 3.10 or higher
- Memory: At least 4 GB of RAM
Windows development
On Windows, complete the Windows prerequisites before you clone the repository or run dr start. The rest of the installation and quickstart flow matches macOS and Linux.
If you prefer a Linux environment on Windows, you can also use a DataRobot codespace, Windows Subsystem for Linux (WSL), a dev container, or a virtual machine.
Restricted network environments
If you're working from an environment with no direct internet access (for example, an air-gapped environment), see Restricted network setup before you install, initialize, or deploy.
Install prerequisite tools¶
Before you begin, you'll need the following tools installed. If you already have these tools installed, ensure that they are at the required version (or newer) indicated in the table below. For example commands to install the tools, see the Detailed installation commands section.
Install tools system-wide
Make sure to install the tools system-wide, rather than in a virtual environment, so they are available in your terminal sessions.
| Tool | Version | Description | Installation guide |
|---|---|---|---|
| dr-cli | >= 0.2.77 | The DataRobot CLI. | DataRobot CLI getting started (install and configure); GitHub dr-cli (alternative) |
| git | >= 2.30.0 | A version control system. | git installation guide |
| uv | >= 0.10.0 | A Python package manager. | uv installation guide |
| Pulumi | >= 3.163.0 | An Infrastructure as Code tool. | Pulumi installation guide |
| Taskfile | >= 3.43.3 | A task runner. | Taskfile installation guide |
| NodeJS | >= 24 | JavaScript runtime for frontend development. | NodeJS installation guide |
| C++ build tools | N/A | A C++ compiler and build tools, required to compile some Python packages. | macOS: Xcode Command Line Tools (xcode-select --install); Linux: build-essential (sudo apt-get install build-essential); Windows: Visual Studio Build Tools with the Desktop development with C++ workload |
Windows prerequisites¶
Complete these steps on Windows before you clone the repository. Skipping them checks symlinks out as plain text files and leaves the working tree broken.
- Enable symlink support in Git:
git config --global core.symlinks true
-
Grant permission to create symlinks using one of the following options:
-
Developer Mode (recommended): On Windows 11, open Settings → System → Advanced → Developer Mode and turn Developer Mode on. See Enable your device for development for details.
-
Administrator terminal: Launch PowerShell or Windows Terminal with Run as administrator and run every repo operation from that elevated session. At minimum, use an elevated session for
git clone,dr start,dr run deploy, and anygit checkoutorgit pullthat touches symlinked paths. This template uses Git symlinks at.claude/skills,fastapi_server/core,infra/infra/llm.py, andinfra/infra/oauth.py. -
After Git is installed, ensure that the following directory is present in your system PATH:
[path_of_git_installation]\usr\bin. For example, if Git is installed inC:\Program Files\Git, addC:\Program Files\Git\usr\binto your PATH using the following commands:
$dir = 'C:\Program Files\Git\usr\bin' # Change if Git is installed elsewhere.
$p = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$p;$dir", 'User')
This location provides Linux helper commands required for the Agentic Starter to work correctly. Close and reopen the terminal (or IDE) after running the command so new processes pick up the change.
Detailed installation commands¶
The following sections provide example installation commands for macOS, Linux (Debian/Ubuntu/DataRobot codespace), and Windows (PowerShell). Click the tab below that corresponds to your operating system:
macOS users can install the prerequisite tools using Homebrew. First, install Homebrew if you don't already have it.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # If homebrew is not already installed
Then, install the prerequisite tools with it:
brew install datarobot-oss/taps/dr-cli uv pulumi/tap/pulumi go-task node git
You also need the Xcode Command Line Tools to compile some Python packages:
xcode-select --install
Linux users can install the prerequisite tools using the package manager for their distribution.
curl https://cli.datarobot.com/install | sh
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv
sudo apt-get install -y build-essential
sudo apt-get install -y git
curl -LsSf https://astral.sh/uv/install.sh | sh
curl -fsSL https://get.pulumi.com | sh
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d
sudo apt-get install -y nodejs npm
Complete Windows prerequisites before you run dr start.
Windows users can install the prerequisite tools with PowerShell:
irm https://cli.datarobot.com/winstall | iex
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
winget install Git.Git
winget install Pulumi.Pulumi
winget install Task.Task
winget install OpenJS.NodeJS
winget install Microsoft.VisualStudio.2022.BuildTools --force --override "--wait --passive --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows11SDK.22621"
After installing the tools
- uv: Run
uv tool update-shellonce so your shell picks up the updatedPATHbefore usinguv tool runor invoking tools installed viauv tool install. - Pulumi: If you don't have a Pulumi account, use
pulumi login --localfor local login, or create a free account at the Pulumi website.
Initialize your application¶
Installation process
Before starting, complete all installation and setup steps above. Skipping this process can cause errors and prevent your agentic application from running correctly.
Run the following command to start the local development environment:
dr start
This command starts the DataRobot CLI's interactive wizard (dr start in the CLI command reference). It automatically clones the application repository and creates a .env file in the root directory populated with environment variables you specify.
The wizard provides guidance and context for each step; expand the reference below for the complete list of steps.
Full wizard step reference
- Specify whether you wish to use the "low-code" agent template:
- Press Y to use the YAML-based NeMo Agent Toolkit template.
- Press N to choose from a list of available agent templates.
- After a few moments, the wizard opens a web browser window to automatically configure your API endpoint and key. Click Proceed to continue.
- If the browser doesn't open automatically, look for a URL in the terminal output and open it manually.
- Click Proceed in the browser to continue.
- If you encounter authentication issues, ensure you're logged into DataRobot in your browser.
- Specify the port for the local web application and press Enter. The default is
8842. - If desired, specify the default execution environment for your agent and press Enter. The default is
[DataRobot] Python 3.11 GenAI Agents. - Provide a secret key to sign cookies for your session and press Enter. If you do not provide a value, a randomly generated one is used.
- Enter the URI for a database to use for the application and press Enter. The default is
sqlite+aiosqlite:///.data/database.sqlite. - Select your backend OAuth provider and press Enter.
- Specify your authorization server by selecting it from the list and pressing Space. Press Enter to confirm.
- Enter a passphrase (or leave blank if you don't want to use a passphrase) for your Pulumi stack and press Enter.
- Specify the ID of a DataRobot Use Case (for example,
69331fad5e07469e7c4f5c6f), if one is available, and press Enter.- Find your Use Case ID by navigating to the Use Case in the DataRobot UI and copying the ID from the URL.
- If left blank, DataRobot creates a new Use Case automatically.
- Specify your LLM integration and press Enter.
- If you choose DataRobot Deployed LLM, provide the deployment ID for your custom model LLM (
LLM_DEPLOYMENT_ID). The template setsUSE_DATAROBOT_LLM_GATEWAY=0so requests use that deployment instead of the LLM Gateway.
- If you choose DataRobot Deployed LLM, provide the deployment ID for your custom model LLM (
- Specify the port for the MCP server and press Enter. The default is
9000. - Review the
.envconfiguration summary displayed and press Enter to confirm.- NOTE: This step takes several minutes to complete.
- Once the configuration finishes, choose a Pulumi stack to use for your application and press Enter. If you wish to create a new stack, press Enter and you are prompted to enter a name for it. The name cannot match any existing stack name.
First-time initialization
When run for the first time, the dr start command prepares your development environment to develop and deploy your application.
This includes both environment and agent component configuration.
After this first initialization, future dr start operations only set up your local environment.
For subsequent updates to the configuration of your agent component, run the dr component update command.
After dr start completes successfully, verify the following:
- A
.envfile in your project root. - Your application directory created (typically named
datarobot-agent-applicationor based on your application name).
Now that your application is configured, proceed to the next section.
Run your agent¶
Running your agent
Do not proceed to this section until you have run dr start, detailed in the previous section.
Navigate to the application directory created during dr start:
cd datarobot-agent-application # or the custom directory name you specified during the wizard, if different
Then, run the following command to start all components of the application:
dr run dev
Note
task dev runs the same development stack if your template exposes that task.
This starts four processes, running in parallel:
- Application frontend
- Application backend
- Agent
- MCP server
Once all services are running:
- Open your web browser and navigate to http://localhost:5173.
- Confirm that the agent application interface appears.
- Try sending a test message to verify everything is working.
From here, start customizing your agent by adding your own logic and functionality. See the Develop your agent section for more details.
Starting individual services
Start individual services in separate terminal windows; for example, task agent:dev starts only the agent.
Develop your agent¶
Now that your agent has been built and tested, you are ready to customize it by adding your own logic and functionality. See the following documentation for more details:
- Customize your agent
- Add tools to your agent
- Configure LLM providers
- Add Python requirements
- Manage prompts
Deploy your agent¶
Testing your agent
Ensure that you have tested your agent locally before deploying.
Next, deploy your agent to DataRobot, which requires a Pulumi login.
Run the following command to deploy your agent:
dr task run deploy
For more on the task and run commands, see the CLI task command and CLI run command.
Deployment process
The deployment process takes several minutes to complete.
Once deployment is complete, the script displays the deployment details, as shown in the example below. The deployment details vary based on your configuration.
Outputs:
AGENT_DEPLOYMENT_ID : "69331fad5e07469e7c4f5c6f"
Agent Custom Model Chat Endpoint [apptest] [agent]: "https://datarobot.com/api/v2/genai/agents/fromCustomModel/69331f816e1bf9f1890d5d1d/chat/"
Agent Deployment Chat Endpoint [apptest] [agent] : "https://datarobot.com/api/v2/deployments/69331fad5e07469e7c4f5c6f/chat/completions"
Agent Execution Environment ID [apptest] [agent] : "680fe4949604e9eba46b1775"
Agent Playground URL [apptest] [agent] : "https://datarobot.com/usecases/69331e4c3be0efe3b95a7be0/agentic-playgrounds/69331e4d1c036307186c9b16/comparison/chats"
Agentic Starter [apptest] : "https://datarobot.com/custom_applications/6933204a9e21e9b59b5a7bee/"
DATABASE_URI : "sqlite+aiosqlite:////tmp/agent_app/.data/agent_app.db"
DATAROBOT_APPLICATION_ID : "6933204a9e21e9b59b5a7bee"
DATAROBOT_OAUTH_PROVIDERS : (json) []
LLM_DEFAULT_MODEL : "azure/gpt-4o-2024-11-20"
SESSION_SECRET_KEY : "secretkey123"
USE_DATAROBOT_LLM_GATEWAY : "1"
[apptest] [mcp_server] Custom Model Id : "69331eebb49131d3d5430ac7"
[apptest] [mcp_server] Deployment Id : "69331f1f30548f83b668d9dc"
[apptest] [mcp_server] MCP Server Base Endpoint : "https://datarobot.com/api/v2/deployments/69331f1f30548f83b668d9dc/directAccess/"
[apptest] [mcp_server] MCP Server MCP Endpoint : "https://datarobot.com/api/v2/deployments/69331f1f30548f83b668d9dc/directAccess/mcp"
Note
The sample output above reflects an agent using the LLM gateway (USE_DATAROBOT_LLM_GATEWAY is "1"). If you use the DataRobot Deployed LLM option instead, USE_DATAROBOT_LLM_GATEWAY is automatically set to 0.
Restricted network setup¶
Complete this section only if you're installing, initializing, or deploying from an environment with no direct internet access (for example, an air-gapped environment); otherwise, skip it.
Configure Pulumi to install the DataRobot plugin from an internal proxy instead of GitHub. Setting these environment variables redirects all Pulumi plugin downloads to your internal proxy and disables external update checks.
Add the following variables to your .env file:
PULUMI_SKIP_UPDATE_CHECK=1
PULUMI_DATAROBOT_DEFAULT_URL=http://internal-proxy-for-pulumi
# OPTIONAL
PULUMI_DATAROBOT_PLUGIN_VERSION=v0.10.27
| Environment variable | Required | Description |
|---|---|---|
PULUMI_SKIP_UPDATE_CHECK |
Yes | Enables air-gapped mode when set to 1, disabling external update checks and allowing use of a custom plugin server. |
PULUMI_DATAROBOT_DEFAULT_URL |
Yes | The base URL of your internal proxy server hosting the DataRobot Pulumi plugin. This replaces the default GitHub releases source. |
PULUMI_DATAROBOT_PLUGIN_VERSION |
No | The specific version of the DataRobot Pulumi plugin to install. If not specified, it defaults to the version bundled with the templates. |
How it works
When PULUMI_SKIP_UPDATE_CHECK=1 is set, deployment tasks execute pulumi plugin install resource datarobot <version> --server <url>. This ensures that plugin downloads are routed through your internal proxy instead of external sources.
Internal proxy requirements
The internal proxy must host the DataRobot Pulumi plugin files in a structure compatible with Pulumi's plugin installation. It should mirror the directory and file structure of the official GitHub releases.
Python packages¶
In restricted network environments, uv sync operations fail when attempting to reach the public PyPI. To resolve this, configure uv to use your internal PyPI proxy.
To configure the proxy, edit the agent/pyproject.toml file in your agent project and uncomment the [tool.uv.pip] section, replacing the URL with your internal PyPI proxy. For example:
[tool.uv.pip]
extra-index-url = ["https://your-internal-pypi-proxy.example.com/simple/"]
Configuration impact
Once configured, this setting ensures that all Python package installations are routed through your proxy. This applies to:
- Local development (
uv sync) - Docker image builds
- Custom model deployments
- Playground operations
- Infrastructure deployments
Finding the configuration
The [tool.uv.pip] section is located at the end of the pyproject.toml file. If it is missing, add it manually.