Use when the agent must collect and track multiple instances of the same object type in ALFWorld (e.g., "put two cellphone in bed"). This skill maintains a count of collected versus needed objects, guides systematic searching through receptacles, and ensures each found object is placed at the target before searching for the next.
Activate this skill when:
collected = 0, needed = <quantity>Follow this search priority:
Critical Rule: After finding an object, immediately place it at the target location before searching for the next one. Do not attempt to carry multiple objects simultaneously.
Use this decision tree at each step:
Is target object visible in current observation?
├── YES → Take it, go to target receptacle, put it down
│ └── Increment collected counter
│ ├── collected == needed → TASK COMPLETE
│ └── collected < needed → Continue searching
└── NO → Have all receptacles been searched?
├── YES → Revisit receptacles (objects may have been missed)
└── NO → Go to next unsearched receptacle
For each object instance found, follow this exact sequence:
take {object} from {current_receptacle}go to {target_receptacle}put {object} in/on {target_receptacle}collected += 1collected < needed, navigate to next unsearched receptacleTask: "Put two cellphone in bed 1."
> go to desk 1
On the desk 1, you see a cellphone 2, a pen 1.
> take cellphone 2 from desk 1
You pick up the cellphone 2 from the desk 1.
> go to bed 1
On the bed 1, you see a pillow 1.
> put cellphone 2 in/on bed 1
You put the cellphone 2 in/on the bed 1.
[collected: 1/2]
> go to dresser 1
On the dresser 1, you see a cellphone 3, a keychain 1.
> take cellphone 3 from dresser 1
You pick up the cellphone 3 from the dresser 1.
> go to bed 1
On the bed 1, you see a cellphone 2, a pillow 1.
> put cellphone 3 in/on bed 1
You put the cellphone 3 in/on the bed 1.
[collected: 2/2 — TASK COMPLETE]