| name | alfworld-object-storer |
| description | Use when the agent is holding an object and needs to place it into a target receptacle in ALFWorld. This skill checks receptacle suitability, opens closed containers if needed, and executes the `put` command to store the object. It handles both open surfaces (countertops, beds) and closed containers (drawers, cabinets). |
Skill: Object Storer
When to Use
Trigger this skill when:
- The agent is holding the target object (optionally cleaned/heated/cooled as required)
- A suitable storage receptacle has been identified
- The agent needs to execute the final placement step
Core Workflow
1. Validate Prerequisites
- Confirm the agent is holding
{object_name} (check inventory)
- Confirm the agent is at the location of
{target_receptacle}
- If not at the receptacle, navigate there first:
go to {target_receptacle}
2. Check Receptacle State
Evaluate the receptacle before placing:
| Receptacle State | Action |
|---|
| Open and empty/suitable | Proceed with put |
| Closed (drawer, cabinet, safe) | open {target_receptacle} first, then put |
| Unsuitable (wrong type, full) | Abort and search for alternative receptacle |
3. Execute Storage
- Run:
put {object_name} in/on {target_receptacle}
- Check the observation for confirmation
4. Verify Placement
- A successful placement updates the receptacle contents in the observation
- If the observation confirms the object is now in/on the receptacle, storage is complete
Example
Task: "Clean the knife and put it in a drawer."
> go to drawer 1
The drawer 1 is closed.
> open drawer 1
You open the drawer 1. The drawer 1 is open. In it, you see nothing.
> put knife 1 in/on drawer 1
You put the knife 1 in/on the drawer 1.
Result: knife 1 is now stored in drawer 1. Task complete.
Example 2 — Open surface:
> 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.
Error Handling
- "Nothing happened": The agent may not be holding the object, or the receptacle name is incorrect. Verify with
inventory and re-check the receptacle identifier.
- Receptacle unsuitable: If the receptacle is not appropriate for the object, search for an alternative using the object-locator skill.
- Agent not at receptacle: Navigate to the receptacle with
go to {target_receptacle} before attempting put.