๐ฅ An autonomous AI agent that runs your deep learning experiments 24/7 while you sleep. Zero-cost monitoring, Leader-Worker architecture, constant-size memory.
$ npx -y skills add Xiangyue-Zhang/auto-deep-researcher-24x7 --agent claude-code
What's inside
2026-06-03 โ Domestic LLM API presets
Run the agent on a Chinese LLM API instead of a Claude/Codex subscription by
setting agent.provider to a one-word preset โ deepseek, qwen (dashscope),
kimi (moonshot), or glm (zhipu). The preset auto-fills the OpenAI-compatible
base_url and the default key env (DEEPSEEK_API_KEY / DASHSCOPE_API_KEY /
MOONSHOT_API_KEY / ZHIPUAI_API_KEY); you just set model to that vendor's model
id. base_url / api_key_env stay overridable for self-hosted or proxied endpoints.
This is a thin alias over the existing OpenAI-compatible path โ no new dependency.
(core/agents.py)
agent:
provider: "deepseek" # or qwen / kimi / glm
model: "deepseek-chat" # vendor's model id
2026-06-02 โ Slurm execution backend + truthful experiment outcomes
execution.mode: "slurm" so the agent can
drive experiments on a Slurm cluster. The controller stays local; training is
submitted to the login node with sbatch --parsable over a single transient
SSH call that exits immediately โ no process is ever left running on the
login node. sacct is the sole liveness authority (Slurm enforces --time),
GPU status is read from the partition's squeue occupancy, and two bounds
inside the liveness check (consecutive-unknown grace + a --time-derived
wall-clock backstop) guarantee the monitor loop terminates even if the cluster
goes unreachable โ without ever reaping a job sacct still reports as queued
or running. File and repo-reading ops reuse the SSH path (the login node shares
the NFS workspace). (core/execution.py)final_status(), so a FAILED /
TIMEOUT / CANCELLED run is no longer silently recorded as completed. The
outcome flows into state.json, the experiment ledger, and the REFLECT
context, so the agent reasons over what actually happened. On Slurm the state
comes from sacct; pid-only backends (local/ssh) report it as
indeterminate and keep prior behavior. (core/monitor.py, core/loop.py)local/ssh behavior is unchanged. (+21 unit tests, no
cluster required.)2026-06-01 โ v2.0 (major update)
This release gives the agent (a) a persistent, queryable memory of its own experiments, (b) explicit progress/quality/safety signals derived from that memory, and (c) much stronger code- and literature-reading tools. Every change is additive and backward-compatible โ existing projects keep working unchanged, the new gate and rate limit are opt-in, and the whole suite is unit-tested without a GPU or network (60 โ 99 tests).
New: autonomy layer
workspace/experiments.jsonl. Crash-safe, zero token cost, and fed back into planning so the agent remembers what it already tried. (core/ledger.py)ledger.metric_key), instead of only a binary repeat-counter.DEAD_ENDS.md (failed approaches โ do not retry) and INSIGHTS.md (durable observations). Never compacted; rotated to dated backups when large, so history is never silently dropped. (core/journal.py)core/safety.py, core/ledger.py)agent.max_cycles_per_hour cap protects budget when the agent is stuck in a loop.New: agent tools
search_code (regex grep across the workspace), list_tree (recursive, depth-limited repo map), and read_file line ranges so large files are no longer blindly truncated. Symlink-safe (never escapes the workspace).get_paper (paper details + reference/citation snowballing) and search_arxiv (freshest preprints), alongside the existing Semantic Scholar search.Config: new optional sections ledger:, stagnation:, journal:, safety:, gates:, and agent.max_cycles_per_hour โ all default to current behavior. See config.yaml.
2026-04-22
2026-04-21
2026-04-19
2026-04-18
claude_cli and codex_cli provider modes with fail-fast provider validation and more defensive CLI subprocess handling.2026-04-09
2026-04-08
If you only want the shortest path to a working experiment loop, do this:
PROJECT_BRIEF.md/auto-experiment --project /path/to/project --gpu 0/experiment-status or optional Obsidian/local text notesPrefer AI-guided setup? Open AI_GUIDE.md in Claude / ChatGPT / Codex and let the assistant walk you through it.
| Requirement | Required | Notes |
|---|---|---|
| Python 3.10+ | Yes | Runtime |
| 1+ NVIDIA GPU | Yes | For training |
| API key | Yes | Anthropic-compatible or OpenAI-compatible endpoint |
PROJECT_BRIEF.md | Yes | Main control file |
Project config.yaml | Optional | Only if you want to override defaults |
| Obsidian vault | Optional | If absent, notes fall back to local text files |
The smallest project you can launch looks like this:
my-first-experiment/
โโโ PROJECT_BRIEF.md
โโโ workspace/ # auto-created
Minimal PROJECT_BRIEF.md:
# Goal
Train a ResNet-50 on CIFAR-100 to reach 80%+ accuracy.
# Codebase
Create the training code from scratch in PyTorch.
# What to Try
- Start with a basic ResNet-50 baseline.
- If accuracy < 75%, improve optimization and schedule.
- If accuracy is 75-80%, try augmentation.
- If accuracy > 80%, stop and report.
# Constraints
- Use GPU 0 only
- Max 100 epochs per run
That is enough to start. Everything else is optional refinement.
This project is for people who already know what experiment they want to run, but do not want to babysit the loop:
It is not trying to replace the researcher. It is trying to take over the repetitive experiment-ops layer.
You control the research direction through three files:
PROJECT_BRIEF.md: stable goal, constraints, allowed search spaceHUMAN_DIRECTIVE.md: temporary redirect for the next cycleworkspace/MEMORY_LOG.md: rolling memory of results and decisionsCommon control patterns:
# Keep the search narrow
- Only tune augmentation.
- Do not change the backbone.
- Keep training budget fixed.
# Make the agent stop exploring a weak direction
- If gain stays below 0.3 points for 3 runs, stop this branch.
- Return to the last trusted baseline and try a different idea.
# Force result verification
- If a result looks unusually strong, rerun with the same seed and one new seed.
- Do not claim improvement until both reproduce.
You should never have to guess what the agent is doing.
/experiment-status shows current goal, best result, cycle count, running status, and recent decisions/progress-report generates a structured summary/obsidian-sync refreshes persistent notes manuallyworkspace/progress_tracking/ stores local text notes when no Obsidian vault is configuredIf you want a dashboard outside the terminal:
obsidian:
enabled: true
vault_path: "~/Documents/MyObsidianVault" # Optional
auto_append_daily: true
If vault_path is empty, the same information is saved locally:
workspace/progress_tracking/Dashboard.txt
workspace/progress_tracking/Daily/YYYY-MM-DD.txt
Our hope is simple: science stays pure, and the human stays in the loop.
We built this framework for one reason โ to take the repetitive, mechanical parts of running deep learning experiments off the researcher's plate (launching jobs, watching GPUs, parsing logs, sweeping hyperparameters) so that more of your time can go into the part that actually matters: thinking.
If you're here because you want to spend less time babysitting training runs and more time reading, reasoning, and chasing your own ideas โ welcome. That's exactly who we built this for.
A gentle thought we'd love every user to share with us:
The agent is happy to run the experiments. But please let the ideas, the interpretation, and the scientific judgment remain yours. We don't see automation and academic integrity as being in tension โ quite the opposite. The hours this tool gives back are meant to be reinvested in deeper thinking, not in skipping it.
FAQ
auto-deep-researcher-24x7 is a Claude Code plugin with 8 hand-picked skills for automation work, indexed on Flowy. Install it with the command on its page. It includes auto-experiment, conf-search, daily-papers. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it