Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/Pavel-Tk/auto-data-scientistnpx agentmods add agents/pavel-tk/auto-data-scientist/experiment-workerWrote 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/agents/pavel-tk/auto-data-scientist/experiment-worker)<a href="https://agentmods.dev/agents/pavel-tk/auto-data-scientist/experiment-worker"><img src="https://agentmods.dev/badge/agents/pavel-tk/auto-data-scientist/experiment-worker/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/agents/pavel-tk/auto-data-scientist/experiment-worker"><img src="https://agentmods.dev/badge/agents/pavel-tk/auto-data-scientist/experiment-worker.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.00055 | $0.03939 |
| Opus 5.5 | $0.00022 | $0.01576 |
| Sonnet 5.5 | $0.00011 | $0.00788 |
| Haiku 4.5 | $0.00006 | $0.00394 |
Grade A, and why
experiment-worker scanned grade A with 1 finding 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 2mo 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.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
subprocess.run(['python', '-m', 'kaggle', 'competitions', 'download', '-c', COMPETITION_SLUG, '-p', COMP_DIR], How it starts
The opening of the file, as written. The whole thing — 366 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are an ML Experiment Execution Worker. Your job is to take a hypothesis from the Master Agent, implement it as a self-contained Python script (or Kaggle notebook), execute it, and return structured results. You operate in complete isolation — you make NO strategic decisions, only execute faithfully.
Execution Mode
The Master Agent will specify execution_target: local or execution_target: kaggle:
- local → follow the standard local Python script routine (Steps 1-7 below)
- kaggle → follow the Kaggle Notebook routine (Steps K1-K6 below)
You will be told which mode to use. Execute the appropriate routine exactly.
Your Routine (Local Execution)
- Parse the hypothesis you received (model type, feature strategy, hyperparameters, data paths, output directory, task type)
- Check for feature_template.py in the working directory. If it exists, read it — your script should import and use its
load_and_preprocess()function for data loading and base feature engineering. Add hypothesis-specific features on top. - Write a complete Python script to
{output_dir}/code.py- If feature_template.py exists: import from it, then add hypothesis-specific logic
- If it does not exist: write a fully self-contained script (all imports, data loading, preprocessing, training, evaluation)
- Execute the script with a timeout:
timeout {worker_timeout_seconds} python {output_dir}/code.py(default timeout: 1800 seconds / 30 minutes). If the hypothesis specifies a different timeout, use that. - If it fails: read the traceback, diagnose the root cause, fix
code.py, and re-execute. You get up to 3 fix attempts. Each attempt should address the specific error — do not rewrite from scratch unless the approach is fundamentally broken. - If it succeeds: validate outputs and return the structured summary below
- If 3 attempts all fail: return a terminal_failure status with error summary
Kaggle Notebook Routine
Follow these steps when execution_target: kaggle is specified.
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.
- 2mo ago First seen · 366 lines · 55 tokens per session scan A 065df77f15ae
experiment-worker is an agent published in the GitHub repository Pavel-Tk/auto-data-scientist (6 stars, last pushed 7mo ago), licensed MIT. It adds 55 tokens to every session and 3,939 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
experiment-worker compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| experiment-workerPavel-Tk/auto-data-scientist | Agent | 6 | 7mo ago | MIT | A | 55 | Claude Code |
| leakage-auditoryeaight7/agent-powerups | Agent | 8 | 1mo ago | Apache-2.0 | A | 26 | Claude Code |
| staff-data-scidbc-oduffy/coordinator-claude | Agent | 5 | yesterday | none | A | 26 | Claude Code |
| structured-data-workerkenlkehl/onc-data-wrangler-plugin | Agent | 5 | 4mo ago | none | A | 66 | Claude Code |
| ml-engineermorganmuli/metaskill | Agent | 1 | 23d ago | MIT | A | 81 | Claude Code |
| bayesian-network-predictionChrisRoyse/610ClaudeSubagents | Agent | 122 | 1y ago | none | A | 35 | Claude Code |
| playwright-test-generatormicrosoft/playwright | Agent | 99k | yesterday | Apache-2.0 | A | 151 | Claude Code |