Commit Graph

256 Commits

Author SHA1 Message Date
TPTBusiness 8b7eb87546 feat: Add parallel run system with API key distribution
- Add predix_parallel.py: Run multiple factor experiments concurrently
  * python predix_parallel.py --runs 5 --api-keys 2 -m openrouter
  * Round-robin API key distribution across available keys
  * Rich live dashboard with per-run status, elapsed time, exit codes
  * Graceful shutdown (Ctrl+C kills all children cleanly)

- Add --run-id parameter to predix.py for isolated single runs
  * Separate log files: fin_quant_run{N}.log
  * Separate results: results/runs/run{N}/
  * Separate workspace: RD-Agent_workspace_run{N}/
  * Separate databases per run

- Modify CoSTEER and FactorRunner for PARALLEL_RUN_ID isolation
  * _save_intermediate_results uses run-specific directories
  * _save_result_to_database and _write_run_log isolated per run
  * _ensure_results_dirs creates run-specific paths

- Reduce max_loop from 10 to 3 for faster iterations
- Add docs/parallel_runs.md with full documentation

Tests: 103 passed
2026-04-04 09:39:12 +02:00
TPTBusiness 5b98b4d889 feat: Fix 1min data integration and centralize all prompts
- Fix daily/1min contradiction in factor_experiment_loader prompts
- Rename daily_pv.h5 to intraday_pv.h5 (generate.py, utils.py, README)
- Fix FactorDatetimeDailyEvaluator to accept 1min bars as correct
- Add _write_run_log() to log every factor attempt to results/logs/
- Add _ensure_results_dirs() to create all result directories
- Extract all 44 prompt YAML files to prompts/ centralized directory
- Add prompts/INDEX.md for navigation

Tests: 93 passed
2026-04-04 08:20:58 +02:00
TPTBusiness 2136741eaa feat: Full system integration - RL + Protections + Backtesting + CLI
Connect all Predix components into unified trading system:

INTEGRATION (ALL 295 TESTS PASS):
- RL Trading connected with Protection Manager
- RL Trading connected with Backtesting Engine
- CLI command 'rdagent rl_trading' added (train/backtest/live modes)
- Graceful fallback for users without stable-baselines3

OPEN SOURCE COMPATIBILITY:
- System works WITHOUT stable-baselines3 (momentum fallback)
- System works WITHOUT local models/prompts (uses standard)
- Clear warning messages when optional deps missing
- GitHub users get FULLY WORKING system

CLOSED SOURCE PROTECTION:
- models/local/, prompts/local/, .env stay local only
- .gitignore properly configured
- Our alpha (best models/prompts) remains private

DOCUMENTATION:
- QWEN.md: Open/closed source strategy
- QWEN.md: Development guidelines for AI assistant
- QWEN.md: Open source compatibility principle
- README.md: RL Trading CLI commands and examples
- requirements/rl.txt: Optional RL dependencies

Modified files:
- rdagent/app/cli.py: Added rl_trading command
- rdagent/components/backtesting/backtest_engine.py: RL backtest support
- rdagent/components/coder/rl/costeer.py: Protection Manager integration
- rdagent/components/coder/rl/__init__.py: Conditional imports + fallback
- rdagent/components/coder/rl/fallback.py: NEW - Simple momentum fallback
- requirements.txt: Optional RL deps commented
- requirements/rl.txt: NEW - Full RL dependencies
- test/integration/test_all_features.py: 7 new integration tests
- QWEN.md: Open source strategy + development guidelines
- README.md: RL Trading documentation

295 tests pass: 67 integration + 89 RL + 139 backtesting
2026-04-03 13:53:32 +02:00
TPTBusiness 8457aba0e5 feat: Add RL Trading Agent system with 99 tests
Implement Reinforcement Learning trading system inspired by FinRL concepts
(100% original code, NOT copied from FinRL MIT project):

RL ENVIRONMENT:
- TradingEnv: Gymnasium-compatible environment
- State: price history + indicators + portfolio state
- Action: continuous position [-1, 1] (short to long)
- Reward: return - transaction costs - drawdown penalty

RL AGENT:
- RLTradingAgent: Wrapper for Stable Baselines3
- Supports PPO (stable), A2C (fast), SAC (continuous)
- Methods: create_model(), train(), predict(), save(), load(), evaluate()

COSTEER (fills TODO at costeer.py:112):
- RLCosteer: RL-based trading controller
- Risk-limit enforcement (15% drawdown stops trading)
- Position scaling based on risk appetite
- Trade history tracking

TECHNICAL INDICATORS:
- RSI, MACD, Bollinger Bands, CCI, ATR
- prepare_features() helper for easy integration

TESTS (99 total, ALL PASS):
- 26 env tests
- 16 agent tests
- 19 costeer tests
- 18 indicator tests
- 10 integration tests

Documentation:
- Update QWEN.md with RL system architecture
2026-04-03 13:26:10 +02:00
TPTBusiness 4a34c60a57 fix: Add Bandit security scanning and fix critical vulnerabilities
- Add Bandit security scanner to requirements and pre-commit hooks
- Fix CWE-22 path traversal in tarfile/zipfile extraction (3 files)
  * Add _safe_extract() validation in submit.py, env.py, kaggle_crawler.py
  * Prevents malicious archives from writing outside target directory
- Fix MD5 hashlib calls with usedforsecurity=False flag (2 files)
  * submission_format_test.txt files for checksum validation
- Configure .bandit.yml for automated security scanning
  * Skip known false positives: B602 (subprocess), B701 (Jinja2)
- Add security runbook documentation in docs/security/
- Add pre-commit hook scripts for automated Bandit scanning

All 106 backtesting and security tests pass.
Security issues resolved: B201, B202, B324 (9 total fixes)
2026-04-03 11:55:05 +02:00
TPTBusiness 92b2f3dc8e fix: Remove API key presence detection from logging
- Replace conditional '✓ Key set' / '✗ No key' with constant 'API key required'
- Prevents CodeQL clear-text-logging-sensitive-data alert
- API key status is no longer derived from provider.api_key value
- Still shows useful info: provider name, priority, masked endpoint

Fixes CodeQL alert #9: Clear-text logging of sensitive information
2026-04-02 23:06:57 +02:00
TPTBusiness df94769007 fix: Remove API key logging from eurusd_llm.py
- Mask API endpoint to prevent full URL exposure
- Change '✓' to '✓ Key set' for clearer status
- Add security comment explaining the fix
- Fixes GitHub Security Alert #7 (py/clear-text-logging-sensitive-data)

