Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when a hypothesis already exists and experiment configuration files need to be created, validated, or revised, especially after the simulation scale budget has been decided.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 115% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 79% | 0% |
Generate and validate experiment configuration (init_config.json + steps.yaml) for AgentSociety2 simulations.
SIM_SETTINGS.json exist and need init_config.json + steps.yamlDo NOT use when:
SIM_SETTINGS.json exists yet (use hypothesis skill first)| Action | Command | Purpose | |--------|---------|---------| | validate | $PYTHON_PATH .agentsociety/bin/ags.py experiment-config validate --hypothesis-id ID --experiment-id ID | Check setup and module selection | | prepare | $PYTHON_PATH .agentsociety/bin/ags.py experiment-config prepare --hypothesis-id ID --experiment-id ID | Create init/ directory and template | | info | $PYTHON_PATH .agentsociety/bin/ags.py experiment-config info --hypothesis-id ID --experiment-id ID | Display selected module details | | run | $PYTHON_PATH .agentsociety/bin/ags.py experiment-config run --hypothesis-id ID --experiment-id ID | Execute config_params.py to generate files | | check | $PYTHON_PATH .agentsociety/bin/ags.py experiment-config check --hypothesis-id ID --experiment-id ID | Validate generated config by instantiating modules |
Use the Python interpreter from .env. See CLAUDE.md for setup.
If the experiment size is still open, ask for the simulation scale budget before generating files. Collect the target agent count or range, step budget, runtime budget, and preferred complexity tier. Offer 2-3 options with trade-offs and a recommendation, then use the selected budget to balance agent count, agent complexity, and run length.
HYPOTHESIS.md and SIM_SETTINGS.json already exist for the target experimentscan-modules when neededuser_data/ has been reviewed before generating defaultsuse-dataset or create-dataset| Mistake | Fix | |---------|-----| | Using snake_case for agent/env types | Use class names: PersonAgent, SimpleSocialSpace | | Putting params outside kwargs | All parameters must go in the kwargs dict | | agent_id differs from kwargs.id | They must match exactly | | Generating config without reading user_data/ | Always read user_data/ files first for parameter defaults | | Missing choices on a choice question | Every response_type: "choice" question must have a choices list | | Empty questions list in questionnaire step | Must contain at least one question with id and prompt |
Predecessors: hypothesis Optional helpers: scan-modules (when module names are unknown or need validation) Successors: run-experiment Optional branches: create-agent, create-env-module, create-dataset, use-dataset
hypothesis_{id}/
├── HYPOTHESIS.md # Hypothesis description
├── SIM_SETTINGS.json # Agent classes and env modules selection
└── experiment_{id}/
├── EXPERIMENT.md # Experiment description
└── init/
├── config_params.py # Claude Code generates this
├── init_config.json # Generated configuration
└── steps.yaml # Generated stepsdotdigraph experiment_config { rankdir=LR; node [shape=box, style=filled, fillcolor="#E8F4FD"]; subgraph cluster_phase1 { label="Phase 1: Validation"; style=dashed; validate [label="validate"]; prepare [label="prepare"]; info [label="info"]; read [label="Read HYPOTHESIS.md\nEXPERIMENT.md\nSIM_SETTINGS.json\nuser_data/"]; } subgraph cluster_phase2 { label="Phase 2: Code Generation"; style=dashed; generate [label="Generate config_params.py\n(stdlib imports only)"]; } subgraph cluster_phase3 { label="Phase 3: Execution"; style=dashed; run [label="run"]; check [label="check"]; fix [label="Fix errors\n(if any)"]; } validate -> prepare -> info -> read -> generate -> run -> check; check -> fix [label="errors"]; fix -> run; }
validate to confirm experiment setup and selected modules.prepare to create init/ directory and config_params.py template.info to display selected module details.HYPOTHESIS.md, EXPERIMENT.md, SIM_SETTINGS.json, and user_data/ files.Generate config_params.py that:
json, pathlib, csv)user_data/ directoryinit_config.json and steps.yaml to stdoutDelegate to subagent when: the config involves many agents (10+) or complex step sequences (questionnaires, multi-phase interventions). Dispatch a subagent with all gathered Phase 1 context, instructing it to read subagent-prompts/config-generator.md and produce the script.
Do NOT delegate: simple configs with 1-3 agents and standard run/ask/intervene steps.
run to execute config_params.py and write output files.check to validate generated files (instantiates modules to verify).See references/config-structure.md for the full schema of init_config.json, steps.yaml, and the questionnaire step type.
PersonAgent, not person_agent).kwargs.agent_id must equal kwargs.id.user_data/ files before generating configuration.questions list; each question needs id and prompt.choices; validation will fail otherwise.After generating configuration, update EXPERIMENT.md with configuration parameters and agent selection criteria.
After config.py check passes:
bash$PYTHON .agentsociety/bin/ags.py research-pipeline update-stage experiment_config completed
Other measured skills in the registry, with their headline benchmark lift.