[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-823":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":39,"readmeContent":40,"aiSummary":41,"trendingCount":16,"starSnapshotCount":16,"syncStatus":42,"lastSyncTime":43,"discoverSource":44},823,"auto-deep-researcher-24x7","Xiangyue-Zhang\u002Fauto-deep-researcher-24x7","Xiangyue-Zhang","🔥 An autonomous AI agent that runs your deep learning experiments 24\u002F7 while you sleep. Zero-cost monitoring, Leader-Worker architecture, constant-size memory.","https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.05854",null,"Python",1244,101,25,11,0,40,232,466,120,19.03,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38],"ai-agent","autonomous-agent","claude-code","deep-learning","experiment-automation","gpu","hyperparameter-tuning","llm-agent","machine-learning","mlops","pytorch","research-automation","2026-06-12 02:00:19","\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fbanner.png\" alt=\"Deep Researcher Agent\" width=\"700\"\u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">Deep Researcher Agent\u003C\u002Fh1>\n\u003Ch3 align=\"center\">24\u002F7 Autonomous Deep Learning Experiment Agent\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>An AI agent that autonomously runs your deep learning experiments 24\u002F7 while you sleep.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"README.md\">English\u003C\u002Fa> |\n  \u003Ca href=\"docs\u002FREADME_CN.md\">中文\u003C\u002Fa> |\n  \u003Ca href=\"docs\u002FREADME_JP.md\">日本語\u003C\u002Fa> |\n  \u003Ca href=\"docs\u002FREADME_KR.md\">한국어\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#quickstart\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-Quick_Start-blue?style=for-the-badge\" alt=\"Quick Start\"\u002F>\u003C\u002Fa>\n  \u003Ca href=\"docs\u002Farchitecture.md\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-Architecture-orange?style=for-the-badge\" alt=\"Architecture\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10+-blue.svg\" alt=\"Python\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClaude_Code-compatible-blueviolet.svg\" alt=\"Claude Code\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCodex_CLI-compatible-green.svg\" alt=\"Codex CLI\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache_2.0-green.svg\" alt=\"License\"\u002F>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FXiangyue-Zhang\u002Fauto-deep-researcher-24x7\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FXiangyue-Zhang\u002Fauto-deep-researcher-24x7?color=yellow&logo=github&label=Stars\" alt=\"Stars\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.05854\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTechnical%20Report-2604.05854-b31b1b.svg\" alt=\"Technical Report\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## Recent Updates\n\n**2026-04-22**\n- Added explicit compatible-API configuration, dual Claude\u002FCodex skill installation, and safer skill-installer ownership checks.\n\n**2026-04-21**\n- Added an optional SSH execution backend so the controller can stay local while code edits, training, logs, PID checks, and GPU queries run on one remote host.\n\n**2026-04-19**\n- Added a real multi-turn worker tool-use loop with authoritative tool-result handoff, stricter CLI behavior, and safer tool-call parsing.\n\n**2026-04-18**\n- Added subscription-backed `claude_cli` and `codex_cli` provider modes with fail-fast provider validation and more defensive CLI subprocess handling.\n\n**2026-04-09**\n- Reduced token growth and tightened loop\u002Ftool safeguards with leader-history resets, no-progress fallback, and stronger path and shell protections.\n\n**2026-04-08**\n- Added progress tracking exports with optional Obsidian sync and local text fallback when no vault is configured.\n\n## Start In 3 Steps\n\nIf you only want the shortest path to a working experiment loop, do this:\n\n1. Create a project folder with one file: `PROJECT_BRIEF.md`\n2. Run `\u002Fauto-experiment --project \u002Fpath\u002Fto\u002Fproject --gpu 0`\n3. Check progress with `\u002Fexperiment-status` or optional Obsidian\u002Flocal text notes\n\nPrefer AI-guided setup? Open [`AI_GUIDE.md`](AI_GUIDE.md) in Claude \u002F ChatGPT \u002F Codex and let the assistant walk you through it.\n\n## What You Actually Need\n\n| Requirement | Required | Notes |\n|-------------|----------|-------|\n| Python 3.10+ | Yes | Runtime |\n| 1+ NVIDIA GPU | Yes | For training |\n| API key | Yes | Anthropic-compatible or OpenAI-compatible endpoint |\n| `PROJECT_BRIEF.md` | Yes | Main control file |\n| Project `config.yaml` | Optional | Only if you want to override defaults |\n| Obsidian vault | Optional | If absent, notes fall back to local text files |\n\n## Minimum Working Example\n\nThe smallest project you can launch looks like this:\n\n```text\nmy-first-experiment\u002F\n├── PROJECT_BRIEF.md\n└── workspace\u002F                  # auto-created\n```\n\nMinimal `PROJECT_BRIEF.md`:\n\n```md\n# Goal\nTrain a ResNet-50 on CIFAR-100 to reach 80%+ accuracy.\n\n# Codebase\nCreate the training code from scratch in PyTorch.\n\n# What to Try\n- Start with a basic ResNet-50 baseline.\n- If accuracy \u003C 75%, improve optimization and schedule.\n- If accuracy is 75-80%, try augmentation.\n- If accuracy > 80%, stop and report.\n\n# Constraints\n- Use GPU 0 only\n- Max 100 epochs per run\n```\n\nThat is enough to start. Everything else is optional refinement.\n\n## What This Project Is Good At\n\nThis project is for people who already know what experiment they want to run, but do not want to babysit the loop:\n\n- edit code\n- launch training\n- monitor runs\n- parse logs\n- decide the next variation\n- keep going while you sleep\n\nIt is not trying to replace the researcher. It is trying to take over the repetitive experiment-ops layer.\n\n## Why It Feels Different From A Simple Script\n\n- It does not just launch one run. It keeps iterating.\n- It does not just monitor. It reflects and decides the next step.\n- It stays cheap because training-time monitoring makes zero LLM calls.\n- It stays controllable because the human can override direction at any cycle.\n- It now supports persistent progress notes in Obsidian or local text files.\n\n## How You Stay In Control\n\nYou control the research direction through three files:\n\n- `PROJECT_BRIEF.md`: stable goal, constraints, allowed search space\n- `HUMAN_DIRECTIVE.md`: temporary redirect for the next cycle\n- `workspace\u002FMEMORY_LOG.md`: rolling memory of results and decisions\n\nCommon control patterns:\n\n```md\n# Keep the search narrow\n- Only tune augmentation.\n- Do not change the backbone.\n- Keep training budget fixed.\n```\n\n```md\n# Make the agent stop exploring a weak direction\n- If gain stays below 0.3 points for 3 runs, stop this branch.\n- Return to the last trusted baseline and try a different idea.\n```\n\n```md\n# Force result verification\n- If a result looks unusually strong, rerun with the same seed and one new seed.\n- Do not claim improvement until both reproduce.\n```\n\n## How You See Progress\n\nYou should never have to guess what the agent is doing.\n\n- `\u002Fexperiment-status` shows current goal, best result, cycle count, running status, and recent decisions\n- `\u002Fprogress-report` generates a structured summary\n- `\u002Fobsidian-sync` refreshes persistent notes manually\n- `workspace\u002Fprogress_tracking\u002F` stores local text notes when no Obsidian vault is configured\n\nIf you want a dashboard outside the terminal:\n\n```yaml\nobsidian:\n  enabled: true\n  vault_path: \"~\u002FDocuments\u002FMyObsidianVault\"   # Optional\n  auto_append_daily: true\n```\n\nIf `vault_path` is empty, the same information is saved locally:\n\n```text\nworkspace\u002Fprogress_tracking\u002FDashboard.txt\nworkspace\u002Fprogress_tracking\u002FDaily\u002FYYYY-MM-DD.txt\n```\n\n---\n\n## 💛 A Note on Why We Built This — and How We Hope You'll Use It\n\n> **Our hope is simple: science stays pure, and the human stays in the loop.**\n\nWe 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**.\n\nIf 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.\n\n**A gentle thought we'd love every user to share with us:**\n\nThe 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.\n\nSo we'd kindly ask that this project not be used to fabricate results, to generate \"research\" with no human in the loop, or to shortcut the parts of science that depend on a human actually understanding what they're doing. That isn't the future we want to help build — and we don't think it's the one most of you want either.\n\n> **Science should stay pure. The agent can run the experiments — but the ideas, the interpretation, and the responsibility belong to the human.**\n>\n> **学术应当保持纯粹。** Agent 可以替你跑实验，但 idea、判断与责任，请留给人来承担。我们真心希望每一位使用者都能 **human in the loop 地去思考**，把这个工具省下来的时间，投入到真正属于你自己的研究方向里。\n>\n> **科学は純粋であるべきです。** Agent は実験を走らせることができますが、アイデア・解釈・責任は、どうか人間の手に残してください。\n>\n> **과학은 순수해야 합니다.** Agent는 실험을 대신 실행해 줄 수 있지만, 아이디어와 해석, 그리고 책임은 부디 사람의 몫으로 남겨주세요.\n\nWe trust the people who pick up this tool to take that seriously — and we built it because we believe most of you already do. Thank you for being one of them. 💛\n\n---\n\n## The Core Idea\n\nYou design the experiment. The agent handles the repetitive loop.\n\n**Deep Researcher Agent**:\n\n1. **Thinks** — Reads your project brief, analyzes previous results, plans the next experiment\n2. **Executes** — Modifies code\u002Fconfigs, runs a dry-run, launches training on GPU\n3. **Monitors** — Watches training at **zero LLM cost** (just process checks + log reads)\n4. **Reflects** — Parses results, compares with baselines, decides what to try next\n5. **Repeats** — 24\u002F7, without human intervention\n\n```\nYou sleep 8 hours     → Agent runs 3 experiment cycles\nYou go on vacation    → Agent explores 50+ hyperparameter configs  \nYou write your paper  → Agent already has the results table ready\n```\n\n---\n\n## Battle-Tested Results\n\n> Not benchmarks. Real results from months of 24\u002F7 autonomous operation across research projects.\n\n| Metric | Result |\n|--------|--------|\n| Autonomous experiment cycles completed | 500+ |\n| Best single-project improvement | 52% over baseline (across 200+ auto-run experiments) |\n| Concurrent projects managed | 4 projects across 4 GPU servers |\n| Longest continuous autonomous operation | 30+ days without human intervention |\n| Average LLM cost per 24h cycle | ~$0.08 |\n\n---\n\n## Key Innovation: Zero-Cost Monitoring\n\nThe #1 concern with running LLM agents 24\u002F7: **cost**.\n\nMost agent frameworks call the LLM every few minutes to \"check progress\". That's $50+\u002Fday.\n\nExperiment Agent **sleeps** during training — zero API calls. It only wakes the LLM when training finishes.\n\n```\n                    LLM Active              Zero Cost              LLM Active\n                  ┌────────────┐    ┌─────────────────────┐    ┌────────────┐\n                  │   THINK    │    │   TRAIN & MONITOR    │    │  REFLECT   │\n                  │ (5-10 min) │    │   (hours\u002Fdays)       │    │ (5-10 min) │\n                  │            │    │                      │    │            │\n                  │ • Analyze  │    │ • kill -0 $PID       │    │ • Parse    │\n                  │ • Plan     │    │ • nvidia-smi         │    │   logs     │\n                  │ • Code     │    │ • tail log           │    │ • Compare  │\n                  │            │    │                      │    │ • Decide   │\n                  │  ~$0.05    │    │      $0.00           │    │  ~$0.03    │\n                  └────────────┘    └─────────────────────┘    └────────────┘\n```\n\n**24-hour cycle with 8 hours of training: ~$0.08 in LLM calls.**\n\n---\n\n## Architecture\n\n### The THINK → EXECUTE → REFLECT Loop\n\n```\n┌──────────────────────────────────────────────────────┐\n│  ┌──────────┐    ┌──────────┐    ┌──────────┐       │\n│  │  THINK   │───→│ EXECUTE  │───→│ REFLECT  │──┐    │\n│  │          │    │          │    │          │  │    │\n│  │ Analyze  │    │ Dry-run  │    │ Evaluate │  │    │\n│  │ Plan     │    │ Launch   │    │ Compare  │  │    │\n│  │ Decide   │    │ Monitor  │    │ Update   │  │    │\n│  └──────────┘    └──────────┘    └──────────┘  │    │\n│       ↑                                         │    │\n│       └─────────────────────────────────────────┘    │\n│                    ↻ 24\u002F7 Loop                       │\n└──────────────────────────────────────────────────────┘\n```\n\n### Leader-Worker Agent System\n\nOnly ONE worker runs at a time. Others idle at zero cost.\n\n```\n              ┌───────────────┐\n              │    Leader     │  Persistent conversation\n              │   (Planner)   │  within each cycle\n              └───┬───┬───┬───┘\n                  │   │   │\n          ┌───────┘   │   └───────┐\n          ↓           ↓           ↓\n    ┌──────────┐ ┌──────────┐ ┌──────────┐\n    │   Idea   │ │   Code   │ │ Writing  │\n    │  Agent   │ │  Agent   │ │  Agent   │\n    │ (4 tools)│ │ (5 tools)│ │ (3 tools)│\n    └──────────┘ └──────────┘ └──────────┘\n```\n\n### Two-Tier Memory (Constant Size Forever)\n\n```\n┌─────────────────────────────────────────┐\n│ Tier 1: PROJECT_BRIEF.md               │\n│ • Frozen project reference              │\n│ • Max 3,000 chars                       │\n├─────────────────────────────────────────┤\n│ Tier 2: MEMORY_LOG.md                   │\n│ • Key Results (auto-compact at 1,200ch) │\n│ • Recent Decisions (rolling last 15)    │\n│ • Max 2,000 chars                       │\n├─────────────────────────────────────────┤\n│ Total: ~5K chars \u002F ~1,500 tokens        │\n│ SAME whether running 1 day or 6 months  │\n└─────────────────────────────────────────┘\n```\n\n### Cost Control Strategies (8 Total)\n\n| # | Strategy | Savings |\n|---|----------|---------|\n| 1 | Zero-LLM monitoring during training | 90%+ of runtime is free |\n| 2 | Two-Tier memory with auto-compaction | Fixed context window |\n| 3 | Leader conversation persists within cycle | Brief sent once per cycle |\n| 4 | Anthropic prompt caching | System\u002Ftools cached |\n| 5 | Per-agent minimal tool sets (3-5 tools) | Less schema overhead |\n| 6 | Slim system prompts | Fewer input tokens |\n| 7 | State trimmed before sending | No bloat |\n| 8 | Single worker at a time | No parallel LLM costs |\n\n---\n\n\u003Ca name=\"quickstart\">\u003C\u002Fa>\n## Getting Started (Step by Step)\n\n> **Complete beginner?** Follow every step below. You'll go from zero to a running experiment agent in ~10 minutes.\n>\n> **Prefer AI-guided setup?** Open [`AI_GUIDE.md`](AI_GUIDE.md) in Claude Code, ChatGPT, or Codex — the AI will walk you through everything interactively.\n\n### Step 0: What You Need\n\n| Requirement | Why | How to Check |\n|-------------|-----|-------------|\n| Python 3.10+ | Runtime | `python3 --version` |\n| [Claude Code](https:\u002F\u002Fclaude.ai\u002Fclaude-code) | The AI backbone | `claude --version` |\n| 1+ NVIDIA GPU | For training | `nvidia-smi` |\n| Anthropic API key | LLM calls | `echo $ANTHROPIC_API_KEY` |\n\nDon't have an API key? Get one at [console.anthropic.com](https:\u002F\u002Fconsole.anthropic.com\u002F) and set it:\n```bash\nexport ANTHROPIC_API_KEY=\"sk-ant-xxxxx\"\n# Add to ~\u002F.bashrc or ~\u002F.zshrc to make it permanent\n```\n\n### Step 1: Install\n\n```bash\n# Clone the repo\ngit clone https:\u002F\u002Fgithub.com\u002FXiangyue-Zhang\u002Fauto-deep-researcher-24x7.git\ncd auto-deep-researcher-24x7\n\n# Install Python dependencies\npip install -r requirements.txt\n\n# Install 8 Claude slash commands and 8 Codex local skills\npython install.py\n\n# Verify everything works\npython -m core.loop --check\n```\n\nYou should see:\n```\n  Deep Researcher Agent — Installer\n  ========================================\n\n    ✓ Claude \u002Fauto-experiment\n    ✓ Claude \u002Fexperiment-status\n    ✓ Claude \u002Fgpu-monitor\n    ✓ Claude \u002Fdaily-papers\n    ✓ Claude \u002Fpaper-analyze\n    ✓ Claude \u002Fconf-search\n    ✓ Claude \u002Fprogress-report\n    ✓ Claude \u002Fobsidian-sync\n    ✓ Codex $auto-experiment\n    ...\n\n  Done! 8 Claude commands and 8 Codex skills installed.\n```\n\n### Step 2: Create Your First Project\n\nLet's say you want to train a ResNet on CIFAR-100. Create a project folder with a `PROJECT_BRIEF.md`:\n\n```bash\nmkdir ~\u002Fmy-first-experiment\ncd ~\u002Fmy-first-experiment\n```\n\nNow write the brief — **this is the most important file**. It tells the agent what you want:\n\n```bash\ncat > PROJECT_BRIEF.md \u003C\u003C 'EOF'\n# Goal\nTrain a ResNet-50 on CIFAR-100 to reach 80%+ test accuracy.\n\n# Codebase\nThe agent should create the training code from scratch using PyTorch.\n- Use torchvision for the dataset (auto-download)\n- Save checkpoints to .\u002Fcheckpoints\u002F\n- Log metrics to .\u002Flogs\u002F\n\n# What to Try\n- Start with a basic ResNet-50, lr=0.1, SGD, 100 epochs\n- If accuracy \u003C 75%, try cosine annealing + warmup\n- If accuracy 75-80%, try adding mixup or cutout augmentation\n- If accuracy > 80%, the goal is reached\n\n# Constraints\n- Use GPU 0 only\n- Max 100 epochs per run\n- Batch size 128\n\n# Current Status\nNo experiments run yet. Starting from scratch.\nEOF\n```\n\n**Tips for writing a good brief:**\n- Be specific about the goal (metric + target value)\n- Tell it where the code\u002Fdata is (or say \"create from scratch\")\n- List constraints (which GPU, max epochs, etc.)\n- Give it a decision tree (\"if X, try Y\") — this guides the agent like you would guide a junior student\n\n### Step 3: Launch the Agent\n\n**Option A: Through Claude Code (recommended)**\n\nOpen Claude Code and type:\n```\n\u002Fauto-experiment --project ~\u002Fmy-first-experiment --gpu 0\n```\n\n**Option B: Through Python directly**\n\n```bash\npython -m core.loop \\\n  --project ~\u002Fmy-first-experiment \\\n  --gpu 0 \\\n  --max-cycles 5    # Stop after 5 cycles (remove for unlimited)\n```\n\n### Step 4: Watch What Happens\n\nThe agent will now do everything automatically. Here's what each cycle looks like:\n\n```\n=== Cycle 1 ===\n\n[THINK] Reading PROJECT_BRIEF.md...\n        Goal: ResNet-50 on CIFAR-100, target 80%+\n        No previous experiments. Starting with baseline.\n        Plan: Basic ResNet-50, lr=0.1, SGD with momentum, 100 epochs.\n\n[EXECUTE] Creating train.py...\n          Creating config.yaml...\n          Running dry-run (2 steps)... ✓ No errors\n          Launching training: nohup python train.py --config config.yaml\n          PID: 12345, Log: logs\u002Fexp001.log\n\n[MONITOR] Training in progress... (zero LLM cost)\n          15:00 — PID alive, GPU 98%, Epoch 12\u002F100, loss=2.34\n          15:15 — PID alive, GPU 97%, Epoch 25\u002F100, loss=1.87\n          15:30 — PID alive, GPU 98%, Epoch 38\u002F100, loss=1.54\n          ...\n          17:45 — PID alive, GPU 97%, Epoch 100\u002F100, loss=0.82\n          18:00 — PID terminated. Training complete.\n\n[REFLECT] Parsing logs... test accuracy = 76.3%\n          Result: 76.3% — below 80% target\n          Brief says: \"If \u003C 75%, try cosine annealing\"\n          76.3% > 75%, so try augmentation instead.\n          Decision: Add mixup augmentation, keep lr=0.1 + cosine\n          Milestone logged: \"Exp001: ResNet-50 baseline, 76.3%\"\n\n=== Cycle 2 ===\n\n[THINK] Best so far: 76.3% (Exp001)\n        Plan: Add mixup (alpha=0.2) + cosine annealing schedule\n        ...\n```\n\n### Step 5: Check Progress Anytime\n\nWhile the agent is running, you can check on it:\n\n```bash\n# In Claude Code:\n\u002Fexperiment-status --project ~\u002Fmy-first-experiment\n\n# Or check GPU usage:\n\u002Fgpu-monitor\n```\n\nYou'll see something like:\n```\n# Experiment Status — my-first-experiment\n\n## Goal\nResNet-50 on CIFAR-100 → 80%+ accuracy\n\n## Progress\n- Cycles completed: 3\n- Current best: 79.1% (Exp003: ResNet-50 + mixup + cosine)\n- Status: TRAINING (PID 12389, GPU 0, running 1.5h)\n\n## Key Results\n[04-07 15:00] Exp001: ResNet-50 baseline, 76.3%\n[04-07 18:30] Exp002: + cosine annealing, 77.8%\n[04-07 22:00] Exp003: + mixup α=0.2, 79.1%   ← best\n\n## Current Training\nEpoch 67\u002F100 | loss: 0.71 | acc: 79.4%\n```\n\n### Step 5.5: Save Progress to Obsidian or Local Text\n\nEnable progress export in your project `config.yaml`:\n\n```yaml\nobsidian:\n  enabled: true\n  vault_path: \"~\u002FDocuments\u002FMyObsidianVault\"   # Optional\n  project_subdir: \"DeepResearcher\u002F{project_name}\"\n  auto_append_daily: true\n```\n\nIf `vault_path` is set, the agent writes:\n\n```text\nDeepResearcher\u002Fmy-first-experiment\u002FDashboard.md\nDeepResearcher\u002Fmy-first-experiment\u002FDaily\u002FYYYY-MM-DD.md\n```\n\nIf `vault_path` is empty, it falls back to project-local files:\n\n```text\nworkspace\u002Fprogress_tracking\u002FDashboard.txt\nworkspace\u002Fprogress_tracking\u002FDaily\u002FYYYY-MM-DD.txt\n```\n\nManual refresh:\n\n```bash\n\u002Fobsidian-sync --project ~\u002Fmy-first-experiment\n# or\npython -m core.obsidian --project ~\u002Fmy-first-experiment\n```\n\n### Step 6: Intervene If Needed\n\nWant to change direction? Three ways, from anywhere:\n\n```bash\n# Way 1: Drop a directive file (agent reads it next cycle)\necho \"Stop trying ResNet. Switch to ViT-B\u002F16, start with lr=1e-3\" \\\n  > ~\u002Fmy-first-experiment\u002Fworkspace\u002FHUMAN_DIRECTIVE.md\n\n# Way 2: Command-line flag\npython -m core.loop --project ~\u002Fmy-first-experiment \\\n  --directive \"Try label smoothing 0.1\"\n\n# Way 3: Edit memory directly (for permanent changes)\nvim ~\u002Fmy-first-experiment\u002Fworkspace\u002FMEMORY_LOG.md\n```\n\n## Human-in-the-Loop Playbook\n\nUse the agent as an operator, not a replacement researcher.\n\n```text\nHuman decides:\n- goal\n- constraints\n- forbidden directions\n- when to pivot\n\nAgent executes:\n- code edits\n- runs\n- monitoring\n- summaries\n```\n\nWrite stable rules in `PROJECT_BRIEF.md`, and temporary steering in `HUMAN_DIRECTIVE.md`.\n\n```md\n# HUMAN_DIRECTIVE.md\n- Do not change the dataset.\n- Try label smoothing 0.1 before changing the backbone.\n- Stop this direction if gain stays below 0.3 for 3 runs.\n- Compare against the last trusted baseline, not just the latest run.\n```\n\nCase 1: Safer ablation\n\n```md\n- Only change augmentation.\n- Keep model, optimizer, and training budget fixed.\n- Report a clean comparison table after each run.\n```\n\nCase 2: Deliberate pivot\n\n```md\n- Current ResNet line is saturated.\n- Switch to ViT-B\u002F16 only if the last 3 runs plateau.\n- Before switching, write a short rationale.\n```\n\nCase 3: Suspicious result\n\n```md\n- Accuracy jumped unexpectedly.\n- Re-run with the same seed and one new seed.\n- Do not claim improvement until both runs reproduce.\n```\n\nRule of thumb: let the agent handle repetition, but keep direction, interpretation, and responsibility human.\n\n### Step 7: Mobile Monitoring with [Happy Coder](https:\u002F\u002Fgithub.com\u002Fslopus\u002Fhappy) (Optional)\n\nWant to check experiments from your phone? Install [Happy Coder](https:\u002F\u002Fhappy.engineering\u002F) ([iOS](https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Fhappy-codex-claude-code-app\u002Fid6748571505) \u002F [Android](https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.ex3ndr.happy)):\n\n```bash\n# Install CLI (one time)\nnpm install -g happy-coder\n\n# Start session through Happy instead of claude\nhappy\n\n# Inside the session, launch your experiment:\n\u002Fauto-experiment --project ~\u002Fmy-first-experiment --gpu 0\n```\n\nNow on your phone you can:\n- Get **push notifications** when experiments finish or the agent needs input\n- **Check results** while commuting\n- **Send directives** (\"try learning rate 1e-5\") from anywhere\n- **Switch between phone and desktop** seamlessly\n- All communication is **end-to-end encrypted**\n\n```\n┌──────────┐     encrypted      ┌──────────┐\n│  Desktop │ ◄──────────────► │  Phone   │\n│  Claude  │     relay          │  Happy   │\n│  Code    │                    │  Coder   │\n├──────────┤                    ├──────────┤\n│ Agent    │  ← push notify ──  │ \"Try     │\n│ running  │                    │  lr=1e-5\"│\n│ 24\u002F7     │  ── status ────►  │ ✓ Got it │\n└──────────┘                    └──────────┘\n```\n\n### What a Good PROJECT_BRIEF.md Looks Like\n\nThe brief is your main lever. Here are examples for different scenarios:\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Example: Fine-tuning a pretrained model\u003C\u002Fb>\u003C\u002Fsummary>\n\n```markdown\n# Goal\nFine-tune ViT-B\u002F16 (pretrained on ImageNet-21K) on Oxford Flowers-102.\nTarget: 95%+ test accuracy.\n\n# Codebase\n- Training script: finetune.py (already exists)\n- Config: configs\u002Fvit_flowers.yaml\n- Data: \u002Fdata\u002Fflowers102\u002F (already downloaded)\n- Pretrained weights: \u002Fmodels\u002Fvit-b16-21k.pth\n\n# What to Try\n1. First: freeze backbone, train classifier head only (10 epochs, lr=1e-2)\n2. Then: unfreeze all, fine-tune end-to-end (30 epochs, lr=1e-4)\n3. If stuck below 93%: try layer-wise lr decay (0.65)\n4. If above 94%: try test-time augmentation\n\n# Constraints\n- GPU 0, batch size 64\n- Save best checkpoint based on val accuracy\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Example: Hyperparameter search\u003C\u002Fb>\u003C\u002Fsummary>\n\n```markdown\n# Goal\nFind the best hyperparameters for our GAN on CelebA-HQ 256x256.\nTarget: FID \u003C 15.\n\n# Codebase\n- train_gan.py, configs\u002Fceleba_gan.yaml\n- Data: \u002Fdata\u002Fceleba_hq_256\u002F\n- Evaluation: eval_fid.py --real_dir \u002Fdata\u002Fceleba_hq_256\u002Fval\n\n# Search Space\n- Learning rate: [1e-4, 2e-4, 5e-4]\n- Beta1: [0.0, 0.5]\n- Discriminator steps per generator step: [1, 2, 5]\n- Spectral norm: [yes, no]\n\n# Strategy\nStart with lr=2e-4, beta1=0.0, d_steps=1, spectral_norm=yes (baseline).\nChange ONE variable at a time. Run each for 50K steps.\nAlways evaluate FID after training.\n\n# Constraints\n- GPU 0-1 (can use both)\n- Max 50K steps per run (~4 hours)\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Example: Debugging a training issue\u003C\u002Fb>\u003C\u002Fsummary>\n\n```markdown\n# Goal\nFigure out why our transformer model diverges after epoch 20.\nCurrently: loss explodes from 0.5 to NaN around epoch 20-25.\n\n# Codebase\n- train_transformer.py, model\u002Ftransformer.py\n- Config: configs\u002Fbase.yaml\n- Logs from failed runs: logs\u002Ffailed_run_001.log, logs\u002Ffailed_run_002.log\n\n# What to Investigate\n1. Check gradient norms — add gradient clipping (max_norm=1.0)\n2. Try lower learning rate (current: 1e-3, try: 1e-4, 5e-5)\n3. Check if it's a specific layer — add per-layer gradient logging\n4. Try warmup (1000 steps) if not already present\n5. Check data — are there any NaN\u002FInf in the dataset?\n\n# Constraints\n- GPU 0, run each test for 30 epochs (enough to see if it diverges)\n- Log gradient norms every 100 steps\n```\n\u003C\u002Fdetails>\n\n### FAQ\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Q: How much does it cost to run?\u003C\u002Fb>\u003C\u002Fsummary>\n\nAbout $0.08 per 24-hour cycle (if training takes 8 hours). The secret: zero LLM calls during training. You only pay for the THINK and REFLECT phases (~10 min each).\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Q: Can it modify my existing code?\u003C\u002Fb>\u003C\u002Fsummary>\n\nYes. The Code Agent can read, write, and modify any file in your project. It will make changes, dry-run to verify, then launch training. It won't touch protected files (PROJECT_BRIEF.md, MEMORY_LOG.md).\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Q: What if the agent goes in a wrong direction?\u003C\u002Fb>\u003C\u002Fsummary>\n\nDrop a directive: `echo \"Stop. Go back to the ResNet approach\" > workspace\u002FHUMAN_DIRECTIVE.md`. The agent reads it next cycle with highest priority.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Q: Can I run multiple projects at the same time?\u003C\u002Fb>\u003C\u002Fsummary>\n\nYes. Launch separate agent instances in different terminals\u002Ftmux sessions, each pointing to a different project and GPU.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Q: What happens if training crashes?\u003C\u002Fb>\u003C\u002Fsummary>\n\nThe monitor detects the process died, captures the error log, and passes it to REFLECT. The agent will analyze the crash, fix the code, and retry.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Q: Can I use it with PyTorch \u002F TensorFlow \u002F JAX?\u003C\u002Fb>\u003C\u002Fsummary>\n\nYes. The agent works with any training framework. It just launches shell commands and reads log files — it doesn't care what framework produces them.\n\u003C\u002Fdetails>\n\n---\n\n## One-Click Install (Claude + Codex)\n\nAll features are packaged as Claude Code slash commands and Codex local skills.\n**One command to install:**\n\n```bash\npython install.py\n```\n\nAfter installation, you get:\n- **8 slash commands** in Claude Code\n- **8 local skills** in Codex (restart Codex after install)\n\n### Core Skills\n\n| Command | What It Does |\n|---------|-------------|\n| `\u002Fauto-experiment` | Launch the 24\u002F7 autonomous THINK→EXECUTE→REFLECT experiment loop |\n| `\u002Fexperiment-status` | Check running experiments: progress, metrics, cycle count, GPU usage |\n| `\u002Fgpu-monitor` | Quick GPU status: free\u002Fbusy, memory, utilization, running processes |\n\n### Research Skills\n\n| Command | What It Does |\n|---------|-------------|\n| `\u002Fdaily-papers` | Daily arXiv recommendations with automatic dedup |\n| `\u002Fpaper-analyze 2312.12345` | Deep paper analysis + extract real figures from arXiv source |\n| `\u002Fconf-search --venue CVPR2025 --query \"motion\"` | Search CVPR\u002FNeurIPS\u002FICML\u002FICLR\u002FAAAI\u002FECCV... |\n| `\u002Fprogress-report` | Generate structured progress report with metrics |\n| `\u002Fobsidian-sync` | Refresh Obsidian or local progress notes |\n\n### Usage Example\n\n```bash\n# Step 1: Install skills (one time)\npython install.py\n\n# Step 2a: In Claude Code, launch an experiment loop\n\u002Fauto-experiment --project \u002Fpath\u002Fto\u002Fmy_project --gpu 0\n\n# Step 2b: In Codex, use the matching local skill\n$auto-experiment\n\n# Step 3: Check how it's going\n\u002Fexperiment-status --project \u002Fpath\u002Fto\u002Fmy_project\n\n# Step 4: Check GPU resources\n\u002Fgpu-monitor\n\n# Step 5: Read papers while the agent trains for you\n\u002Fdaily-papers --topics \"vision transformer, image classification\"\n```\n\n### Uninstall\n\n```bash\npython install.py --uninstall\n```\n\n---\n\n## Supported LLM Providers\n\nWorks with **Anthropic-compatible and OpenAI-compatible APIs** out of the box,\nand can also run on a **flat-rate subscription** instead of per-token billing\nvia the local CLIs.\n\n| Tier | Anthropic (Claude) | OpenAI (Codex\u002FGPT) | Best For |\n|------|-------------------|-------------------|----------|\n| **Fast** | `claude-sonnet-4-6` | `codex-5.3` | Daily experiments, iteration |\n| **Strongest** | `claude-opus-4-6` | `gpt-5.4` | Complex reasoning, architecture decisions |\n\n### Authentication mode: API key vs. subscription\n\n| Mode | `provider` value | Billing | Requires | Tool-use support |\n|------|------------------|---------|----------|------------------|\n| API — Anthropic-compatible | `anthropic` | Per-token, via `ANTHROPIC_API_KEY` or custom env | `pip install anthropic` | ✅ Full |\n| API — OpenAI-compatible | `openai` | Per-token, via `OPENAI_API_KEY` or custom env | `pip install openai` | ✅ Full |\n| **Subscription — Claude** | `claude_cli` | Flat-rate, uses your Claude Code \u002F Pro \u002F Max plan | `claude` CLI installed and logged in | ✅ Full |\n| **Subscription — ChatGPT** | `codex_cli` | Flat-rate, uses your ChatGPT Plus \u002F Pro plan | `codex` CLI installed and logged in | ⚠️ Leader only |\n\nTool execution is driven by a text-based `\u003Ctool_call>` protocol injected\ninto the worker's system prompt. All three \"Full\" providers can be forced\ninto pure text-oracle mode so they honor the protocol (for `claude_cli`\nthe framework passes `--tools \"\"` to disable built-in CLI tools). The\n`codex` CLI currently offers no equivalent flag — its internal agentic\nloop will bypass the protocol and the framework cannot recover PIDs from\nexperiments it launches. Use `codex_cli` only for the leader\u002Fthink path\nwhere no tools are needed.\n\nSwitch provider in `config.yaml`:\n```yaml\nagent:\n  # Pay-per-token (needs API key):\n  provider: \"anthropic\"           # or \"openai\"\n  model: \"claude-sonnet-4-6\"      # or \"codex-5.3\"\n  base_url: \"\"                    # optional compatible endpoint override\n  api_key_env: \"\"                 # optional custom key env var name\n  auth_token_env: \"\"              # optional custom bearer token env var\n\n  # Flat-rate subscription (needs CLI login instead of API key):\n  # provider: \"claude_cli\"        # or \"codex_cli\"\n```\n\nCompatible API examples\n(illustrative only in this repo — these endpoint\u002Fmodel combinations have not\nbeen live-smoke-tested here):\n```yaml\n# Qwen \u002F DashScope\nagent:\n  provider: \"openai\"\n  model: \"qwen-plus\"\n  base_url: \"https:\u002F\u002Fdashscope.aliyuncs.com\u002Fcompatible-mode\u002Fv1\"\n  api_key_env: \"DASHSCOPE_API_KEY\"\n\n# GLM \u002F BigModel\nagent:\n  provider: \"openai\"\n  model: \"glm-4.5\"\n  base_url: \"https:\u002F\u002Fopen.bigmodel.cn\u002Fapi\u002Fpaas\u002Fv4\"\n  api_key_env: \"ZHIPUAI_API_KEY\"\n\n# MiniMax via OpenAI-compatible endpoint\nagent:\n  provider: \"openai\"\n  model: \"MiniMax-M1\"\n  base_url: \"https:\u002F\u002Fapi.minimaxi.com\u002Fv1\"\n  api_key_env: \"MINIMAX_API_KEY\"\n```\n\nOr set via environment (API-key modes only):\n```bash\n# For Anthropic-compatible provider:\nexport ANTHROPIC_API_KEY=\"sk-ant-xxxxx\"\nexport ANTHROPIC_BASE_URL=\"https:\u002F\u002Fyour-anthropic-compatible-endpoint\"\n\n# For OpenAI-compatible provider:\nexport OPENAI_API_KEY=\"sk-xxxxx\"\nexport OPENAI_BASE_URL=\"https:\u002F\u002Fyour-openai-compatible-endpoint\u002Fv1\"\n\n# For subscription providers (claude_cli \u002F codex_cli): no env var — just\n# install the CLI once and run `claude` or `codex login` to sign in.\n```\n\n---\n\n## Configuration\n\nBy default, everything runs locally inside `project.workspace`. If you want\nto keep the controller on your laptop but run code, training, logs, and GPU\nchecks on one remote server, enable the optional SSH execution mode:\n\n```yaml\nexecution:\n  mode: \"ssh\"\n  ssh_host: \"user@your-server\"\n  remote_workspace: \"\u002Fhome\u002Fuser\u002Fmy_project\u002Fworkspace\"\n  remote_python: \"python3\"\n  ssh_args: []                    # optional, e.g. [\"-p\", \"2222\"]\n```\n\nIn SSH mode, controller state still stays local:\n- `PROJECT_BRIEF.md`\n- `workspace\u002FMEMORY_LOG.md`\n- `workspace\u002Fstate.json`\n- `workspace\u002FHUMAN_DIRECTIVE.md`\n- local progress \u002F Obsidian exports\n\nThe remote host only handles the tool-visible workspace, training process,\ntraining logs, PID checks, and `nvidia-smi`.\n\n```yaml\n# config.yaml\nproject:\n  name: \"my-research\"\n  brief: \"PROJECT_BRIEF.md\"\n\nexecution:\n  mode: \"local\"                  # or \"ssh\"\n  ssh_host: \"\"                   # required in ssh mode\n  remote_workspace: \"\"           # required in ssh mode\n  remote_python: \"python3\"\n  ssh_args: []\n\nagent:\n  provider: \"anthropic\"           # \"anthropic\" or \"openai\"\n  model: \"claude-sonnet-4-6\"      # See model table above\n  base_url: \"\"                    # Optional compatible API endpoint override\n  api_key_env: \"\"                 # Optional custom API key env var\n  auth_token_env: \"\"              # Optional custom bearer token env var\n  max_cycles: -1                  # -1 = run forever\n  max_steps_per_cycle: 3          # Max worker dispatches per cycle\n  cooldown_interval: 300          # Smart cooldown polling (seconds)\n\nmemory:\n  brief_max_chars: 3000           # Tier 1 cap\n  log_max_chars: 2000             # Tier 2 cap\n  milestone_max_chars: 1200       # Key results cap\n  max_recent_entries: 15          # Rolling decision count\n\ngpu:\n  auto_detect: true\n  reserve_last: true              # Reserve last GPU for keep-alive\n\nmonitor:\n  poll_interval: 900              # Check every 15 min during training\n  zero_llm: true                  # No LLM during monitoring\n\nexperiment:\n  mandatory_dry_run: true         # Always dry-run before real training\n  max_parallel: 1                 # Concurrent experiments\n```\n\n---\n\n## How It Compares\n\n| | Deep Researcher Agent | [Claude Scholar](https:\u002F\u002Fgithub.com\u002FGalaxy-Dawn\u002Fclaude-scholar) | [AI Scientist](https:\u002F\u002Fgithub.com\u002FSakanaAI\u002FAI-Scientist) | [OpenHands](https:\u002F\u002Fgithub.com\u002FAll-Hands-AI\u002FOpenHands) | [SWE-Agent](https:\u002F\u002Fgithub.com\u002Fprinceton-nlp\u002FSWE-agent) |\n|--|:--:|:--:|:--:|:--:|:--:|\n| **Runs experiments autonomously** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **Zero-cost training monitoring** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **GPU management** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **24\u002F7 continuous operation** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **Constant-size memory** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| Paper writing | Basic | ✅ | ✅ | ❌ | ❌ |\n| Knowledge management | Basic | ✅ | ❌ | ❌ | ❌ |\n| General coding | ❌ | ❌ | ❌ | ✅ | ✅ |\n\n**Deep Researcher Agent is the only framework built for _running_ deep learning research, not just writing about it.**\n\n---\n\n## Project Structure\n\n```\nauto-deep-researcher-24x7\u002F\n├── core\u002F                    # Autonomous experiment loop engine\n│   ├── loop.py              # THINK → EXECUTE → REFLECT cycle\n│   ├── execution.py         # Local \u002F SSH execution backends\n│   ├── memory.py            # Two-Tier constant-size memory\n│   ├── monitor.py           # Zero-LLM experiment monitoring\n│   ├── agents.py            # Leader-Worker agent dispatch\n│   └── tools.py             # Minimal per-agent tool registry\n├── skills\u002F                  # Source skills for Claude slash commands + Codex local skills\n│   ├── auto-experiment\u002F     # 24\u002F7 autonomous experiment loop\n│   ├── experiment-status\u002F   # Check experiment progress\n│   ├── gpu-monitor\u002F         # GPU status & availability\n│   ├── daily-papers\u002F        # Daily arXiv recommendations\n│   ├── paper-analyze\u002F       # Deep paper analysis + figure extraction\n│   ├── conf-search\u002F         # Conference paper search\n│   └── progress-report\u002F     # Progress report generation\n├── agents\u002F                  # Agent prompt definitions\n│   ├── leader.md            # Central decision-maker\n│   ├── idea_agent.md        # Literature & hypothesis\n│   ├── code_agent.md        # Experiment execution\n│   └── writing_agent.md     # Reporting & writing\n├── gpu\u002F                     # GPU utilities\n│   ├── detect.py            # Detection & monitoring\n│   └── keeper.py            # Cloud instance keep-alive\n├── examples\u002F                # Ready-to-run demos\n├── docs\u002F                    # Docs + translations (CN\u002FJP)\n├── install.py               # Claude + Codex skill installer\n├── config.yaml              # Default configuration\n└── requirements.txt         # Dependencies\n```\n\n---\n\n## Contributing\n\nAreas where we'd love help:\n- More cloud GPU platforms (AWS, GCP, Lambda Labs, RunPod)\n- Experiment tracker integration (W&B, MLflow, TensorBoard)\n- New research skills (visualization, result comparison)\n- Metric extraction for more training frameworks\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n---\n\n## Citation\n\nIf you find this work useful, please cite our paper:\n\n```bibtex\n@article{zhang2026autodeepresearcher,\n  title={Deep Researcher Agent: Autonomous Deep Learning Experiment Framework},\n  author={Zhang, Xiangyue},\n  journal={arXiv preprint arXiv:2604.05854},\n  year={2026},\n  url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.05854}\n}\n```\n\nOr cite the software release:\n\n```bibtex\n@software{auto_deep_researcher_24x7,\n  title={Deep Researcher Agent: Autonomous Deep Learning Experiment Framework},\n  author={Xiangyue Zhang},\n  year={2026},\n  url={https:\u002F\u002Fgithub.com\u002FXiangyue-Zhang\u002Fauto-deep-researcher-24x7}\n}\n```\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Xiangyue-Zhang\u002Fauto-deep-researcher-24x7&type=Date&v=20260408-1)](https:\u002F\u002Fwww.star-history.com\u002F#Xiangyue-Zhang\u002Fauto-deep-researcher-24x7&Date)\n\n## License\n\nApache 2.0 — see [LICENSE](LICENSE).\n\n---\n\n\u003Cp align=\"center\">\n  \u003Cstrong>\u003Ci>\"Experiments run through the night. Results arrive at dawn.\"\u003C\u002Fi>\u003C\u002Fstrong>\n\u003C\u002Fp>\n","Deep Researcher Agent 是一个能够24\u002F7自动运行深度学习实验的AI代理，让你在休息时也能持续进行研究。其核心功能包括零成本监控、Leader-Worker架构以及恒定内存大小，确保了实验的高效与稳定执行。该项目采用Python语言编写，并支持PyTorch等主流深度学习框架。特别适合需要长时间运行大量实验以优化模型性能的研究者和开发者使用，在减少人工干预的同时极大提高了工作效率。此外，通过集成Claude Code及Codex CLI工具兼容性设置，进一步增强了其实用性和灵活性。",2,"2026-06-11 02:39:37","CREATED_QUERY"]