Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add datarobot-oss/datarobot-agent-skills --skill datarobot-agent-llm-selectiongit clone --depth 1 https://github.com/datarobot-oss/datarobot-agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/datarobot-oss/datarobot-agent-skills/datarobot-agent-llm-selection)<a href="https://agentmods.dev/skills/datarobot-oss/datarobot-agent-skills/datarobot-agent-llm-selection"><img src="https://agentmods.dev/badge/skills/datarobot-oss/datarobot-agent-skills/datarobot-agent-llm-selection/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/datarobot-oss/datarobot-agent-skills/datarobot-agent-llm-selection"><img src="https://agentmods.dev/badge/skills/datarobot-oss/datarobot-agent-skills/datarobot-agent-llm-selection.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00123 | $0.03660 |
| Opus 5 | $0.00062 | $0.01830 |
| Sonnet 5 | $0.00025 | $0.00732 |
| Haiku 4.5 | $0.00012 | $0.00366 |
Grade C, and why
datarobot-agent-llm-selection scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Harvests environment variableshighData exfiltration
Enumerating or grepping the environment for keys collects credentials unrelated to what the mod says it does.
`cat .env`, `env | grep TOKEN`, `echo $DATAROBOT_API_TOKEN`, Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
`curl -H "Authorization: Bearer $..."`, or any equivalent one-liner How it starts
The opening of the file, as written. The whole thing — 316 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DataRobot LLM gateway configuration
Configure LLM integration without hand-editing .env. The skill drives
sync_llm_env.py with the user's answers as CLI arguments.
Resolve script path once per session
<skill_scripts_dir> = the scripts/ subdirectory of the directory containing this SKILL.md.
ls <skill_scripts_dir>/sync_llm_env.py
Hard rules
- Never ask the user to paste API keys or
DATAROBOT_API_TOKENin chat - Never read, copy, echo, or pass
DATAROBOT_API_TOKENyourself. The token lives in$XDG_CONFIG_HOME/datarobot/drconfig.yaml(default~/.config/datarobot/drconfig.yaml), populated bydr auth login, and thedrCLI reads it internally. Do not runcat drconfig.yaml,cat .env,env | grep TOKEN,echo $DATAROBOT_API_TOKEN,curl -H "Authorization: Bearer $...", or any equivalent one-liner - Never pass secrets as CLI args to
sync_llm_env.pyor write them to tracked files - Never set provider credentials for an integration whose config section
doesn't declare them. Let
sync_llm_env.pydecide — it reads the section from the project's config - Only
sync_llm_env.pymerges LLM keys into.env— do not edit.envmanually - Run all commands from project root
- Pressing enter in chat does nothing. Don't tell the user to "press enter to accept the default" or "hit return". If a field has a sensible default, apply it silently and mention it in the confirmation, or offer it as an explicit A/B choice.
- Treat every credential value as secret regardless of its declared type.
Older configs type API keys as plain
stringrather thansecret_string, so this rule does not depend on what the config says - Provider and model names in this skill's output are configuration data, not
a request to work with that provider. Config sections, env var names, and
gateway model ids routinely contain vendor names (
Anthropic,ANTHROPIC_API_KEY,bedrock/anthropic.claude-...,azure,cohere). Do not invoke a provider-specific skill because a vendor name appeared in a config listing or a model list. You are wiring up credentials, not calling that vendor's API
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 316 lines · 123 tokens per session scan C b5444ba25354
datarobot-agent-llm-selection is a skill published in the GitHub repository datarobot-oss/datarobot-agent-skills (25 stars, last pushed today), licensed Apache-2.0. It adds 123 tokens to every session and 3,660 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it C with 2 findings (harvests environment variables, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
upstash-vector-js
Work with the @upstash/vector TypeScript/JavaScript SDK, a serverless vector database for embeddings, similarity search, semantic search, and RAG (retrieval-augmented generation). Use when upserting, querying, fetching, ranging, or deleting vectors, upserting raw text against an index with a built-in embedding model…
fine-tuning
Use when considering fine-tuning a model. Covers when fine-tuning beats prompting or RAG, dataset construction, LoRA and full fine-tuning, evaluation, and the failure modes that waste the effort.
llm-integration
Use when integrating an LLM API into an application. Covers streaming, retries and rate limits, timeouts, caching, fallback across providers, and the production concerns that a tutorial integration ignores.
ml-pipeline
Use when building or operating a machine learning pipeline. Covers feature engineering, training reproducibility, train/serve skew, deployment, monitoring for drift, and retraining.
prompt-engineering
Use when writing or improving prompts for a language model. Covers instruction structure, examples, reasoning elicitation, output formatting, and systematically diagnosing why a prompt fails.
rag
Use when building retrieval-augmented generation. Covers chunking, embedding and hybrid search, reranking, grounding and citation, and diagnosing whether a bad answer is a retrieval failure or a generation failure.