API keys are no longer logged, only their presence is indicated.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 22:00:53 +02:00
TPTBusiness 6c37c548e1 fix: Translate remaining German comment in eurusd_macro.py
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 20:22:23 +02:00
TPTBusiness 0331b002b2 docs: Translate all code comments to English
- Updated QWEN.md with English-only comment policy
- Translated all German comments in:
  * eurusd_regime.py
  * eurusd_llm.py
  * eurusd_reflection.py
  * eurusd_memory.py
  * eurusd_macro.py
  * eurusd_debate.py
  * predix_dashboard.py
- All comments, docstrings, and print statements now in English
- Ensures consistency with commit messages and documentation

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 20:21:59 +02:00
TPTBusiness c283cb7f23 docs: Remove 'Inspired by' comments and add comprehensive Acknowledgments
- Removed 'Inspiriert von' comments from all source files
- Added comprehensive Acknowledgments section to README.md
- Credits to:
  * Microsoft RD-Agent (MIT) - R&D framework foundation
  * TradingAgents (Apache 2.0) - Multi-agent patterns
  * ai-hedge-fund - Macro analysis and risk management concepts
- Clarified that all code is originally written and implemented independently
- Ensures license compliance (MIT, Apache 2.0 compatible)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 20:16:54 +02:00
TPTBusiness bc656e9b11 feat: Auto-start dashboard for fin_quant
Add automatic dashboard launch options for trading loop:

1. CLI integration (rdagent/app/cli.py)
   - --with-dashboard/-d flag for web dashboard
   - --cli-dashboard/-c flag for terminal UI
   - --dashboard-port for custom port configuration
   - Automatic background process spawning

2. Dashboard auto-start
   - Web dashboard launches in background thread
   - CLI dashboard opens in separate terminal window
   - Graceful startup with 2-second delay

3. Process management
   - Dashboard runs as daemon thread
   - Automatic cleanup on main process exit
   - Error handling for dashboard startup failures

4. Documentation
   - Updated help text with examples
   - Usage instructions in README
   - Dashboard URLs displayed on startup

Usage examples:
  rdagent fin_quant -d              # Web dashboard
  rdagent fin_quant -c              # CLI dashboard
  rdagent fin_quant -d -c           # Both dashboards
  rdagent fin_quant -d --port 5001  # Custom port
2026-04-02 19:17:03 +02:00
TPTBusiness bab2107786 feat: EURUSD Trading-Verbesserungen (Phase 2 & 3)
Neue Module für fortgeschrittenes Trading:

1. Bull vs Bear vs Neutral Debatte (eurusd_debate.py)
   - Multi-Perspektiven-Analyse für bessere Entscheidungen
   - Bull Agent: Argumentiert für LONG
   - Bear Agent: Argumentiert für SHORT
   - Neutral Agent: Argumentiert für WAIT
   - Research Manager: Bewertet Debatte und trifft finale Entscheidung
   - Decision-Logik: LONG wenn Bull > 70% und > Bear + 20

2. EURUSD Macro Agent (eurusd_macro.py)
   - Stanley Druckenmiller Stil für Makro-Trading
   - Analysiert Zinsdifferential (Fed vs EZB)
   - Wirtschaftswachstum (BIP, PMI, NFP)
   - Momentum (DXY Trend)
   - Sentiment (Risk-On/Off, COT Report)
   - Asymmetrische Risk-Reward-Analyse
   - Bei hoher Conviction + asymmetrischer Chance: große Position

3. Reflection System (eurusd_reflection.py)
   - Lernt aus vergangenen Trades kontinuierlich
   - Analysiert was richtig/falsch lief
   - Extrahiert Lessons Learned
   - Speichert im BM25 Memory für ähnliche Situationen
   - Aggregierte Insights für letzte N Trades

4. Korrelations-Adjustierung (in eurusd_risk.py erweitert)
   - Berechnet Korrelation mit anderen Forex-Positionen
   - GBPUSD: +0.75, USDCHF: -0.70, DXY: -0.85
   - Hohe Korrelation → Risk reduzieren (0.7x)
   - Negative Korrelation → natürlicher Hedge (1.1x)

Alle Module getestet und funktionsfähig.
2026-03-30 20:17:19 +02:00
TPTBusiness a9c5df0047 feat: EURUSD Trading-Verbesserungen implementiert (Phase 1)
Neue Module für quantitatives EURUSD-Trading:

1. Hurst Exponent Regime Detection (eurusd_regime.py)
   - Erkennt Marktregime: MEAN_REVERSION, NEUTRAL, TRENDING
   - R/S-Analyse für 1min EURUSD-Daten optimiert
   - Trading-Empfehlungen pro Regime

2. BM25 Memory-System (eurusd_memory.py)
   - Speichert vergangene Trades mit Situation/Ergebnis
   - Findet ähnliche Setups via BM25-Ähnlichkeit
   - Persistente JSON-Speicherung
   - Historische Win-Rate Analyse

3. Volatility-Adjusted Position Sizing (eurusd_risk.py)
   - ATR-basierte Volatilitätsmessung
   - Positionsgröße nach Volatilitäts-Percentile (0.4x-1.5x)
   - Regime-Adjustierung (MEAN_REVERSION/TRENDING/NEUTRAL)
   - Korrelations-Adjustierung für Forex-Paare

4. Multi-Provider LLM Fallback (eurusd_llm.py)
   - Automatische Fallback-Kette bei API-Ausfällen
   - Provider: Qwen3.5 → DeepSeek → Gemini → Ollama
   - Provider-Statistiken für Monitoring
   - JSON-Modus für strukturierte Outputs

Daten-Pipeline verbessert:
- 1-Minuten-Daten korrekt in Qlib integriert
- Prompts von 15min auf 1min aktualisiert
- generate.py für 1min EURUSD-Daten angepasst

