alfworld-object-locator
$
npx mdskill add zjunlp/SkillNet/alfworld-object-locatorLocate missing objects in ALFWorld using common-sense reasoning.
- Helps agents find specific items absent from current inventory.
- Depends on parsing environment observations and receptacle lists.
- Ranks potential locations by object type and contextual probability.
- Outputs a single navigation action to the most promising spot.
SKILL.md
.github/skills/alfworld-object-locatorView on GitHub ↗
---
name: alfworld-object-locator
description: Use when the agent needs to find a specific object in ALFWorld that is not currently in inventory and whose location is unknown. This skill parses the environment observation, ranks receptacles by likelihood of containing the target object using common-sense reasoning, and outputs a navigation action to the most promising location.
---
# Skill: Object Locator for ALFWorld
## When to Use
Trigger this skill when:
1. Your goal requires a specific object (e.g., `knife`, `cellphone`, `apple`)
2. The object is not in your inventory
3. The current observation does not explicitly state the object's location
## Core Workflow
### 1. Parse the Environment
Extract all visible receptacles from the observation text. Typical ALFWorld receptacles include:
- **Surfaces**: countertop, desk, dresser, bed, shelf, sidetable, coffeetable, diningtable
- **Containers**: drawer, cabinet, safe, fridge, microwave, garbagecan
- **Appliances**: sinkbasin, bathtub, stoveburner, toaster
### 2. Rank by Likelihood
Use common-sense reasoning to prioritize where the target object is most likely found:
| Object Type | High-Probability Receptacles |
|-------------|------------------------------|
| Kitchen items (knife, spatula, pan) | countertop, drawer, diningtable, stoveburner |
| Food (apple, potato, tomato, bread) | fridge, countertop, diningtable, microwave |
| Bathroom items (sponge, cloth, soap) | sinkbasin, bathtub, cart, shelf |
| Electronics (cellphone, laptop, remote) | desk, sidetable, dresser, bed, coffeetable |
| Stationery (pen, pencil, book) | desk, shelf, drawer, sidetable |
| Lighting (candle, desklamp) | sidetable, shelf, desk, dresser |
### 3. Navigate and Search
For each candidate receptacle (in priority order):
1. `go to {receptacle}`
2. Read the observation — does it mention the target object?
- **YES**: `take {object} from {receptacle}` — object found
- **NO**: If the receptacle is closed, `open {receptacle}` and re-check
- **Still NO**: Move to the next candidate receptacle
### 4. Track Searched Locations
Maintain a list of already-searched receptacles to avoid revisiting them. If all high-probability locations are exhausted, expand the search to remaining receptacles.
## Example
**Task:** "Clean the knife and put it in drawer."
**Observation:** "You are in the middle of a room. Looking quickly around you, you see a countertop 1, a drawer 1, a drawer 2, a fridge 1, a sinkbasin 1, a stoveburner 1."
```
> go to countertop 1
On the countertop 1, you see a knife 1, a saltshaker 2, a bread 1.
> take knife 1 from countertop 1
You pick up the knife 1 from the countertop 1.
```
**Result:** Target object `knife 1` located and acquired from `countertop 1`.
**Example — Object not at first location:**
```
> go to countertop 1
On the countertop 1, you see a saltshaker 2, a bread 1.
> 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 a knife 1.
> take knife 1 from drawer 1
You pick up the knife 1 from the drawer 1.
```
## Error Handling
- **Object not found in any receptacle**: Re-check closed containers that may not have been opened. Some objects are only visible after opening.
- **Multiple instances**: If the task requires a specific instance (e.g., `knife 1` vs `knife 2`), verify the object identifier matches before taking it.
- **"Nothing happened"**: The `take` command may fail if the agent is not at the receptacle. Ensure navigation was successful before attempting to take.
More from zjunlp/SkillNet
- alfworld-appliance-navigatorNavigates the agent to a target appliance (microwave, stove, fridge, or sinkbasin) needed for object processing. Use when you are holding an object that needs heating, cooling, or cleaning and must move to the correct appliance station. Identifies the required appliance from the task context and executes the movement action.
- alfworld-appliance-preparerPrepares a household appliance (microwave, oven, toaster, fridge) for use by ensuring it is in the correct open/closed state. Use when the agent needs to heat, cool, or cook an item and must first open or close the appliance before placing an object inside. Takes an appliance identifier as input and outputs a confirmation that the appliance is ready for the next action.
- alfworld-clean-objectCleans a specified object using an appropriate cleaning receptacle (e.g., sinkbasin). Use when a task requires an object to be in a clean state (e.g., "clean potato", "wash apple") before proceeding. Navigates to the cleaning location, performs the clean action, and confirms the object is now clean.
- alfworld-device-operatorOperates a device or appliance (like a desklamp, microwave, or fridge) to interact with another object. Use when the task requires using a tool on a target item (e.g., "look at laptop under the desklamp", "heat potato with microwave"). Locates both the device and target object, co-locates them, and executes the appropriate use action (toggle, heat, cool, or clean).
- alfworld-environment-scannerPerforms an initial scan of the ALFWorld environment to identify all visible objects and receptacles. Use when you first enter an environment and need to build a mental map for task planning. Processes raw observation text into a structured list of entities, categorizing them as objects or receptacles.
- alfworld-goal-interpreterParses the natural language task goal to extract actionable sub-objectives and required objects. Trigger this skill whenever a new task is assigned to break down complex instructions into clear, sequential targets. It interprets phrases like 'look at X under Y' to identify target objects (pillow), reference objects (desklamp), and spatial relationships (under).
- alfworld-heat-object-with-applianceUses a heating appliance (microwave, stoveburner, oven) to apply heat to a specified object. Use when the task requires warming or cooking an item (e.g., "heat some egg", "warm the mug") and a heating appliance is available. Takes the object name and appliance name as input and outputs the object in a heated state, ready for placement at the task's target location.
- alfworld-inventory-managementUse 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.
- alfworld-locate-target-objectNavigates to a suspected location and identifies a target object. Use when your goal requires finding a specific object (e.g., "potato", "plate") and its location is not immediately known. Moves to a relevant receptacle (like a fridge or cabinet), checks its contents, and outputs the object's location or confirms its absence.
- alfworld-location-navigatorMoves the agent to a specified receptacle or object location within the Alfworld environment. Use this skill when the agent needs to physically approach a target to inspect or interact with it, such as when checking an object's state or preparing for pickup. The skill takes a target location name as input and executes the 'go to' action, resulting in the agent being positioned at the destination for subsequent operations.