Skip to content
View CausaLab's full-sized avatar

Block or report CausaLab

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
CausaLab/README.md

CausaLab

CausaLab is the anonymized release repository for the Reactor Lab causal discovery benchmark and the experiments used in the NeurIPS 2026 Evaluation and Datasets submission.

This repository contains:

  • the Reactor Lab environment implementation under discoveryworld/;
  • ReAct/Recoma agents and prompts under agents/recoma/;
  • local non-Slurm experiment entrypoints under scripts/experiments/;
  • restored ReEval code under causal_game_paper/re_eval/;
  • visualization code under scripts/vis_backend/ and scripts/vis_frontend/;
  • paper figure/table data under causal_game_paper/new_paper/;
  • the anonymized graph dataset release under release/causalab_neurips2026_dataset/.

For reviewer-facing reproduction instructions, start with REPRODUCIBILITY.md.

Quick Start

conda create -n causalab python=3.10 -y
conda activate causalab
python -m pip install --upgrade pip
python -m pip install --use-pep517 -r agents/requirements.txt
python -m pip install -e .

Run the local smoke checks:

python -m unittest discoveryworld.tests.test_property_manipulator_oracle
python scripts/experiments/validate_release_artifacts.py

Run a no-Slurm dry run for one experiment script:

SKIP_CONDA_ACTIVATE=1 DRY_RUN=1 GRAPH_LIMIT=1 \
  bash scripts/experiments/run_react_simple-mem_freqparent_4nodes_main.sh

ReEval

ReEval can be run without an API call on the bundled sample trajectory:

python -m causal_game_paper.re_eval.run_lightweight_reeval \
  --source-only \
  --limit 1 \
  --output-dir output_dir/re_eval_sample_source_only \
  examples/sample_runs/react_simple-mem

For API-backed ReEval, export an OpenAI-compatible key and optionally a custom base URL:

export OPENAI_API_KEY=...
export OPENAI_API_BASE=https://api.openai.com/v1
python -m causal_game_paper.re_eval.run_lightweight_reeval \
  --limit 1 \
  --output-dir output_dir/re_eval_sample_api \
  examples/sample_runs/react_simple-mem

Visualization

python scripts/vis_backend/visualization_server.py

Then open http://127.0.0.1:5001. The backend serves the frontend from scripts/vis_frontend/ and defaults to the bundled sample trajectory in examples/sample_runs. If you did not install the full CausaLab environment, install the visualization-only dependencies first:

python -m pip install -r scripts/vis_backend/requirements.txt

Useful checks:

bash scripts/vis_backend/check_deployment_ready.sh
python scripts/vis_backend/visualize_causal_graphs_dsl.py \
  --tracking_file examples/sample_runs/react_simple-mem/obs_Causal_gpt-5-mini/4nodes/20260223-2134_dsl_right/4nodes_0_53calls/seed_1/*_tracking_simple.jsonl \
  --config_file examples/sample_runs/react_simple-mem/obs_Causal_gpt-5-mini/4nodes/20260223-2134_dsl_right/4nodes_0_53calls/seed_1/graph_config.json \
  --output_file output_dir/visualization_sample.json

To inspect a newly generated run, point the backend at its experiment output root:

BASE_OUTPUT_DIR=output_dir/react_simple-mem/obs_Causal_gpt-5-mini/4nodes/... \
  python scripts/vis_backend/visualization_server.py

The expected HTTP smoke path is:

  • GET /api/config;
  • GET /api/folders;
  • POST /api/visualize with the selected folder's tracking_file and config_file.

Popular repositories Loading

  1. CausaLab CausaLab Public

    Python