CoolFace
Datasetpublic

u-10bei/sft_alfworld_trajectory_dataset

ALFWorld Trajectory Dataset Overview This is a synthetic SFT (Supervised Fine-Tuning) dataset designed for agent training in ALFWorld-compatible environments. The dataset programmatically generates expert trajectories without requiring an actual ALFWorld environment or a large language model. Key Approach Template-based Simulation: Lightweight simulator based on published ALFWorld information (papers, ReAct prompt examples). Subgoal Decomposition:… See the full description on the dataset page: https://huggingface.co/datasets/u-10bei/sft_alfworld_trajectory_dataset.

sourceHugging Facemitupdated 8mo agoView on Hugging Face
0likes36downloads
Dataset Card

ALFWorld Trajectory Dataset

Overview

This is a synthetic SFT (Supervised Fine-Tuning) dataset designed for agent training in ALFWorld-compatible environments. The dataset programmatically generates expert trajectories without requiring an actual ALFWorld environment or a large language model.

Key Approach

  • Template-based Simulation: Lightweight simulator based on published ALFWorld information (papers, ReAct prompt examples).
  • Subgoal Decomposition: Rule-based expert system supporting 6 task types.
  • Observation & Thought Diversity: Various templates for diversifying observation and thought texts.
  • Multiple Formats: Supports both function-calling and ReAct formats.

Key Features

FeatureDescription
CompatibilityALFWorld-compatible tasks and actions
Task Types6 distinct task types: pickandplace, cleanandplace, heatandplace, coolandplace, examine, pick_two
Difficulty LevelsEasy, Normal, Hard (controlling exploration detours)
Trajectory FormatFunction-calling (also available in ReAct format)
Multi-turn DialogueEach trajectory is a multi-turn conversation between user (observation) and assistant (thought, action)
Synthetic DataProgrammatically generated, ensuring controlled and varied scenarios

Dataset Statistics

  • Total trajectories: 1,200
  • Average messages per trajectory: 21.1
  • Number of steps (turns) distribution: 9 steps (3.3%) / 11 steps (4.9%) / 13 steps (8.8%) / 15 steps (12.6%) / 17 steps (14.4%) / 19 steps (10.6%) / 21 steps (11.5%) / 23 steps (8.9%) / 25 steps (8.2%) / 27 steps (4.8%) / 29 steps (3.9%) / 31 steps (2.8%) / 33 steps (1.2%) / 35 steps (0.9%) / 37 steps (0.7%) / 39 steps (0.9%) / 41 steps (0.5%) / 43 steps (0.3%) / 45 steps (0.5%) / 47 steps (0.2%) / 49 steps (0.1%)
  • Task type distribution: cleanandplace: 200 (16.7%) / coolandplace: 200 (16.7%) / examine: 200 (16.7%) / heatandplace: 200 (16.7%) / pickandplace: 200 (16.7%) / pick_two: 200 (16.7%)
  • Difficulty distribution: Easy: 227 (18.9%) / Hard: 362 (30.2%) / Normal: 611 (50.9%)

Data Format

Each line in the JSONL file is a JSON object with the following fields:

json
{{ # Start of outer JSON object
  "messages": [
    {{"role": "system", "content": "Interact with a household to solve a task..."}},
    {{"role": "user", "content": "You are in the middle of a room..."}},
    {{"role": "assistant", "content": "Think: I should look for apple...",
      "tool_calls": [
        {{"id": "call_1", "type": "function", "function": {{ # Inner function object
          "name": "act", "arguments": "{"action": "go to microwave 1"}"
        }}}}
      ]
    }},
    {{"role": "tool", "tool_call_id": "call_1", "content": "The microwave 1 is open..."}}
    // ... more turns
  ],
  "metadata": {{ # Metadata object
    "task_type": "heat_and_place",
    "description": "put a hot apple in/on stoveburner 1.",
    "room_type": "kitchen",
    "difficulty": "normal",
    "num_steps": 17
  }}
}}

Usage

For SFT Training

python
from datasets import load_dataset
ds = load_dataset("u-10bei/sft_alfworld_trajectory_dataset")

for sample in ds["train"]:
    messages = sample["messages"]
    # messages is already in chat format for training

Last Updated

2026-02-10 00:24:11

License

MIT