RD-Agent splits ML research and coding between two LLM agents, and needs your API keys to run either
Research and development (R&D) is crucial for the enhancement of industrial productivity, especially in the AI era, where the core aspects of R&D are mainly focused on data and models. We are committed to automating these high-value generic R&D processes through R&D-Agent, which lets AI drive data-driven AI. 🔗https://aka.ms/RD-Agent-Tech-Report
At a glance
- What is it?
- Microsoft's RD-Agent is an MIT-licensed Python framework that automates data science, Kaggle, quant finance and fine-tuning loops with LLM agents. It posts the top MLE-bench scores, but it is a heavy install that depends entirely on paid model endpoints you configure yourself.
- Who is it for?
- RD-Agent fits teams that already pay for LLM API access and want an agent to iterate on Kaggle style data science, factor research or LLM fine-tuning, and who can run Docker on Python 3.10 or 3.11. It does not fit anyone looking for a light library or an offline tool.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 24 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- microsoft/RD-Agent15,361 ★ · +789
| Repository | 2026-09-10 | 2026-11-13 |
|---|---|---|
| microsoft/RD-Agent | 14.6k | 15.4k |
789 Stars in the last 64 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
A Research Agent proposes, a Development Agent implements
The name is the design. RD-Agent separates the R (deciding what idea to try next) from the D (writing and running the code that tests it), and lets each side use a different model. Its strongest MLE-bench configuration is labelled o3(R)+GPT-4.1(D): o3 drives the Research Agent and GPT-4.1 drives the Development Agent. Microsoft says this pairing was chosen to cut the average time per loop and to use a cheaper model for the coding half. The practical consequence is that you are not configuring one model, you are choosing two, and the quality of each loop depends on both.
LiteLLM sits behind every call, and the .env file decides where it points
LiteLLM is the default backend, selected by BACKEND=rdagent.oai.backend.LiteLLMAPIBackend in the template, and requirements.txt asks for litellm>=1.73. Configuration lives in a .env file copied from .env.example. Chat and embeddings can go to different providers. The template sets a chat endpoint like this:
OPENAI_API_KEY="sk-chat-key"
OPENAI_API_BASE="https://xxx-litellm.com/v1"
CHAT_MODEL='gpt-4o'Embeddings in the same example go to SiliconFlow through LITELLM_PROXY_API_KEY, LITELLM_PROXY_API_BASE and EMBEDDING_MODEL="litellm_proxy/BAAI/bge-large-en-v1.5", and the template warns you to keep the litellm_proxy prefix. Azure users get separate CHAT_AZURE_API_BASE and EMBEDDING_AZURE_API_BASE variables. Global defaults are MAX_RETRY=10 and RETRY_WAIT_SECONDS=20, so a failing endpoint can stall a run for minutes before it gives up. Optional switches such as USE_CHAT_CACHE, USE_EMBEDDING_CACHE, FT_DOCKER_ENABLE_CACHE and DS_DOCKER_ENABLE_CACHE control caching.
The MLE-bench lead is real but rests on frontier models and few seeds
On MLE-bench, which draws on 75 Kaggle competitions, the o3(R)+GPT-4.1(D) setup scores 30.22 ± 1.5 percent across all tasks, against 22.4 ± 1.1 for R&D-Agent with o1-preview and 16.9 ± 1.1 for AIDE with o1-preview, the earlier best public result. On the Low (Lite) tier it reaches 51.52 ± 6.9 percent, on Medium 19.3 ± 5.5, on High 26.67 ± 0. Two caveats matter for a reader. The averages come from 6 seeds for the o3 setup and 5 for o1-preview, so the spread on the Lite tier is wide. And every number was produced with OpenAI reasoning models; nothing in the published table tells you how the framework behaves with a cheaper or local model. Detailed runs for both R&D-Agent configurations are linked publicly, which is the place to check before trusting the headline.
The new web UI skips the data_science scenario
A frontend for real-time interaction and trace viewing ships with the CLI. The package installs a single entry point, rdagent, mapped to rdagent.app.cli:app, and the UI is built and served with:
rdagent server_uiThe announcement states that this UI currently excludes the data_science scenario. That is the scenario behind the Kaggle Agent and the MLE-bench results, so anyone who came to RD-Agent for those headline numbers cannot follow those runs in the new frontend yet. The repository also carries a .streamlit/ directory and lists streamlit>=1.47 under its demo dependencies, but the new frontend is the one announced for live interaction and trace viewing.
One requirements file pulls in Docker, Selenium, MLflow and Azure SDKs
requirements.txt makes no split between core and optional pieces. A single install brings docker, selenium and webdriver-manager for a Kaggle crawler, kaggle, mlflow and azureml-mlflow, azure-ai-formrecognizer and pymupdf for PDF handling, langchain and langchain-community, streamlit, flask, plotly, tensorboard, prefect, datasets and duckduckgo-search. One dependency is pinned exactly: pydantic-ai-slim[mcp,openai,prefect]==1.66.0. If you add RD-Agent to an environment that already needs a different pydantic-ai-slim version, pip cannot satisfy both, so a dedicated virtual environment is the safe choice. The .env template also has FT_DOCKER_ENABLE_CACHE and DS_DOCKER_ENABLE_CACHE switches, so the fine-tuning and data science scenarios run through Docker, and the machine running the agent needs a working Docker setup.
Version 1.0.0 still carries an Alpha classifier and a narrow Python range
The package is published on PyPI as rdagent. pyproject.toml declares requires-python >=3.10, but its classifiers only list Python 3.10 and 3.11, and it still marks the project as Development Status 3 - Alpha. That label sits next to a v1.0.0 release tagged on 2026-09-23, following v0.8.0 on 2025-11-03 and v0.7.0 on 2025-07-08. The Makefile resolves a constraints file per interpreter as constraints/$(PYTHON_VERSION).txt, so the tested pins are tied to specific Python minor versions. If you run 3.12 or newer you are outside what the classifiers claim. The last push to main was on 2026-10-21, and the repository is not archived.
Quant factors, LLM fine-tuning and RL post-training share the same loop
Beyond data science, the same propose and implement cycle is applied to other domains. RD-Agent(Q) targets quantitative finance and is described as the first data-centric multi-agent quant framework; its paper was accepted to NeurIPS 2025, and the Makefile declares an init-qlib-env target. FT-Agent, from the ICML 2026 paper FT-Dojo, automates LLM fine-tuning and lives under rdagent/app/finetune/llm. For watching supervised fine-tuning runs, requirements.txt notes this command:
tensorboard --logdir git_ignore_folder/RD-Agent_workspaceAgent² RL-Bench, under rdagent/scenarios/rl/autorl_bench, measures whether agents can build post-training pipelines from static optimization through stateful online RL. Each scenario has its own guide, so expect to read separate documentation for each one rather than a single walkthrough.
Editorial conclusion
RD-Agent fits teams that already pay for LLM API access and want an agent to iterate on Kaggle style data science, factor research or LLM fine-tuning, and who can run Docker on Python 3.10 or 3.11. It does not fit anyone looking for a light library or an offline tool. Before adopting it, confirm which scenario the web UI covers for you, budget for the models behind the published MLE-bench numbers, and check that the pinned pydantic-ai-slim==1.66.0 does not clash with your existing environment.
Frequently asked questions
What is RdAgent?
RD-Agent is an MIT-licensed Python framework from Microsoft that uses LLM agents to automate research and development work on data and models, with scenarios for data science and Kaggle, quantitative finance, LLM fine-tuning and RL post-training.
how to use rd agent
Install the rdagent package on Python 3.10 or later, copy .env.example to .env and fill in your chat and embedding endpoints, then use the rdagent command. rdagent server_ui serves the web UI, which does not yet cover the data_science scenario.
what is rd agent
In the Microsoft RD-Agent project, it is a pair of LLM agents: a Research Agent that proposes ideas and a Development Agent that implements them. Its o3 plus GPT-4.1 setup scores 30.22 percent across all MLE-bench tasks.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/microsoft-rd-agent)Star history chart for your README
[](https://hysenlabs.com/projects/microsoft-rd-agent)Was this useful?