A toolkit for building agents on DataRobot.
- Unified LLM layer (DataRobot-compatible)—one
get_llm()entry point per integration (LangGraph, LlamaIndex, CrewAI, NAT), all backed by the same LiteLLM-based routing to the DataRobot LLM Gateway, LLM deployments, NIM, or external providers. - Library of agentic tools and DataRobot-compatible MCP server—use
drtoolsanddrmcpto give agents first-class capabilities to interact with the world. - AG-UI integration—agents expose a standard AG-UI event stream (
RunAgentInputin, lifecycle + text + tool-call events out), so UIs and the DataRobot platform render runs consistently without bespoke adapters per framework. - Multi-agent systems out of the box—first-class patterns for planner/writer crews, LangGraph multi-node graphs, and LlamaIndex
AgentWorkflowhandoffs; wrap them with one helper and keep the same streaming contract. - Orchestration—build agents from universal pieces in the low-code
workflow.yamlinterface. Combine and reuse LLMs, tools, agents, and evaluators. The design stays compatible with and draws inspiration from NeMo Agentic Toolkit. - Serving and evaluating with DRAgent—run a front-end server to plug an agent into a real-world application. DRAgent supports distributed tracing, generation and evaluation endpoints, and async generations.
The following requirements apply before installing or running samples:
| Requirement | Notes |
|---|---|
| Python 3.11–3.13 | Required for all installs |
| DataRobot account | Required for gateway, deployments, MCP, and platform features |
| Agent framework extra | One of crewai, langgraph, or llamaindex; use dragent for NAT/DRAgent |
For local development, also install uv, Task, and pre-commit.
Requires Python 3.11–3.13. Install the extra that matches the target framework:
pip install "datarobot-genai[crewai]"
pip install "datarobot-genai[langgraph]"
pip install "datarobot-genai[llamaindex]"
pip install "datarobot-genai[dragent]"Optional extras:
datarobot-genai[dragent]—serve and orchestrate agents withDRAgent.datarobot-genai[drtools]—use the standard library of agentic tools DataRobot provides.datarobot-genai[drmcpbase]—Base class to derive FastMCP servers.datarobot-genai[drmcputils]—shared MCP utilities consumed bydrmcpbaseanddrtools.datarobot-genai[drmcp]—host a custom MCP server in DataRobot (includesdrmcpbase,drtools, and template-server dependencies).datarobot-genai[eval]—agent evaluation utilities built on the NeMo Evaluator launcher.
A DataRobot account is required for DataRobot-backed features. Export these environment variables:
# Set the DataRobot API token (replace the placeholder).
export DATAROBOT_API_TOKEN=YOUR_DATAROBOT_API_TOKEN
export DATAROBOT_ENDPOINT=https://app.datarobot.com/api/v2Follow quickstart.ipynb to walk through setting up a LangGraph agent with DataRobot:
- LLM Gateway
drtools- Prompt Management
- Conversion to DataRobot agent format
- Running the agent with an AG-UI interface.
See docs/README.md for in-repo guides on every framework and feature in datarobot-genai. The published site is at genai.datarobot.com.
Requires Python 3.11–3.13, uv, Task CLI, and pre-commit.
uv sync --all-extras --dev
pre-commit install
task testBump the patch version and add an entry to CHANGELOG.md for each library change.
Bump the minor version for backward-incompatible changes.
Comment /build on a PR to build and publish a dev version of the package to TestPyPI.
Several transitive dependencies pulled in by upstream packages are not used by this library at runtime.
These are explicitly excluded via [tool.uv] exclude-dependencies in pyproject.toml to reduce install size and CVE surface area.
| Package | Pulled in by | Reason excluded |
|---|---|---|
build |
crewai |
Python build system; runtime unnecessary |
flask |
nvidia-nat 1.6.0 |
Web framework; not used |
kubernetes |
crewai-tools |
K8s client; not used |
lancedb |
crewai |
Optional vector DB backend; not used |
langchain-milvus |
nvidia-nat-langchain |
Milvus vector DB adapter; not used |
leptonai |
nemo-evaluator-launcher |
Lepton AI cloud backend; not used, pins httpx==0.27.2 which conflicts with the auth extra |
llama-index-cli |
llama-index |
CLI tool; not needed at runtime |
openpyxl |
crewai-tools |
Excel parser; not used |
pymilvus |
langchain-milvus |
Milvus client; not used |
python-docx |
crewai-tools |
Word doc parser; not used |
pytube |
crewai-tools |
YouTube downloader; not used |
stagehand |
crewai-tools |
Playwright web automation; not used |
uv |
crewai |
Package manager bundled as a runtime dep; not needed |
youtube-transcript-api |
crewai-tools |
YouTube transcripts; not used |
Common setup and runtime issues and where to find answers:
| Symptom | Where to look |
|---|---|
| LLM auth or routing errors | docs/src/llm.md — verify DATAROBOT_API_TOKEN and gateway flags |
| MCP tools missing at runtime | Framework MCP guides under docs/README.md — merge injected tools with local tools |
| DRAgent tracing empty | docs/src/dragent/tracing.md — OTLP env vars and instrument() in register.py |
| E2E test failures locally | e2e-tests/README.md |
After installation, continue with these resources:
- Pick a framework guide from docs/README.md and start from the matching sample under
e2e-tests/dragent/. - Read DRAgent CLI for
serve,run, andquery. - Browse the API reference on the published docs site.
Release and distribution options for the package.
- Same-repo PRs—comment
/buildon a PR to publish dev builds to TestPyPI (.devN). - Merge to
main—the release flow creates tagv{version}and publishes to PyPI automatically. - Version tags—pushing a
v*tag also triggers PyPI publish. - Local release—optionally run
task release:tag-and-pushto create and pushv{version}locally.
See CONTRIBUTING.md for issue guidelines, changelog expectations, and versioning. Report bugs via GitHub Issues. For security issues, email oss-community-management@datarobot.com.
External references for the package and source repository:
- Repository—source and issues.
- PyPI—released packages.
- TestPyPI—dev builds.
Apache-2.0—see LICENSE.