-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathbenchmark_textgames_jan24.operationalized.simple.claude-3-5-sonnet-20241022.conditioned.json
More file actions
5767 lines (5767 loc) · 490 KB
/
Copy pathbenchmark_textgames_jan24.operationalized.simple.claude-3-5-sonnet-20241022.conditioned.json
File metadata and controls
5767 lines (5767 loc) · 490 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[
{
"research_idea_name": "simulation-confidence-analysis",
"research_idea_long_description": "Study whether LLMs can accurately assess their confidence in state predictions, and whether this confidence correlates with actual accuracy. This could enable more reliable simulation by identifying when predictions are likely to be incorrect.",
"research_idea_short_description": "Investigate LLM ability to assess confidence in state predictions and correlation with accuracy.",
"research_idea_hypothesis": "LLM confidence scores will correlate with prediction accuracy, allowing for identification of potentially incorrect predictions.",
"research_idea_variables": "Independent variables: State complexity, Game type, Property type. Dependent variables: Prediction accuracy, Confidence score. Control: Same LLM, same states, same examples.",
"research_idea_metric": "Correlation between confidence scores and accuracy. Precision/recall for identifying incorrect predictions using confidence thresholds.",
"research_idea_pilot": "Test on simple CookingWorld scenarios, focusing on boolean property predictions with confidence scores.",
"research_idea_design_prompt": "Create an experiment to analyze LLM confidence in state predictions. Use TextWorldExpress to generate 200 state transitions. For each prediction, prompt GPT-4 to provide both the predicted state and a confidence score (0-100) for each property change. Log all predictions, confidence scores, and ground truth. Calculate correlation between confidence and accuracy. Generate ROC curves for using confidence to predict correctness. Use bootstrap resampling to compute confidence intervals. Create visualizations showing relationship between confidence and accuracy across different property types.",
"research_idea_codeblocks": [
"TextWorldExpress API Example",
"Non-parametric Bootstrap Resampling",
"Logger/Debugging",
"MatPlotLib Line Plot",
"LLM example through proxy server"
],
"research_idea_required_code_and_resources": [],
"research_idea_external_requirements": [],
"metadata": {
"date_generated": "2024-12-20 15:46:21",
"inspiring_paper_ids": [
"2406.06485"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,
"additional_conditioning_text": "",
"batch": false,
"batch_name": null,
"ideator_name": "",
"cost_for_this_idea": 0.0,
"time_seconds_for_this_idea": 0.0,
"simplified": false
},
"id": "unittest-2",
"scores": {
"score": 1,
"num_unknown_components": 0
},
"rating": "very interesting",
"rating_notes": "Unit test -- this one turned up interesting results on a pilot experiment. Measuring prediction accuracy could be done using LLM-as-a-judge (e.g. have the model predict the observation, then have another LLM compare this generated observation to the gold observation, counting (perhaps by sentence, or by item) the number of things that are the same, and the number that are different, arriving at a score between 0-1 for each state prediction. Similarly, do to the task well, the LLM doing the state prediction task should probably have at least the last 2-3 observations/actions in its prompt, to provide some context.",
"operationalization": {
"success": true,
"operationalization_method": "simple",
"operationalization_model": "claude-3-5-sonnet-20241022",
"operationalization_extra_conditioning_text": "Please use `gpt-4o-mini` for all LLM calls, because it's fast and inexpensive.",
"operationalization_include_expert_notes": false,
"operationalization_expert_notes": null,
"operationalization_description": "Please create an experiment to analyze LLM confidence in state predictions using TextWorldExpress CookingWorld environments. The experiment should have three modes (MINI_PILOT, PILOT, and FULL_EXPERIMENT) controlled by a global PILOT_MODE variable.\n\nFor MINI_PILOT:\n- Generate 5 CookingWorld episodes with 10 steps each\n- Use simple environment parameters: numLocations=3, numIngredients=2, numDistractorItems=2, includeDoors=0\n- Episodes should come from training set (seeds 1-5)\n\nFor PILOT:\n- Generate 20 CookingWorld episodes with 25 steps each\n- Environment parameters: numLocations=5, numIngredients=3, numDistractorItems=5, includeDoors=0\n- Episodes should come from training set (seeds 1-20)\n\nFor FULL_EXPERIMENT:\n- Generate 200 CookingWorld episodes with 50 steps each\n- Environment parameters: numLocations=11, numIngredients=5, numDistractorItems=10, includeDoors=1\n- Episodes should be split between training (160), dev (20), and test (20) sets\n\nFor each step in each episode:\n1. Record the current state observation and action taken\n2. Get the ground truth next state from TextWorldExpress\n3. Prompt gpt-4o-mini to predict the next state AND provide confidence scores, using this format prompt:\n 'Given this observation: [OBSERVATION]\\nAnd this action was taken: [ACTION]\\nPredict the next observation, and provide a confidence score (0-100) for your prediction.\\nRespond in JSON format between code blocks (```), with two keys: \"predicted_observation\" (string) and \"confidence\" (integer 0-100).'\n4. Log the prediction, confidence score, and ground truth\n\nAnalysis for each pilot mode:\n1. Calculate prediction accuracy by comparing predicted vs ground truth observations\n2. Generate scatter plot of confidence vs accuracy\n3. Calculate Pearson correlation between confidence and accuracy\n4. Use bootstrap resampling to compute 95% confidence intervals for the correlation\n5. Create histograms of confidence scores for correct vs incorrect predictions\n\nThe experiment should:\n1. Start in MINI_PILOT mode\n2. If successful, proceed to PILOT mode\n3. Stop after PILOT mode (await human verification before FULL_EXPERIMENT)\n4. Log all steps, predictions, and analysis results\n5. Generate plots as PDFs\n6. Report summary statistics and bootstrap analysis results\n\nExpected outputs:\n1. Log file with all raw data\n2. PDF plots of confidence vs accuracy relationships\n3. Summary statistics including correlations and confidence intervals\n4. Bootstrap resampling analysis results\n\nNote: Use gpt-4o-mini for all LLM calls as specified in the conditioning instructions.",
"operationalization_codeblocks": [
"TextWorldExpress API Example",
"Non-parametric Bootstrap Resampling",
"Logger/Debugging",
"MatPlotLib Line Plot",
"LLM example through proxy server"
],
"operationalization_cost": 0.090426,
"operationalizatoin_time_seconds": 20.68574571609497
}
},
{
"research_idea_name": "simple-memory-pruning",
"research_idea_long_description": "Compare two simple memory pruning strategies (time-based and frequency-based) in a ScienceWorld agent. This simplified study focuses on basic memory management approaches to understand their impact on agent performance in a controlled setting, using a small set of specific temperature-related tasks.",
"research_idea_short_description": "Compare time-based versus frequency-based memory pruning strategies in a ScienceWorld agent.",
"research_idea_hypothesis": "Frequency-based memory pruning (removing least-used memories) will lead to better task performance than time-based pruning (removing oldest memories) in temperature-related tasks.",
"research_idea_variables": "Independent variables: (1) Memory pruning strategy (time-based, frequency-based, no pruning). Controlled variables: (1) Memory size limit (10 items), (2) Task type (boiling water only), (3) Number of episodes (20).",
"research_idea_metric": "Primary metrics: (1) Task success rate, (2) Average steps to completion. Secondary metric: (1) Number of memory retrievals before successful task completion.",
"research_idea_baselines": "1. Agent with no memory pruning (keeping all memories until limit), 2. Agent with random memory pruning",
"research_idea_pilot": "Test on a single ScienceWorld task (boiling water) with 5 episodes per strategy, measuring basic success/failure and steps to completion.",
"research_idea_design_prompt": "Implement a simple agent with basic memory pruning:\n\n1. Create a basic memory system that stores:\n - Action taken\n - Observation received\n - Timestamp\n - Usage count\n\n2. Implement two pruning strategies:\n - Time-based: Remove oldest memories when limit reached\n - Frequency-based: Remove least-used memories when limit reached\n\n3. Test on ScienceWorld boiling water task:\n - 20 episodes per strategy\n - Maximum 30 steps per episode\n - Memory limit of 10 items\n\n4. For each episode, record:\n - Success/failure\n - Steps taken\n - Number of memory retrievals\n\n5. Analysis:\n - Calculate average success rate\n - Calculate average steps to completion\n - Use bootstrap resampling to compare strategies\n\nSave all results in a JSON file with the following structure:\n{\n 'strategy': strategy_name,\n 'episode': episode_number,\n 'success': boolean,\n 'steps': number,\n 'retrievals': number\n}",
"research_idea_codeblocks": [
"ScienceWorld API Example",
"Logger/Debugging",
"Non-parametric Bootstrap Resampling"
],
"research_idea_required_code_and_resources": [
{
"name": "ScienceWorld",
"description": "The ScienceWorld environment (boiling water task)",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Simple Memory Manager",
"description": "Basic system for storing and retrieving memories with timestamps and usage counts",
"where": "build",
"effort": "moderate"
},
{
"name": "Basic Pruning Strategies",
"description": "Implementation of time-based and frequency-based pruning",
"where": "build",
"effort": "minor"
},
{
"name": "Logger",
"description": "Basic logging system for tracking episode results",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Bootstrap Analysis",
"description": "Statistical comparison of strategies",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Random Baseline",
"description": "Implementation of random memory pruning baseline",
"where": "build",
"effort": "minor"
}
],
"research_idea_external_requirements": [
"numpy (for basic calculations)",
"json (for storing results)",
"pandas (for organizing results)"
],
"metadata": {
"date_generated": "2025-01-23 16:15:47",
"inspiring_paper_ids": [
"2106.09578",
"2310.10134"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,
"additional_conditioning_text": "",
"batch": false,
"batch_name": null,
"ideator_name": "BasicIdeator-v1",
"cost_for_this_idea": 0.1797,
"time_seconds_for_this_idea": 33.649,
"simplified": true
},
"id": "idea-807-simplified",
"scores": {
"score": 13,
"num_unknown_components": 0
},
"rating": "could work",
"rating_notes": "It could work, and investigating pruning strategies is interesting, but it's underspecified -- it doesn't mention what agent would be created that uses memory. It could (for example) augment a ReAct agent with a memory (that's provided in the prompt), and then investigate different pruning strategies for that memory. The metric should not be task completion (since task success is hard and rarely non-zero on this task), but rather the task score, which provides a partial measure of task progress (with a value between zero and one). ",
"operationalization": {
"success": true,
"operationalization_method": "simple",
"operationalization_model": "claude-3-5-sonnet-20241022",
"operationalization_extra_conditioning_text": "Please use `gpt-4o-mini` for all LLM calls, because it's fast and inexpensive.",
"operationalization_include_expert_notes": false,
"operationalization_expert_notes": null,
"operationalization_description": "Please implement a memory-augmented ReAct agent experiment in ScienceWorld to compare different memory pruning strategies. The experiment should be implemented with three pilot modes (controlled by a global PILOT_MODE variable):\n\nPILOT MODES:\n1. MINI_PILOT: 2 episodes per strategy, 10 steps max per episode\n2. PILOT: 5 episodes per strategy, 20 steps max per episode\n3. FULL_EXPERIMENT: 20 episodes per strategy, 30 steps max per episode\n\nThe implementation should proceed as follows:\n\n1. Create a MemoryManager class that stores memories as dictionaries with fields:\n - action: str (the action taken)\n - observation: str (the observation received)\n - timestamp: int (step number when stored)\n - usage_count: int (number of times retrieved)\n - memory_limit: int (10 items for all modes)\n\n2. Implement three pruning strategies as subclasses:\n - TimeBasedMemory: Removes oldest memories when limit reached\n - FrequencyBasedMemory: Removes least-used memories when limit reached\n - RandomMemory: Randomly selects memories to remove (baseline)\n - NoMemoryPruning: Keeps first N memories, discards rest (baseline)\n\n3. Augment the ReAct agent template with memory:\n - Add memory storage after each action\n - Add memory retrieval in thinking step\n - Use gpt-4o-mini for all LLM calls\n - Prompt the agent to use its memory when planning actions\n\n4. Test on ScienceWorld boiling water task:\n - Use task_num=0 (boiling task)\n - Use simplification_str='easy'\n - Record per episode:\n * Final score (not binary success/failure)\n * Steps taken\n * Number of memory retrievals\n * Memory statistics (size, prunes)\n\n5. Data Collection:\n Save results in a JSON file with structure:\n {\n 'strategy': str, // pruning strategy name\n 'episode': int, // episode number\n 'score': float, // final score (0-1)\n 'steps': int, // steps taken\n 'retrievals': int, // number of memory retrievals\n 'num_prunes': int // number of times memory was pruned\n }\n\n6. Analysis:\n - Calculate mean/std of scores per strategy\n - Use bootstrap resampling to compare:\n * Frequency vs Time-based\n * Each strategy vs baselines\n - Generate summary statistics for memory usage\n\n7. Implementation Notes:\n - Start with MINI_PILOT mode\n - Log all major events/errors\n - Stop after PILOT mode (human verification required)\n - Save agent trajectories for manual inspection\n\nThe experiment should focus on measuring how different memory pruning strategies affect the agent's ability to make progress on the boiling water task, as measured by the task score (not binary success/failure).",
"operationalization_codeblocks": [
"ScienceWorld API Example",
"Logger/Debugging",
"Non-parametric Bootstrap Resampling",
"ReAct Agent Example",
"LLM example through proxy server"
],
"operationalization_cost": 0.078567,
"operationalizatoin_time_seconds": 23.1184983253479
}
},
{
"research_idea_name": "simple-property-verification",
"research_idea_long_description": "Create a focused system that verifies a small subset of object properties (specifically temperature and state-of-matter properties) in ScienceWorld against ConceptNet knowledge. The system will track discrepancies between ConceptNet's predictions and actual observations in the environment, focusing on a carefully curated set of common objects.",
"research_idea_short_description": "System to verify basic physical properties of objects against ConceptNet knowledge in ScienceWorld",
"research_idea_hypothesis": "ConceptNet's temperature and state-of-matter properties for common objects contain inaccuracies that can be identified through systematic environmental interaction",
"research_idea_variables": "Independent variables: (1) Knowledge source (ConceptNet vs. observed). Dependent variables: (1) Property prediction accuracy. Control variables: Set of test objects, interaction methods, environment parameters",
"research_idea_metric": "Primary: Accuracy of ConceptNet predictions vs. ground truth observations in ScienceWorld for temperature and state-of-matter properties",
"research_idea_baselines": "1. Raw ConceptNet predictions, 2. Random baseline predictions",
"research_idea_pilot": "Test on 10 common objects in ScienceWorld (e.g., water, ice, steam) with well-defined temperature and state properties",
"research_idea_design_prompt": "Create a focused verification system: (1) Select 10 common objects from ScienceWorld that have clear temperature and state-of-matter properties. (2) Extract relevant ConceptNet predictions about these properties. (3) Create a simple agent that: a) Locates each object, b) Uses basic ScienceWorld actions (examine, feel) to determine object properties, c) Records observations. (4) Compare ConceptNet predictions to observed properties. (5) Run 50 verification episodes. (6) Generate confusion matrices for property predictions. (7) Create visualizations comparing predicted vs. observed properties. (8) Use bootstrap resampling to test if differences are significant.",
"research_idea_codeblocks": [
"ScienceWorld API Example",
"ConceptNet Knowledge Base",
"MatPlotLib Line Plot",
"Non-parametric Bootstrap Resampling",
"Logger/Debugging"
],
"research_idea_required_code_and_resources": [
{
"name": "ScienceWorld Environment",
"description": "The ScienceWorld environment",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "ConceptNet Interface",
"description": "Interface to access ConceptNet knowledge (read-only)",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Simple Verification Agent",
"description": "Agent that checks object properties",
"where": "build",
"effort": "moderate"
},
{
"name": "Property Extractor",
"description": "System to extract temperature/state properties from ConceptNet",
"where": "build",
"effort": "minor"
},
{
"name": "Logger",
"description": "System for logging observations",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Statistical Analysis",
"description": "Bootstrap analysis code",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Performance Plotter",
"description": "System for plotting confusion matrices and accuracy metrics",
"where": "existing codeblock",
"effort": "minor"
}
],
"research_idea_external_requirements": [
"numpy (for numerical operations)",
"matplotlib (for plotting)",
"pandas (for data analysis)",
"scikit-learn (for confusion matrices)",
"json (for knowledge base storage)",
"tqdm (for progress bars)"
],
"metadata": {
"date_generated": "2025-01-23 16:03:55",
"inspiring_paper_ids": [
"1908.10909",
"2005.00811"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,
"additional_conditioning_text": "",
"batch": false,
"batch_name": null,
"ideator_name": "BasicIdeator-v1",
"cost_for_this_idea": 0.144,
"time_seconds_for_this_idea": 30.947,
"simplified": true
},
"id": "idea-702-simplified",
"scores": {
"score": 12,
"num_unknown_components": 0
},
"rating": "could work",
"rating_notes": "It's kind of interesting, and an unusual idea (using a virtual environment to verify the properties in a knowledge graph). ",
"operationalization": {
"success": true,
"operationalization_method": "simple",
"operationalization_model": "claude-3-5-sonnet-20241022",
"operationalization_extra_conditioning_text": "Please use `gpt-4o-mini` for all LLM calls, because it's fast and inexpensive.",
"operationalization_include_expert_notes": false,
"operationalization_expert_notes": null,
"operationalization_description": "Please create an experiment to verify ConceptNet's temperature and state-of-matter property predictions against ScienceWorld observations. The experiment should have three pilot modes (MINI_PILOT, PILOT, FULL_EXPERIMENT) defined as a global variable PILOT_MODE.\n\nPilot Modes:\n- MINI_PILOT: Test 3 objects (water, ice, steam) for 2 episodes each, 10 steps per episode\n- PILOT: Test 10 objects for 5 episodes each, 25 steps per episode\n- FULL_EXPERIMENT: Test 50 objects for 50 episodes each, 100 steps per episode\n\nThe experiment should:\n\n1. Initialize environment and knowledge bases:\n- Use ScienceWorld API with default parameters\n- Load ConceptNet knowledge base\n- Initialize logger for detailed logging\n- Set random seed for reproducibility\n\n2. Define test objects and properties:\n- For MINI_PILOT: Use ['water', 'ice', 'steam']\n- For PILOT: Add ['metal', 'wood', 'glass', 'oil', 'sand', 'rock', 'plastic']\n- Properties to check: temperature (cold/cool/room-temp/warm/hot) and state (solid/liquid/gas)\n\n3. Extract ConceptNet predictions:\n- Create a property extractor that queries ConceptNet for:\n * Temperature using relations: ['HasProperty', 'AtLocation']\n * State using relations: ['IsA', 'HasProperty']\n- Map ConceptNet terms to standardized categories (e.g., 'IsA liquid' -> state:liquid)\n\n4. Create verification agent:\n- Implement simple agent that:\n * Locates target object\n * Uses 'examine' and 'feel' actions\n * Records temperature/state observations\n- Store results as {object, property_type, conceptnet_prediction, observed_value}\n\n5. Run experiments:\n- For each object:\n * Get ConceptNet predictions\n * Run N episodes (N depends on PILOT_MODE)\n * Record predictions vs observations\n- Log all steps, actions, and observations\n\n6. Analysis:\n- Generate confusion matrices for temperature and state predictions\n- Calculate accuracy metrics (precision, recall, F1)\n- Use bootstrap resampling to test if ConceptNet predictions are significantly better than random\n- Create visualization comparing predicted vs observed properties\n\n7. Output:\n- Save all results to JSON files\n- Generate plots:\n * Confusion matrices\n * Accuracy by property type\n * Prediction vs observation agreement rates\n\nSpecific Requirements:\n1. Use gpt-4o-mini for any LLM calls\n2. Run MINI_PILOT first, then if successful, run PILOT\n3. Stop after PILOT - do not run FULL_EXPERIMENT\n4. Log all steps extensively using the Logger\n5. Include clear error handling and status messages\n\nExpected Runtime:\n- MINI_PILOT: ~5 minutes\n- PILOT: ~30 minutes\n- FULL_EXPERIMENT: ~8 hours (not to be run automatically)\n\nSuccess Criteria:\n- All code runs without errors\n- Results are properly logged and analyzed\n- Statistical comparisons completed\n- Visualizations generated\n- Clear indication of ConceptNet prediction accuracy",
"operationalization_codeblocks": [
"ScienceWorld API Example",
"ConceptNet Knowledge Base",
"MatPlotLib Line Plot",
"Non-parametric Bootstrap Resampling",
"Logger/Debugging"
],
"operationalization_cost": 0.096429,
"operationalizatoin_time_seconds": 23.47767996788025
}
},
{
"research_idea_name": "hierarchical-elimination",
"research_idea_long_description": "Extend PET's elimination module to work hierarchically, first eliminating irrelevant high-level categories (e.g., rooms, areas) before filtering specific objects. This could make the elimination process more efficient and potentially more accurate by considering context at multiple levels.",
"research_idea_short_description": "Create a hierarchical filtering system that eliminates irrelevant information at multiple levels of abstraction.",
"research_idea_hypothesis": "Hierarchical elimination will be more efficient and accurate than flat elimination, particularly in complex environments with many objects and areas.",
"research_idea_variables": "Independent variables: Environment complexity (number of objects/rooms), Task complexity (number of required steps). Dependent variables: Filtering accuracy, Computation time. Control variables: Model architecture, Environment parameters.",
"research_idea_metric": "Primary metrics: (1) Precision/Recall of relevant object identification (%), (2) Computation time for filtering (seconds), (3) Task completion rate (%). Secondary metrics: (1) Accuracy at different hierarchy levels (%), (2) Peak memory usage (MB).",
"research_baselines": "1. Original PET elimination module, 2. Random elimination, 3. No elimination",
"research_idea_pilot": "Test on ScienceWorld with only 2-3 rooms and a limited set of objects, focusing on simple tasks like 'find a tool'",
"research_idea_design_prompt": "Implement a hierarchical elimination system for filtering irrelevant information in environment observations. The system should work in two stages: (1) High-level elimination: Filter out irrelevant rooms/areas using Macaw-11b with the prompt template 'Given the task to [TASK], is [ROOM] likely to contain useful items?'. (2) Low-level elimination: For remaining areas, filter individual objects using the prompt 'Given the task to [TASK], is [OBJECT] likely to be useful?'. Use a threshold of 0.4 for both stages. Test on ScienceWorld environment with default parameters. Log all elimination decisions and their impact on task completion to a JSON file. Generate bar plots comparing filtering accuracy at both levels, and line plots showing how filtering affects task completion time.",
"research_idea_codeblocks": [
"ScienceWorld API Example",
"LLM example through proxy server",
"Logger/Debugging",
"MatPlotLib Line Plot"
],
"research_idea_required_code_and_resources": [
{
"name": "ScienceWorld Environment",
"description": "The ScienceWorld environment",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Macaw-11b Interface",
"description": "Interface to Macaw-11b for QA",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Hierarchical Eliminator",
"description": "System for hierarchical elimination",
"where": "build",
"effort": "major"
},
{
"name": "Performance Logger",
"description": "System to track elimination decisions and performance",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Visualization Tools",
"description": "Tools for visualizing the hierarchical elimination process",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Memory Profiler",
"description": "System to track memory usage",
"where": "build",
"effort": "minor"
}
],
"research_idea_external_requirements": [
"numpy (for data processing)",
"matplotlib (for plotting)",
"pandas (for data management)",
"tqdm (for progress bars)",
"memory_profiler (for memory tracking)",
"psutil (for system resource monitoring)"
],
"metadata": {
"date_generated": "2025-01-23 15:38:19",
"inspiring_paper_ids": [
"2305.02412",
"2305.17390"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,
"additional_conditioning_text": "",
"batch": false,
"batch_name": null,
"ideator_name": "BasicIdeator-v1",
"cost_for_this_idea": 0.1317,
"time_seconds_for_this_idea": 30.2731,
"simplified": true
},
"id": "idea-466",
"scores": {
"score": 12,
"num_unknown_components": 0
},
"rating": "could work",
"rating_notes": "Could work -- filtering out irrelevant information to help a model perform better. But it lists specific models (e.g. Macaw) that might be hard to use -- it'd have to be adapted to what it has available (e.g. gpt-4 based models). Should not use task completion rate since it's hard for most agents to get non-zero task completion scores -- should use the regular task score (0-1), which gives non-zero values for partial task success.",
"operationalization": {
"success": true,
"operationalization_method": "simple",
"operationalization_model": "claude-3-5-sonnet-20241022",
"operationalization_extra_conditioning_text": "Please use `gpt-4o-mini` for all LLM calls, because it's fast and inexpensive.",
"operationalization_include_expert_notes": false,
"operationalization_expert_notes": null,
"operationalization_description": "Please implement a hierarchical filtering experiment in ScienceWorld that compares hierarchical versus flat elimination approaches. The experiment should have three conditions:\n\n1. Hierarchical elimination (experimental condition)\n2. Flat elimination (baseline 1)\n3. No elimination (baseline 2)\n\nThe experiment should use the following global settings:\nPILOT_MODE = \"MINI_PILOT\" # Options: MINI_PILOT, PILOT, FULL_EXPERIMENT\n\nExperiment Parameters by Mode:\nMINI_PILOT:\n- 3 episodes\n- Max 20 steps per episode\n- First 3 variations of task 0 ('boil')\n- Training set only\n\nPILOT:\n- 25 episodes\n- Max 50 steps per episode\n- First 25 variations, split between training (20) and dev (5)\n- Tasks 0-2 ('boil', 'change-the-state-of-matter-of', 'chemistry-mix')\n\nFULL_EXPERIMENT:\n- 100 episodes\n- Max 100 steps per episode\n- All variations, properly split between train/dev/test\n- All tasks\n\nImplementation Details:\n\n1. Hierarchical Elimination:\n- Stage 1 (Room Level): Use gpt-4o-mini with prompt template:\n \"Given the task '[TASK]', is the room/area '[ROOM]' likely to contain useful items? Respond with a number between 0 and 1, where 1 means definitely useful.\"\n- Stage 2 (Object Level): For remaining rooms, use gpt-4o-mini with:\n \"Given the task '[TASK]', is the object '[OBJECT]' likely to be useful? Respond with a number between 0 and 1.\"\n- Use threshold 0.4 for both stages\n\n2. Flat Elimination (Baseline 1):\n- Single stage using gpt-4o-mini with prompt:\n \"Given the task '[TASK]', is '[ITEM]' (which could be room or object) likely to be useful? Respond with a number between 0 and 1.\"\n- Use threshold 0.4\n\n3. No Elimination (Baseline 2):\n- Process all rooms/objects without filtering\n\nLogging Requirements:\n1. For each episode:\n - Log full trajectory (observation, score, valid actions, chosen action)\n - Log elimination decisions (what was kept/filtered) at each stage\n - Log computation time for filtering process\n - Log final score (0-1 scale)\n\n2. For each condition:\n - Calculate precision/recall of relevant object identification\n - Track computation time\n - Record scores\n\nVisualization Requirements:\n1. Generate line plots showing:\n - Average score vs episode number for each condition\n - Average computation time vs episode number\n2. Generate bar plots showing:\n - Precision/recall for each condition\n - For hierarchical condition: accuracy at room vs object level\n\nStatistical Analysis:\n- Use bootstrap resampling to compare performance between conditions\n- Report p-values for key metrics\n\nOutput Requirements:\n1. Save all plots as PDFs\n2. Generate a results.json file with summary statistics\n3. Log all raw data and decisions for later analysis\n\nIMPORTANT: Start with MINI_PILOT mode. If successful, proceed to PILOT mode. Stop before FULL_EXPERIMENT mode - this requires manual verification of pilot results before proceeding.\n\nNote: All LLM calls must use gpt-4o-mini through the proxy server interface.",
"operationalization_codeblocks": [
"ScienceWorld API Example",
"LLM example through proxy server",
"Logger/Debugging",
"MatPlotLib Line Plot",
"Non-parametric Bootstrap Resampling"
],
"operationalization_cost": 0.078969,
"operationalizatoin_time_seconds": 24.18023705482483
}
},
{
"research_idea_name": "simple-graph-cooking-simulation",
"research_idea_long_description": "Investigate whether maintaining a simple, static knowledge graph of cooking relationships in CookingWorld (specifically ingredient combinations and their results) improves an LLM's ability to predict valid cooking actions. The graph will be pre-built from game rules and used as additional context during prediction, rather than being dynamically updated.",
"research_idea_short_description": "Test if a static cooking knowledge graph improves LLM action prediction in CookingWorld tasks.",
"research_idea_hypothesis": "Providing a pre-built knowledge graph of cooking relationships as additional context will improve an LLM's ability to predict valid cooking actions in CookingWorld tasks.",
"research_idea_variables": "Independent variable: Presence of knowledge graph context (with vs without). Control variables: Game environment (CookingWorld), task difficulty, LLM model, prompt template. Dependent variable: Action prediction accuracy.",
"research_idea_metric": "Primary: Percentage of predicted actions that are valid cooking steps. Secondary: Task completion rate, number of steps to completion.",
"research_idea_baselines": "1. Standard LLM prediction without graph context, 2. Random action selection baseline",
"research_idea_pilot": "Test on 5 simple CookingWorld tasks involving basic recipes (2-3 ingredients) with a small knowledge graph (~20 nodes) capturing only direct ingredient combinations.",
"research_idea_design_prompt": "Create a simple graph-augmented prediction system:\n1. Build static knowledge graph:\n - Extract basic cooking rules from CookingWorld\n - Create nodes for ingredients and results\n - Create edges for valid combinations\n - Save in DOT format\n2. Implement prediction system:\n - Load knowledge graph\n - For each prediction:\n a. Extract current game state\n b. Find relevant subgraph (ingredients in inventory)\n c. Include subgraph in LLM prompt\n d. Get action prediction\n3. Evaluation:\n - Run 50 episodes each (with/without graph)\n - Record valid action rate\n - Track task completion\n - Save results as JSON\n4. Analysis:\n - Calculate accuracy statistics\n - Plot performance comparison\n - Generate example visualizations\nSpecifically:\n- Use only basic CookingWorld tasks\n- Focus on ingredient combination predictions\n- Save all predictions and outcomes\n- Generate clear comparison plots",
"research_idea_codeblocks": [
"TextWorldExpress API Example",
"LLM example through proxy server",
"DOT Graphviz Graph",
"Logger/Debugging",
"MatPlotLib Line Plot"
],
"research_idea_required_code_and_resources": [
{
"name": "TextWorldExpress API",
"description": "API for running CookingWorld environments",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "LLM Interface",
"description": "Interface for making LLM calls",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "GPT-4 Model",
"description": "Main LLM model",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Static Graph Builder",
"description": "Simple script to create static knowledge graph from CookingWorld rules",
"where": "build",
"effort": "moderate"
},
{
"name": "Graph Visualizer",
"description": "DOT/Graphviz visualization system",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Results Logger",
"description": "Logging system for predictions and results",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Results Plotter",
"description": "Plotting system for visualizing results",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Bootstrap Analysis",
"description": "Statistical comparison of with/without graph conditions",
"where": "existing codeblock",
"effort": "minor"
}
],
"research_idea_external_requirements": [
"json (for handling state representations)",
"numpy (for numerical operations)",
"networkx (for basic graph operations)"
],
"metadata": {
"date_generated": "2025-01-23 16:20:15",
"inspiring_paper_ids": [
"2001.08868",
"2406.06485"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,
"additional_conditioning_text": "",
"batch": false,
"batch_name": null,
"ideator_name": "BasicIdeator-v1",
"cost_for_this_idea": 0.1701,
"time_seconds_for_this_idea": 33.19,
"simplified": true
},
"id": "idea-852-simplified",
"scores": {
"score": 11,
"num_unknown_components": 0
},
"rating": "could work",
"rating_notes": "This one is kind of interesting -- i.e., if you provide the gold recipe, gold interactions (e.g. \"have knife and ingredient in inventory + dice <ingredient> = ingredient is diced\") and how to cook things (e.g. \"ingredient in inventory + in location of barbeque + action \"barbeque <ingredient>\" = ingredient is barbequed) to the LLM in its prompt, will it actually be able to perform the task? (Though it's missing an architecture to try this on, like a ReAct agent -- I'd try that architecture).",
"operationalization": {
"success": true,
"operationalization_method": "simple",
"operationalization_model": "claude-3-5-sonnet-20241022",
"operationalization_extra_conditioning_text": "Please use `gpt-4o-mini` for all LLM calls, because it's fast and inexpensive.",
"operationalization_include_expert_notes": false,
"operationalization_expert_notes": null,
"operationalization_description": "Please create an experiment to test whether providing a static knowledge graph of cooking relationships improves LLM action prediction in CookingWorld. The experiment should include the following components:\n\n1. EXPERIMENT MODES AND SCOPE:\nImplement three modes controlled by a global PILOT_MODE variable:\n- MINI_PILOT: 2 episodes, max 20 steps each, training set seeds 1-2\n- PILOT: 10 episodes, max 30 steps each, training set seeds 1-5 for training, dev set seeds 1-5 for evaluation\n- FULL_EXPERIMENT: 50 episodes, max 50 steps each (do not run this mode initially)\n\n2. ENVIRONMENT SETUP:\n- Use CookingWorld with simplified parameters:\n * numLocations=3 (small environment)\n * numIngredients=2 (simple recipes)\n * numDistractorItems=2 (minimal distractions)\n * includeDoors=0 (simplified navigation)\n * limitInventorySize=0 (simplified inventory)\n\n3. KNOWLEDGE GRAPH CREATION:\n- Create a static knowledge graph in DOT format capturing:\n * Nodes: ingredients and their possible states (e.g., 'raw carrot', 'diced carrot')\n * Edges: valid cooking actions (e.g., 'dice->diced', 'cook->cooked')\n * Save as 'cooking_knowledge.dot'\n * Generate PDF visualization as 'cooking_knowledge.pdf'\n\n4. PREDICTION SYSTEM:\nImplement two conditions:\na) Baseline condition:\n - Use gpt-4o-mini model\n - Basic prompt template: \"Given the current game state and valid actions, predict the next best action to take.\"\n\nb) Experimental condition:\n - Use gpt-4o-mini model\n - Enhanced prompt template including:\n * Basic prompt as above\n * Relevant subgraph from knowledge graph\n * Current inventory state\n\n5. EVALUATION PROCEDURE:\n- For each episode:\n * Record all predictions and their validity\n * Track completion status and steps taken\n * Log full trajectory\n- Calculate per-episode metrics:\n * Percentage of valid actions\n * Task completion (binary)\n * Number of steps to completion\n\n6. DATA COLLECTION:\nCreate three JSON files:\n- 'experiment_config.json': All experimental parameters\n- 'predictions.json': All model predictions and outcomes\n- 'results.json': Summary statistics and analysis\n\n7. VISUALIZATION:\nGenerate three plots:\n- 'valid_actions.pdf': Line plot comparing valid action rates\n- 'completion_rates.pdf': Bar plot of completion rates\n- 'steps_to_completion.pdf': Box plot of steps to completion\n\n8. ANALYSIS:\n- Calculate mean and standard deviation for all metrics\n- Perform bootstrap comparison between conditions\n- Generate summary statistics for both MINI_PILOT and PILOT modes\n\nIMPORTANT NOTES:\n1. Start with MINI_PILOT mode\n2. If successful, proceed to PILOT mode\n3. Stop before FULL_EXPERIMENT mode\n4. Use the logger extensively for debugging\n5. Save all intermediate results\n\nEXPECTED OUTPUT:\n1. All JSON files mentioned above\n2. All PDF visualizations\n3. Detailed log file\n4. Summary report of findings\n\nERROR HANDLING:\n1. Implement robust error handling for LLM calls\n2. Validate all graph operations\n3. Log all failures and exceptions\n4. Save partial results on failure",
"operationalization_codeblocks": [
"TextWorldExpress API Example",
"LLM example through proxy server",
"DOT Graphviz Graph",
"Logger/Debugging",
"MatPlotLib Line Plot"
],
"operationalization_cost": 0.086616,
"operationalizatoin_time_seconds": 24.62585425376892
}
},
{
"research_idea_name": "llm-graph-verification",
"research_idea_long_description": "Study whether using LLMs to verify and correct knowledge graph triples improves graph accuracy in text-based games. Compare different verification strategies and their impact on graph quality and agent performance.",
"research_idea_short_description": "Evaluate if LLM-based verification improves knowledge graph accuracy in text-based games.",
"research_idea_hypothesis": "LLM-based verification of knowledge graph triples will improve graph accuracy and consistency compared to unverified graphs.",
"research_idea_variables": "Independent variables: Verification method (no verification, LLM verification, rule-based verification). Dependent variables: Graph accuracy, consistency, game performance. Control variables: Game environment, episode length, random seeds.",
"research_idea_metric": "Graph-level and token-level F1 scores vs ground truth, number of inconsistencies detected and corrected, game score.",
"research_idea_pilot": "Test on one TextWorldExpress game with 3 episodes, comparing graph quality with and without LLM verification.",
"research_idea_design_prompt": "Create a system that uses LLMs to verify knowledge graph triples. For each state: (1) Generate initial graph, (2) Use LLM to verify each triple, (3) Correct/update graph based on LLM feedback, (4) Save verified graph. Run on CookingWorld, 3 episodes, 30 steps each. Log all graphs and verification results. Compare performance using bootstrap resampling. Generate plots showing accuracy improvements. Final report should include: statistical analysis, graph visualizations, and verification impact metrics.",
"research_idea_codeblocks": [
"LLM example through proxy server",
"DOT Graphviz Graph",
"TextWorldExpress API Example",
"Logger/Debugging",
"Non-parametric Bootstrap Resampling",
"MatPlotLib Line Plot"
],
"research_idea_required_code_and_resources": [],
"research_idea_external_requirements": [],
"metadata": {
"date_generated": "2024-12-20 15:55:57",
"inspiring_paper_ids": [
"2106.09578"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,
"additional_conditioning_text": "",
"batch": false,
"batch_name": null,
"ideator_name": "",
"cost_for_this_idea": 0.0,
"time_seconds_for_this_idea": 0.0,
"simplified": false
},
"id": "unittest-1",
"scores": {
"score": 1,
"num_unknown_components": 0
},
"rating": "very interesting",
"rating_notes": "Unit test -- this one turned up interesting results on a pilot experiment.",
"operationalization": {
"success": true,
"operationalization_method": "simple",
"operationalization_model": "claude-3-5-sonnet-20241022",
"operationalization_extra_conditioning_text": "Please use `gpt-4o-mini` for all LLM calls, because it's fast and inexpensive.",
"operationalization_include_expert_notes": false,
"operationalization_expert_notes": null,
"operationalization_description": "Please implement an experiment to evaluate whether LLM-based verification improves knowledge graph accuracy in text-based games. The experiment should have the following structure:\n\n1. EXPERIMENT MODES\nImplement a global PILOT_MODE variable that can be set to:\n- MINI_PILOT: 2 episodes, 10 steps each, training set only\n- PILOT: 10 episodes, 30 steps each, using training set for training and dev set for evaluation\n- FULL_EXPERIMENT: 100 episodes, 50 steps each, using training/dev/test sets appropriately\nThe experiment should initially run in MINI_PILOT mode, then PILOT mode if successful. Do not run FULL_EXPERIMENT mode (this requires manual verification first).\n\n2. ENVIRONMENT SETUP\n- Use CookingWorld from TextWorldExpress\n- Configure for 3 rooms, no doors (includeDoors=0)\n- Fix random seeds for reproducibility\n- Use gpt-4o-mini for all LLM calls\n\n3. KNOWLEDGE GRAPH GENERATION\nFor each step in each episode:\na) Extract relevant information from game state into triples\nb) Create DOT format graph\nc) For experimental condition only:\n - For each triple, use LLM to verify correctness\n - Prompt template for verification:\n \"Given the game state: {observation}\\nIs the following triple valid? {triple}\\nRespond with either 'VALID' or 'INVALID: [reason]'\"\n - If invalid, remove or correct the triple based on LLM feedback\nd) Save both unverified (baseline) and verified (experimental) graphs\n\n4. METRICS COLLECTION\nFor each episode:\n- Graph structure metrics (number of nodes, edges)\n- Number of triples verified/corrected\n- Game performance score\n- Save all graphs as PDFs for visualization\n\n5. ANALYSIS\n- Use bootstrap resampling to compare baseline vs experimental conditions\n- Generate plots showing:\n * Graph size over time\n * Number of corrections over time\n * Game score comparison\n- Save all metrics and analysis results\n\n6. LOGGING\nMaintain detailed logs including:\n- All LLM interactions\n- Graph generation steps\n- Verification results\n- Performance metrics\n- Error conditions\n\n7. OUTPUT\nGenerate a results.json file containing:\n- Experiment configuration\n- Summary statistics\n- Bootstrap resampling results\n- Paths to generated graphs and plots\n\nThe experiment should be structured to run the MINI_PILOT first, then if successful, run the PILOT mode. Stop after PILOT mode completion for manual verification before proceeding to FULL_EXPERIMENT.\n\nError handling:\n- Log all errors comprehensively\n- Save partial results if experiment fails\n- Include error recovery for LLM call failures\n\nPlease implement this experiment using the provided codeblocks, ensuring proper error handling and logging throughout.",
"operationalization_codeblocks": [
"LLM example through proxy server",
"DOT Graphviz Graph",
"TextWorldExpress API Example",
"Logger/Debugging",
"Non-parametric Bootstrap Resampling",
"MatPlotLib Line Plot"
],
"operationalization_cost": 0.094344,
"operationalizatoin_time_seconds": 25.620264768600464
}
},
{
"research_idea_name": "simple-planning-agent",
"research_idea_long_description": "Develop and evaluate a simple planning agent that can break down basic cooking tasks in CookingWorld into 2-3 step sequences. Rather than tackling complex multi-step planning, this agent will focus on simple recipes that require only basic operations (get, put, cook) and a small set of ingredients. The agent will use an LLM to generate simple plans and execute them sequentially.",
"research_idea_short_description": "Create and evaluate a basic planning agent that can break down simple cooking tasks into 2-3 step sequences and execute them.",
"research_idea_hypothesis": "A simple planning agent that breaks tasks into 2-3 sequential steps will perform better at basic cooking tasks compared to a baseline agent that attempts to achieve goals without planning.",
"research_idea_variables": "Independent variables: (1) Agent type (planning vs. non-planning baseline). Dependent variables: (1) Task completion rate, (2) Number of steps taken. Control variables: Environment configuration (fixed to 2 rooms), available ingredients (limited to 5 basic ingredients), recipe complexity (fixed to 2-3 steps).",
"research_idea_metric": "Primary metrics: (1) Task completion rate (percentage of successfully completed recipes), (2) Efficiency ratio (minimum required steps / actual steps taken). Secondary metric: Plan success rate (percentage of generated plans that are valid and executable).",
"research_idea_baselines": "1. Basic ReAct agent without planning (using same LLM), 2. Random action agent (included in TextWorldExpress)",
"research_idea_pilot": "Test on a single simple recipe ('make sandwich') requiring exactly 2 steps: getting bread and getting meat. Use only these two ingredients to verify the planning and execution pipeline works.",
"research_idea_design_prompt": "Create a simple planning agent for CookingWorld that: (1) Takes a basic cooking goal as input (e.g., 'make sandwich'), (2) Uses the LLM to break this into 2-3 sequential steps, (3) Executes each step using the TextWorldExpress API. Use TextWorldExpress with CookingWorld, 2 rooms, and 5 basic ingredients. Configure the environment for simple 2-3 step recipes only. The agent should: (a) Get the goal from the environment, (b) Use the LLM to generate a simple plan, (c) Execute each step sequentially, (d) Report success/failure. Compare against the baseline ReAct agent (without planning) and random agent on 50 episodes. Generate plots showing completion rates and efficiency ratios. Focus evaluation on recipes requiring exactly 2 steps (e.g., 'make sandwich') and 3 steps (e.g., 'make toast with butter').",
"research_idea_codeblocks": [
"TextWorldExpress API Example",
"ReAct Agent Example",
"LLM example through proxy server",
"Logger/Debugging",
"Non-parametric Bootstrap Resampling",
"MatPlotLib Line Plot"
],
"research_idea_required_code_and_resources": [
{
"name": "TextWorld Environment",
"description": "The TextWorldExpress CookingWorld environment",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "ReAct baseline",
"description": "The base ReAct agent architecture (without planning)",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Simple Planning Agent",
"description": "Modified ReAct agent with basic 2-3 step planning",
"where": "build",
"effort": "moderate"
},
{
"name": "LLM interface",
"description": "Interface to GPT model for planning and dialogue",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "gpt-4o model",
"description": "The base LLM model",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Logger",
"description": "Logging system for plans and execution",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Bootstrap analysis",
"description": "Statistical comparison of approaches",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Performance plots",
"description": "Plotting of completion rates and efficiency",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Random agent baseline",
"description": "Random action agent from TextWorldExpress",
"where": "existing codeblock",
"effort": "minor"
}
],
"research_idea_external_requirements": [
"numpy (for data processing)",
"pandas (for results analysis)",
"matplotlib (for plotting)",
"json (for logging)"
],
"metadata": {
"date_generated": "2025-01-23 12:55:19",
"inspiring_paper_ids": [
"1909.01646",
"2002.02878"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,
"additional_conditioning_text": "",
"batch": false,
"batch_name": null,
"ideator_name": "BasicIdeator-v1",
"cost_for_this_idea": 0.1102,
"time_seconds_for_this_idea": 35.5035,
"simplified": true
},
"id": "idea-61-simplified",
"scores": {
"score": 12,
"num_unknown_components": 0
},
"rating": "could work",
"rating_notes": "Mostly makes sense, but one of its assumptions (focusing on get/put/cook recipes) isn't possible, it'd have to change this -- there's no way of limiting what actions need to be used. Also it should use the task score, not task completion rate. Most agents do not complete any tasks, but the task score is a partial score between 0 and 1 that is often non-zero if an agent makes task progress.",
"operationalization": {
"success": true,
"operationalization_method": "simple",
"operationalization_model": "claude-3-5-sonnet-20241022",
"operationalization_extra_conditioning_text": "Please use `gpt-4o-mini` for all LLM calls, because it's fast and inexpensive.",
"operationalization_include_expert_notes": false,
"operationalization_expert_notes": null,
"operationalization_description": "Please implement a comparative experiment between a planning-based agent and baselines in CookingWorld, with the following specifications:\n\n1. PILOT MODES:\nImplement a global variable PILOT_MODE that can be set to:\n- MINI_PILOT: 2 episodes, max 20 steps each, train set only\n- PILOT: 10 episodes, max 50 steps each, using train set (5 episodes) and dev set (5 episodes)\n- FULL_EXPERIMENT: 50 episodes, max 100 steps each, proper train/dev/test split\nThe code should first run MINI_PILOT, and if successful, run PILOT. It should not automatically proceed to FULL_EXPERIMENT.\n\n2. ENVIRONMENT SETUP:\n- Use TextWorldExpress CookingWorld\n- Configure for 2 rooms\n- Set numIngredients=2 for MINI_PILOT, numIngredients=3 for PILOT/FULL_EXPERIMENT\n- Set includeDoors=0 to simplify navigation\n\n3. AGENT IMPLEMENTATIONS:\na) Planning Agent (Experimental):\n- Modify the ReAct agent to include a planning phase\n- Use gpt-4o-mini for all LLM calls\n- Planning prompt should ask for 2-3 concrete steps to achieve the goal\n- Execute each planned step using the ReAct architecture\n- Store the plan and execution steps in the logger\n\nb) Baselines:\n- Standard ReAct agent (without planning phase)\n- Random agent (from TextWorldExpress)\n\n4. EVALUATION PROCEDURE:\nFor each episode:\n- Record the task score (0-1 continuous value)\n- Record number of steps taken\n- For planning agent, record generated plan and whether each step was executable\n- Store full trajectory in logger\n\n5. ANALYSIS:\n- Calculate mean task scores and efficiency ratios\n- Use bootstrap resampling to compare planning agent vs each baseline\n- Generate line plots showing:\n * Task scores over episodes\n * Number of steps taken over episodes\n * Planning success rate (for planning agent)\n\n6. LOGGING:\n- Log all LLM interactions\n- Log all plans generated\n- Log all actions taken and observations received\n- Log task scores and metrics\n\n7. OUTPUT:\n- Save plots as PDFs\n- Generate summary statistics\n- Report bootstrap comparison results\n- For PILOT modes, include recommendation about proceeding to next stage\n\nIMPORTANT NOTES:\n1. Use gpt-4o-mini for all LLM calls to minimize costs\n2. Focus on task score rather than binary completion\n3. Start with MINI_PILOT to verify basic functionality\n4. Implement proper error handling and logging\n5. Save all results and plots with pilot mode in filename\n\nExpected directory structure:\n/results/\n - {PILOT_MODE}_scores.json\n - {PILOT_MODE}_metrics.json\n - {PILOT_MODE}_plots/\n - task_scores.pdf\n - steps_taken.pdf\n - planning_success.pdf\n - {PILOT_MODE}_logs/\n - log.json\n - llm_interactions.json\n - plans.json",
"operationalization_codeblocks": [
"TextWorldExpress API Example",
"ReAct Agent Example",
"LLM example through proxy server",
"Logger/Debugging",
"Non-parametric Bootstrap Resampling",
"MatPlotLib Line Plot"
],
"operationalization_cost": 0.108012,
"operationalizatoin_time_seconds": 25.222687005996704
}
},
{
"research_idea_name": "basic-confidence-simulation",
"research_idea_long_description": "Develop a simple confidence-based prediction system for TextWorldExpress's CookingWorld environment, where an LLM assigns confidence scores to its predictions about whether specific actions will succeed or fail. This focused study examines whether LLMs can reliably predict their own uncertainty in a constrained domain with clear success/failure outcomes.",
"research_idea_short_description": "Evaluate LLM ability to predict action success and assign meaningful confidence scores in a cooking game environment.",
"research_idea_hypothesis": "LLMs can meaningfully predict their confidence in action outcomes in CookingWorld, with higher confidence scores correlating with higher prediction accuracy.",
"research_idea_variables": "Independent variables: (1) Action type (take, put, open, close). Control variables: (1) LLM model (GPT-4), (2) Game environment (CookingWorld), (3) Prompt template. Dependent variables: (1) Prediction accuracy, (2) Confidence scores.",
"research_idea_metric": "Primary: Pearson correlation between confidence scores and prediction accuracy. Secondary: (1) Overall prediction accuracy, (2) Average confidence score for correct vs incorrect predictions.",
"research_idea_baselines": "1. Random prediction baseline (50% for binary success/fail), 2. Random confidence baseline (uniform random confidence scores), 3. Constant confidence baseline (always 0.5)",
"research_idea_pilot": "Test on 100 random actions from 10 different CookingWorld games, focusing on basic actions like taking/putting items.",
"research_idea_design_prompt": "Create a simple confidence-prediction system for CookingWorld:\n\n1. Data Collection:\n- Generate 100 random valid actions across 10 different CookingWorld games\n- For each action, record the actual success/failure outcome\n\n2. LLM Prediction:\n- For each action, prompt GPT-4 to:\n * Predict if the action will succeed (yes/no)\n * Provide a confidence score (0-1)\n * Give a one-sentence rationale\n\n3. Analysis:\n- Calculate correlation between confidence and accuracy\n- Compare average confidence for correct vs incorrect predictions\n- Generate scatter plot of confidence vs accuracy\n- Use bootstrap resampling to assess statistical significance\n\nSave all predictions, scores, and outcomes in a JSON file. Use matplotlib to create visualization of results. Focus only on basic actions (take, put, open, close) to keep the scope manageable.",
"research_idea_codeblocks": [
"TextWorldExpress API Example",
"LLM example through proxy server",
"Non-parametric Bootstrap Resampling",
"Logger/Debugging",
"MatPlotLib Line Plot"
],
"research_idea_required_code_and_resources": [
{
"name": "TextWorldExpress CookingWorld",
"description": "The CookingWorld environment from TextWorldExpress",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "GPT-4 interface",
"description": "Interface to GPT-4 for predictions",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Action sampler",
"description": "Simple script to sample random valid actions from CookingWorld",
"where": "build",
"effort": "minor"
},
{
"name": "Confidence predictor",
"description": "Simple prompt template for GPT-4 to predict success and confidence",
"where": "build",
"effort": "minor"
},
{
"name": "Bootstrap analysis",
"description": "Statistical significance testing",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Plotting system",
"description": "Simple scatter plots and bar charts",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Logger",
"description": "Logging system for tracking predictions",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Random baseline",
"description": "Simple script for generating random predictions and confidences",
"where": "build",
"effort": "minor"
}
],
"research_idea_external_requirements": [
"json (for data handling)",
"numpy (for statistical analysis)",
"matplotlib (for plotting)",
"scipy (for correlation analysis)",
"pandas (for data analysis)",
"tqdm (for progress bars)"
],
"metadata": {
"date_generated": "2025-01-23 15:55:32",
"inspiring_paper_ids": [
"2305.15695",
"2406.06485"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,
"additional_conditioning_text": "",
"batch": false,
"batch_name": null,
"ideator_name": "BasicIdeator-v1",
"cost_for_this_idea": 0.2629,
"time_seconds_for_this_idea": 35.8572,
"simplified": true
},
"id": "idea-621-simplified",
"scores": {
"score": 14,
"num_unknown_components": 0
},
"rating": "could work",
"rating_notes": "Kind of makes sense, and would be interesting to see. While the specification says to just provide a binary prediction (yes/no) as to whether the action will succeed (as well as the confidence score), it's not super clear what 'action will succeed' means. Does it means the action will run in the interpreter? (in which case, it's not super interesting because, as long as the action is in the valid action list, it should run). More interesting would be if it interpreted some signal that it worked (e.g. you can't cook a fridge or chop a pot, and the environment might say this, then (using a cheap LLM call), you might be able to interpret whether the observation returned after the action signified success or failure (e.g. 'you can't do that')). But, extending this, it'd be interesting if it predicted more than binary success, but also did more of a state-prediction task -- e.g. predicting what the next observation will be, and then using an LLM to verify how much of it is essentially correct (perhaps proportion of sentences correct). It'd need some number of steps of past history (say the last 1, 2, or 3 steps) to have a chance at doing this well.",
"operationalization": {
"success": true,
"operationalization_method": "simple",
"operationalization_model": "claude-3-5-sonnet-20241022",
"operationalization_extra_conditioning_text": "Please use `gpt-4o-mini` for all LLM calls, because it's fast and inexpensive.",
"operationalization_include_expert_notes": false,
"operationalization_expert_notes": null,
"operationalization_description": "Please implement a confidence-based prediction system for TextWorldExpress's CookingWorld environment to test whether LLMs can meaningfully predict their confidence in action outcomes. The experiment should be implemented in three pilot stages, controlled by a global PILOT_MODE variable.\n\nPILOT STAGES:\n1. MINI_PILOT: 2 games, 10 actions each (20 total actions), from training set\n2. PILOT: 5 games, 20 actions each (100 total actions), from training/dev sets\n3. FULL_EXPERIMENT: 20 games, 50 actions each (1000 total actions), from train/dev/test sets\n\nInitially set PILOT_MODE = 'MINI_PILOT'. Only proceed to PILOT if MINI_PILOT succeeds.\n\nEXPERIMENT SETUP:\n1. Initialize CookingWorld environment with simplified parameters:\n - numLocations: 3\n - numIngredients: 2\n - numDistractorItems: 2\n - includeDoors: 0\n - limitInventorySize: 1\n\n2. For each game:\n a. Initialize a new game instance\n b. Sample N valid actions (N depends on PILOT_MODE)\n c. For each action:\n - Record game state (observation, inventory)\n - Get list of valid actions\n - Filter for basic action types (take, put, open, close)\n - Randomly select one action\n - Get LLM prediction before executing:\n * Format prompt: \"Given the following game state:\\n[observation]\\nInventory:\\n[inventory]\\nPredicted action: [action]\\n\\nQuestion 1: Will this action succeed (yes/no)?\\nQuestion 2: On a scale of 0 to 1, how confident are you in your prediction?\\nQuestion 3: In one sentence, explain your reasoning.\\n\\nPlease respond in JSON format between code blocks (```), with keys 'prediction' (yes/no), 'confidence' (float 0-1), and 'rationale' (string).\"\n - Execute action and record outcome\n - Store all data\n\n3. Implement three baselines:\n a. Random prediction (50/50 yes/no)\n b. Random confidence (uniform 0-1)\n c. Constant confidence (always 0.5)\n\n4. Analysis for each pilot stage:\n a. Calculate metrics:\n - Pearson correlation between confidence and accuracy\n - Overall prediction accuracy\n - Average confidence for correct vs incorrect predictions\n b. Generate plots:\n - Scatter plot: confidence vs accuracy\n - Bar plot: average confidence for correct/incorrect predictions\n c. Statistical testing:\n - Bootstrap resampling to compare LLM vs baselines\n - Calculate p-values for significance\n\n5. Data storage:\n - Save all raw data as JSON\n - Include game states, actions, predictions, confidences, outcomes\n - Save plots as PDFs\n\n6. Logging:\n - Log all major steps and any errors\n - Include timing information\n - Track costs (LLM API calls)\n\nRequired parameters for each PILOT_MODE:\n\nMINI_PILOT:\n- 2 games (training set)\n- 10 actions per game\n- Maximum 5 LLM calls per minute (rate limiting)\n\nPILOT:\n- 5 games (3 training, 2 dev)\n- 20 actions per game\n- Maximum 10 LLM calls per minute\n\nFULL_EXPERIMENT:\n- 20 games (10 train, 5 dev, 5 test)\n- 50 actions per game\n- Maximum 20 LLM calls per minute\n\nNOTES:\n1. Use gpt-4o-mini for all LLM calls (as specified in special conditioning)\n2. Implement appropriate error handling and retries for LLM calls\n3. Stop after PILOT stage - require human verification before FULL_EXPERIMENT\n4. Save checkpoints after each game to prevent data loss\n5. Include random seed for reproducibility",
"operationalization_codeblocks": [
"TextWorldExpress API Example",
"LLM example through proxy server",
"Non-parametric Bootstrap Resampling",
"Logger/Debugging",
"MatPlotLib Line Plot"
],
"operationalization_cost": 0.099732,
"operationalizatoin_time_seconds": 25.284843921661377
}
},
{
"research_idea_name": "wordnet-cooking-exploration",
"research_idea_long_description": "Investigate whether WordNet's hypernym/hyponym relationships can improve exploration efficiency in CookingWorld cooking tasks. The agent will use WordNet to identify food-related objects and their relationships, biasing exploration towards semantically-related actions when food items are observed.",
"research_idea_short_description": "Using WordNet's food-related semantic hierarchies to guide exploration in cooking tasks.",
"research_idea_hypothesis": "Using WordNet's hypernym/hyponym relationships to identify food-related objects will lead to more efficient exploration in CookingWorld cooking tasks compared to random exploration.",
"research_idea_variables": "Independent variables: (1) Exploration strategy (WordNet-guided vs Random). Control variables: (1) Maximum exploration steps (1000), (2) CookingWorld environment parameters (2 ingredients, 2 rooms). Dependent variables: (1) Steps to task completion, (2) Success rate in 100 episodes.",
"research_idea_metric": "Primary metrics: (1) Average number of steps to complete task, (2) Success rate over 100 episodes. Secondary metric: Percentage of attempted actions involving WordNet-identified food items.",
"research_baselines": "1. Random exploration baseline (provided with TextWorldExpress), 2. Simple heuristic baseline (attempt to interact with all visible objects)",
"research_idea_pilot": "Test on the simplest CookingWorld configuration (2 rooms, 2 ingredients) for 20 episodes, comparing WordNet-guided vs random exploration.",
"research_idea_design_prompt": "Create an agent that uses WordNet for exploration in CookingWorld: 1. For each observation, extract nouns using NLTK. 2. For each noun, use WordNet to check if it has 'food' or 'ingredient' in its hypernym hierarchy. 3. When selecting actions, give 80% probability to actions involving WordNet-identified food items, 20% to random actions. Compare against random exploration baseline on CookingWorld with 2 rooms, 2 ingredients. Run 100 episodes for each approach. Log: (1) Steps per episode, (2) Success/failure, (3) Actions attempted. Generate plots comparing: (1) Average steps to completion, (2) Success rates. Use bootstrap resampling to test for significant differences. Save logs in JSON format including all action histories.",
"research_idea_codeblocks": [
"WordNet with NLTK",
"TextWorldExpress API Example",
"Logger/Debugging",
"MatPlotLib Line Plot",
"Non-parametric Bootstrap Resampling"
],
"research_idea_required_code_and_resources": [
{
"name": "WordNet interface",
"description": "Interface to WordNet through NLTK",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "CookingWorld environment",
"description": "TextWorld CookingWorld game environment",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "WordNet-guided explorer",
"description": "Simple agent that uses WordNet food hierarchies",
"where": "build",
"effort": "moderate"
},
{
"name": "Random baseline",
"description": "Random exploration baseline from TextWorldExpress",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Plotting utilities",
"description": "MatPlotLib plotting for result visualization",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Statistical testing",
"description": "Bootstrap resampling for comparing approaches",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Logging system",
"description": "Logging of trajectories and metrics",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Data storage",
"description": "Simple JSON storage for trajectories",
"where": "build",
"effort": "minor"
}
],
"research_idea_external_requirements": [
"nltk (for WordNet access)",
"numpy (for numerical operations)",
"pandas (for data analysis)",
"matplotlib (for plotting)",
"textworld_express (for CookingWorld environment)"
],
"metadata": {
"date_generated": "2025-01-23 12:58:22",
"inspiring_paper_ids": [
"1909.01646",
"2001.08868"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,
"additional_conditioning_text": "",
"batch": false,
"batch_name": null,
"ideator_name": "BasicIdeator-v1",
"cost_for_this_idea": 0.1332,
"time_seconds_for_this_idea": 36.2741,
"simplified": true
},
"id": "idea-90-simplified",
"scores": {
"score": 13,
"num_unknown_components": 0
},
"rating": "could work",
"rating_notes": "Super simple baseline agent. One might expect it to outperform a random baseline. It might even outperform a ReAct agent on this task, especially if paired with aspects that allow the agent to explore the environment. Should likely be run on very simple (e.g. 3 room maximum) environments. ",
"operationalization": {
"success": true,
"operationalization_method": "simple",
"operationalization_model": "claude-3-5-sonnet-20241022",
"operationalization_extra_conditioning_text": "Please use `gpt-4o-mini` for all LLM calls, because it's fast and inexpensive.",
"operationalization_include_expert_notes": false,
"operationalization_expert_notes": null,
"operationalization_description": "Please create an experiment comparing WordNet-guided exploration versus random exploration in CookingWorld cooking tasks. The experiment should be implemented in three pilot modes (MINI_PILOT, PILOT, FULL_EXPERIMENT).\n\nEnvironment Configuration:\n1. Use TextWorldExpress CookingWorld environment\n2. Set parameters: numLocations=2, numIngredients=2, numDistractorItems=0, includeDoors=0\n3. Use gpt-4o-mini for any LLM calls\n\nExperimental Conditions:\n1. WordNet-guided agent:\n - Extract nouns from observations using NLTK\n - For each noun, use WordNet to check if 'food' or 'ingredient' appears in its hypernym hierarchy\n - Action selection: 80% probability for actions involving WordNet-identified food items, 20% random\n2. Random baseline agent (use existing TextWorldExpress random agent)\n\nPilot Modes (set via PILOT_MODE global variable):\n1. MINI_PILOT:\n - 5 episodes per condition\n - 25 steps maximum per episode\n - Use training set seeds 1-5\n2. PILOT:\n - 20 episodes per condition\n - 50 steps maximum per episode\n - Training set seeds 1-20\n3. FULL_EXPERIMENT:\n - 100 episodes per condition\n - 1000 steps maximum per episode\n - Training/dev/test set split\n\nLogging Requirements:\n1. Per episode:\n - Steps taken\n - Success/failure\n - Final score\n - Complete action history\n - Percentage of actions involving WordNet-identified items\n2. Save all trajectories in JSON format\n\nAnalysis Requirements:\n1. Generate plots:\n - Line plot: Average steps to completion vs episode number\n - Bar plot: Overall success rates\n - Bar plot: Percentage of food-related actions\n2. Statistical analysis:\n - Use bootstrap resampling to compare:\n a) Steps to completion\n b) Success rates\n c) Percentage of food-related actions\n3. Save all plots as PDFs\n\nExecution Flow:\n1. Start with MINI_PILOT mode\n2. If successful, proceed to PILOT mode\n3. Stop after PILOT mode (await human verification)\n\nRequired Output:\n1. Logs directory containing:\n - Episode trajectories (JSON)\n - Performance metrics (JSON)\n - Statistical analysis results (JSON)\n2. Plots directory containing:\n - All visualization PDFs\n3. Summary report (JSON) with:\n - Average metrics per condition\n - Statistical test results\n - Pilot mode used\n\nError Handling:\n1. Use Logger for all major steps and errors\n2. Save partial results if experiment fails\n3. Include error messages in summary report\n\nPlease implement the experiment starting with MINI_PILOT mode, and ensure all logging and analysis components are functional before proceeding to PILOT mode.",
"operationalization_codeblocks": [
"WordNet with NLTK (Comprehensive Guide)",
"TextWorldExpress API Example",
"Logger/Debugging",
"MatPlotLib Line Plot",
"Non-parametric Bootstrap Resampling"
],
"operationalization_cost": 0.087504,
"operationalizatoin_time_seconds": 25.498131036758423
}
},
{
"research_idea_name": "reactive-graph-confidence",
"research_idea_long_description": "Investigate whether using the ReAct framework to explicitly reason about confidence in graph updates improves the quality of belief graphs in CookingWorld. This simplified study focuses specifically on confidence scoring, comparing a ReAct agent that explicitly reasons about update confidence versus direct updates.",
"research_idea_short_description": "Study if explicit reasoning about confidence improves belief graph accuracy in CookingWorld.",
"research_idea_hypothesis": "Using ReAct to explicitly reason about confidence in graph updates will result in more accurate belief graphs compared to direct updates without confidence reasoning.",
"research_idea_variables": "Independent variable: Graph update method (ReAct with confidence reasoning vs direct updates). Control variables: CookingWorld environment, game configurations, base LLM model. Dependent variable: Graph accuracy.",
"research_idea_metric": "Primary metrics: (1) Graph accuracy measured by correct vs incorrect edges after each episode (2) Confidence score correlation with edge correctness. Secondary: Average episode length.",
"research_idea_baselines": "1. Direct graph updates without confidence reasoning 2. Random confidence scoring",
"research_idea_pilot": "Test on 10 episodes of the simplest CookingWorld configuration, comparing confidence-based vs direct graph updates",
"research_idea_design_prompt": "Implement two graph-building agents for CookingWorld: (1) A ReAct agent that explicitly reasons about confidence in graph updates, outputting confidence scores (0-1) for each edge it adds/modifies (2) A baseline agent that directly updates the graph without confidence reasoning. For both agents: Initialize empty graphs, update based on game observations, save graphs in DOT format after each episode. Run 50 episodes with default CookingWorld settings. For each episode: Record final graph state, track correct/incorrect edges, and for the ReAct agent, store confidence scores. Generate scatter plots comparing confidence scores vs edge correctness, and bar plots of graph accuracy. Use bootstrap resampling to compare accuracy between methods. Save all graphs as DOT files for visualization.",
"research_idea_codeblocks": [
"ReAct Agent Example",
"DOT Graphviz Graph",
"TextWorldExpress API Example",
"Logger/Debugging",
"LLM example through proxy server",
"MatPlotLib Line Plot",
"Non-parametric Bootstrap Resampling"
],
"research_idea_required_code_and_resources": [
{
"name": "ReAct baseline",
"description": "Base ReAct implementation",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Confidence ReAct",
"description": "ReAct agent modified to reason about confidence",
"where": "existing codeblock",
"effort": "moderate"
},
{
"name": "CookingWorld environment",
"description": "The TextWorldExpress CookingWorld environment",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Graph visualization",
"description": "DOT/Graphviz for visualizing belief graphs",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "LLM interface",
"description": "For ReAct reasoning steps",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Logging system",
"description": "System for logging experimental results",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "gpt-4o model",
"description": "The GPT-4o model for ReAct reasoning",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Simple graph tracker",
"description": "System for tracking graph edges and their correctness",
"where": "build",
"effort": "minor"
},
{
"name": "Results plotting",
"description": "Scripts to generate accuracy and confidence correlation plots",
"where": "existing codeblock",
"effort": "minor"
},
{
"name": "Bootstrap analysis",
"description": "Statistical comparison of methods using bootstrap resampling",
"where": "existing codeblock",
"effort": "minor"
}
],
"research_idea_external_requirements": [
"networkx (for graph operations)",
"numpy (for numerical operations)",
"pandas (for data analysis)"
],
"metadata": {
"date_generated": "2025-01-23 16:06:19",
"inspiring_paper_ids": [
"1806.11525",
"2002.09127"
],
"generated_using_model": "claude-3-5-sonnet-20241022",
"condition_on_codeblocks": true,