scienceworld-object-locator
$
npx mdskill add zjunlp/SkillNet/scienceworld-object-locatorSystematically search for an unknown object across multiple rooms by traversing and inspecting locations.
- Find items when the precise location within a complex environment is unknown.
- Utilizes teleportation and observation actions to explore defined areas.
- Determines search sequence using a priority list based on the sought item.
- Returns the exact coordinates and room name upon successful discovery.
SKILL.md
.github/skills/scienceworld-object-locatorView on GitHub ↗
---
name: scienceworld-object-locator
description: Searches for a specific target object across multiple rooms by systematically teleporting to likely locations and examining each room. Use this skill when you need to find an object whose exact location is unknown. Iterates through candidate rooms using teleport and look around, checks for the object, and continues until found, returning the object's location.
---
# Instructions
## Purpose
Locate a specific target object within the ScienceWorld environment when its location is unknown.
## Inputs
- **Target Object:** The name of the object to find (e.g., "thermometer", "metal fork").
- **Candidate Rooms (Optional):** A list of room names to search. If not provided, the skill will use a default priority list based on common object locations.
## Core Process
1. **Initialize:** Receive the target object name.
2. **Plan Search Order:** Determine the sequence of rooms to search. Use the provided `prioritize_rooms.py` script to generate an optimal search order based on the target object.
3. **Execute Search Loop:**
a. Teleport to the next room in the search order.
b. Use the `look around` action to observe the room's contents.
c. Parse the observation to check for the presence of the target object.
d. If the object is found, **stop the search** and output its location.
e. If the object is not found, proceed to the next room.
4. **Output:** Report the room where the object was found. If the object is not found after searching all candidate rooms, report this failure.
## Key Actions
- `teleport to <ROOM_NAME>`
- `look around`
- `examine <OBJECT>` (if more detail is needed to confirm identity)
- `pick up <OBJECT>` (if the goal is to acquire the object, not just locate it)
## Example
**Task:** Find the thermometer in the environment.
1. `teleport to kitchen`
2. `look around` — no thermometer found
3. `teleport to workshop`
4. `look around` — observation includes "a thermometer, currently reading a temperature of 10 degrees celsius"
5. Thermometer located in workshop. `pick up thermometer` if needed.
## Notes & Best Practices
- **Efficiency:** Always `look around` immediately after teleporting to get the full room state.
- **Parsing:** Observations list objects after "you see:". Check this list for the target object's name.
- **Confirmation:** If an object's name is ambiguous (e.g., "fork" could be "metal fork" or "plastic fork"), use `examine` to get a detailed description.
- **Inventory:** If the task requires using the object, remember to `pick it up` after finding it.
- **Error Handling:** If an object is not in its most likely room, the systematic search will eventually find it. Do not give up after the first few rooms.
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.