Alle Module einzeln und im Integrationstest bestanden.
2026-03-30 19:56:26 +02:00
TPTBusiness 66934d2738 chore: initial Predix state (RD-Agent fork + EURUSD setup) 2026-03-22 21:20:02 +01:00
BarryC 7cd64a26fd feat(rl): add AutoRL-Bench framework and benchmark integrations (#1348)
* feat: rdkit for chemcotbench

* update qwen2.5&llama3.1 context

* fix: force failure on validation error and remove try/except in validator

* feat: unified error sample extraction (with test scripts)

* feat: set conda cache with .env

* feat: skip data eval if data pass in last evo

* fix: rm redundant param

* fix ui bug

* refactor: centralize assign_code_list_to_evo in MultiProcessEvolvingStrategy

* feat: add test_params.yaml generation and workspace cleanup improvements for finetune

* refactor: replace get_clear_ws_cmd with clear_workspace and update prompts for hard check criteria

* add bioprobench dataset

* fix: handle commas in training config extraction and refactor prompt includes

* bioprobench description

* add bioprobench readme

* feat: merge lora adapter for blackwell gpu

* feat: support for multi benchmarks in one job

* change dfficult aware content for training

* update difficulty-aware and logging principles

* fix: resolve variable name conflict in FTRunnerEvaluator

* set job id accuracy to minute

* feat(ui): display one selected metric per benchmark

* feat: store sota exp, and fix ws_ckp bug

* fix: truncate data.json in feedback

* fix: opencompass data for conda env

* fix: save only the last model

* feat: set log path and ws path

* fix: set overwrite_cache to avoid lock contention(through injecting params)

* feat: redirect stdout to file in localenv

* add pickle cache to dataset desc

* fix CI

* fix: remove redundant wrapper

* feat: set python_unbuffered

* move redirect stdout to env run

* fix a small bug

* move model folder

* feat(ui): display benchmark baseline

* fix: enrich scenario and benchmark description

* fix: rewrite runner eval to accept easier

* feat: compare with baseline when no SOTA

* update tablebench readme

* fix: switch back to single benchmark (for baseline)

* feat(ui): add ws path in ui

* refactor: update SOTA tracking to use DAG traversal and parent selection

* fix: prioritize local_selection in trace and refactor sibling retrieval logic

* refactor: unify error handling in feedback generation and update workspace injection

* feat: add skip_loop_error_stepname to control error skip step in LoopBase

* fix: set local_selection to NEW_ROOT for experiments without parent

* feat: set different ports for jobs

* feat: set different ports for jobs

* feat: add upper data size limit for LLM fine-tuning and update related prompts

* fix: replace get_truncated_stdout() with stdout for consistent output handling

* refactor: remove data.json from cache and workspace logic, focus on script-based reuse

* fix: rm target_scenario

* feat: add selective cache extraction and custom cache key for data processing

* fix(ui): bug when displaying tablebench

* fix: filter config in dataset_info.json

* feat: add test set, set valid set

* feat(ui): update test score, and set color for final decision

* feat: add test score for baseline and update ui

* fix: use [-100:] as test range

* feat: update data_stats in runner

* feat: wait for opencompass init when run multi jobs

* fix: adjust test&valid split

* feat: force to generate COT(with <think> token), and add answer format in scenarios.json

* feat: improve ui

* fix: unify benchmark volume mounts and set extra_volumes for conda env

* fix(ui): number color

* fix: update GPU memory handling to use total memory in GB and streamline code

* fix: set use_cot_postprocessor

* feat: add env_dict to config classes and merge env vars in Env run

* fix: let coder obey proposal

* fix(ui): direction bug and update chemcot core metirc

* fix: set consistent benchmark mount points and env vars for docker and conda

* fix: addintional target for LoRA

* feat: workspace dir log for benchmark running

* fix: tableInstruct path bug and update benchmark description

* feat: timeout for whole job

* fix: align FinanceIQ import to opencompass

* feat: use llm_judge for FinanceIQ

* feat: switch to turn on <think> or not

* feat: using scripts to redirect stdout, and run in different windows

* feat: sync litellm log

* fix: gpu memory format

* fix: escape special characters in benchmark desc

* fix: set data processing timeout to 1h

* feat: set valid_loss and save_best_model

* fix: inject timeout and stage

* fix: loss history extract logic

* feat: inject output dir

* feat: inject eval batch size

* feat: inject save_total_limit

* feat: update data prompt

* fix:  escape shell special characters

* fix: tablebench visualization UI

* fix: move implementation validation to coder, and ignore injected params

* docs: add README for RL-PostTraining evaluation system

* Add AutoRL-Bench evaluation framework for RL post-training

* Add architecture documentation

* docs: update architecture and interface documentation for AutoRL-Bench

* improve doc

* fix

* refactor: YAML配置驱动

* feat: add RL Docker env, workspace test, and update project structure

* feat: 重命名 autorl_bench, 新增 RLWorkspace, 配置 Docker extra_volumes

* Add eval-only AutoRL-Bench pipeline

* sturcture clean

* docs: add autorl_bench README

* feat(rl): Implement RL post-training agent scaffold and example

* refactor: simplify RL scenario classes and update RL CoSTEER integration

* feat(rl): 调通 scaffold,mock 数据跑完 5 步循环

* feat(rl): 接入 LLM 生成代码,支持 model_path 传递

* feat(rl): Docker 执行框架,RLWorkspace.run() + RLPostTrainingRunner

* feat(rl): LLM 生成假设/反馈,完整 loop 跑通

* feat: add RL post-training entry point with configurable options

* refactor: simplify RL proposal and trace classes, update config and docs

* Update rl eval autorl_bench layout

* Update RL workflow and evaluation setup

* Integrate AutoRL-Bench evaluation in RL workflow

* feat(rl): 添加 --base-model/--benchmark CLI 参数,简化 RLTask

* feat(rl): Docker 环境动态选择 + example_agent 完整训练评测流程(无llm)

* fix(rl): 修复 feedback 传递 + 添加 verl 依赖

* refactor: remove unused validate in BenchmarkAdapter and add core utils module

* feat(rl): UI

* Refactor autorl_bench layout and docker entrypoint

* autorl_bench: add aider autoloop tool

* feat(rl): environment docker

* refactor: simplify aider autoloop tooling

* chore: update misc files

* feat(rl): yaml-driven dataset download & auto-download on startup

* feat(rl): yaml-driven dataset download & auto-download on startup

* Refactor RL eval runner and clean up

* Simplify RL eval runner and env

* rl: include litellm in RL docker image

* feat(rl): unified resource path & model repo_id structure

* feat(rl): refactor eval with OpenCompass & add training code template

* feat(rl): refactor eval with OpenCompass & add training code template

* feat(rl): delete test bench

* docs: add benchmark interface notes and TODOs for unified evaluation

* feat(rl): unified benchmark eval interface + shared configs

* feat(rl): 优雅

* feat(rl): prompt prososal+coder improve

* feat(rl): fix eval

* fix(rl): docker

* fix(rl): eval

* v 1.0 tmep

* benchmark v1.0

* benchmark v1.1

* benchmark v1.1: grading日志+代码去重

* benchmark v1.1: grading日志+代码去重

* benchmark v1.1: grading日志+代码去重+task description

* benchmark v1.2: fix

* benchmark v1.3: fix,example-agent ok,rdagent test,openhands develop

* benchmark v1.4: fix,example-agent ok,rdagent ok,openhands develop

* benchmark : add alfworld

* benchmark : update readme

* benchmark : update readme

* benchmark :

* chore: add eval bypass block and mark TODO in grading server

* benchmark

* benchmark

* benchmark

* benchmark

* alfworld

* alfworld

* benchmark

* rdagent

* rdagent

* benchmark

* benchmark:ui

* benchmark:delete docker + log

* 1

* alfworld

* ui

* alfworld

* readme

* alfworld

* parallex

* alfworld

* run

* eval gpu

* alfworld

* alfworld

* fix conda init in start.sh for non-interactive shells

Fallback to common miniconda paths when conda is not in PATH.
Fixes B200 pod startup failure (conda: command not found).

Made-with: Cursor

* simplify start.sh: read TRAINING_PYTHON from .env

No more conda detection logic. Just set TRAINING_PYTHON in .env.
Fallback to conda only if not set.

Made-with: Cursor

* use OPENHANDS_PYTHON from .env to run agent

start.sh now uses OPENHANDS_PYTHON for main.py execution,
since the parent process may be in a different conda env.

Made-with: Cursor

* feat: register OpenCode agent into autorl_bench framework

- Add agents/opencode/ with config.yaml, start.sh, README.md
- Include opencode-rl pipeline code (pipeline/, runner_fsm/, benchmarks/)
- Merge opencode-rl dependencies into autorl_bench requirements.txt
- Remove separate venv requirement, share main environment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update opencode agent, benchmarks, and eval configs

- Sync opencode-rl runner_fsm with latest simplifications
- Add smith benchmarks integration
- Update opencompass configs and server with GPU support + error handling

* Update OpenCode agent docs for external opencode-rl integration

- Document external repo architecture (opencode-rl as independent plugin)
- Add setup instructions for cloning and configuring opencode-rl
- Add architecture diagram showing RD-Agent ↔ opencode-rl interaction
- Document OPENCODE_RL_ROOT for custom paths

* feat: add smith benchmark discovery and per-sample evaluator

- Add smith/ module for dynamic benchmark discovery from rl-smith
- Add PerSampleEvaluator for per-sample scoring via vLLM
- Update utils.py to support script-based data download for smith benchmarks
- Update opencode agent config

* enforce RL-only in instructions.md; remove embedded opencode-rl

- instructions.md: prohibit SFT, require RL (GRPO/PPO) for all benchmarks
- remove agents/opencode/opencode-rl/ (runtime uses external OPENCODE_RL_ROOT)

Made-with: Cursor

* comment out OpenCode-only deps in requirements.txt

openai, httpx, python-dotenv, tenacity are for OpenCode agent's
separate environment. Keep peft and pydantic as shared deps.

Made-with: Cursor

* refactor: extract _kill_process_group, narrow exception catches

- run.py: replace 2x nested 3-level try/except with shared
  _kill_process_group() using loop + specific exceptions
- server.py: except Exception → except (RuntimeError, ValueError, OSError)
- utils.py: except Exception → except requests.ConnectionError

Made-with: Cursor

* move kill_process_group to core/utils for reuse

Extract from run.py into core/utils.py so other runners
can also use it. Exported via core/__init__.py.

Made-with: Cursor

* add comments to run.py for workspace isolation and signal handling

Made-with: Cursor

* remove OpenCode-only deps from requirements.txt entirely

Made-with: Cursor

* allow SFT in instructions, RL as ultimate goal

Made-with: Cursor

* add workspace isolation rules to instructions.md

Use relative paths, forbid cd outside workspace, ignore symlink targets.

Made-with: Cursor

* update opencode start.sh: use OPENCODE_PYTHON, add PATH for opencode CLI, remove unsupported args

Made-with: Cursor

* opencode start.sh: pass --run-dir to use AutoRL-Bench workspace

Ensures OpenCode-FSM-Runner writes outputs into the workspace prepared
by AutoRL-Bench instead of creating its own runs/ directory.

Made-with: Cursor

* opencode start.sh: prepend training env bin to PATH

Ensures LLM agent bash calls (e.g. python3 -c "from trl import ...")
resolve to the correct training environment, instead of relying on
parent shell conda activation.

Made-with: Cursor

* opencode start.sh: restore --max-retries and --eval-timeout for opencode-rl

Made-with: Cursor

* add humaneval benchmark

* Replace import * cleanup hack with explicit imports in OpenCompass config

- Resolve dataset variable names via importlib before generating config,
  so the template uses `from xxx import datasets` instead of `import *`
- Remove the fragile runtime cleanup hack that set leaked modules to None
- Increase OpenCompass timeout from 3600s to 7200s
- Fix score parsing to average across multiple subdatasets

* refine opencompass config file generating

* add humaneval benchmark dependency instructions

human-eval package requires clone from open-compass/human-eval with
a one-line patch to relax assertion for partial evaluation (test split only).

Made-with: Cursor

* fix: sanitize user-provided paths in RL UI (CodeQL)

* fix: resolve user path relative to safe root (CodeQL)

* fix: use Copilot-suggested path sanitization pattern (CodeQL)

* fix: normalize and reject absolute user paths (CodeQL)

* Fix training params, vLLM OOM cleanup, OpenCompass score parsing, and baseline cache logic

* fix: add setuptools<75 to requirements for opencompass pkg_resources dependency

uv venv does not include setuptools by default, causing OpenCompass baseline
evaluation to fail with "No module named 'pkg_resources'".

Made-with: Cursor

* webshop

* feat(autorl_bench): improve smith benchmark integration and evaluator robustness

- Add smith benchmark docs to README: usage examples, discovery mechanism, SMITH_BENCH_DIR
- Improve PerSampleEvaluator: vLLM GPU cleanup, test_range slicing
- Refactor server.py: extract grading server from utils
- Fix OpenCompass score parsing and baseline cache logic

* fix: add smart fallback for OpenCompass dataset variable resolution

When build_dataset_imports_explicit() fails to import an OpenCompass
dataset module (common in grading server subprocess), it now guesses
the correct variable name from the module path convention instead of
falling back to empty names (which causes import * and breaks BBH
due to leaked file handle objects).

* revert: restore opencompass.py to pre-modification state

Revert vLLM pid cleanup, dash-value checks, and metric-based
score parsing added in 31caff2f and bb32e555.

* keep metric-aware score parsing in opencompass; add baseline column to UI

- opencompass.py: retain metric-type filtering (accuracy/score) instead
  of naive averaging, avoids polluting scores with pass/timeout counters
- ui.py: add Baseline column to Agent Summary table

Made-with: Cursor

* fix: handle non-string answers in extract_answer to prevent TypeError

arc_agi and other benchmarks can have non-string answer fields (e.g. lists),
which caused a crash in re.search(). Adding str() coercion fixes this.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* update deepsearch qa tasks

* fix: benchmark evaluation reliability (B1-B4)

- B1: auto-detect LoRA adapters and enable vLLM LoRA mode (read base_model from adapter_config.json)
- B2: serialize evaluations with threading.Lock to prevent GPU contention
- B3: cache eval results by model_path to deduplicate concurrent submissions
- B4: propagate error details from OpenCompass to agent (non-numeric scores, load failures)

Made-with: Cursor

* fix(B1): reject LoRA adapter submissions with clear merge instructions

- opencompass.py: detect adapter_config.json and return error with
  merge_and_unload() instructions instead of broken vLLM LoRA mode
- instructions.md: add requirement to submit full merged models
- opencompass_template.yaml: remove unused is_lora/lora_path params

Made-with: Cursor

* update chat completion

* update

* update deepsearch

* md

* codex + benchmark update

* codex + benchmark update

* codex + benchmark update

* codex

* codex

* fix: grading server cache key includes mtime to detect model overwrites

Previously cache used only resolved_path, so overwritten models at the
same path returned stale scores. Now cache key = path@max_mtime so
re-evaluation is triggered when model files change.

Made-with: Cursor

* feat: add gemini/claude agent scaffolds, fix codex binary path

- codex/start.sh: use CODEX_BIN env var instead of bare 'codex'
- Add gemini/ and claude/ agent directories with config.yaml and start.sh

Made-with: Cursor

* chore: remove copied human_readable_trace.py from PostTrainBench

Made-with: Cursor

* update evaluation

* benchmark

* Fix log cleanup and OpenHands env

* fix: webshop env pth problem

* benchmark alpacaeval

* style(rl): apply auto-lint fixes

* fix(rl): address CI and CodeQL issues

* fix(rl): make autorl bench imports CI-safe

---------

Co-authored-by: Qizheng Li <jenssenlee@163.com>
Co-authored-by: Young <afe.young@gmail.com>
Co-authored-by: Bowen Xian <xianbowen@outlook.com>
Co-authored-by: chelsea97 <zhuowbrown@gmail.com>
Co-authored-by: Xu Yang <peteryang@vip.qq.com>
Co-authored-by: sakura657 <yctangcse@gmail.com>
Co-authored-by: shatianming5 <tianming.sha@stonybrook.edu>
Co-authored-by: Yeyuqing0913 <shatianming4@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 15:49:30 +08:00
XianBW 6e19c9e632 feat: add LLM-finetune scenario (#1314)
* refine prompt

* small update

* fix a small bug

* remove debug config after execution

* fix: only remove <think> at start

* feat: support creating dataset & multi-eval frame (#1302)

* feat: add iterative evolve and evaluation support with partial chain stop

* feat: add FTDataEvaluator and support multiple implement functions in finetune

* feat: data implement for pre-proposal and proposal and add datasets (#1303)

* feat:(1) support for multi layer dataset extraction (2) add category.json for dataset in datasets/

* fix: fix bug for generate category.json

* feat: add get_dataset_folder_desc

* init data proposal and merge qzli/ft

* update data proposal prompts and add max_position_embeddings and resolve confilcts

* remove sample counts in data proposal

* turn data and train to unified hypo_gen

* refine prompts

* remove category.json and add it to dataset_info

* fix jinja problem and proposal done

* lint

* add ai-generated description and raw readme into dataset_info.json

* update prompt for description

* add datasets

* initial fix for proposal of data

* final version for data proposal

* lint

* feat: add stats in dataset_info, and enable data coder (#1306)

* refactor(dataset): add stats into dataset_info.json, and remove dataset from gitignore_folder

* feat: enable data coder and run data process

* feat: Merge data coder (#1307)

* feat: implement finetune data coding, evaluation, and config improvements

* fix: deepspeed config path

* fix: dataset info columns

---------

Co-authored-by: Young <afe.young@gmail.com>

* replace str length with token_limit

* add readme to dataset_info and remove useless blank lines in scenario description

* feat: dataset prepare

* fix: extract prams script name

* feat: add loss&predictions samples to feedback

* remove duplicate envs and and add llm_api_preferences and enhance reasoning token limits

* feat: network for ft_env

* fix: remove gpt-4o, which has low quota

* feat: a simple ui

* feat: merge data and train task type (#1309)

* feat: filter redundant prams of lf

* fix: ui bug caused by removing task_type

* fix: force agent to use high concurrency, and remove redundant prompt

* feat: extract info from llama factory log, and check data exists before download

* fix: add compatibility rules

* feat: llm evaluator for data coder

* feat: openai package in ft docker, and refine prompt

* feat: refine ft ui, add more info

* feat: add raw logs

* refine data coder prompt(for feedback debug)

* feat: select dataset in scen init

* fix: ui for docker log seperately

* feat: sync log through blob

* improve ui, and add llm feedback in Runner&Exp2FB (#1312)

* fix: ui bug to visualize docker log, and lint

* feat: unified docker log for ft env, and some refactor

* fix bugs and improve ui

* feat: save log of evaluator(single feedback)

* feat: add evaluator, set cleanup docker log

* feat: call llm in RunnerEvaluator and Feedback

* fix: extract structured error message in RunnerEvaluator

* feat: feedback improve, and fix some bugs

* feat: feedback improve when runner fails

* small update

* feat(UI): add running info and benchmark metric in loop expander

* feat(UI): add render markdown toggle

* feat: refine prompts and add error type in exp2fb

* feat: add filterd params reason, set default benchmark timeout to infinite, and refine train loss express

* recover dataset deepscaler

* feat: set timeout in .env

* refactor: unifiied ft_env timeout

* feat: debug mode for data coder

* feat: deliver data_stats after generate debug_data

* feat: use gpt-5.1 as judge model, set judge_retry, and refine debug mode prompt

* refine prompt

* refactor: llama factory manager logic, and refine data processing prompt

* feat(DockerEnv): support GPU selection via CUDA_VISIBLE_DEVICES

* feat: set api concurrency via .env

* fix: ft env timeout bug

* feat: enable CondaEnv run

* fix: can't update bin path in first run, and path bug in lf manager

* feat(ui): set log path through .env

* refactor(ui): wrap_lines, remove css

* feat(coder): retry when parse code-block fail

* fix: refine single-fb in ui, and fix path bug(not allow proposal to decide path)

* fix: opencompass CondaEnv torch compatible with vllm

* fix: refine error text in coding

* feat: deepspeed config for CondaEnv

* feat: memory estimator

* fix: deepspeed package for condaenv

* fix: use `client.chat.completions.create()` only

* feat: flash attention for condaenv

* feat: strong and weak models interface

* fix: condaenv package dependency

* use multi round conversation in llm finetune proposal

* refine prompt for data processing

* enable evolving in data coder

* maximize output token size

* fix: refine ui

* fix: optional packages for llama factory

* fix: torch denpendency for b200

* fix: opencompass dependency

* update cot prompts

* skip the sub implement

* skip conda preparation if env exists

* update chemcot datasets

* fix: unify docker to use litellm

* update readme and instructions

* fix: set CUDA_VISIBLE_DEVICES for CondaEnv

* feat: add panorama dataset, refactor dataset interface

* feat: calculate token using tiktoken, and ndarray bug

* fix: download subtasks of chemcotdataset seperately

* feat: customized prepare func for datasets

* feat: update new benchmarks

* add datasets package

* docs: readme for llm finetune

* feat: download raw data directly, with post-process function

* feat: analyze raw dataset

* suppress litellm debug info

* feat(ui): summary page

* feat: run multi-jobs

* feat: improve ui

* feat: add path and checkout options to LLM finetune loop entrypoint

* feat: add FinanceIQ_ppl benchmark with auto-download and dataset desc rendering

* refactor: remove unused imports and dead code, fix session folder logging

* feat: enable tablebench and tableInstruct dataset

* refine dataset readme, and coder prompt

* refine proposal and coder prompt

* fix: ui path (default log path)

* feat: add automatic LoRA model merging for benchmarking with vLLM

* refactor: reorganize finetune benchmark and merge modules under benchmark dir

* refactor: modularize benchmark config and error extraction for finetune scenario

* fix: update benchmark import paths and disable env cache for device info

* refactor docke&conda env and fix import bugs

* modify init python file

* feat: add FinanceIQ dataset split utility and integrate with pipeline

* feat: set weak and strong model by env, distribute workload across models

* feat: sample dataset and rm params for tensorboard, wandb

* update script to run jobs

* refine proposal prompt, remove specific dataset name

* fix(ui): auto switch log folder

* fix: estimate the processed full data after sample

* feat: filter raw data more aggressively, and lower data_eval standard

* feat: sync workspace to blob

* feat: rdkit for chemcotbench

* update qwen2.5&llama3.1 context

* fix: force failure on validation error and remove try/except in validator

* feat: unified error sample extraction (with test scripts)

* feat: set conda cache with .env

* feat: skip data eval if data pass in last evo

* fix: rm redundant param

* fix ui bug

* refactor: centralize assign_code_list_to_evo in MultiProcessEvolvingStrategy

* feat: add test_params.yaml generation and workspace cleanup improvements for finetune

* refactor: replace get_clear_ws_cmd with clear_workspace and update prompts for hard check criteria

* add bioprobench dataset

* fix: handle commas in training config extraction and refactor prompt includes

* bioprobench description

* add bioprobench readme

* feat: merge lora adapter for blackwell gpu

* feat: support for multi benchmarks in one job

* change dfficult aware content for training

* update difficulty-aware and logging principles

* fix: resolve variable name conflict in FTRunnerEvaluator

* set job id accuracy to minute

* feat(ui): display one selected metric per benchmark

* feat: store sota exp, and fix ws_ckp bug

* fix: truncate data.json in feedback

* fix: opencompass data for conda env

* fix: save only the last model

* feat: set log path and ws path

* fix: set overwrite_cache to avoid lock contention(through injecting params)

* feat: redirect stdout to file in localenv

* add pickle cache to dataset desc

* fix CI

* fix: remove redundant wrapper

* feat: set python_unbuffered

* move redirect stdout to env run

* fix a small bug

* move model folder

* feat(ui): display benchmark baseline

* fix: enrich scenario and benchmark description

* fix: rewrite runner eval to accept easier

* feat: compare with baseline when no SOTA

* update tablebench readme

* fix: switch back to single benchmark (for baseline)

* feat(ui): add ws path in ui

* refactor: update SOTA tracking to use DAG traversal and parent selection

* fix: prioritize local_selection in trace and refactor sibling retrieval logic

* refactor: unify error handling in feedback generation and update workspace injection

* feat: add skip_loop_error_stepname to control error skip step in LoopBase

* fix: set local_selection to NEW_ROOT for experiments without parent

* feat: set different ports for jobs

* feat: set different ports for jobs

* feat: add upper data size limit for LLM fine-tuning and update related prompts

* fix: replace get_truncated_stdout() with stdout for consistent output handling

* refactor: remove data.json from cache and workspace logic, focus on script-based reuse

* fix: rm target_scenario

* feat: add selective cache extraction and custom cache key for data processing

* fix(ui): bug when displaying tablebench

* fix: filter config in dataset_info.json

* feat: add test set, set valid set

* feat(ui): update test score, and set color for final decision

* feat: add test score for baseline and update ui

* fix: use [-100:] as test range

* feat: update data_stats in runner

* feat: wait for opencompass init when run multi jobs

* fix: adjust test&valid split

* feat: force to generate COT(with <think> token), and add answer format in scenarios.json

* feat: improve ui

* fix: unify benchmark volume mounts and set extra_volumes for conda env

* fix(ui): number color

* fix: update GPU memory handling to use total memory in GB and streamline code

* fix: set use_cot_postprocessor

* feat: add env_dict to config classes and merge env vars in Env run

* fix: let coder obey proposal

* fix(ui): direction bug and update chemcot core metirc

* fix: set consistent benchmark mount points and env vars for docker and conda

* fix: addintional target for LoRA

* feat: workspace dir log for benchmark running

* fix: tableInstruct path bug and update benchmark description

* feat: timeout for whole job

* fix: align FinanceIQ import to opencompass

* feat: use llm_judge for FinanceIQ

* feat: switch to turn on <think> or not

* feat: using scripts to redirect stdout, and run in different windows

* feat: sync litellm log

* fix: gpu memory format

* fix: escape special characters in benchmark desc

* fix: set data processing timeout to 1h

* feat: set valid_loss and save_best_model

* fix: inject timeout and stage

* fix: loss history extract logic

* feat: inject output dir

* feat: inject eval batch size

* feat: inject save_total_limit

* feat: update data prompt

* fix:  escape shell special characters

* fix: tablebench visualization UI

* fix: move implementation validation to coder, and ignore injected params

* feat: README for FinanceIQ dataset

* fix: bioprobench desc error

* fix: remove task alignment when coder eval

* fix: FinanceIQ now extracts last capital as answer

* fix: stdout contains binary data

* feat: recover estimate full output and set eval setting automatically

* fix(ui): precision for summary table

* fix(ui): import error

* feat: try to use lora

* fix(api): fix litellm bug for code block

* fix: refine prompts to give agent more decision space

* chore(ci): fix mypy typing issues

* chore(ci): format code with black

* chore(ci): fix ruff lint violations

* chore(ci): sort imports with isort

* chore(ci): format code with black

* test: temporarily skip extract_parameters imports due to numpy pin

* fix: compatibility issues for qlib scenarios on finetune branch

* fix(fin_factor): skip to fb for coder error

* fix(loop): default skip to feedback step on skip_loop_error

When skip_loop_error exception happens and skip_loop_error_stepname is not
explicitly set, default to jumping to 'feedback' step if it exists,
otherwise fall back to the last step (record).

This prevents KeyError when record step tries to access feedback data that
doesn't exist because we skipped the feedback phase.

Also removed redundant skip_loop_error_stepname from finetune loop since
it's now the default behavior.

* add 'skip to record' to DS scenario like other scenarios

* fix 2 scenarios bug about rd_loop class

* fix: lint(mypy, ruff, black) error

* fix: mypy lint error

* fix data science scenario bug

---------

Co-authored-by: Xu Yang <peteryang@vip.qq.com>
Co-authored-by: Qizheng Li <jenssenlee@163.com>
Co-authored-by: you-n-g <you-n-g@users.noreply.github.com>
Co-authored-by: amstrongzyf <201840057@smail.nju.edu.cn>
Co-authored-by: Young <afe.young@gmail.com>
Co-authored-by: amstrongzyf <amstrongzyf@126.com>
Co-authored-by: chelsea97 <zhuowbrown@gmail.com>
Co-authored-by: SunsetWolf <Lv.Linlang@hotmail.com>
2026-03-02 19:04:10 +08:00
Linlang 32ecf92afc fix: handle mixed str and dict types in code_list (#1279)
* fix: handle mixed str and dict types in code_list

* fix: handle missing token_costs entry for loop 0 in summarize_win
2025-11-03 21:52:41 +08:00
Xu Yang 27d38af7bd fix: refine task scheduling logic in MultiProcessEvolvingStrategy for… (#1275)
* fix: refine task scheduling logic in MultiProcessEvolvingStrategy for improved handling of feedback in improve mode

* fix: add empty implementation for skipped tasks in MultiProcessEvolvingStrategy
2025-10-23 17:09:18 +08:00
Xu Yang afb575cc91 fix: enhance feedback handling in MultiProcessEvolvingStrategy for improved task evolution (#1274) 2025-10-23 16:00:23 +08:00
Xu Yang 03f22dc7c7 feat: add improve_mode to MultiProcessEvolvingStrategy for selective task implementation (#1273) 2025-10-22 17:35:18 +08:00
Xu Yang 6e09dc6d69 feat: add user interaction in data science scenario (#1251)
* feat: add interactor classes and user interaction handling for experiments

* update code

* use fragment retry mechanism instead of rerun()

* fix a bug

* integrate user instructions into proposal and coder

* fix CI

* fix CI

* feat: add approval option for user instructions submission

* feat: enhance user instructions handling in Task and DSExperiment classes

* fix CI

* add user instructions into hypothesis rewrite

* add interface to command line

---------

Co-authored-by: Bowen Xian <xianbowen@outlook.com>
2025-09-18 11:10:12 +08:00
you-n-g ee8c119f31 fix: set requires_documentation_search to None to disable feature in eval (#1245) 2025-09-15 07:45:08 +08:00
you-n-g 5ba5e8356c feat: init pydantic ai agent & context 7 mcp (#1240)
* feat: init pydantic ai agent & context 7 mcp

* feat: integrate MCP documentation search into data science pipeline evaluation

* fix: disable MCP documentation search and update related docstrings and defaults

* lint

* fix: correct prompt formatting and conditional blocks in pipeline_eval section

* lint

* feat: add query method to PAIAgent for synchronous agent execution

* fix: apply nest_asyncio for agent and update context7 query method

* lint

* lint

* lint

* lint

* docs: update MCP folder docstring and rename test class in test_pydantic.py

* refactor: centralize completion kwargs logic and update pydantic_ai integration

* fixbug

* typo

* fix: bug triggered by padantic-ai version backtracking.

---------

Co-authored-by: Linlang <Lv.Linlang@hotmail.com>
2025-09-13 10:25:02 +08:00
amstrongzyf 2201a47623 fix: revert 2 commits (#1239)
* revert commit:c51a3008f897416a7416f92d1286cbbf6a2291ae. PR 1179

* Revert "fix: change runner prompts (#1223)"

This reverts commit db2ebc27d70663d6aa85e0b05d9b81f5f6443c17.

* fix ruff check error

* fix: change switch place for fix_seed_and_data_split
2025-09-11 16:14:48 +08:00
you-n-g 0daeb82d63 feat: add stdout into workspace for easier debugging (#1236)
* refactor: use get_truncated_stdout for consistent stdout handling across modules

* lint

* feat: add dump_stdout_type to DSRunnerCoSTEERSettings and use in eval

* fix: avoid circular import by moving DSRunnerEvaluator import inside method
2025-09-10 10:02:49 +08:00
you-n-g dbbe374ac8 fix: update fallback criterion (#1210)
* fix: update fallback criterion

* fix: ensure evo_fb is initialized and used correctly in fallback logic

* refactor: rename use_new_evo to should_use_new_evo for clarity
2025-08-29 17:07:41 +08:00
you-n-g f82de4a380 feat: add option to enable hyperparameter tuning only in first eval loop (#1211)
* feat: add option to enable hyperparameter tuning only in first eval loop

* fix: use total_seconds() for accurate time calculations in evolution and tracking
2025-08-29 16:59:22 +08:00
Tim 4a516949b4 chore: add inference mode for model dump (#1182)
* chore: add inference mode for model dump
* check runtime environment
* update opened_trace_lines
---------

Co-authored-by: you-n-g <you-n-g@users.noreply.github.com>
2025-08-15 15:34:49 +08:00
amstrongzyf 5353bd31f2 fix: refine prompts and add additional package info (#1179)
* refine prompts and add additional package info

* refine prompts to be specific for GBDT models

* minor refine prompts

* use include to replace duplicate info

* refine prompts

* refactor: import DSTrace from base and remove exp_gen __init__

* lint

---------

Co-authored-by: Young <afe.young@gmail.com>
2025-08-13 23:00:23 +08:00
Xu Yang 9c190e3268 feat: improve fallback handling in CoSTEER and add GPU usage guidelin… (#1165)
* feat: improve fallback handling in CoSTEER and add GPU usage guideline in share.yaml

* update prompt

* update
2025-08-07 15:52:55 +08:00
Roland Minrui 5594ab418b fix: refine DSCoSTEER_eval prompts (#1157)
* change DSCoSTEER_eval prompts

* fallback to better exp only

* fix fallback

* fix and reformat

* fix bug when base_fb is None

* add reasoning to hyperparameter evaluation

* feat: add acceptable assessment in exp_feedback (#1159)

* add time

* refine eval prompt and make the logic of tuning check more clear

* some refinement

* fix CI

* fix a small bug, only consider score in runner

* refine comment

* simplify compare function

---------

Co-authored-by: jingyuanlm <842442862@qq.com>
Co-authored-by: Xu <v-xuminrui@microsoft.com>
Co-authored-by: Jensen Lee <91518020+Jensen246@users.noreply.github.com>
Co-authored-by: Xu Yang <peteryang@vip.qq.com>
2025-08-06 22:55:25 +08:00
Jensen Lee 1b84f7b754 fix: ignore case when checking metric name (#1160)
* fix: ignore case when checking metric name

* add case-sensitive to prompts

---------

Co-authored-by: amstrongzyf <amstrongzyf@126.com>
2025-08-06 20:54:08 +08:00
Tim 35c209b092 feat: enable finetune llm (#1055)
* feat: start with previous workspace

* feat: finetune llm

* add PrevModelLoadEvaluator

---------

Co-authored-by: Young <afe.young@gmail.com>
Co-authored-by: v-jianwan <v-jianwan@microsoft.com>
Co-authored-by: you-n-g <you-n-g@users.noreply.github.com>
2025-08-06 12:24:44 +08:00
Xu Yang c111966d19 feat: refactor CoSTEER classes to use DSCoSTEER and update max seconds handling (#1156)
* feat: refactor CoSTEER classes to use DSCoSTEER and update max seconds handling

* remove useless line

* enable time_ratio_limit_to_enable_hyperparameter_tuning
2025-08-05 18:16:10 +08:00
Paul f03b1b918d feat: create Jupyter notebook pipeline file based on main.py file (#1134)
* First commit

* isort

* black

* tweak prompt

* fix for argparse

* fix typo

* add e2e

* Add test files, clean

* fix black settings

* revert

* fix trailing

* remove extra

* comment

* small fix, updated prompt

* Fix argparse

* small improvements

* fix for merge

* fix for merge
2025-08-05 18:06:57 +08:00
Jensen Lee b4117cf58a feat: add mask inference in debug mode (#1154) 2025-08-05 14:09:12 +08:00
amstrongzyf 80c953d405 fix: add metric in scores.csv and avoid reading sample_submission.csv (#1152)
* add scores.csv metric name in both task_gen and coder

* a little fix to column names

* small fix

* avoid sample submission read in task_gen

* avoid sample_submission reading in coding

* code change summary bug fix

* little update

* little refinement to eval

* refine coder and runner eval prompts

---------

Co-authored-by: Xu Yang <peteryang@vip.qq.com>
2025-08-04 19:53:08 +08:00
Xu Yang 811d4e7631 feat: enhance timeout handling in CoSTEER and DataScience scenarios (#1150)
* add prev loops to runner history

* fix evolving history

* fix bug on initializing feedback without final decision

* reformat

* refine

* add comments

* feat: enhance timeout handling in CoSTEER and DataScience scenarios

---------

Co-authored-by: Xu <v-xuminrui@microsoft.com>
2025-08-04 17:44:51 +08:00
Roland Minrui 2426a1dc67 feat: add previous runner loops to runner history (#1142)
* add prev loops to runner history

* fix evolving history

* fix bug on initializing feedback without final decision

* reformat

* refine

* add comments

* fix ci

* a little refinement

* fix CI

---------

Co-authored-by: Xu <v-xuminrui@microsoft.com>
Co-authored-by: Xu Yang <peteryang@vip.qq.com>
2025-08-04 17:38:27 +08:00
you-n-g 7fc09169bc feat: fallback to acceptable results (#1129)
* refactor: add is_acceptable, fallback logic and generify evolving agent

* refine lint

* small

* lint

* lint

* lint

* feat: add is_acceptable to CoSTEERMultiFeedback

* feat: add in-memory workspace checkpoint and recovery

* feat: preserve symbolic links in workspace checkpoints and recovery

* lint

* lint

* feat: limit workspace checkpoint to files under 100KB

* feat: add workspace checkpoint size limit setting

* prompt

* lint
2025-07-31 17:53:18 +08:00
Xu Yang 305eff1c5e feat: enhance timeout management and knowledge base handling in CoSTEER components (#1130)
* feat: enhance timeout management and knowledge base handling in CoSTEER components

* fix a little bug

* fix small bug

* fix a small bug

* Update rdagent/scenarios/data_science/loop.py

Co-authored-by: you-n-g <you-n-g@users.noreply.github.com>

* add scale check

* fix a small bug

* fix CI

* use dynamic chat_token_limit & remove repeated lines

* fix CI

* remove useless comment

* fix small bug

* update draft appendix

* fix prompt

* add code correctness as top priority

---------

Co-authored-by: you-n-g <you-n-g@users.noreply.github.com>
2025-07-31 13:06:28 +08:00
Xu Yang e0519b56ae feat: add coder check and give more time (#1127)
* feat: introduce max_seconds_multiplier for timeout management across components

* avoid using assert in test

* hot fix a very small bug

* runner multiply twice

* revert feedback change

* add a switch to longer timeout
2025-07-29 14:59:38 +08:00
Linlang bbcee389b4 chore: implement runtime_env func (#1104)
* implement runtime_env func for quant

* add runtime_info code

* add runtime env information to the prompt

* format with black

* optimize get_runtime_env code

* delete unnecessary files

* some refinement

* fix fin_quant bugs

---------

Co-authored-by: Xu Yang <peteryang@vip.qq.com>
2025-07-28 14:19:41 +08:00
you-n-g ab97dd8b77 feat: add extra_eval config and import_class for custom evaluators (#1097)
* feat: add extra_eval config and import_class for custom evaluators

* lint

* build: update litellm requirement to >=1.73 for get_valid_models

* refactor: remove *args/**kwargs from _create_embedding_inner_function signature
2025-07-20 16:31:43 +08:00
Tim 705eb07e81 chore: extend eda output (#1086) 2025-07-18 21:07:43 +08:00
Xu Yang 9b82bc10ad fix: package and timer bug (#1092)
* fix package bug & timer bug

* fix typo
2025-07-18 16:22:57 +08:00
Xu Yang 51921c2344 fix: minor fix to runtime_environment (#1089)
* minor fix to funtime_environment

* add python runtime info header
2025-07-17 19:58:06 +08:00
Xu Yang 77725913fa feat: query & cache package_info (#1083)
* feat: add package query in draft.py (not yet enabled)

* feat: integrate package query into task_gen and cache runtime environment

- Remove pkg_query modifications from draft components
- Add package declaration requirement in task_gen prompts
- Add optional packages field to CodingSketch model
- Cache runtime_environment in scenario object for loop-wide reuse
- Parse packages from LLM response and generate runtime environment dynamically

* some refinement

* feat: merge default packages with CLI args in package_info.py

* fix: code style

---------

Co-authored-by: Qizheng Li <jenssenlee@163.com>
2025-07-17 18:35:36 +08:00
Xu Yang daea490941 fix: align scenario descriptions and include debug timeout (#1079)
* Align scenario descriptions and include debug timeout

- Updated config.py to support debug timeout configuration
- Synchronized prompts in exp_gen and scen modules
- Refactored proposal.py for consistency with new scenario descriptions
- Improved __init__.py for better scenario management

* remove running time in stdout

---------

Co-authored-by: Xu Yang <xuyang1@microsoft.com>
2025-07-16 14:30:17 +08:00
you-n-g 8974704567 fix: refine prompt, equal lightgbm, discourage over hypertuning (#1072)
* feat: add mount_path parameter to run command

* feat: add runtime environment info and dynamic timeouts to DS runners
2025-07-15 21:58:19 +08:00