Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7285e07
gepa minimal
parthkotwal Dec 4, 2025
6a5d322
gepa test with shell pytest arguments
parthkotwal Dec 5, 2025
af1f454
optimize_gepa.py runs successfully between BFCL and dspy's GEPA api
parthkotwal Dec 17, 2025
54fdf40
add filler files to utils/
parthkotwal Dec 17, 2025
77744c8
minimal version of GEPA ran
parthkotwal Dec 18, 2025
435a538
tried summarizing behavior
parthkotwal Dec 23, 2025
bb4dd4b
GEPA successfully works on BFCL Agent runs
parthkotwal Dec 24, 2025
396c173
GEPA experiment outputs more logs
parthkotwal Dec 27, 2025
9a8876c
Making GEPA-BFCL experiment more readable. Started with logging_utils
parthkotwal Dec 27, 2025
bb5fabf
Finished logging and scoring utils
parthkotwal Dec 28, 2025
682b5a4
working on BFCLAgent forward
parthkotwal Dec 28, 2025
dd53027
GEPA on BFCL package runs correctly
parthkotwal Dec 29, 2025
84aa5d1
Metric doesn’t include involved classes, excluded functions, or const…
parthkotwal Jan 4, 2026
ba39212
bfcl test cases can now be shuffled and run on an entire subset
parthkotwal Jan 4, 2026
cbe74cb
removed soft score
parthkotwal Jan 4, 2026
a5cf3ca
agent and reflection LMs are separated
parthkotwal Jan 6, 2026
a6d3922
Enhancing how models are separated
parthkotwal Jan 12, 2026
8fe0dda
Merge branch 'main' into parth-branch
parthkotwal Jan 14, 2026
3f0d69a
Specific test cases/range can be specified in args
parthkotwal Jan 13, 2026
757eaa5
Log how each run of a test case is mapped to which instruction
parthkotwal Jan 13, 2026
7b8ad05
RunContext wasn't being preserved across files
parthkotwal Jan 13, 2026
c2b8201
Evaluation output is sent to the model and logged. Ready for final run
parthkotwal Jan 15, 2026
60a1450
Initial scripts for candidate analysis
parthkotwal Jan 17, 2026
a686189
Updated candidate analysis to take in output_dir argument and easy to…
parthkotwal Jan 19, 2026
1fe6fff
Add new analysis scripts and enhance candidate snapshot processing
parthkotwal Jan 22, 2026
11f29b4
first two expert runs of GEPA on BFCL
parthkotwal Jan 28, 2026
eefd3cd
C is still lagging behind
parthkotwal Jan 28, 2026
9b1d3d5
clean up gepa files
parthkotwal Feb 5, 2026
72f308a
external feedback is not being invoked
parthkotwal Feb 9, 2026
4ed8ef8
Configured within fastagent.config.yaml, agent sees the message
parthkotwal Feb 18, 2026
dc882d7
finding error in agent feedback
parthkotwal Feb 25, 2026
b99982a
about to start feedback run
parthkotwal May 2, 2026
25a6529
feedback experiment done
parthkotwal May 15, 2026
f2443fd
Consolidate experiment files under experiments/parth/
parthkotwal Jun 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ fastagent.secrets.yaml
outputs/
output*/
results/
experiments/
fastagent.jsonl
test_script_*.py
.claude/
Expand All @@ -64,3 +63,7 @@ site/

# Appworld data
data/

/utils/

util_tools/
82 changes: 82 additions & 0 deletions experiments/parth/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Parth's Experiment Work

Experiments run using the WAGS framework during Spring 2026.

## Directory structure

```
experiments/parth/
├── gepa/ # GEPA prompt optimization on BFCL
│ ├── run.py # Orchestrator: runs GEPA optimization loop
│ ├── agent.py # BFCLAgent wrapper for DSPy
│ ├── metrics.py # BFCL metric with feedback for GEPA scoring
│ ├── scoring_utils.py # Score parsing and aggregation helpers
│ ├── data_utils.py # BFCL test case loading and filtering
│ ├── env_utils.py # Model/env validation
│ ├── logging_utils.py # JSONL logging, TeeIO, git info capture
│ ├── gepa_minimal.py # Minimal standalone GEPA example
│ └── gepa_overview.txt # Design notes on the optimization loop
└── feedback_ablation/ # Runtime feedback ablation study
├── run_experiment.py # Runs one (subset x condition) cell via pytest
├── analyze_results.py # Builds results dataframe + summary tables
├── cases.yaml # Per-case trigger configs and feedback messages
├── baseline_stability.yaml # Baseline pass/fail/flaky labels per case
└── configs/ # 28 JSON config files (A-G x 4 conditions)
├── A_specific.json
├── A_vague.json
├── ...
└── G_verbose.json
```

## Feedback ablation

Studies how different styles of runtime feedback (specific, vague, verbose, null)
affect agent recovery on BFCL multi-turn test cases across 7 failure-pattern
subsets (A-G). Uses the `ExternalFeedbackMiddleware` in `src/wags/middleware/`.

### Running an experiment cell

```bash
python experiments/parth/feedback_ablation/run_experiment.py \
--subset A --condition specific

# Dry-run to inspect the resolved config and pytest command:
python experiments/parth/feedback_ablation/run_experiment.py \
--subset A --condition specific --dry-run
```

### Analyzing results

```bash
python experiments/parth/feedback_ablation/analyze_results.py
```

Produces `results_dataframe.csv` (in the feedback_ablation directory) and prints
recovery rate, disruption rate, and behavioral response tables.

## GEPA

Guided Expert Policy Aggregation applied to BFCL instruction optimization.
Uses DSPy's `GEPA` teleprompt to iteratively refine agent instructions.

```bash
python -m experiments.parth.gepa.run \
--instruction-file path/to/instruction.txt \
--output-dir outputs/gepa_on_bfcl
```

## Experiment outputs

Raw outputs are gitignored and stored locally under `outputs/` at the repo root:

- `outputs/feedback/` — feedback ablation results (A-G x conditions + baselines)
- `outputs/gepa-expert/` — GEPA optimization artifacts
- `outputs/D_trigger/` — precondition-gated trigger experiment
- `outputs/brake_feedback/` — brake-only feedback pilot

Canonical copies are on Google Drive: *(link TBD)*

## Quarter summary

*(link TBD)*
Loading