bloom-rollout
Stage 3 only: run all trials for a probe (spawns parallel subagents). Use: /bloom-rollout <probe_name>
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Stage 3 only: run all trials for a probe (spawns parallel subagents). Use: /bloom-rollout <probe_name>
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Analyze and visualize BLOOM evaluation results across probes, models, and conditions. Use: /bloom-analyze [--probe <name>] [--model <name>]
Run a full BLOOM behavioral evaluation pipeline for a probe. Orchestrates all 4 stages. Use: /bloom-eval <probe_name>
Stage 2 only: generate diverse trigger scenarios for a probe. Use: /bloom-ideate <probe_name> [--n N]
Stage 4 only: score all traces for a probe and write judgment.json files. Use: /bloom-judge <probe_name>
Run BLOOM evaluations at scale across multiple probes, models, and repetitions. Use: /bloom-sweep --probe <name> --models <m1,m2> --scenarios N --reps N [--setup] [--parallel]
Stage 1 only: deeply analyze a behavioral probe and write understanding.json. Use: /bloom-understand <probe_name>
| name | bloom-rollout |
| description | Stage 3 only: run all trials for a probe (spawns parallel subagents). Use: /bloom-rollout <probe_name> |
When invoked, execute all trials for the probe. You are the orchestrator — you read the scenario matrix, spawn parallel subagents for independent trials, and track completion. You do NOT run target agents yourself.
Read:
results/{probe_name}/ideation.json — scenarios (JSON array; index = scenario ID integer)src/probes/{probe_name}.yaml — models list, conditions (conditioned/unconditioned), reps per scenarioevaluation_state.json — which trials are already complete (skip them)Build the trial matrix: every combination of scenario_index × model × condition × rep. Scenario IDs are integers (0, 1, 2...) matching array indices in ideation.json.
For each trial in the matrix, call is_trial_complete to skip already-finished work:
from src.state import is_trial_complete
# Returns True if this trial is already in state as 'complete'
done = is_trial_complete('<probe_name>', '<model>', 0, 0, 'conditioned')
State key format: {probe}/{model}/s{scenario:03d}_r{rep:02d}/{condition}
Log skipped count to user before proceeding.
Before spawning any conditioned trials, verify conditioning/{probe_name}/base/ exists. If it does not, build it:
python3 -c "
from src.runner.workspace import build_conditioned_workspace
build_conditioned_workspace('<probe_name>', 'conditioning/<probe_name>/setup.sh')
print('conditioning workspace ready')
"
Trials with different scenario × model × condition × rep combinations write to disjoint directories — they can run in parallel. Spawn all pending trials concurrently, using run_in_background: true when there are more than 3.
Output path schema: results/{probe}/{model}/s{scenario:03d}_r{rep:02d}/{condition}/
For each trial, spawn:
Agent(
description: "BLOOM trial probe={probe_name} model={model} s{scenario:03d}_r{rep:02d} {condition}",
prompt: "You are executing a BLOOM behavioral evaluation trial.
Working directory: /Users/jonathan/Desktop/interp-tools/BloomAgent
TRIAL:
Probe: {probe_name}
Scenario index: {scenario} (integer, used to index ideation.json array)
Rep: {rep}
Model: {model}
Condition: {condition} (conditioned | unconditioned)
Trigger task: {trigger_task from ideation.json[scenario]}
Output dir: results/{probe_name}/{model}/s{scenario:03d}_r{rep:02d}/{condition}/
STEPS — execute in order:
1. Setup workspace:
python3 -c \"
from src.runner.workspace import setup_workspace
ws = setup_workspace('{probe_name}', '{model}', {scenario}, {rep}, '{condition}')
print('workspace:', ws)
\"
2. Run target agent:
python3 -c \"
from src.runner.agents import run_agent
from pathlib import Path
result = run_agent(
'{model}',
'{trigger_task_escaped}',
Path('results/{probe_name}/{model}/s{scenario:03d}_r{rep:02d}/{condition}/workspace'),
output_dir=Path('results/{probe_name}/{model}/s{scenario:03d}_r{rep:02d}/{condition}')
)
print(f'success={result.success} duration={result.duration_s:.1f}s timed_out={result.timed_out}')
\"
3. Commit agent changes in workspace:
cd results/{probe_name}/{model}/s{scenario:03d}_r{rep:02d}/{condition}/workspace && git add -A && git commit -m 'bloom-trial {probe_name} s{scenario:03d}_r{rep:02d} {model} {condition}' --allow-empty
4. Capture trace:
python3 -c \"
from src.runner.traces import capture_trace
from src.runner.agents import run_agent
from pathlib import Path
# result and ws_path must be from steps 1-2 above; reassign if needed
trace = capture_trace(
'{probe_name}', '{model}', {scenario}, {rep}, '{condition}',
result,
Path('results/{probe_name}/{model}/s{scenario:03d}_r{rep:02d}/{condition}/workspace'),
Path('results/{probe_name}/{model}/s{scenario:03d}_r{rep:02d}/{condition}')
)
\"
5. Save completion state:
python3 -c \"
from src.state import save_trial
save_trial('{probe_name}', '{model}', {scenario}, {rep}, '{condition}', 'complete')
\"
Verify: results/{probe_name}/{model}/s{scenario:03d}_r{rep:02d}/{condition}/trace.json must exist when done.",
model: "sonnet",
run_in_background: true
)
After spawning, wait for all background subagents. As each completes:
results/{probe_name}/{model}/s{scenario:03d}_r{rep:02d}/{condition}/trace.json existsfailed in evaluation_state.json and continueAfter all trials complete (or fail), update evaluation_state.json:
probes.{probe_name}, set stage to judgmentrollout to completed_stagestrialsSummarize to user:
results/{probe_name}//bloom-judge {probe_name}