mirror of
https://github.com/kolbytn/mindcraft.git
synced 2025-04-29 19:44:53 +02:00
Merge develop
Develop
This commit is contained in:
commit
d25e439d86
66 changed files with 43427 additions and 724 deletions
13
.gitignore
vendored
13
.gitignore
vendored
|
@ -15,4 +15,15 @@ services/viaproxy/saves.json
|
|||
services/viaproxy/viaproxy.yml
|
||||
tmp/
|
||||
wandb/
|
||||
experiments/
|
||||
experiments/
|
||||
andy_*.json
|
||||
jill_*.json
|
||||
src/models/logs/*
|
||||
server_data/*
|
||||
results/*
|
||||
tasks/construction_tasks/test_multiagent_construction_tasks.json
|
||||
tasks/construction_tasks/train_multiagent_construction_tasks.json
|
||||
tasks/construction_tasks/test/**
|
||||
tasks/construction_tasks/train/**
|
||||
server_data*
|
||||
**/.DS_Store
|
38
Dockerfile
Normal file
38
Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
|||
# Specify a base image
|
||||
# FROM ubuntu:22.04
|
||||
FROM node:18
|
||||
|
||||
#Install some dependencies
|
||||
|
||||
RUN apt-get -y update
|
||||
RUN apt-get -y install git
|
||||
RUN apt-get -y install unzip
|
||||
RUN apt-get -y install python3
|
||||
RUN apt-get -y install python3-pip
|
||||
RUN apt-get -y install python3-boto3
|
||||
RUN apt-get -y install python3-tqdm
|
||||
RUN apt-get -y install tmux
|
||||
|
||||
RUN git clone https://github.com/icwhite/mindcraft.git /mindcraft
|
||||
WORKDIR /mindcraft
|
||||
COPY ./server_data.zip /mindcraft
|
||||
RUN unzip server_data.zip
|
||||
|
||||
RUN npm install
|
||||
|
||||
|
||||
# Copy the rest of the application code to the working directory
|
||||
RUN apt update
|
||||
RUN apt install bash ca-certificates wget git -y # install first to avoid openjdk install bug
|
||||
RUN apt install openjdk-17-jre-headless -y
|
||||
|
||||
# Install unzip
|
||||
|
||||
|
||||
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
RUN unzip awscliv2.zip
|
||||
RUN ./aws/install
|
||||
|
||||
VOLUME /data
|
||||
|
||||
EXPOSE 8000
|
13
README.md
13
README.md
|
@ -2,7 +2,7 @@
|
|||
|
||||
Crafting minds for Minecraft with LLMs and [Mineflayer!](https://prismarinejs.github.io/mineflayer/#/)
|
||||
|
||||
[FAQ](https://github.com/kolbytn/mindcraft/blob/main/FAQ.md) | [Discord Support](https://discord.gg/mp73p35dzC) | [Video Tutorial](https://www.youtube.com/watch?v=gRotoL8P8D8) | [Blog Post](https://kolbynottingham.com/mindcraft/) | [Contributor TODO](https://github.com/users/kolbytn/projects/1)
|
||||
[FAQ](https://github.com/kolbytn/mindcraft/blob/main/FAQ.md) | [Discord Support](https://discord.gg/mp73p35dzC) | [Video Tutorial](https://www.youtube.com/watch?v=gRotoL8P8D8) | [Blog Post](https://kolbynottingham.com/mindcraft/) | [Contributor TODO](https://github.com/users/kolbytn/projects/1) | [Paper Website](https://mindcraft-minecollab.github.io/index.html) | [MineCollab](https://github.com/kolbytn/mindcraft/blob/main/minecollab.md)
|
||||
|
||||
|
||||
> [!Caution]
|
||||
|
@ -30,6 +30,16 @@ Do not connect this bot to public servers with coding enabled. This project allo
|
|||
|
||||
If you encounter issues, check the [FAQ](https://github.com/kolbytn/mindcraft/blob/main/FAQ.md) or find support on [discord](https://discord.gg/mp73p35dzC). We are currently not very responsive to github issues.
|
||||
|
||||
## Tasks
|
||||
|
||||
Bot performance can be roughly evaluated with Tasks. Tasks automatically intialize bots with a goal to aquire specific items or construct predefined buildings, and remove the bot once the goal is achieved.
|
||||
|
||||
To run tasks, you need python, pip, and optionally conda. You can then install dependencies with `pip install -r requirements.txt`.
|
||||
|
||||
Tasks are defined in json files in the `tasks` folder, and can be run with: `python tasks/run_task_file.py --task_path=tasks/example_tasks.json`
|
||||
|
||||
For full evaluations, you will need to [download and install the task suite. Full instructions.](minecollab.md#installation)
|
||||
|
||||
## Model Customization
|
||||
|
||||
You can configure project details in `settings.js`. [See file.](settings.js)
|
||||
|
@ -53,6 +63,7 @@ You can configure the agent's name, model, and prompts in their profile like `an
|
|||
| `openrouter` | `OPENROUTER_API_KEY` | `openrouter/anthropic/claude-3.5-sonnet` | [docs](https://openrouter.ai/models) |
|
||||
| `glhf.chat` | `GHLF_API_KEY` | `glhf/hf:meta-llama/Llama-3.1-405B-Instruct` | [docs](https://glhf.chat/user-settings/api) |
|
||||
| `hyperbolic` | `HYPERBOLIC_API_KEY` | `hyperbolic/deepseek-ai/DeepSeek-V3` | [docs](https://docs.hyperbolic.xyz/docs/getting-started) |
|
||||
| `vllm` | n/a | `vllm/llama3` | n/a |
|
||||
|
||||
If you use Ollama, to install the models used by default (generation and embedding), execute the following terminal command:
|
||||
`ollama pull llama3.1 && ollama pull nomic-embed-text`
|
||||
|
|
|
@ -1,350 +0,0 @@
|
|||
import argparse
|
||||
import json
|
||||
import shutil
|
||||
import subprocess
|
||||
import time
|
||||
from datetime import datetime
|
||||
import re
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
|
||||
def read_settings(file_path):
|
||||
"""Read and parse the settings.js file to get agent profiles."""
|
||||
with open(file_path, 'r', encoding='utf-8') as file:
|
||||
content = file.read()
|
||||
|
||||
# Remove `export default` and trailing commas
|
||||
content = re.sub(r'export\s+default', '', content)
|
||||
content = re.sub(r',\s*(?=[}\]])', '', content)
|
||||
|
||||
# Remove JavaScript comments
|
||||
content = re.sub(r'//.*', '', content)
|
||||
|
||||
# Remove trailing commas (e.g., before } or ])
|
||||
content = re.sub(r',\s*(?=[}\]])', '', content)
|
||||
|
||||
# Strip leading and trailing whitespace
|
||||
content = content.strip()
|
||||
|
||||
json_data = json.loads(content)
|
||||
|
||||
profiles = json_data['profiles']
|
||||
|
||||
## profiles is a list of strings like "./andy.json" and "./bob.json"
|
||||
|
||||
agent_names = [profile.split('/')[-1].split('.')[0] for profile in profiles]
|
||||
return agent_names
|
||||
|
||||
def check_task_completion(agents):
|
||||
"""Check memory.json files of all agents to determine task success/failure."""
|
||||
for agent in agents:
|
||||
memory_path = f"bots/{agent}/memory.json"
|
||||
try:
|
||||
with open(memory_path, 'r') as f:
|
||||
memory = json.load(f)
|
||||
|
||||
# Check the last system message in turns
|
||||
for turn in reversed(memory['turns']):
|
||||
if turn['role'] == 'system' and 'code' in turn['content']:
|
||||
# Extract completion code
|
||||
if 'code : 2' in turn['content']:
|
||||
return True # Task successful
|
||||
elif 'code : 4' in turn['content']:
|
||||
return False # Task failed
|
||||
|
||||
except (FileNotFoundError, json.JSONDecodeError) as e:
|
||||
print(f"Error reading memory for agent {agent}: {e}")
|
||||
continue
|
||||
|
||||
return False # Default to failure if no conclusive result found
|
||||
|
||||
def update_results_file(task_id, success_count, total_count, time_taken, experiment_results, results_filename):
|
||||
"""Update the results file with current success ratio and time taken."""
|
||||
success_ratio = success_count / total_count
|
||||
|
||||
with open(results_filename, 'w') as f: # 'w' mode overwrites the file each time
|
||||
f.write(f"Task ID: {task_id}\n")
|
||||
f.write(f"Experiments completed: {total_count}\n")
|
||||
f.write(f"Successful experiments: {success_count}\n")
|
||||
f.write(f"Success ratio: {success_ratio:.2f}\n")
|
||||
f.write(f"Time taken for last experiment: {time_taken:.2f} seconds\n")
|
||||
|
||||
# Write individual experiment results
|
||||
for i, result in enumerate(experiment_results, 1):
|
||||
f.write(f"Experiment {i}: {'Success' if result['success'] else 'Failure'}, Time taken: {result['time_taken']:.2f} seconds\n")
|
||||
|
||||
# Write aggregated metrics
|
||||
total_time = sum(result['time_taken'] for result in experiment_results)
|
||||
f.write(f"\nAggregated metrics:\n")
|
||||
f.write(f"Total experiments: {total_count}\n")
|
||||
f.write(f"Total successful experiments: {success_count}\n")
|
||||
f.write(f"Overall success ratio: {success_ratio:.2f}\n")
|
||||
f.write(f"Total time taken: {total_time:.2f} seconds\n")
|
||||
f.write(f"Average time per experiment: {total_time / total_count:.2f} seconds\n")
|
||||
f.write(f"Last updated: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")
|
||||
|
||||
|
||||
def set_environment_variable_tmux_session(session_name, key, value):
|
||||
"""Set an environment variable for the current process."""
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, f"export {key}={value}", "C-m"])
|
||||
|
||||
def launch_parallel_experiments(task_path,
|
||||
num_exp,
|
||||
exp_name,
|
||||
num_agents=2,
|
||||
model="gpt-4o",
|
||||
num_parallel=1):
|
||||
|
||||
with open(task_path, 'r', encoding='utf-8') as file:
|
||||
content = file.read()
|
||||
json_data = json.loads(content)
|
||||
|
||||
task_ids = json_data.keys()
|
||||
|
||||
# split the task_ids into num_parallel groups
|
||||
task_ids = list(task_ids)
|
||||
task_ids_split = [task_ids[i::num_parallel] for i in range(num_parallel)]
|
||||
|
||||
servers = create_server_files("../server_data/", num_parallel)
|
||||
date_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
experiments_folder = f"experiments/{exp_name}_{date_time}"
|
||||
exp_name = f"{exp_name}_{date_time}"
|
||||
|
||||
# start wandb
|
||||
os.makedirs(experiments_folder, exist_ok=True)
|
||||
for i, server in enumerate(servers):
|
||||
launch_server_experiment(task_path, task_ids_split[i], num_exp, server, experiments_folder, exp_name)
|
||||
time.sleep(5)
|
||||
|
||||
|
||||
def launch_server_experiment(task_path,
|
||||
task_ids,
|
||||
num_exp,
|
||||
server,
|
||||
experiments_folder,
|
||||
exp_name="exp",
|
||||
num_agents=2,
|
||||
model="gpt-4o"):
|
||||
"""
|
||||
Launch a Minecraft server and run experiments on it.
|
||||
@param task_path: Path to the task file
|
||||
@param task_ids: IDs of the tasks to run
|
||||
@param num_exp: Number of experiments to run
|
||||
@param server: Tuple containing server path and port
|
||||
@param experiments_folder: Folder to store experiment results
|
||||
@param exp_name: Name of the experiment for wandb dataset
|
||||
@param num_agents: Number of agents to run
|
||||
@param model: Model to use for the agents
|
||||
"""
|
||||
server_path, server_port = server
|
||||
edit_file(os.path.join(server_path, "server.properties"), {"server-port": server_port})
|
||||
mindserver_port = server_port - 55916 + 8080
|
||||
|
||||
# set up server and agents
|
||||
session_name = str(server_port - 55916)
|
||||
if num_agents == 2:
|
||||
agent_names = [f"andy_{session_name}", f"jill_{session_name}"]
|
||||
models = [model] * 2
|
||||
else:
|
||||
agent_names = [f"andy_{session_name}", f"jill_{session_name}", f"bob_{session_name}"]
|
||||
models = [model] * 3
|
||||
make_profiles(agent_names, models)
|
||||
|
||||
# edit_file("settings.js", {"profiles": [f"./{agent}.json" for agent in agent_names]})
|
||||
agent_profiles = [f"./{agent}.json" for agent in agent_names]
|
||||
agent_profiles_str = f"\'[\"{agent_profiles[0]}\", \"{agent_profiles[1]}\"]\'"
|
||||
print(agent_profiles_str)
|
||||
launch_world(server_path, session_name="server_" + session_name, agent_names=agent_names)
|
||||
|
||||
subprocess.run(['tmux', 'new-session', '-d', '-s', session_name], check=True)
|
||||
|
||||
# set environment variables
|
||||
set_environment_variable_tmux_session(session_name, "MINECRAFT_PORT", server_port)
|
||||
set_environment_variable_tmux_session(session_name, "MINDSERVER_PORT", mindserver_port)
|
||||
set_environment_variable_tmux_session(session_name, "PROFILES", agent_profiles_str)
|
||||
|
||||
script_content = ""
|
||||
for task_id in task_ids:
|
||||
cmd = f"node main.js --task_path {task_path} --task_id {task_id}"
|
||||
cp_cmd = f"cp {agent_names[0]}.json {server_path}bots/{agent_names[0]}/profile.json"
|
||||
for _ in range(num_exp):
|
||||
script_content += f"{cmd}\n"
|
||||
script_content += "sleep 2\n"
|
||||
for agent in agent_names:
|
||||
cp_cmd = f"cp bots/{agent}/memory.json {experiments_folder}/{task_id}_{agent}_{_}.json"
|
||||
script_content += f"{cp_cmd}\n"
|
||||
script_content += "sleep 1\n"
|
||||
script_content += f"echo 'Uploading {experiments_folder}/{task_id}_{agent}_{_}.json to wandb'\n"
|
||||
wandb_cmd = f"wandb artifact put {experiments_folder}/{task_id}_{agent}_{_}.json --name {exp_name}_{task_id}_{agent}_{_} --type dataset"
|
||||
script_content += f"echo '{wandb_cmd}'\n"
|
||||
script_content += f"{wandb_cmd}\n"
|
||||
script_content += "sleep 1\n"
|
||||
script_content += "sleep 1\n"
|
||||
|
||||
# Create a temporary shell script file
|
||||
script_file = f"./tmp/experiment_script_{session_name}.sh"
|
||||
|
||||
script_dir = os.path.dirname(script_file)
|
||||
os.makedirs(script_dir, exist_ok=True)
|
||||
|
||||
# Call the function before writing the script file
|
||||
with open(script_file, 'w') as f:
|
||||
f.write(script_content)
|
||||
|
||||
script_file_run = "bash " + script_file
|
||||
|
||||
# Execute the shell script using subprocess
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, script_file_run, "C-m"])
|
||||
|
||||
|
||||
# subprocess.run(["tmux", "send-keys", "-t", session_name, f"/op {agent_names[0]}", "C-m"])
|
||||
|
||||
def make_profiles(agent_names, models):
|
||||
assert len(agent_names) == len(models)
|
||||
for index in range(len(agent_names)):
|
||||
content = {"name": agent_names[index], "model": models[index], "modes": {"hunting": False}}
|
||||
with open(f"{agent_names[index]}.json", 'w') as f:
|
||||
json.dump(content, f)
|
||||
|
||||
def create_server_files(source_path, num_copies):
|
||||
"""Create multiple copies of server files for parallel experiments."""
|
||||
print("Creating server files...")
|
||||
print(num_copies)
|
||||
servers = []
|
||||
for i in range(num_copies):
|
||||
dest_path = f"../server_data_{i}/"
|
||||
copy_server_files(source_path, dest_path)
|
||||
print(dest_path)
|
||||
edit_file(dest_path + "server.properties", {"server-port": 55916 + i})
|
||||
# edit_server_properties_file(dest_path, 55916 + i)
|
||||
servers.append((dest_path, 55916 + i))
|
||||
return servers
|
||||
|
||||
def edit_file(file, content_dict):
|
||||
try:
|
||||
with open(file, 'r') as f:
|
||||
lines = f.readlines()
|
||||
with open(file, 'w') as f:
|
||||
for line in lines:
|
||||
for key, value in content_dict.items():
|
||||
if line.startswith(key):
|
||||
f.write(f"{key}={value}\n")
|
||||
else:
|
||||
f.write(line)
|
||||
print(f"{file} updated with {content_dict}")
|
||||
except Exception as e:
|
||||
print(f"Error editing file {file}: {e}")
|
||||
|
||||
def clean_up_server_files(num_copies):
|
||||
"""Delete server files from multiple locations."""
|
||||
for i in range(num_copies):
|
||||
dest_path = f"../server_data_{i}/"
|
||||
delete_server_files(dest_path)
|
||||
|
||||
def copy_server_files(source_path, dest_path):
|
||||
"""Copy server files to the specified location."""
|
||||
try:
|
||||
shutil.copytree(source_path, dest_path)
|
||||
print(f"Server files copied to {dest_path}")
|
||||
except Exception as e:
|
||||
print(f"Error copying server files: {e}")
|
||||
|
||||
def delete_server_files(dest_path):
|
||||
"""Delete server files from the specified location."""
|
||||
try:
|
||||
shutil.rmtree(dest_path)
|
||||
print(f"Server files deleted from {dest_path}")
|
||||
except Exception as e:
|
||||
print(f"Error deleting server files: {e}")
|
||||
|
||||
def launch_world(server_path="../server_data/", agent_names=["andy", "jill"], session_name="server"):
|
||||
"""Launch the Minecraft world."""
|
||||
print(server_path)
|
||||
cmd = f"cd {server_path} && java -jar server.jar"
|
||||
subprocess.run(['tmux', 'new-session', '-d', '-s', session_name], check=True)
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, cmd, "C-m"])
|
||||
for agent in agent_names:
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, f"/op {agent}", "C-m"])
|
||||
time.sleep(5)
|
||||
|
||||
def kill_world(session_name="server"):
|
||||
"""Kill the Minecraft world."""
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, "stop", "C-m"])
|
||||
time.sleep(5)
|
||||
subprocess.run(["tmux", "kill-session", "-t", session_name])
|
||||
|
||||
def detach_process(command):
|
||||
"""
|
||||
Launches a subprocess and detaches from it, allowing it to run independently.
|
||||
|
||||
Args:
|
||||
command: A list of strings representing the command to execute, e.g., ['python', 'my_script.py'].
|
||||
"""
|
||||
|
||||
try:
|
||||
# Create a new process group so the child doesn't get signals intended for the parent.
|
||||
# This is crucial for proper detachment.
|
||||
kwargs = {}
|
||||
if sys.platform == 'win32':
|
||||
kwargs.update(creationflags=subprocess.CREATE_NEW_PROCESS_GROUP) # Windows specific
|
||||
|
||||
process = subprocess.Popen(command,
|
||||
stdin=subprocess.PIPE, # Prevent stdin blocking
|
||||
stdout=subprocess.PIPE, # Redirect stdout
|
||||
stderr=subprocess.PIPE, # Redirect stderr
|
||||
close_fds=True, # Close open file descriptors
|
||||
**kwargs)
|
||||
|
||||
print(f"Process launched with PID: {process.pid}")
|
||||
return process.pid # Return the PID of the detached process
|
||||
|
||||
except FileNotFoundError:
|
||||
print(f"Error: Command not found: {command}")
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {e}")
|
||||
return None
|
||||
|
||||
def main():
|
||||
# edit_settings("settings.js", {"profiles": ["./andy.json", "./jill.json"], "port": 55917})
|
||||
# edit_server_properties_file("../server_data/", 55917)
|
||||
|
||||
parser = argparse.ArgumentParser(description='Run Minecraft AI agent experiments')
|
||||
parser.add_argument('--task_path', default="multiagent_crafting_tasks.json", help='Path to the task file')
|
||||
parser.add_argument('--task_id', default=None, help='ID of the task to run')
|
||||
parser.add_argument('--num_exp', default=1, type=int, help='Number of experiments to run')
|
||||
parser.add_argument('--num_parallel', default=1, type=int, help='Number of parallel servers to run')
|
||||
parser.add_argument('--exp_name', default="exp", help='Name of the experiment')
|
||||
parser.add_argument('--wandb', action='store_true', help='Whether to use wandb')
|
||||
parser.add_argument('--wandb-project', default="minecraft_experiments", help='wandb project name')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.wandb:
|
||||
import wandb
|
||||
wandb.init(project=args.wandb_project, name=args.exp_name)
|
||||
|
||||
# kill all tmux session before starting
|
||||
try:
|
||||
subprocess.run(['tmux', 'kill-server'], check=True)
|
||||
except:
|
||||
print("No tmux session to kill")
|
||||
|
||||
# delete all server files
|
||||
clean_up_server_files(args.num_parallel)
|
||||
if args.task_id is None:
|
||||
launch_parallel_experiments(args.task_path, num_exp=args.num_exp, exp_name=args.exp_name, num_parallel=args.num_parallel)
|
||||
|
||||
# servers = create_server_files("../server_data/", args.num_parallel)
|
||||
# date_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
# experiments_folder = f"{args.exp_name}_{date_time}"
|
||||
# os.makedirs(experiments_folder, exist_ok=True)
|
||||
# for server in servers:
|
||||
# launch_server_experiment(args.task_path, [args.task_id], args.num_exp, server, experiments_folder)
|
||||
# time.sleep(5)
|
||||
|
||||
# run_experiment(args.task_path, args.task_id, args.num_exp)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -1,112 +0,0 @@
|
|||
{
|
||||
"debug_single_agent": {
|
||||
"goal": "Just stand at a place and don't do anything",
|
||||
"initial_inventory": {},
|
||||
"type": "debug"
|
||||
},
|
||||
"debug_multi_agent": {
|
||||
"goal": "Just stand at a place and don't do anything",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"type": "debug"
|
||||
},
|
||||
"debug_inventory_restriction": {
|
||||
"goal": "Place 1 oak plank, then place 1 stone brick",
|
||||
"initial_inventory": {
|
||||
"oak_planks": 20
|
||||
},
|
||||
"type": "debug",
|
||||
"restrict_to_inventory": true
|
||||
},
|
||||
"construction": {
|
||||
"type": "construction",
|
||||
"goal": "Build a house",
|
||||
"initial_inventory": {
|
||||
"oak_planks": 20
|
||||
}
|
||||
},
|
||||
"techtree_1_shears_with_2_iron_ingot": {
|
||||
"goal": "Build a shear.",
|
||||
"initial_inventory": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"target": "shears",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 60
|
||||
},
|
||||
"multiagent_techtree_1_stone_pickaxe": {
|
||||
"conversation": "Let's collaborate to build a stone pickaxe",
|
||||
"goal": "Build a stone pickaxe",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"wooden_pickaxe": 1
|
||||
},
|
||||
"1": {
|
||||
"wooden_axe": 1
|
||||
}
|
||||
},
|
||||
"target": "stone_pickaxe",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 300
|
||||
},
|
||||
"multiagent_techtree_1_shears": {
|
||||
"goal": "Collaborate with other agents to build a shear.",
|
||||
"conversation": "Let's collaborate to build a shear.",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"target": "shears",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 60
|
||||
},
|
||||
"smelt_ingot": {
|
||||
"goal": "Smelt 1 iron ingot and 1 copper ingot",
|
||||
"agent_count": 1,
|
||||
"initial_inventory": {
|
||||
"furnace": 1,
|
||||
"raw_iron": 1,
|
||||
"raw_copper": 1,
|
||||
"coal": 2
|
||||
},
|
||||
"target": "copper_ingot",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 300
|
||||
},
|
||||
"multiagent_smelt_ingot": {
|
||||
"conversation": "Let's collaborate to smelt ingots",
|
||||
"goal": "Smelt 1 iron ingot and 1 copper ingot, use star emojis in every response",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"furnace": 1,
|
||||
"coal": 2
|
||||
},
|
||||
"1": {
|
||||
"raw_iron": 1,
|
||||
"raw_copper": 1
|
||||
}
|
||||
},
|
||||
"target": "copper_ingot",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 300
|
||||
}
|
||||
}
|
154
minecollab.md
Normal file
154
minecollab.md
Normal file
|
@ -0,0 +1,154 @@
|
|||
# MineCollab
|
||||
|
||||
MineCollab is a versatile benchmark for assessing the embodied and collaborative communication abilities of agents across three unique types of tasks.
|
||||
|
||||
## Existing Task Types
|
||||
|
||||
### Cooking
|
||||
At the beginning of a cooking task episode, the agents are initialized with a goal to make a meal, e.g. they need to make cake and bread.
|
||||
The agents then need to coordinate the collection of ingredients through natural language communication (e.g. Andy collects wheat for the bread while Jill makes the cake) and combine them in a multi-step plan.
|
||||
To assist them in collecting resources, agents are placed in a "cooking world" that possesses all of the items they need to complete the task, from livestock, to crops, to a smoker, furnace, and crafting table.
|
||||
Following a popular test of collaboration in humans, we further introduce a ``Hell's Kitchen'' variant of the cooking tasks where each agent is given the recipes for a small subset of the items they need to cook and must communicate the instructions with the other teammates.
|
||||
For example, if the task is to make a baked potato and a cake, one agent is given recipe for baked potato, but is required to bake the cake to complete the task, forcing them to ask their teammate for help in baking the potato.
|
||||
Agents are evaluated on whether are successfully able to complete the set requirements to make the recipes.
|
||||
The environment and objectives of the tasks are randomized every episode.
|
||||
|
||||
You can view the cooking task in action [here](https://www.youtube.com/shorts/FbNJ3cR_RWY).
|
||||
|
||||
### Construction
|
||||
|
||||
In the construction tasks, agents are directed to build structures from procedurally generated blueprints.
|
||||
Blueprints can also be downloaded from the internet and read into our blueprint format - enabling agents to build anything from pyramids to the Eiffel Tower.
|
||||
We choose evaluate primarily on our generated blueprints as they provide fine-grained control over task complexity, allowing us to systematically vary the depth of collaboration required---e.g. number of rooms in the interior of palace, or the amount and types of materials required for each room.
|
||||
At the beginning of each episode, agents are initialized with the blueprint, materials (e.g. stone, wood, doors, carpets) in such a way that no agent has the full resources or the expertise in terms of the types of tools that can be used to process the resources and complete the entire blueprint.
|
||||
For example, if the blueprint required a stone base and a wooden roof, one agent would be given access and the ability to manipulate stone, the other to wood.
|
||||
Agents are evaluated via an edit distance based metric that judges how close their constructed building is to the blueprint and the metric reported is the average of those edit distance scores.
|
||||
|
||||
You can view the construction task in action [here](https://www.youtube.com/shorts/vuBycbn35Rw)
|
||||
|
||||
### Crafting
|
||||
|
||||
Crafting has long been the subject of Minecraft agent research---our crafting tasks encompass the entire breadth of items that are craftable in Minecraft including clothing, furniture, and tools.
|
||||
At the beginning of each episode, the agents are initialized with a goal (e.g. make a bookshelf), different sets of resources (e.g. books and planks), and access to a crafting recipe, that is occasionally blocked.
|
||||
To complete the task, the agents must: (1) communicate with each other what items are in their inventory; (2) share with each other the crafting recipe if necessary; and (3) give each other resources to successfully craft the item.
|
||||
To make the crafting tasks more challenging, agents are given longer crafting objectives (e.g. crafting a compass which requires multiple steps).
|
||||
%They are required to coordinate their actions by communicating their plans with each other as no
|
||||
%we introduce longer crafting recipes (e.g. crafting a compass), and require the agents to communicate the plan to each other.
|
||||
Once again, each of these components can be controlled to procedurally generate tasks.
|
||||
|
||||
You can view the crafting task in action [here](https://www.youtube.com/shorts/VMAyxwMKiBc).
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
Please follow the installation docs in the README to install mindcraft. You can create a docker image using the Dockerfile.
|
||||
|
||||
Download the relevant task files and server data files, you can find the link [here](https://drive.google.com/drive/folders/1XygbitBBTsNO6q_doEiZHmdETpnyRmCS). The tasks files are for specifying the tasks to run and the server data is for allowing the models to launch the task in the correct world automatically. **Unzip the server_data.zip in the base `tasks/` folder**.
|
||||
|
||||
Then, set up your conda environment:
|
||||
|
||||
```
|
||||
conda create --name mindcraft python=3.11
|
||||
conda activate mindcraft
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
Then, you can run the evaluation_script **from the project root** using `python tasks/evaluation_script.py --task_path {your-task-path} --model {model you want to use}`.
|
||||
|
||||
If you want to run with vllm be sure to run with `--api vllm --url {your_url_for_vllm} --model {model_name}`, by default vllm will use http://127.0.0.1:8000/v1 as the url for quering the model!
|
||||
|
||||
When running with construction tasks, make sure to set the flag `--insecure_coding` so that the agents can be allowed to write freeform javascript code to complete the tasks. However, when using insecure coding it is highly recommended to use a docker container to avoid damage to your computer.
|
||||
|
||||
When running an experiment that requires more than 2 agents, use the `--num_agents` flag to match the number of agents in your task file. For example, if you are running a task file with 3 agents, use `--num_agents 3`.
|
||||
|
||||
Similarly, match the default prompt profile to the type of task. If you are running a crafting task use `--template_profile profiles/tasks/crafting_profile.json` to set that as the default profile. Similar for cooking and construction tasks.
|
||||
|
||||
In summary, to run two and three agent tasks on crafting on gpt-4o-mini you would run
|
||||
|
||||
```
|
||||
python tasks/evaluation_script.py --task_path tasks/crafting_tasks/test_tasks/2_agent.json --model gpt-4o-mini --template_profile profiles/tasks/crafting_profile.json
|
||||
|
||||
python tasks/evaluation_script.py --task_path tasks/crafting_tasks/test_tasks/filtered_tasks_3_agents.json --model gpt-4o-mini --template_profile profiles/tasks/crafting_profile --num_agents 3
|
||||
```
|
||||
|
||||
For cooking and construction
|
||||
|
||||
```
|
||||
python tasks/evaluation_script.py --task_path {path_to_two_agent_cooking_tasks} --model gpt-4o-mini --template_profile profiles/tasks/cooking_profile.json
|
||||
|
||||
python tasks/evaluation_script.py --task_path {path_to_two_agent_construction_tasks} --model gpt-4o-mini --template_profile profiles/tasks/construction_profile.json --insecure_coding
|
||||
```
|
||||
|
||||
When you launch the evaluation script, you will see the minecraft server being launched. If you want to join this world, you can connect to it on the port localhost:55916 the way you would a standard Minecraft world (go to single player -> direct connection -> type in localhost:55916) It may take a few minutes for everything to be properly loaded - as first the agents need to be added to the world and given the correct permissions to use cheats and add inventory. After about 5 minutes everything should be loaded and working. If you wish to kill the experiment run `tmux kill-server`. Sometimes there will be issues copying the files, if this happens you can run the python file twice.
|
||||
|
||||
## Installation (without tmux)
|
||||
|
||||
If you are on a machine that can't run tmux (like a Windows PC without WSL) or you don't care about doing evaluations only running tasks you can run the following script
|
||||
|
||||
```
|
||||
python tasks/run_task_file.py --task_path=tasks/single_agent/crafting_train.json
|
||||
```
|
||||
|
||||
## Using the Evaluation Script
|
||||
|
||||
When you launch with `python evaluation_script.py` a Minecraft server will be launched in the `server_0` tmux shell, while in the `0` tmux shell the `node main.js` command will be run. You can view the exact bash shell that is being created and executed in the `tmp/` directory.
|
||||
|
||||
### Evaluating Results
|
||||
|
||||
As you run, the evalaution script will evaluate the performance so far. It will also log all of the results you have collected into an experiments/ folder with entries like experiments/exp_04-21_16-16/results.txt which will contain the results of your experiments after you have finished running them. Furthermore it will contain individual task folders and the `memory.json` for each agent when the task ended. The `memory.json` is not the complete conversation, it is only the last 15 messages before the task terminated, as well as a message saying `Task ended with score: ` to report the score when the task ended. For crafting and cooking this score will be 0 or 1, for construction it will be a decimal representing the edit distance from the true blueprint.
|
||||
|
||||
### Running multiple worlds in parallel
|
||||
|
||||
You can use `--num_parallel` to run multiple Minecraft worlds in parallel. This will launch `n` tmux shells, claled `server_i` and shell `i`, where `i` corresponds to ith parallel world. It will also copy worlds into `server_data_i` as well. On an M3 Mac with 34 GB of RAM, we can normally support up to 4 parallel worlds. When running an open source model, it is more likely you will be constrained by the throughput and size of your GPU RAM. On a cluster of 8 H100s you can expect to run 4 experiments in parallel. However, for best performance it is advisable to only use one parallel world.
|
||||
|
||||
### Using an S3 Bucket to store files
|
||||
To use S3 set the --s3 flag and the --bucket_name to use an s3 bucket to log all the files collected. It will also copy the /bots folder in this case with all of the files in there.
|
||||
|
||||
## Understanding Task Json
|
||||
|
||||
This is an example task json from the crafting tasks file.
|
||||
|
||||
```
|
||||
"multiagent_crafting_pink_wool_full_plan__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft an pink_wool",
|
||||
"conversation": "Let's work together to craft an pink_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"pink_dye": 1
|
||||
},
|
||||
"1": {
|
||||
"black_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "pink_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": false
|
||||
},
|
||||
```
|
||||
|
||||
The "initial inventory" specifies what items will be given to the agents when they spawn in the world. The "target" indicates what the goal item is, while the "type" indicates that this a techtree or crafting task. Blocked actions specifies what actions are blocked and the timeout specifies the number of seconds until the agents run out of time to complete the task.
|
||||
|
||||
## Creating New Tasks
|
||||
|
||||
To create a new task, you simply need to set the initial inventory and the target item. For construction tasks, you can set a new blueprint. See examples of those in tasks/construction_tasks/
|
||||
|
||||
To create a task that relies on neither an inventory check or a blueprint check, you will need to design you own evaluation function. The examples for our existing evaluation functions can be found in src/agent/tasks/cooking_tasks.js CookingTaskValidator. For any further questions please contact me at i2white@ucsd.edu.
|
||||
|
||||
## Creating New Worlds
|
||||
|
||||
To add new worlds to the minecraft environment beyond the base Forest and Superflat worlds we have created, please (1) create a world in your version of Minecraft then (2) copy the world files into the server_data folder and (3) set server.properties file level-name to be the same as the name of the world you created.
|
||||
|
||||
## Evaluating New Models
|
||||
|
||||
To evaluate a new model on our tasks, please refer to the instructions on main README for adding models. If the model can be hosted through vllm, consider using the --vllm flag and instructions above for running that.
|
||||
|
42
profiles/tasks/construction_profile.json
Normal file
42
profiles/tasks/construction_profile.json
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"name": "andy",
|
||||
|
||||
"model": "gpt-4o-mini",
|
||||
|
||||
"conversing": "You are a task-focused Minecraft bot named $NAME. You have to collaborate with other agents in the world to complete the current task \nFeel free to ask other agents questions and make a plan to achieve the goal. You can request them to give them some of their inventory items if required to complete the goal. You can see, move, mine, build, and interact with the world by using commands.\n$SELF_PROMPT Act human-like as if you were a typical Minecraft player, rather than an AI. Be very brief in your responses, don't apologize constantly, don't give instructions or make lists unless asked, and don't refuse requests. Don't pretend to act, use commands immediately when requested. Do NOT say this: 'Sure, I've stopped.', instead say this: 'Sure, I'll stop. !stop'. Do NOT say this: 'On my way! Give me a moment.', instead say this: 'On my way! !goToPlayer(\"playername\", 3)'. Respond only as $NAME, never output '(FROM OTHER BOT)' or pretend to be someone else. If you have nothing to say or do, respond with an just a tab '\t'. Share resources and information with other bots! This is extremely important to me, take a deep breath and have fun :) \nSummarized memory:'$MEMORY'\n$STATS\n$INVENTORY\n$COMMAND_DOCS\n$EXAMPLES\nConversation Begin:",
|
||||
|
||||
"modes": {
|
||||
"cheat": false
|
||||
},
|
||||
|
||||
"conversation_examples": [
|
||||
[
|
||||
{"role": "assistant", "content": "Alright I have the necessary materials to build, what needs to be done for the first level of the blueprint? !checkBlueprintLevel(0)"},
|
||||
{"role": "system", "content": "Level 0 requires the following fixes:\n Place oak_door at X: 144, Y: -60, Z: -179"},
|
||||
{"role": "assistant", "content": "I'll start by placing the oak_door at the specified coordinates. !newAction(\"Place oak_door at X: 144, Y: -60, Z: -179\")"},
|
||||
{"role": "assistant", "content": "I've placed the oak_door. What's next? !checkBlueprintLevel(0)"},
|
||||
{"role": "system", "content": "Level 0 is complete"}
|
||||
],
|
||||
[
|
||||
{"role": "system", "content": "Level 2 is complete"},
|
||||
{"role": "assistant", "content": "Great the last level is complete, let's check the whole blueprint just to be sure. !checkBlueprint"}
|
||||
],
|
||||
[
|
||||
{"role": "user", "content": "philips: (FROM OTHER BOT) I've got stone. What about you?"},
|
||||
{"role": "assistant", "content": "I have a door and planks. Great we have everything we need from the blueprint. Let's start building the first level! !checkBlueprintLevel(0)"},
|
||||
{"role": "system", "content": "Level 0 requires the following fixes:\n Place stone at X:100, y: -60, Z:-179\n Place stone at X: 99, Y: -60, Z:-179\n Place stone at X: 98, Y:-60, Z:-179..."},
|
||||
{"role": "assistant", "content": "Looks like the first level requires only stone, why don't you build that since you have stone?"},
|
||||
{"role": "user", "content": "philips: (FROM OTHER BOT) Ok, let me see what needs to be done for level 0. !checkBlueprintLevel(0) "},
|
||||
{"role": "system", "content": "Level 0 requires the following fixes:\n Place stone at X:100, y: -60, Z:-179\n Place stone at X: 99, Y: -60, Z:-179\n Place stone at X: 98, Y:-60, Z:-179..."},
|
||||
{"role": "user", "content": "philips: (FROM OTHER BOT) Ok, since I have stone let me place the necessary blocks. !newAction(\"Place stone for level 0\")"},
|
||||
{"role": "user", "content": "philips: (FROM OTHER BOT) I've placed the stone blocks for level 0. Let's check if it is done! !checkBlueprintLevel(0)"},
|
||||
{"role": "user", "content": "philips: (FROM OTHER BOT) Since the blueprint for level 1 only needs stone, I'll start placing those. !newAction(\"Place stone blocks for level 1.\")"},
|
||||
{"role": "assistant", "content": " I'll place the planks for level 2. !newAction(\"Place planks for level 2.\")"}
|
||||
],
|
||||
[
|
||||
{"role": "assistant", "content": "I need 30 stones to build level 1 of blueprint, but I only have 20. Can you pass me some stones if you have any?"},
|
||||
{"role": "user", "content": "philips: (FROM OTHER BOT) Sure, I'll pass you 10 stones. !givePlayer(\"fujibayashi\", \"stone\", 10)"},
|
||||
{"role": "assistant", "content": "I've received the stones, let me start placing them. !newAction(\"Place stone for level 1\")"}
|
||||
]
|
||||
]
|
||||
}
|
11
profiles/tasks/cooking_profile.json
Normal file
11
profiles/tasks/cooking_profile.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"name": "andy",
|
||||
"model": "claude-3-5-sonnet-latest",
|
||||
"modes": {
|
||||
"hunting": false,
|
||||
"item_collecting": true,
|
||||
"elbow_room": false
|
||||
},
|
||||
"conversing": "You are a task-focused Minecraft bot named $NAME. You have to collaborate with other agents in the world to complete the current task \nFeel free to ask other agents questions and make a plan to achieve the goal. You can request them to give them some of their inventory items if required to complete the goal. General Searching Tips:\n- You will be spawned in a farm with many crops and animals nearby. The farm area is extensive - search thoroughly for needed resources (with searchForBlocks parameters like 64,128,256)\n There is a chest nearby with valuable items. Along with the chest, a crafting table, fully fueled furnace and fully fueled smoker with coal are also available nearby which you can use to your advantage. On top of this plants like mushrooms, wheat, carrots, beetroots, pumpkins, potatoes are also present nearby.\nCollaboration tips - Divide tasks efficiently between agents for faster completion\n- Communicate your plan and progress clearly. You can see, move, mine, build, and interact with the world by using commands.\n$SELF_PROMPT Act human-like as if you were a typical Minecraft player, rather than an AI. Be very brief in your responses, don't apologize constantly, don't give instructions or make lists unless asked, and don't refuse requests. Don't pretend to act, use commands immediately when requested. Do NOT say this: 'Sure, I've stopped.', instead say this: 'Sure, I'll stop. !stop'. Do NOT say this: 'On my way! Give me a moment.', instead say this: 'On my way! !goToPlayer(\"playername\", 3)'. Respond only as $NAME, never output '(FROM OTHER BOT)' or pretend to be someone else. If you have nothing to say or do, respond with an just a tab '\t'. Share resources and information with other bots! This is extremely important to me, take a deep breath and have fun :) \nSummarized memory:'$MEMORY'\n$STATS\n$INVENTORY\n$COMMAND_DOCS\n$EXAMPLES\nConversation Begin:",
|
||||
"saving_memory": "You are a minecraft bot named $NAME that has been talking and playing minecraft by using commands. Update your memory by summarizing the following conversation and your old memory in your next response. Prioritize preserving important facts, things you've learned, useful tips, and long term reminders. Do Not record stats, inventory, or docs! Only save transient information from your chat history. $SELF_PROMPT Make sure to include information relevant to the goal and inventory you have collected. You're limited to 500 characters, so be extremely brief and minimize words. Compress useful information. \nOld Memory: '$MEMORY'\nRecent conversation: \n$TO_SUMMARIZE\nSummarize your old memory and recent conversation into a new memory, and respond only with the unwrapped memory text: "
|
||||
}
|
71
profiles/tasks/crafting_profile.json
Normal file
71
profiles/tasks/crafting_profile.json
Normal file
|
@ -0,0 +1,71 @@
|
|||
{
|
||||
"name": "andy",
|
||||
"model": "claude-3-5-sonnet-latest",
|
||||
"modes": {
|
||||
"hunting": false,
|
||||
"elbow_room": false
|
||||
},
|
||||
"conversing": "You are a playful Minecraft bot named $NAME that can converse with players, see, move, mine, build, and interact with the world by using commands.\n$SELF_PROMPT Act human-like as if you were a typical Minecraft player, rather than an AI. Be very brief in your responses, don't apologize constantly, don't give instructions or make lists unless asked, and don't refuse requests. Don't pretend to act, use commands immediately when requested. Do NOT say this: 'Sure, I've stopped.', instead say this: 'Sure, I'll stop. !stop'. Do NOT say this: 'On my way! Give me a moment.', instead say this: 'On my way! !goToPlayer(\"playername\", 3)'. Respond only as $NAME, never output '(FROM OTHER BOT)' or pretend to be someone else. If you have nothing to say or do, respond with an just a tab '\t'. Share resources and information with other bots! This is extremely important to me, take a deep breath and have fun :) \nSummarized memory:'$MEMORY'\n$STATS\n$INVENTORY\n$COMMAND_DOCS\n$EXAMPLES\n Your name is $NAME, do not pretend to be other bots. You are in a conversation by default do not use !startConversation to start a conversation. Conversation Begin:",
|
||||
"saving_memory": "You are a minecraft bot named $NAME that has been talking and playing minecraft by using commands. Update your memory by summarizing the following conversation and your old memory in your next response. Prioritize preserving important facts, things you've learned, useful tips, and long term reminders. Do Not record stats, inventory, or docs! Only save transient information from your chat history. $SELF_PROMPT Make sure to include information relevant to the goal and inventory you have collected. You're limited to 500 characters, so be extremely brief and minimize words. Compress useful information. \nOld Memory: '$MEMORY'\nRecent conversation: \n$TO_SUMMARIZE\nSummarize your old memory and recent conversation into a new memory, and respond only with the unwrapped memory text: ",
|
||||
"conversation_examples": [
|
||||
[
|
||||
{"role": "user", "content": "philips: (FROM OTHER BOT) Hey! let's collaborate to build a stone pickaxe!"},
|
||||
{"role": "assistant", "content": "Cool, let me check what is in my inventory !inventory\nI have 10 oak logs. What do you have?"},
|
||||
{"role": "user", "content": "philips: (FROM OTHER BOT) Let me check !inventory \nI have 10 stones."},
|
||||
{"role": "assistant", "content": "Let me give you the stones and you can craft the pickaxe. !givePlayer(\"playername\", \"stone\", 10)"},
|
||||
{"role": "user", "content": "philips: (FROM OTHER BOT) Thanks for the stones! Now I can craft the pickaxe. !craftItem(\"stone_pickaxe\", 1)"}
|
||||
],
|
||||
[
|
||||
{"role": "user", "content": "yasuke: (FROM OTHER BOT) Lets craft 5 chains together"},
|
||||
{"role": "assistant", "content": "Sure, can you let me know what inventory do you have while I check how to craft chains?"},
|
||||
{"role": "user", "content": "yasuke: (FROM OTHER BOT) I have 10 iron_nugget and 3 mushroom."},
|
||||
{"role": "assistant", "content": "Thanks for letting me know, let me check how to build a chain, !getCraftingPlan(\"chain\",5)"},
|
||||
{"role": "system", "content": "You are missing the following items:\n- 2 iron_ingot\n\nOnce you have these items, here's your crafting plan:\n\nCraft 2 iron_ingot -> 18 iron_nugget\nCraft 10 iron_nugget + 5 iron_ingot -> 5 chain"},
|
||||
{"role": "assistant", "content": "Seems like we need 2 iron_ingot, but wait, we need the iron_ingot for getting 10 iron_nugget, since you already have 10 iron_nugget, I don't need to search for 2 iron_ingots in the world, could you give me the 10 iron_nugget ?"},
|
||||
{"role": "user", "content": "yasuke: (FROM OTHER BOT) Sure, here you go !givePlayer(\"andy\", \"iron_nugget\", 10)"},
|
||||
{"role": "assistant", "content": "Thanks for the iron_nuggets, now I can craft the chains. !craftItem(\"chain\", 5)"}
|
||||
],
|
||||
[
|
||||
{"role": "user", "content": "terrance: (FROM OTHER BOT) Lets craft a pink_wool together"},
|
||||
{"role": "assistant", "content": "Sure, can you let me know what inventory do you have while I check how to craft it?"},
|
||||
{"role": "user", "content": "terrance: (FROM OTHER BOT) I have 1 pink_dye with me."},
|
||||
{"role": "assistant", "content": "Thanks for letting me know, let me check how to craft a pink_wool, !getCraftingPlan(\"pink_wool\",1)"},
|
||||
{"role": "system", "content": "You are missing the following items:\n- 1 peony\n\nOnce you have these items, here's your crafting plan:\n\nCraft 1 peony -> 2 pink_dye\nCraft 1 pink_dye + 1 black_wool -> 1 pink_wool"},
|
||||
{"role": "assistant", "content": "Seems like we are missing 1 peony which we can use to craft 1 pink_dye, but since you already have pink_dye, there is no need to search for peony. Can you pass the pink_dye to me?"},
|
||||
{"role": "user", "content": "terrance: (FROM OTHER BOT) Sure, here you go !givePlayer(\"andy\", \"pink_dye\", 1)"},
|
||||
{"role": "assistant", "content": "Thanks for the pink_dye, now I can craft the pink_wool. !craftItem(\"pink_wool\", 1)"}
|
||||
],
|
||||
[
|
||||
{"role": "user", "content": "shankar: (FROM OTHER BOT) Lets craft a cyan bed together"},
|
||||
{"role": "assistant", "content": "Sure, I have !inventory\nI have a cyan_dye and oak_planks. What do you have? "},
|
||||
{"role": "user", "content": "shankar: (FROM OTHER BOT) I have 1 cyan_wool and 1 oak_planks. Let me give those to you !givePlayer(\"andy\", \"cyan_wool\", 1) !givePlayer(\"andy\", \"oak_planks\", 1)"},
|
||||
{"role": "assistant", "content": "Hmm, seems like we don't have enough to craft a cyan bed. Let me reach out to the third agent and ask for help! !startConversation(\"jacob\", Hey jacob, can you help us craft a cyan bed? We need cyan_dye and oak_planks.)"},
|
||||
{"role": "user", "content": "jacob: (FROM OTHER BOT) Sure! Let me give those to you !givePlayer(\"andy\", \"cyan_dye\", 1) !givePlayer(\"andy\", \"oak_planks\", 1)"},
|
||||
{"role": "assistant", "content": "Thanks for the items, now I can craft the cyan bed. !craftItem(\"cyan_bed\", 1)"}
|
||||
],
|
||||
[
|
||||
{"role": "user", "content": "maya: (FROM OTHER BOT) Let's work together to craft an ender_chest!"},
|
||||
{"role": "assistant", "content": "Sounds good! Let me check what I have. !inventory\nI have 2 obsidian and 1 ender_eye. What do you have?"},
|
||||
{"role": "user", "content": "maya: (FROM OTHER BOT) I have 4 obsidian. !inventory"},
|
||||
{"role": "assistant", "content": "Great! Let's see if we need more materials. !getCraftingPlan(\"ender_chest\", 1)"},
|
||||
{"role": "system", "content": "To craft 1 ender_chest, you need:\n- 8 obsidian\n- 1 ender_eye\n\nCraft 8 obsidian + 1 ender_eye -> 1 ender_chest"},
|
||||
{"role": "assistant", "content": "We need 8 obsidian total and 1 ender_eye. Between us we have 6 obsidian and 1 ender_eye. Let's ask lucas if he has the remaining obsidian! !startConversation(\"lucas\", \"Hey lucas, we're trying to craft an ender_chest. We need 2 more obsidian. Do you have any?\")"},
|
||||
{"role": "user", "content": "lucas: (FROM OTHER BOT) Yes, I have exactly 2 obsidian! I'll give them to you. !givePlayer(\"andy\", \"obsidian\", 2)"},
|
||||
{"role": "assistant", "content": "Perfect! Maya, can you send me your 4 obsidian as well?"},
|
||||
{"role": "user", "content": "maya: (FROM OTHER BOT) Sure thing! !givePlayer(\"andy\", \"obsidian\", 4)"},
|
||||
{"role": "assistant", "content": "Thanks both of you! Now I have everything I need. !craftItem(\"ender_chest\", 1)"}
|
||||
],
|
||||
[
|
||||
{"role": "user", "content": "finn: (FROM OTHER BOT) Hey everyone, let's craft a hopper together!"},
|
||||
{"role": "assistant", "content": "I'm in! Let me check what I have first. !inventory\nI have 3 iron_ingot and 2 oak_planks. What about you?"},
|
||||
{"role": "user", "content": "finn: (FROM OTHER BOT) I have 1 iron_ingot and 4 oak_planks. !inventory"},
|
||||
{"role": "assistant", "content": "Let me see what we need for a hopper. !getCraftingPlan(\"hopper\", 1)"},
|
||||
{"role": "system", "content": "To craft 1 hopper, you need:\n- 5 iron_ingot\n- 1 chest\n\nTo craft 1 chest, you need:\n- 8 oak_planks\n\nYour crafting plan:\nCraft 8 oak_planks -> 1 chest\nCraft 5 iron_ingot + 1 chest -> 1 hopper"},
|
||||
{"role": "assistant", "content": "We need 5 iron_ingot total and 8 oak_planks to make a chest first. Together we have 4 iron_ingot and 6 oak_planks. Let's see if zoe has the rest! !startConversation(\"zoe\", \"Hey zoe, we're making a hopper. We need 1 more iron_ingot and 2 more oak_planks. Can you help?\")"},
|
||||
{"role": "user", "content": "zoe: (FROM OTHER BOT) I have exactly what you need! 1 iron_ingot and 2 oak_planks. !givePlayer(\"andy\", \"iron_ingot\", 1) !givePlayer(\"andy\", \"oak_planks\", 2)"},
|
||||
{"role": "assistant", "content": "Thanks zoe! Finn, can you send me your materials too?"},
|
||||
{"role": "user", "content": "finn: (FROM OTHER BOT) Here you go! !givePlayer(\"andy\", \"iron_ingot\", 1) !givePlayer(\"andy\", \"oak_planks\", 4)"},
|
||||
{"role": "assistant", "content": "Perfect! Now I'll craft the chest first, then the hopper. !craftItem(\"chest\", 1) !craftItem(\"hopper\", 1)"}
|
||||
]
|
||||
]
|
||||
}
|
10
profiles/vllm.json
Normal file
10
profiles/vllm.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"name": "vllm",
|
||||
|
||||
"model": {
|
||||
"api": "vllm",
|
||||
"model": "Qwen/Qwen2.5-1.5B-Instruct",
|
||||
"url": "http://127.0.0.1:8000/v1"
|
||||
},
|
||||
"embedding": "openai"
|
||||
}
|
5
requirements.txt
Normal file
5
requirements.txt
Normal file
|
@ -0,0 +1,5 @@
|
|||
boto3==1.37.11
|
||||
botocore==1.37.11
|
||||
pandas==2.2.3
|
||||
prettytable==3.16.0
|
||||
tqdm==4.62.3
|
19
settings.js
19
settings.js
|
@ -34,7 +34,7 @@ const settings = {
|
|||
|
||||
"allow_insecure_coding": false, // allows newAction command and model can write/run code on your computer. enable at own risk
|
||||
"allow_vision": false, // allows vision model to interpret screenshots as inputs
|
||||
"blocked_actions" : [], // commands to disable and remove from docs. Ex: ["!setMode"]
|
||||
"blocked_actions" : ["!checkBlueprint", "!checkBlueprintLevel", "!getBlueprint", "!getBlueprintLevel"] , // commands to disable and remove from docs. Ex: ["!setMode"]
|
||||
"code_timeout_mins": -1, // minutes code is allowed to run. -1 for no timeout
|
||||
"relevant_docs_count": 5, // number of relevant code function docs to select for prompting. -1 for all
|
||||
|
||||
|
@ -44,6 +44,7 @@ const settings = {
|
|||
"verbose_commands": true, // show full command syntax
|
||||
"narrate_behavior": true, // chat simple automatic actions ('Picking up item!')
|
||||
"chat_bot_messages": true, // publicly chat messages to other bots
|
||||
"log_all_prompts": false, // log ALL prompts to file
|
||||
}
|
||||
|
||||
// these environment variables override certain settings
|
||||
|
@ -56,4 +57,20 @@ if (process.env.MINDSERVER_PORT) {
|
|||
if (process.env.PROFILES && JSON.parse(process.env.PROFILES).length > 0) {
|
||||
settings.profiles = JSON.parse(process.env.PROFILES);
|
||||
}
|
||||
if (process.env.INSECURE_CODING) {
|
||||
settings.allow_insecure_coding = true;
|
||||
}
|
||||
if (process.env.BLOCKED_ACTIONS) {
|
||||
settings.blocked_actions = JSON.parse(process.env.BLOCKED_ACTIONS);
|
||||
}
|
||||
if (process.env.MAX_MESSAGES) {
|
||||
settings.max_messages = process.env.MAX_MESSAGES;
|
||||
}
|
||||
if (process.env.NUM_EXAMPLES) {
|
||||
settings.num_examples = process.env.NUM_EXAMPLES;
|
||||
}
|
||||
if (process.env.LOG_ALL) {
|
||||
settings.log_all_prompts = process.env.LOG_ALL;
|
||||
}
|
||||
|
||||
export default settings;
|
||||
|
|
|
@ -14,7 +14,7 @@ import { handleTranslation, handleEnglishTranslation } from '../utils/translator
|
|||
import { addBrowserViewer } from './vision/browser_viewer.js';
|
||||
import settings from '../../settings.js';
|
||||
import { serverProxy } from './agent_proxy.js';
|
||||
import { Task } from './tasks.js';
|
||||
import { Task } from './tasks/tasks.js';
|
||||
import { say } from './speak.js';
|
||||
|
||||
export class Agent {
|
||||
|
@ -26,6 +26,8 @@ export class Agent {
|
|||
}
|
||||
|
||||
console.log('Starting agent initialization with profile:', profile_fp);
|
||||
|
||||
|
||||
|
||||
// Initialize components with more detailed error handling
|
||||
console.log('Initializing action manager...');
|
||||
|
@ -43,13 +45,25 @@ export class Agent {
|
|||
this.memory_bank = new MemoryBank();
|
||||
console.log('Initializing self prompter...');
|
||||
this.self_prompter = new SelfPrompter(this);
|
||||
convoManager.initAgent(this);
|
||||
convoManager.initAgent(this);
|
||||
console.log('Initializing examples...');
|
||||
await this.prompter.initExamples();
|
||||
console.log('Initializing task...');
|
||||
this.task = new Task(this, task_path, task_id);
|
||||
const blocked_actions = settings.blocked_actions.concat(this.task.blocked_actions || []);
|
||||
blacklistCommands(blocked_actions);
|
||||
|
||||
// load mem first before doing task
|
||||
let save_data = null;
|
||||
if (load_mem) {
|
||||
save_data = this.history.load();
|
||||
}
|
||||
let taskStart = null;
|
||||
if (save_data) {
|
||||
taskStart = save_data.taskStart;
|
||||
} else {
|
||||
taskStart = Date.now();
|
||||
}
|
||||
this.task = new Task(this, task_path, task_id, taskStart);
|
||||
this.blocked_actions = settings.blocked_actions.concat(this.task.blocked_actions || []);
|
||||
blacklistCommands(this.blocked_actions);
|
||||
|
||||
serverProxy.connect(this);
|
||||
|
||||
|
@ -58,14 +72,10 @@ export class Agent {
|
|||
|
||||
initModes(this);
|
||||
|
||||
let save_data = null;
|
||||
if (load_mem) {
|
||||
save_data = this.history.load();
|
||||
}
|
||||
|
||||
|
||||
this.bot.on('login', () => {
|
||||
console.log(this.name, 'logged in!');
|
||||
|
||||
serverProxy.login();
|
||||
|
||||
// Set skin for profile, requires Fabric Tailor. (https://modrinth.com/mod/fabrictailor)
|
||||
|
@ -88,14 +98,19 @@ export class Agent {
|
|||
|
||||
console.log(`${this.name} spawned.`);
|
||||
this.clearBotLogs();
|
||||
|
||||
|
||||
this._setupEventHandlers(save_data, init_message);
|
||||
this.startEvents();
|
||||
|
||||
|
||||
if (!load_mem) {
|
||||
this.task.initBotTask();
|
||||
if (task_path !== null) {
|
||||
this.task.initBotTask();
|
||||
}
|
||||
}
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000));
|
||||
this.checkAllPlayersPresent();
|
||||
|
||||
console.log('Initializing vision intepreter...');
|
||||
this.vision_interpreter = new VisionInterpreter(this, settings.allow_vision);
|
||||
|
||||
|
@ -137,8 +152,8 @@ export class Agent {
|
|||
console.error('Error handling message:', error);
|
||||
}
|
||||
}
|
||||
|
||||
this.respondFunc = respondFunc
|
||||
|
||||
this.respondFunc = respondFunc;
|
||||
|
||||
this.bot.on('whisper', respondFunc);
|
||||
if (settings.profiles.length === 1)
|
||||
|
@ -175,6 +190,18 @@ export class Agent {
|
|||
}
|
||||
}
|
||||
|
||||
checkAllPlayersPresent() {
|
||||
if (!this.task || !this.task.agent_names) {
|
||||
return;
|
||||
}
|
||||
|
||||
const missingPlayers = this.task.agent_names.filter(name => !this.bot.players[name]);
|
||||
if (missingPlayers.length > 0) {
|
||||
console.log(`Missing players/bots: ${missingPlayers.join(', ')}`);
|
||||
this.cleanKill('Not all required players/bots are present in the world. Exiting.', 4);
|
||||
}
|
||||
}
|
||||
|
||||
requestInterrupt() {
|
||||
this.bot.interrupt_code = true;
|
||||
this.bot.stopDigging();
|
||||
|
@ -197,6 +224,7 @@ export class Agent {
|
|||
}
|
||||
|
||||
async handleMessage(source, message, max_responses=null) {
|
||||
await this.checkTaskDone();
|
||||
if (!source || !message) {
|
||||
console.warn('Received empty message from', source);
|
||||
return false;
|
||||
|
@ -264,8 +292,8 @@ export class Agent {
|
|||
let res = await this.prompter.promptConvo(history);
|
||||
|
||||
console.log(`${this.name} full response to ${source}: ""${res}""`);
|
||||
|
||||
if (res.trim().length === 0) {
|
||||
|
||||
if (res.trim().length === 0) {
|
||||
console.warn('no response')
|
||||
break; // empty response ends loop
|
||||
}
|
||||
|
@ -447,27 +475,32 @@ export class Agent {
|
|||
async update(delta) {
|
||||
await this.bot.modes.update();
|
||||
this.self_prompter.update(delta);
|
||||
if (this.task.data) {
|
||||
let res = this.task.isDone();
|
||||
if (res) {
|
||||
await this.history.add('system', `${res.message} ended with code : ${res.code}`);
|
||||
await this.history.save();
|
||||
console.log('Task finished:', res.message);
|
||||
this.killAll();
|
||||
}
|
||||
}
|
||||
await this.checkTaskDone();
|
||||
}
|
||||
|
||||
isIdle() {
|
||||
return !this.actions.executing;
|
||||
}
|
||||
|
||||
|
||||
cleanKill(msg='Killing agent process...', code=1) {
|
||||
this.history.add('system', msg);
|
||||
this.bot.chat(code > 1 ? 'Restarting.': 'Exiting.');
|
||||
this.history.save();
|
||||
process.exit(code);
|
||||
}
|
||||
async checkTaskDone() {
|
||||
if (this.task.data) {
|
||||
let res = this.task.isDone();
|
||||
if (res) {
|
||||
await this.history.add('system', `Task ended with score : ${res.score}`);
|
||||
await this.history.save();
|
||||
// await new Promise(resolve => setTimeout(resolve, 3000)); // Wait 3 second for save to complete
|
||||
console.log('Task finished:', res.message);
|
||||
this.killAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
killAll() {
|
||||
serverProxy.shutdown();
|
||||
|
|
|
@ -2,6 +2,7 @@ import * as skills from '../library/skills.js';
|
|||
import settings from '../../../settings.js';
|
||||
import convoManager from '../conversation.js';
|
||||
|
||||
|
||||
function runAsAction (actionFn, resume = false, timeout = -1) {
|
||||
let actionLabel = null; // Will be set on first use
|
||||
|
||||
|
|
|
@ -226,7 +226,7 @@ export async function executeCommand(agent, message) {
|
|||
}
|
||||
}
|
||||
|
||||
export function getCommandDocs() {
|
||||
export function getCommandDocs(agent) {
|
||||
const typeTranslations = {
|
||||
//This was added to keep the prompt the same as before type checks were implemented.
|
||||
//If the language model is giving invalid inputs changing this might help.
|
||||
|
@ -240,6 +240,9 @@ export function getCommandDocs() {
|
|||
Use the commands with the syntax: !commandName or !commandName("arg1", 1.2, ...) if the command takes arguments.\n
|
||||
Do not use codeblocks. Use double quotes for strings. Only use one command in each response, trailing commands and comments will be ignored.\n`;
|
||||
for (let command of commandList) {
|
||||
if (agent.blocked_actions.includes(command.name)) {
|
||||
continue;
|
||||
}
|
||||
docs += command.name + ': ' + command.description + '\n';
|
||||
if (command.params) {
|
||||
docs += 'Params:\n';
|
||||
|
|
|
@ -2,6 +2,7 @@ import * as world from '../library/world.js';
|
|||
import * as mc from '../../utils/mcdata.js';
|
||||
import { getCommandDocs } from './index.js';
|
||||
import convoManager from '../conversation.js';
|
||||
import { checkLevelBlueprint, checkBlueprint } from '../tasks/construction_tasks.js';
|
||||
import { load } from 'cheerio';
|
||||
|
||||
const pad = (str) => {
|
||||
|
@ -178,6 +179,46 @@ export const queryList = [
|
|||
perform: async function (agent) {
|
||||
return "Saved place names: " + agent.memory_bank.getKeys();
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '!checkBlueprintLevel',
|
||||
description: 'Check if the level is complete and what blocks still need to be placed for the blueprint',
|
||||
params: {
|
||||
'levelNum': { type: 'int', description: 'The level number to check.', domain: [0, Number.MAX_SAFE_INTEGER] }
|
||||
},
|
||||
perform: function (agent, levelNum) {
|
||||
let res = checkLevelBlueprint(agent, levelNum);
|
||||
console.log(res);
|
||||
return pad(res);
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '!checkBlueprint',
|
||||
description: 'Check what blocks still need to be placed for the blueprint',
|
||||
perform: function (agent) {
|
||||
let res = checkBlueprint(agent);
|
||||
return pad(res);
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '!getBlueprint',
|
||||
description: 'Get the blueprint for the building',
|
||||
perform: function (agent) {
|
||||
let res = agent.task.blueprint.explain();
|
||||
return pad(res);
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '!getBlueprintLevel',
|
||||
description: 'Get the blueprint for the building',
|
||||
params: {
|
||||
'levelNum': { type: 'int', description: 'The level number to check.', domain: [0, Number.MAX_SAFE_INTEGER] }
|
||||
},
|
||||
perform: function (agent, levelNum) {
|
||||
let res = agent.task.blueprint.explainLevel(levelNum);
|
||||
console.log(res);
|
||||
return pad(res);
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '!getCraftingPlan',
|
||||
|
@ -247,7 +288,7 @@ export const queryList = [
|
|||
name: '!help',
|
||||
description: 'Lists all available commands and their descriptions.',
|
||||
perform: async function (agent) {
|
||||
return getCommandDocs();
|
||||
return getCommandDocs(agent);
|
||||
}
|
||||
},
|
||||
];
|
||||
|
|
|
@ -86,6 +86,7 @@ export class History {
|
|||
turns: this.turns,
|
||||
self_prompting_state: this.agent.self_prompter.state,
|
||||
self_prompt: this.agent.self_prompter.isStopped() ? null : this.agent.self_prompter.prompt,
|
||||
taskStart: this.agent.task.taskStartTime,
|
||||
last_sender: this.agent.last_sender
|
||||
};
|
||||
writeFileSync(this.memory_fp, JSON.stringify(data, null, 2));
|
||||
|
|
|
@ -958,8 +958,25 @@ export async function giveToPlayer(bot, itemType, username, num=1) {
|
|||
}
|
||||
// if we are too close, make some distance
|
||||
if (bot.entity.position.distanceTo(player.position) < 2) {
|
||||
let too_close = true;
|
||||
let start_moving_away = Date.now();
|
||||
await moveAwayFromEntity(bot, player, 2);
|
||||
while (too_close && !bot.interrupt_code) {
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
too_close = bot.entity.position.distanceTo(player.position) < 5;
|
||||
if (too_close) {
|
||||
await moveAwayFromEntity(bot, player, 5);
|
||||
}
|
||||
if (Date.now() - start_moving_away > 3000) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (too_close) {
|
||||
log(bot, `Failed to give ${itemType} to ${username}, too close.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
await bot.lookAt(player.position);
|
||||
if (await discard(bot, itemType, num)) {
|
||||
let given = false;
|
||||
|
|
|
@ -1,198 +0,0 @@
|
|||
import { readFileSync } from 'fs';
|
||||
import { executeCommand } from './commands/index.js';
|
||||
import { getPosition } from './library/world.js'
|
||||
import settings from '../../settings.js';
|
||||
|
||||
|
||||
export class TaskValidator {
|
||||
constructor(data, agent) {
|
||||
this.target = data.target;
|
||||
this.number_of_target = data.number_of_target;
|
||||
this.agent = agent;
|
||||
}
|
||||
|
||||
validate() {
|
||||
try{
|
||||
let valid = false;
|
||||
let total_targets = 0;
|
||||
this.agent.bot.inventory.slots.forEach((slot) => {
|
||||
if (slot && slot.name.toLowerCase() === this.target) {
|
||||
total_targets += slot.count;
|
||||
}
|
||||
if (slot && slot.name.toLowerCase() === this.target && slot.count >= this.number_of_target) {
|
||||
valid = true;
|
||||
console.log('Task is complete');
|
||||
}
|
||||
});
|
||||
if (total_targets >= this.number_of_target) {
|
||||
valid = true;
|
||||
console.log('Task is complete');
|
||||
}
|
||||
return valid;
|
||||
} catch (error) {
|
||||
console.error('Error validating task:', error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class Task {
|
||||
constructor(agent, task_path, task_id) {
|
||||
this.agent = agent;
|
||||
this.data = null;
|
||||
this.taskTimeout = 300;
|
||||
this.taskStartTime = Date.now();
|
||||
this.validator = null;
|
||||
this.blocked_actions = [];
|
||||
if (task_path && task_id) {
|
||||
this.data = this.loadTask(task_path, task_id);
|
||||
this.taskTimeout = this.data.timeout || 300;
|
||||
this.taskStartTime = Date.now();
|
||||
this.validator = new TaskValidator(this.data, this.agent);
|
||||
if (this.data.blocked_actions) {
|
||||
this.blocked_actions = this.data.blocked_actions[this.agent.count_id.toString()] || [];
|
||||
} else {
|
||||
this.blocked_actions = [];
|
||||
}
|
||||
this.restrict_to_inventory = !!this.data.restrict_to_inventory;
|
||||
if (this.data.goal)
|
||||
this.blocked_actions.push('!endGoal');
|
||||
if (this.data.conversation)
|
||||
this.blocked_actions.push('!endConversation');
|
||||
}
|
||||
}
|
||||
|
||||
loadTask(task_path, task_id) {
|
||||
try {
|
||||
const tasksFile = readFileSync(task_path, 'utf8');
|
||||
const tasks = JSON.parse(tasksFile);
|
||||
const task = tasks[task_id];
|
||||
if (!task) {
|
||||
throw new Error(`Task ${task_id} not found`);
|
||||
}
|
||||
if ((!task.agent_count || task.agent_count <= 1) && this.agent.count_id > 0) {
|
||||
task = null;
|
||||
}
|
||||
|
||||
return task;
|
||||
} catch (error) {
|
||||
console.error('Error loading task:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
isDone() {
|
||||
if (this.validator && this.validator.validate())
|
||||
return {"message": 'Task successful', "code": 2};
|
||||
if (this.taskTimeout) {
|
||||
const elapsedTime = (Date.now() - this.taskStartTime) / 1000;
|
||||
if (elapsedTime >= this.taskTimeout) {
|
||||
console.log('Task timeout reached. Task unsuccessful.');
|
||||
return {"message": 'Task timeout reached', "code": 4};
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
async initBotTask() {
|
||||
if (this.data === null)
|
||||
return;
|
||||
let bot = this.agent.bot;
|
||||
let name = this.agent.name;
|
||||
|
||||
bot.chat(`/clear ${name}`);
|
||||
console.log(`Cleared ${name}'s inventory.`);
|
||||
|
||||
//kill all drops
|
||||
if (this.agent.count_id === 0) {
|
||||
bot.chat(`/kill @e[type=item]`);
|
||||
}
|
||||
//wait for a bit so inventory is cleared
|
||||
await new Promise((resolve) => setTimeout(resolve, 500));
|
||||
let initial_inventory = null;
|
||||
if (this.data.agent_count > 1) {
|
||||
initial_inventory = this.data.initial_inventory[this.agent.count_id.toString()];
|
||||
console.log("Initial inventory:", initial_inventory);
|
||||
} else if (this.data) {
|
||||
console.log("Initial inventory:", this.data.initial_inventory);
|
||||
initial_inventory = this.data.initial_inventory;
|
||||
}
|
||||
|
||||
if ("initial_inventory" in this.data) {
|
||||
console.log("Setting inventory...");
|
||||
console.log("Inventory to set:", initial_inventory);
|
||||
for (let key of Object.keys(initial_inventory)) {
|
||||
console.log('Giving item:', key);
|
||||
bot.chat(`/give ${name} ${key} ${initial_inventory[key]}`);
|
||||
};
|
||||
//wait for a bit so inventory is set
|
||||
await new Promise((resolve) => setTimeout(resolve, 500));
|
||||
console.log("Done giving inventory items.");
|
||||
}
|
||||
// Function to generate random numbers
|
||||
|
||||
function getRandomOffset(range) {
|
||||
return Math.floor(Math.random() * (range * 2 + 1)) - range;
|
||||
}
|
||||
|
||||
let human_player_name = null;
|
||||
let available_agents = settings.profiles.map((p) => JSON.parse(readFileSync(p, 'utf8')).name); // TODO this does not work with command line args
|
||||
|
||||
// Finding if there is a human player on the server
|
||||
for (const playerName in bot.players) {
|
||||
const player = bot.players[playerName];
|
||||
if (!available_agents.some((n) => n === playerName)) {
|
||||
console.log('Found human player:', player.username);
|
||||
human_player_name = player.username
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// If there are multiple human players, teleport to the first one
|
||||
|
||||
// teleport near a human player if found by default
|
||||
|
||||
if (human_player_name) {
|
||||
console.log(`Teleporting ${name} to human ${human_player_name}`)
|
||||
bot.chat(`/tp ${name} ${human_player_name}`) // teleport on top of the human player
|
||||
|
||||
}
|
||||
await new Promise((resolve) => setTimeout(resolve, 200));
|
||||
|
||||
// now all bots are teleport on top of each other (which kinda looks ugly)
|
||||
// Thus, we need to teleport them to random distances to make it look better
|
||||
|
||||
/*
|
||||
Note : We don't want randomness for construction task as the reference point matters a lot.
|
||||
Another reason for no randomness for construction task is because, often times the user would fly in the air,
|
||||
then set a random block to dirt and teleport the bot to stand on that block for starting the construction,
|
||||
This was done by MaxRobinson in one of the youtube videos.
|
||||
*/
|
||||
|
||||
if (this.data.type !== 'construction') {
|
||||
const pos = getPosition(bot);
|
||||
const xOffset = getRandomOffset(5);
|
||||
const zOffset = getRandomOffset(5);
|
||||
bot.chat(`/tp ${name} ${Math.floor(pos.x + xOffset)} ${pos.y + 3} ${Math.floor(pos.z + zOffset)}`);
|
||||
await new Promise((resolve) => setTimeout(resolve, 200));
|
||||
}
|
||||
|
||||
if (this.data.agent_count && this.data.agent_count > 1) {
|
||||
// TODO wait for other bots to join
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000));
|
||||
if (available_agents.length < this.data.agent_count) {
|
||||
console.log(`Missing ${this.data.agent_count - available_agents.length} bot(s).`);
|
||||
this.agent.killAll();
|
||||
}
|
||||
}
|
||||
|
||||
if (this.data.goal) {
|
||||
await executeCommand(this.agent, `!goal("${this.data.goal}")`);
|
||||
}
|
||||
|
||||
if (this.data.conversation && this.agent.count_id === 0) {
|
||||
let other_name = available_agents.filter(n => n !== name)[0];
|
||||
await executeCommand(this.agent, `!startConversation("${other_name}", "${this.data.conversation}")`);
|
||||
}
|
||||
}
|
||||
}
|
1103
src/agent/tasks/construction_tasks.js
Normal file
1103
src/agent/tasks/construction_tasks.js
Normal file
File diff suppressed because it is too large
Load diff
390
src/agent/tasks/cooking_tasks.js
Normal file
390
src/agent/tasks/cooking_tasks.js
Normal file
|
@ -0,0 +1,390 @@
|
|||
import { getPosition } from "../library/world.js";
|
||||
|
||||
export class CookingTaskInitiator {
|
||||
constructor(data, agent) {
|
||||
this.agent = agent;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
async init() {
|
||||
let bot = this.agent.bot;
|
||||
|
||||
//// Setting up the cooking world using minecraft cheats ////
|
||||
|
||||
// Only run the setup if the agent is the first one
|
||||
|
||||
if (this.agent.count_id === 0) {
|
||||
// Clear and prepare the base area
|
||||
await bot.chat(`/fill ~ ~-1 ~ ~50 ~-3 ~50 grass_block`);
|
||||
await bot.chat(`/fill ~ ~-1 ~ ~-50 ~-3 ~50 grass_block`);
|
||||
await bot.chat(`/fill ~ ~-1 ~ ~-50 ~-3 ~-50 grass_block`);
|
||||
await bot.chat(`/fill ~ ~-1 ~ ~50 ~-3 ~-50 grass_block`);
|
||||
await bot.chat(`/fill ~ ~ ~ ~50 ~10 ~50 air`);
|
||||
await bot.chat(`/fill ~ ~ ~ ~-50 ~10 ~50 air`);
|
||||
await bot.chat(`/fill ~ ~ ~ ~-50 ~10 ~-50 air`);
|
||||
await bot.chat(`/fill ~ ~ ~ ~50 ~10 ~-50 air`);
|
||||
|
||||
const position = getPosition(bot);
|
||||
const botX = Math.floor(position.x);
|
||||
const botZ = Math.floor(position.z);
|
||||
|
||||
// Region management system
|
||||
const isOverlapping = (newXMin, newXMax, newZMin, newZMax, occupiedRegions) => {
|
||||
for (const region of occupiedRegions) {
|
||||
if (newXMin < region.xMax && newXMax > region.xMin &&
|
||||
newZMin < region.zMax && newZMax > region.zMin) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
const findValidPosition = (width, depth, occupiedRegions) => {
|
||||
const maxXStart = position.x + 25 - width; // Constrain to 50x50 area
|
||||
const minXStart = position.x - 25;
|
||||
const maxZStart = position.z + 25 - depth;
|
||||
const minZStart = position.z - 25;
|
||||
|
||||
let attempts = 0;
|
||||
while (attempts < 1000) {
|
||||
const xStart = Math.floor(minXStart + Math.random() * (maxXStart - minXStart + 1));
|
||||
const zStart = Math.floor(minZStart + Math.random() * (maxZStart - minZStart + 1));
|
||||
const xMin = xStart;
|
||||
const xMax = xStart + width - 1;
|
||||
const zMin = zStart;
|
||||
const zMax = zStart + depth - 1;
|
||||
|
||||
if (!isOverlapping(xMin, xMax, zMin, zMax, occupiedRegions)) {
|
||||
return { xStart, zStart };
|
||||
}
|
||||
attempts++;
|
||||
}
|
||||
throw new Error('Failed to find non-overlapping position after 1000 attempts');
|
||||
};
|
||||
|
||||
// Define all regions with their sizes
|
||||
const regionsToPlace = [
|
||||
{ type: 'wheat', width: 6, depth: 6 },
|
||||
{ type: 'beetroots', width: 4, depth: 5 },
|
||||
{ type: 'mushrooms', width: 4, depth: 5 },
|
||||
{ type: 'potatoes', width: 4, depth: 5 },
|
||||
{ type: 'carrots', width: 4, depth: 5 },
|
||||
{ type: 'sugar_cane', width: 3, depth: 3 },
|
||||
{ type: 'sugar_cane', width: 3, depth: 3 },
|
||||
{ type: 'pumpkins', width: 10, depth: 1 },
|
||||
{ type: 'house', width: 11, depth: 11 }
|
||||
];
|
||||
|
||||
// Expand the regions of each type to make sure they don't overlap
|
||||
|
||||
for (let i = 0; i < regionsToPlace.length; i++) {
|
||||
const region = regionsToPlace[i];
|
||||
const { width, depth } = region;
|
||||
regionsToPlace[i].width = width + 4;
|
||||
regionsToPlace[i].depth = depth + 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const occupiedRegions = [{
|
||||
xMin : botX - 1,
|
||||
xMax : botX + 1,
|
||||
zMin : botZ - 1,
|
||||
zMax : botZ + 1
|
||||
}];
|
||||
const regionPositions = {};
|
||||
|
||||
// Calculate positions for all regions
|
||||
for (const region of regionsToPlace) {
|
||||
const { xStart, zStart } = findValidPosition(region.width, region.depth, occupiedRegions);
|
||||
|
||||
occupiedRegions.push({
|
||||
xMin: xStart,
|
||||
xMax: xStart + region.width - 1,
|
||||
zMin: zStart,
|
||||
zMax: zStart + region.depth - 1
|
||||
});
|
||||
|
||||
if (region.type === 'sugar_cane') {
|
||||
if (!regionPositions.sugar_cane) regionPositions.sugar_cane = [];
|
||||
regionPositions.sugar_cane.push({ xStart, zStart });
|
||||
} else {
|
||||
regionPositions[region.type] = { xStart, zStart };
|
||||
}
|
||||
}
|
||||
|
||||
// Planting functions with dynamic positions
|
||||
const plantWheat = async (xStart, zStart) => {
|
||||
for (let i = 0; i < 6; i++) {
|
||||
for (let j = 0; j < 6; j++) {
|
||||
const x = xStart + i;
|
||||
const z = zStart + j;
|
||||
await bot.chat(`/setblock ${x} ${position.y - 1} ${z} farmland`);
|
||||
await bot.chat(`/setblock ${x} ${position.y} ${z} wheat[age=7]`);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
const plantBeetroots = async (xStart, zStart) => {
|
||||
for (let i = 0; i < 4; i++) {
|
||||
for (let j = 0; j < 5; j++) {
|
||||
const x = xStart + i;
|
||||
const z = zStart + j;
|
||||
await bot.chat(`/setblock ${x} ${position.y - 1} ${z} farmland`);
|
||||
await bot.chat(`/setblock ${x} ${position.y} ${z} beetroots[age=3]`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const plantMushrooms = async (xStart, zStart) => {
|
||||
for (let i = 0; i < 4; i++) {
|
||||
for (let j = 0; j < 5; j++) {
|
||||
const x = xStart + i;
|
||||
const z = zStart + j;
|
||||
await bot.chat(`/setblock ${x} ${position.y - 1} ${z} mycelium`);
|
||||
const mushroomType = (i + j) % 2 === 0 ? 'red_mushroom' : 'brown_mushroom';
|
||||
await bot.chat(`/setblock ${x} ${position.y} ${z} ${mushroomType}`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const plantPotatoes = async (xStart, zStart) => {
|
||||
for (let i = 0; i < 4; i++) {
|
||||
for (let j = 0; j < 5; j++) {
|
||||
const x = xStart + i;
|
||||
const z = zStart + j;
|
||||
await bot.chat(`/setblock ${x} ${position.y - 1} ${z} farmland`);
|
||||
await bot.chat(`/setblock ${x} ${position.y} ${z} potatoes[age=7]`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const plantCarrots = async (xStart, zStart) => {
|
||||
for (let i = 0; i < 4; i++) {
|
||||
for (let j = 0; j < 5; j++) {
|
||||
const x = xStart + i;
|
||||
const z = zStart + j;
|
||||
await bot.chat(`/setblock ${x} ${position.y - 1} ${z} farmland`);
|
||||
await bot.chat(`/setblock ${x} ${position.y} ${z} carrots[age=7]`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const plantSugarCane = async (patches) => {
|
||||
for (const patch of patches) {
|
||||
const xCenter = patch.xStart + 1;
|
||||
const zCenter = patch.zStart + 1;
|
||||
await bot.chat(`/setblock ${xCenter} ${position.y - 1} ${zCenter} water`);
|
||||
const offsets = [[1, 0], [-1, 0], [0, 1], [0, -1]];
|
||||
for (const [dx, dz] of offsets) {
|
||||
await bot.chat(`/setblock ${xCenter + dx} ${position.y} ${zCenter + dz} sugar_cane[age=15]`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const plantPumpkins = async (xStart, zStart) => {
|
||||
for (let i = 0; i < 10; i++) {
|
||||
const x = xStart + i;
|
||||
const z = zStart;
|
||||
await bot.chat(`/setblock ${x} ${position.y} ${z} pumpkin`);
|
||||
}
|
||||
};
|
||||
|
||||
// Execute all planting
|
||||
await plantWheat(regionPositions.wheat.xStart, regionPositions.wheat.zStart);
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
await plantBeetroots(regionPositions.beetroots.xStart, regionPositions.beetroots.zStart);
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
await plantMushrooms(regionPositions.mushrooms.xStart, regionPositions.mushrooms.zStart);
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
await plantPotatoes(regionPositions.potatoes.xStart, regionPositions.potatoes.zStart);
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
await plantCarrots(regionPositions.carrots.xStart, regionPositions.carrots.zStart);
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
await plantSugarCane(regionPositions.sugar_cane);
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
await plantPumpkins(regionPositions.pumpkins.xStart, regionPositions.pumpkins.zStart);
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
|
||||
// House construction
|
||||
const buildHouse = async (xStart, zStart) => {
|
||||
const startX = xStart;
|
||||
const startY = position.y;
|
||||
const startZ = zStart;
|
||||
const width = 10;
|
||||
const depth = 10;
|
||||
const height = 5;
|
||||
|
||||
// Foundation and walls
|
||||
for (let x = startX; x <= startX + depth; x++) {
|
||||
for (let y = startY; y <= startY + height; y++) {
|
||||
for (let z = startZ; z <= startZ + width; z++) {
|
||||
if (y === startY) {
|
||||
if (!(x === startX + depth - 1 && z === startZ + Math.floor(width / 2))) {
|
||||
await bot.chat(`/setblock ${x} ${y} ${z} stone_bricks`);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (x === startX || x === startX + depth ||
|
||||
z === startZ || z === startZ + width ||
|
||||
y === startY + height) {
|
||||
|
||||
const isWindow = (
|
||||
(x === startX || x === startX + depth) &&
|
||||
(z === startZ + 3 || z === startZ + width - 3) &&
|
||||
(y === startY + 2 || y === startY + 3)
|
||||
) || (
|
||||
(z === startZ || z === startZ + width) &&
|
||||
(x === startX + 3 || x === startX + depth - 3) &&
|
||||
(y === startY + 2 || y === startY + 3)
|
||||
);
|
||||
|
||||
const isDoor = x === startX + depth &&
|
||||
z === startZ + Math.floor(width / 2) &&
|
||||
(y === startY + 1 || y === startY + 2);
|
||||
|
||||
if (!isWindow && !isDoor) {
|
||||
await bot.chat(`/setblock ${x} ${y} ${z} stone_bricks`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Entrance features
|
||||
const doorZ = startZ + Math.floor(width / 2);
|
||||
await bot.chat(`/setblock ${startX + depth - 1} ${startY} ${doorZ} stone_brick_stairs[facing=west]`);
|
||||
await bot.chat(`/setblock ${startX + depth} ${startY} ${doorZ} air`);
|
||||
// await bot.chat(`/setblock ${startX + depth - 1} ${startY} ${doorZ - 1} stone_bricks`);
|
||||
// await bot.chat(`/setblock ${startX + depth - 1} ${startY} ${doorZ + 1} stone_bricks`);
|
||||
// await bot.chat(`/setblock ${startX + depth} ${startY} ${doorZ} oak_door[half=lower,hinge=left,facing=west,powered=false]`);
|
||||
// await bot.chat(`/setblock ${startX + depth} ${startY + 1} ${doorZ} oak_door[half=upper,hinge=left,facing=west,powered=false]`);
|
||||
|
||||
// Roof construction
|
||||
for (let i = 0; i < 3; i++) {
|
||||
for (let x = startX + i; x <= startX + depth - i; x++) {
|
||||
for (let z = startZ + i; z <= startZ + width - i; z++) {
|
||||
if (x === startX + i || x === startX + depth - i ||
|
||||
z === startZ + i || z === startZ + width - i) {
|
||||
await bot.chat(`/setblock ${x} ${startY + height + i} ${z} cobblestone`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Interior items
|
||||
await bot.chat(`/setblock ${startX + 4} ${startY + 1} ${startZ + 3} crafting_table`);
|
||||
await bot.chat(`/setblock ${startX + 4} ${startY + 1} ${startZ + 5} furnace`);
|
||||
// Add fuel to the furnace
|
||||
await bot.chat(`/data merge block ${startX + 4} ${startY + 1} ${startZ + 5} {Items:[{Slot:1b,id:"minecraft:coal",Count:64b}]}`)
|
||||
await bot.chat(`/setblock ${startX + 4} ${startY + 1} ${startZ + 7} smoker`);
|
||||
// Add fuel to the smoker
|
||||
await bot.chat(`/data merge block ${startX + 4} ${startY + 1} ${startZ + 7} {Items:[{Slot:1b,id:"minecraft:coal",Count:64b}]}`)
|
||||
await bot.chat(`/setblock ${startX + depth - 3} ${startY + 1} ${startZ + 2} bed`);
|
||||
};
|
||||
|
||||
await buildHouse(regionPositions.house.xStart, regionPositions.house.zStart);
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
|
||||
// Add a chest with cooking items near the bot
|
||||
const addChestWithItems = async () => {
|
||||
// Find a valid position near the bot (within 10 blocks)
|
||||
const findChestPosition = () => {
|
||||
const maxAttempts = 100;
|
||||
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
||||
const x = botX + Math.floor(Math.random() * 10 - 5); // Within ±5 blocks X
|
||||
const z = botZ + Math.floor(Math.random() * 10 - 5); // Within ±5 blocks Z
|
||||
const y = position.y;
|
||||
|
||||
// Check if the position is not overlapping with existing structures
|
||||
if (!isOverlapping(x, x, z, z, occupiedRegions)) {
|
||||
return { x, y, z };
|
||||
}
|
||||
}
|
||||
throw new Error('Failed to find valid chest position');
|
||||
};
|
||||
|
||||
const { x, y, z } = findChestPosition();
|
||||
|
||||
// Place the chest
|
||||
await bot.chat(`/setblock ${x} ${y} ${z} chest`);
|
||||
|
||||
const cookingItems = [
|
||||
['minecraft:milk_bucket', 1], // Non-stackable
|
||||
['minecraft:egg', 16], // Stacks to 16
|
||||
['minecraft:dandelion', 64], // Stacks to 64
|
||||
['minecraft:sugar', 64],
|
||||
['minecraft:cocoa_beans', 64],
|
||||
['minecraft:apple', 64],
|
||||
['minecraft:milk_bucket', 1],
|
||||
['minecraft:milk_bucket', 1],
|
||||
['minecraft:salmon', 64],
|
||||
['minecraft:cod', 64],
|
||||
['minecraft:kelp', 64],
|
||||
['minecraft:dried_kelp', 64],
|
||||
['minecraft:sweet_berries', 64],
|
||||
['minecraft:honey_bottle', 1], // Non-stackable
|
||||
['minecraft:glow_berries', 64],
|
||||
['minecraft:bowl', 64],
|
||||
['minecraft:milk_bucket', 1],
|
||||
['minecraft:milk_bucket', 1],
|
||||
['minecraft:milk_bucket', 1],
|
||||
['minecraft:milk_bucket', 1],
|
||||
['minecraft:cooked_salmon', 64],
|
||||
['minecraft:cooked_cod', 64],
|
||||
['minecraft:gold_ingot', 64],
|
||||
['minecraft:oak_planks', 64],
|
||||
['minecraft:iron_ingot', 64],
|
||||
['minecraft:milk_bucket', 1],
|
||||
['minecraft:milk_bucket', 1],
|
||||
];
|
||||
|
||||
// Fill the chest with random cooking items
|
||||
for (let slot = 0; slot < cookingItems.length; slot++) { // Chest has 27 slots
|
||||
const randomItem = cookingItems[slot];
|
||||
await bot.chat(`/item replace block ${x} ${y} ${z} container.${slot} with ${randomItem[0]} ${randomItem[1]}`);
|
||||
}
|
||||
|
||||
// Mark the chest area as occupied
|
||||
occupiedRegions.push({
|
||||
xMin: x,
|
||||
xMax: x,
|
||||
zMin: z,
|
||||
zMax: z
|
||||
});
|
||||
};
|
||||
|
||||
await addChestWithItems();
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
|
||||
// Animal management
|
||||
await bot.chat('/kill @e[type=item,distance=..200]');
|
||||
await bot.chat('/kill @e[type=chicken,distance=..200]');
|
||||
await bot.chat('/kill @e[type=cow,distance=..200]');
|
||||
await bot.chat('/kill @e[type=llama,distance=..200]');
|
||||
await bot.chat('/kill @e[type=mooshroom,distance=..200]');
|
||||
await bot.chat('/kill @e[type=pig,distance=..200]');
|
||||
await bot.chat('/kill @e[type=rabbit,distance=..200]');
|
||||
await bot.chat('/kill @e[type=sheep,distance=..200]');
|
||||
|
||||
await bot.chat(`/kill @e[type=item,distance=..200]`);
|
||||
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
|
||||
// Summon new animals
|
||||
const summonAnimals = async () => {
|
||||
const animals = ['chicken', 'cow', 'llama', 'mooshroom', 'pig', 'rabbit', 'sheep'];
|
||||
for (const animal of animals) {
|
||||
for (let i = 0; i < 8; i++) {
|
||||
const x = position.x - 25 + Math.random() * 50;
|
||||
const z = position.z - 25 + Math.random() * 50;
|
||||
await bot.chat(`/summon ${animal} ${Math.floor(x)} ${position.y} ${Math.floor(z)}`);
|
||||
}
|
||||
}
|
||||
};
|
||||
await summonAnimals();
|
||||
}
|
||||
}
|
||||
}
|
567
src/agent/tasks/tasks.js
Normal file
567
src/agent/tasks/tasks.js
Normal file
|
@ -0,0 +1,567 @@
|
|||
import { readFileSync , writeFileSync, existsSync} from 'fs';
|
||||
import { executeCommand } from '../commands/index.js';
|
||||
import { getPosition } from '../library/world.js';
|
||||
import settings from '../../../settings.js';
|
||||
import { ConstructionTaskValidator, Blueprint } from './construction_tasks.js';
|
||||
import { CookingTaskInitiator } from './cooking_tasks.js';
|
||||
|
||||
const PROGRESS_FILE = './hells_kitchen_progress.json';
|
||||
|
||||
const hellsKitchenProgressManager = {
|
||||
readProgress: function() {
|
||||
try {
|
||||
if (existsSync(PROGRESS_FILE)) {
|
||||
const data = readFileSync(PROGRESS_FILE, 'utf8');
|
||||
return JSON.parse(data);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Error reading progress file:', err);
|
||||
}
|
||||
return { taskId: null, agent0Complete: false, agent1Complete: false };
|
||||
},
|
||||
|
||||
writeProgress: function(progress) {
|
||||
try {
|
||||
writeFileSync(PROGRESS_FILE, JSON.stringify(progress), 'utf8');
|
||||
} catch (err) {
|
||||
console.error('Error writing progress file:', err);
|
||||
}
|
||||
},
|
||||
|
||||
resetTask: function(taskId) {
|
||||
const progress = { taskId, agent0Complete: false, agent1Complete: false };
|
||||
this.writeProgress(progress);
|
||||
return progress;
|
||||
},
|
||||
|
||||
updateAgentProgress: function(taskId, agentId, isComplete) {
|
||||
const progress = this.readProgress();
|
||||
|
||||
// If it's a different task, reset first
|
||||
if (progress.taskId !== taskId) {
|
||||
progress.taskId = taskId;
|
||||
progress.agent0Complete = false;
|
||||
progress.agent1Complete = false;
|
||||
}
|
||||
|
||||
// Update the specific agent's status
|
||||
if (agentId === 0) progress.agent0Complete = isComplete;
|
||||
if (agentId === 1) progress.agent1Complete = isComplete;
|
||||
|
||||
this.writeProgress(progress);
|
||||
return progress;
|
||||
},
|
||||
|
||||
isTaskComplete: function(taskId) {
|
||||
const progress = this.readProgress();
|
||||
if (progress.taskId !== taskId) return false;
|
||||
return progress.agent0Complete && progress.agent1Complete;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//todo: modify validator code to return an object with valid and score -> do more testing hahah
|
||||
//todo: figure out how to log these things to the same place as bots/histories
|
||||
// export class CraftTaskValidator {
|
||||
// constructor(data, agent) {
|
||||
// this.target = data.target;
|
||||
// this.number_of_target = data.number_of_target;
|
||||
// this.agent = agent;
|
||||
|
||||
/**
|
||||
* Validates the presence of required items in an agent's inventory
|
||||
* @param {Object} data - Task data containing target and quantity information
|
||||
* @param {Object} agent - Agent object with bot inventory
|
||||
* @returns {Object} Validation result with success status and missing items
|
||||
*/
|
||||
function checkItemPresence(data, agent) {
|
||||
|
||||
try {
|
||||
// Special handling for hells_kitchen tasks
|
||||
if (data.task_id && data.task_id.endsWith('hells_kitchen') && Array.isArray(data.target) && data.target.length === 2) {
|
||||
|
||||
// Get agent ID and target for this agent
|
||||
const agentId = agent.count_id;
|
||||
|
||||
if (agentId === 0 || agentId === 1) {
|
||||
// Use only the corresponding element from the target list
|
||||
const targetForThisAgent = data.target[agentId];
|
||||
const modifiedData = {
|
||||
...data,
|
||||
target: targetForThisAgent
|
||||
};
|
||||
|
||||
// Check if this agent has their required item
|
||||
const agentResult = checkItemForSingleAgent(modifiedData, agent);
|
||||
|
||||
// Update the file-based progress tracker
|
||||
const progress = hellsKitchenProgressManager.updateAgentProgress(
|
||||
data.task_id,
|
||||
agentId,
|
||||
agentResult.success
|
||||
);
|
||||
|
||||
// // Log the current state
|
||||
// console.log(`Agent ${agentId} has item: ${agentResult.success}`);
|
||||
// console.log(`Task state: Agent0=${progress.agent0Complete}, Agent1=${progress.agent1Complete}`);
|
||||
|
||||
// Return combined result - success only if both agents have their items
|
||||
return {
|
||||
success: progress.agent0Complete && progress.agent1Complete,
|
||||
missingItems: agentResult.missingItems,
|
||||
agentComplete: agentResult.success // Individual agent status for debugging
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Non-hells_kitchen tasks use the standard check
|
||||
return checkItemForSingleAgent(data, agent);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error checking item presence:', error);
|
||||
return {
|
||||
success: false,
|
||||
missingItems: [],
|
||||
error: error.message
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Helper function to check a single agent's inventory
|
||||
* Extracted from the original checkItemPresence logic
|
||||
*/
|
||||
function checkItemForSingleAgent(data, agent) {
|
||||
function isTargetDictionaryWithQuantities(target) {
|
||||
return typeof target === 'object' &&
|
||||
!Array.isArray(target) &&
|
||||
target !== null &&
|
||||
Object.values(target).every(value => typeof value === 'number');
|
||||
}
|
||||
|
||||
function normalizeTargets(target) {
|
||||
if (typeof target === 'string') {
|
||||
return { [target]: 1 };
|
||||
} else if (Array.isArray(target)) {
|
||||
return target.reduce((acc, item) => {
|
||||
acc[item] = 1;
|
||||
return acc;
|
||||
}, {});
|
||||
} else if (typeof target === 'object' && target !== null) {
|
||||
return target;
|
||||
}
|
||||
throw new Error('Invalid target format');
|
||||
}
|
||||
|
||||
function normalizeQuantities(targets, quantities) {
|
||||
if (quantities === undefined) {
|
||||
return Object.keys(targets).reduce((acc, key) => {
|
||||
acc[key] = 1;
|
||||
return acc;
|
||||
}, {});
|
||||
} else if (typeof quantities === 'number') {
|
||||
return Object.keys(targets).reduce((acc, key) => {
|
||||
acc[key] = quantities;
|
||||
return acc;
|
||||
}, {});
|
||||
} else if (typeof quantities === 'object' && quantities !== null) {
|
||||
return quantities;
|
||||
}
|
||||
throw new Error('Invalid number_of_target format');
|
||||
}
|
||||
|
||||
// First normalize targets to always have a consistent format
|
||||
const targets = normalizeTargets(data.target);
|
||||
|
||||
// Determine the required quantities
|
||||
const requiredQuantities = isTargetDictionaryWithQuantities(data.target)
|
||||
? data.target
|
||||
: normalizeQuantities(targets, data.number_of_target);
|
||||
|
||||
// Count items in inventory
|
||||
const inventoryCount = {};
|
||||
agent.bot.inventory.slots.forEach((slot) => {
|
||||
if (slot) {
|
||||
const itemName = slot.name.toLowerCase();
|
||||
inventoryCount[itemName] = (inventoryCount[itemName] || 0) + slot.count;
|
||||
}
|
||||
});
|
||||
|
||||
// Check if all required items are present in sufficient quantities
|
||||
const missingItems = [];
|
||||
let allTargetsMet = true;
|
||||
|
||||
for (const [item, requiredCount] of Object.entries(requiredQuantities)) {
|
||||
const itemName = item.toLowerCase();
|
||||
const currentCount = inventoryCount[itemName] || 0;
|
||||
if (currentCount < requiredCount) {
|
||||
allTargetsMet = false;
|
||||
missingItems.push({
|
||||
item: itemName,
|
||||
required: requiredCount,
|
||||
current: currentCount,
|
||||
missing: requiredCount - currentCount
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
success: allTargetsMet,
|
||||
missingItems: missingItems
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
class CookingCraftingTaskValidator {
|
||||
constructor(data, agent) {
|
||||
this.data = data;
|
||||
this.agent = agent;
|
||||
}
|
||||
validate() {
|
||||
const result = checkItemPresence(this.data, this.agent);
|
||||
let score = 0;
|
||||
if (result.success) {
|
||||
score = 1;
|
||||
}
|
||||
return {
|
||||
"valid": result.success,
|
||||
"score": score,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export class Task {
|
||||
constructor(agent, task_path, task_id, taskStartTime = null) {
|
||||
this.agent = agent;
|
||||
this.data = null;
|
||||
if (taskStartTime !== null)
|
||||
this.taskStartTime = taskStartTime;
|
||||
else
|
||||
this.taskStartTime = Date.now();
|
||||
|
||||
this.validator = null;
|
||||
this.reset_function = null;
|
||||
this.blocked_actions = [];
|
||||
this.task_id = task_id;
|
||||
|
||||
if (task_path && task_id) {
|
||||
console.log('Starting task', task_id);
|
||||
if (task_id.endsWith('hells_kitchen')) {
|
||||
// Reset hells_kitchen progress when a new task starts
|
||||
hellsKitchenProgressManager.resetTask(task_id);
|
||||
console.log('Reset Hells Kitchen progress for new task');
|
||||
}
|
||||
this.data = this.loadTask(task_path, task_id);
|
||||
this.task_type = this.data.type;
|
||||
if (this.task_type === 'construction' && this.data.blueprint) {
|
||||
this.blueprint = new Blueprint(this.data.blueprint);
|
||||
this.goal = this.data.goal + ' \n' + this.blueprint.explain() + " \n" + "make sure to place the lower levels of the blueprint first";
|
||||
this.conversation = this.data.conversation + ' \n' + this.blueprint.explain();
|
||||
} else {
|
||||
this.goal = this.data.goal;
|
||||
this.conversation = this.data.conversation;
|
||||
}
|
||||
this.taskTimeout = this.data.timeout || 300;
|
||||
this.taskStartTime = Date.now();
|
||||
// Set validator based on task_type
|
||||
|
||||
if (this.task_type === 'construction') {
|
||||
this.validator = new ConstructionTaskValidator(this.data, this.agent);
|
||||
} else if (this.task_type === 'cooking' || this.task_type === 'techtree') {
|
||||
this.validator = new CookingCraftingTaskValidator(this.data, this.agent);
|
||||
|
||||
} else {
|
||||
this.validator = null;
|
||||
}
|
||||
|
||||
if (this.data.blocked_actions) {
|
||||
this.blocked_actions = this.data.blocked_actions[this.agent.count_id.toString()] || [];
|
||||
} else {
|
||||
this.blocked_actions = [];
|
||||
}
|
||||
this.restrict_to_inventory = !!this.data.restrict_to_inventory;
|
||||
if (this.data.goal)
|
||||
this.blocked_actions.push('!endGoal');
|
||||
if (this.conversation)
|
||||
this.blocked_actions.push('!endConversation');
|
||||
}
|
||||
else {
|
||||
console.log('No task.');
|
||||
}
|
||||
|
||||
this.name = this.agent.name;
|
||||
this.available_agents = settings.profiles.map((p) => JSON.parse(readFileSync(p, 'utf8')).name);
|
||||
}
|
||||
|
||||
// Add this method if you want to manually reset the hells_kitchen progress
|
||||
resetHellsKitchenProgress() {
|
||||
if (this.task_id && this.task_id.endsWith('hells_kitchen')) {
|
||||
hellsKitchenProgressManager.resetTask(this.task_id);
|
||||
console.log('Hells Kitchen progress reset manually');
|
||||
}
|
||||
}
|
||||
|
||||
getAgentGoal() {
|
||||
if (!this.data || !this.data.goal) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let add_string = '';
|
||||
|
||||
if (this.task_type === 'cooking') {
|
||||
|
||||
if (this.data.agent_count > 2) {
|
||||
|
||||
if (this.name.toLowerCase().startsWith('andy')) {
|
||||
add_string = '\nIn the end, all the food items should be given to you by other bots. Make sure to talk to all the agents using startConversation command to coordinate the task instead of talking to just one agent. You can even end current conversation with any agent using endConversation command and then talk to a new agent using startConversation command.';
|
||||
}
|
||||
else {
|
||||
add_string = '\nIn the end, all the food items should be given to one single bot whose name starts with andy or Andy. Make sure to talk to all the agents using startConversation command to coordinate the task instead of talking to just one agent. You can even end current conversation with any agent using endConversation command and then talk to a new agent using startConversation command.';
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (this.data.task_id && this.data.task_id.endsWith('hells_kitchen')) {
|
||||
add_string = '';
|
||||
}
|
||||
else {
|
||||
add_string = '\nIn the end, all the food items should be given to one single bot.';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.task_type === 'techtree') {
|
||||
if (this.data.agent_count > 2) {
|
||||
add_string = '\nMake sure to share resources among all agents and to talk to all the agents using startConversation command to coordinate the task instead of talking to just one agent. You can even end current conversation with any agent using endConversation command and then talk to a new agent using startConversation command.'
|
||||
}
|
||||
}
|
||||
|
||||
// If goal is a string, all agents share the same goal
|
||||
if (typeof this.data.goal === 'string') {
|
||||
return this.data.goal + add_string;
|
||||
}
|
||||
|
||||
// If goal is an object, get the goal for this agent's count_id
|
||||
if (typeof this.data.goal === 'object' && this.data.goal !== null) {
|
||||
const agentId = this.agent.count_id.toString();
|
||||
return (this.data.goal[agentId] || '') + add_string;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
loadTask(task_path, task_id) {
|
||||
try {
|
||||
const tasksFile = readFileSync(task_path, 'utf8');
|
||||
const tasks = JSON.parse(tasksFile);
|
||||
let task = tasks[task_id];
|
||||
task['task_id'] = task_id;
|
||||
console.log(task);
|
||||
console.log(this.agent.count_id);
|
||||
if (!task) {
|
||||
throw new Error(`Task ${task_id} not found`);
|
||||
}
|
||||
// if ((!task.agent_count || task.agent_count <= 1) && this.agent.count_id > 0) {
|
||||
// task = null;
|
||||
// }
|
||||
|
||||
return task;
|
||||
} catch (error) {
|
||||
console.error('Error loading task:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
isDone() {
|
||||
let res = null;
|
||||
if (this.validator)
|
||||
res = this.validator.validate();
|
||||
if (res && res.valid) {
|
||||
// Find all the agents and clear their inventories
|
||||
for (let agent of this.available_agents) {
|
||||
this.agent.bot.chat(`/clear ${agent}`);
|
||||
}
|
||||
return {"message": 'Task successful', "score": res.score};
|
||||
}
|
||||
let other_names = this.available_agents.filter(n => n !== this.name);
|
||||
const elapsedTime = (Date.now() - this.taskStartTime) / 1000;
|
||||
|
||||
if (elapsedTime >= 30 && this.available_agents.length !== this.data.agent_count) {
|
||||
console.log('No other agents found. Task unsuccessful.');
|
||||
return {"message": 'No other agents found', "score": 0};
|
||||
}
|
||||
|
||||
if (this.taskTimeout) {
|
||||
if (elapsedTime >= this.taskTimeout) {
|
||||
console.log('Task timeout reached. Task unsuccessful.');
|
||||
if (res) {
|
||||
return {"message": 'Task timeout reached', "score": res.score};
|
||||
} else {
|
||||
return {"message": 'Task timeout reached', "score": 0};
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
async initBotTask() {
|
||||
await this.agent.bot.chat(`/clear ${this.name}`);
|
||||
console.log(`Cleared ${this.name}'s inventory.`);
|
||||
|
||||
//wait for a bit so inventory is cleared
|
||||
await new Promise((resolve) => setTimeout(resolve, 500));
|
||||
|
||||
if (this.data === null)
|
||||
return;
|
||||
|
||||
if (this.task_type === 'cooking') {
|
||||
this.initiator = new CookingTaskInitiator(this.data, this.agent);
|
||||
} else {
|
||||
this.initiator = null;
|
||||
}
|
||||
|
||||
//wait for a bit so bots are teleported
|
||||
await new Promise((resolve) => setTimeout(resolve, 3000));
|
||||
|
||||
if (this.data.initial_inventory) {
|
||||
console.log("Setting inventory...");
|
||||
let initialInventory = {};
|
||||
|
||||
// Handle multi-agent inventory assignment
|
||||
if (this.data.agent_count > 1) {
|
||||
initialInventory = this.data.initial_inventory[this.agent.count_id.toString()] || {};
|
||||
console.log("Initial inventory for agent", this.agent.count_id, ":", initialInventory);
|
||||
} else {
|
||||
initialInventory = this.data.initial_inventory;
|
||||
console.log("Initial inventory:", initialInventory);
|
||||
}
|
||||
console.log(this.data.initial_inventory);
|
||||
|
||||
// Assign inventory items
|
||||
for (let key of Object.keys(initialInventory)) {
|
||||
const itemName = key.toLowerCase();
|
||||
const quantity = initialInventory[key];
|
||||
await this.agent.bot.chat(`/give ${this.name} ${itemName} ${quantity}`);
|
||||
console.log(`Gave ${this.name} ${quantity} ${itemName}`);
|
||||
}
|
||||
|
||||
// Wait briefly for inventory commands to complete
|
||||
await new Promise((resolve) => setTimeout(resolve, 500));
|
||||
}
|
||||
|
||||
if (this.initiator) {
|
||||
await this.initiator.init();
|
||||
}
|
||||
|
||||
await this.teleportBots();
|
||||
|
||||
if (this.data.agent_count && this.data.agent_count > 1) {
|
||||
// TODO wait for other bots to join
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000));
|
||||
if (this.available_agents.length < this.data.agent_count) {
|
||||
console.log(`Missing ${this.data.agent_count - this.available_agents.length} bot(s).`);
|
||||
this.agent.killAll();
|
||||
}
|
||||
}
|
||||
|
||||
if (this.data.conversation && this.agent.count_id === 0) {
|
||||
let other_name = this.available_agents.filter(n => n !== this.name)[0];
|
||||
let waitCount = 0;
|
||||
while (other_name === undefined && waitCount < 20) {
|
||||
other_name = this.available_agents.filter(n => n !== this.name)[0];
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||
waitCount++;
|
||||
}
|
||||
if (other_name === undefined) {
|
||||
console.log('No other agents found. Task unsuccessful.');
|
||||
this.agent.killAll();
|
||||
}
|
||||
await executeCommand(this.agent, `!startConversation("${other_name}", "${this.data.conversation}")`);
|
||||
}
|
||||
|
||||
let agentGoal = this.getAgentGoal();
|
||||
if (agentGoal) {
|
||||
agentGoal += "You have to collaborate with other agents/bots, namely " + this.available_agents.filter(n => n !== this.name).join(', ') + " to complete the task as soon as possible by dividing the work among yourselves.";
|
||||
console.log(`Setting goal for agent ${this.agent.count_id}: ${agentGoal}`);
|
||||
await executeCommand(this.agent, `!goal("${agentGoal}")`);
|
||||
}
|
||||
}
|
||||
|
||||
async teleportBots() {
|
||||
console.log('\n\nTeleporting bots');
|
||||
function getRandomOffset(range) {
|
||||
return Math.floor(Math.random() * (range * 2 + 1)) - range;
|
||||
}
|
||||
|
||||
let human_player_name = null;
|
||||
let bot = this.agent.bot;
|
||||
|
||||
// Finding if there is a human player on the server
|
||||
for (const playerName in bot.players) {
|
||||
const player = bot.players[playerName];
|
||||
if (!this.available_agents.some((n) => n === playerName)) {
|
||||
console.log('Found human player:', player.username);
|
||||
human_player_name = player.username
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (human_player_name) {
|
||||
console.log(`Teleporting ${this.name} to human ${human_player_name}`)
|
||||
bot.chat(`/tp ${this.name} ${human_player_name}`)
|
||||
}
|
||||
else {
|
||||
console.log(`Teleporting ${this.name} to ${this.available_agents[0]}`)
|
||||
bot.chat(`/tp ${this.name} ${this.available_agents[0]}`);
|
||||
}
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 200));
|
||||
|
||||
// now all bots are teleport on top of each other (which kinda looks ugly)
|
||||
// Thus, we need to teleport them to random distances to make it look better
|
||||
|
||||
/*
|
||||
Note : We don't want randomness for construction task as the reference point matters a lot.
|
||||
Another reason for no randomness for construction task is because, often times the user would fly in the air,
|
||||
then set a random block to dirt and teleport the bot to stand on that block for starting the construction,
|
||||
*/
|
||||
|
||||
|
||||
if (this.data.type !== 'construction') {
|
||||
const pos = getPosition(bot);
|
||||
const xOffset = getRandomOffset(5);
|
||||
const zOffset = getRandomOffset(5);
|
||||
bot.chat(`/tp ${this.name} ${Math.floor(pos.x + xOffset)} ${pos.y + 3} ${Math.floor(pos.z + zOffset)}`);
|
||||
await new Promise((resolve) => setTimeout(resolve, 200));
|
||||
}
|
||||
|
||||
if (this.data.agent_count && this.data.agent_count > 1) {
|
||||
// TODO wait for other bots to join
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000));
|
||||
if (this.available_agents.length < this.data.agent_count) {
|
||||
console.log(`Missing ${this.data.agent_count - this.available_agents.length} bot(s).`);
|
||||
this.agent.killAll();
|
||||
}
|
||||
}
|
||||
|
||||
if (this.data.type === 'construction'){
|
||||
//Ensures construction is cleaned out first. -> relies on cheats which are turned off?
|
||||
if (this.blueprint){
|
||||
console.log('Cleaning out construction blueprint');
|
||||
const result = this.blueprint.autoDelete();
|
||||
const commands = result.commands;
|
||||
const nearbyPosition = result.nearbyPosition;
|
||||
console.log("nearby position", nearbyPosition);
|
||||
bot.chat(`/tp @a ${nearbyPosition.x} ${nearbyPosition.y} ${nearbyPosition.z}`);
|
||||
for (const command of commands) {
|
||||
bot.chat(command);
|
||||
}
|
||||
}
|
||||
else{
|
||||
console.log('no construction blueprint?')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -21,6 +21,13 @@ import { DeepSeek } from './deepseek.js';
|
|||
import { Hyperbolic } from './hyperbolic.js';
|
||||
import { GLHF } from './glhf.js';
|
||||
import { OpenRouter } from './openrouter.js';
|
||||
import { VLLM } from './vllm.js';
|
||||
import { promises as fs } from 'fs';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
export class Prompter {
|
||||
constructor(agent, fp) {
|
||||
|
@ -135,6 +142,8 @@ export class Prompter {
|
|||
profile.api = 'ollama'; // also must do early because shares names with other models
|
||||
else if (profile.model.includes('gemini'))
|
||||
profile.api = 'google';
|
||||
else if (profile.model.includes('vllm/'))
|
||||
profile.api = 'vllm';
|
||||
else if (profile.model.includes('gpt') || profile.model.includes('o1')|| profile.model.includes('o3'))
|
||||
profile.api = 'openai';
|
||||
else if (profile.model.includes('claude'))
|
||||
|
@ -159,7 +168,7 @@ export class Prompter {
|
|||
profile.api = 'xai';
|
||||
else if (profile.model.includes('deepseek'))
|
||||
profile.api = 'deepseek';
|
||||
else if (profile.model.includes('mistral'))
|
||||
else if (profile.model.includes('mistral'))
|
||||
profile.api = 'mistral';
|
||||
else
|
||||
throw new Error('Unknown model:', profile.model);
|
||||
|
@ -198,6 +207,8 @@ export class Prompter {
|
|||
model = new DeepSeek(profile.model, profile.url, profile.params);
|
||||
else if (profile.api === 'openrouter')
|
||||
model = new OpenRouter(profile.model.replace('openrouter/', ''), profile.url, profile.params);
|
||||
else if (profile.api === 'vllm')
|
||||
model = new VLLM(profile.model.replace('vllm/', ''), profile.url, profile.params);
|
||||
else
|
||||
throw new Error('Unknown API:', profile.api);
|
||||
return model;
|
||||
|
@ -250,7 +261,7 @@ export class Prompter {
|
|||
prompt = prompt.replaceAll('$ACTION', this.agent.actions.currentActionLabel);
|
||||
}
|
||||
if (prompt.includes('$COMMAND_DOCS'))
|
||||
prompt = prompt.replaceAll('$COMMAND_DOCS', getCommandDocs());
|
||||
prompt = prompt.replaceAll('$COMMAND_DOCS', getCommandDocs(this.agent));
|
||||
if (prompt.includes('$CODE_DOCS')) {
|
||||
const code_task_content = messages.slice().reverse().find(msg =>
|
||||
msg.role !== 'system' && msg.content.includes('!newAction(')
|
||||
|
@ -313,26 +324,50 @@ export class Prompter {
|
|||
async promptConvo(messages) {
|
||||
this.most_recent_msg_time = Date.now();
|
||||
let current_msg_time = this.most_recent_msg_time;
|
||||
|
||||
for (let i = 0; i < 3; i++) { // try 3 times to avoid hallucinations
|
||||
await this.checkCooldown();
|
||||
if (current_msg_time !== this.most_recent_msg_time) {
|
||||
return '';
|
||||
}
|
||||
|
||||
let prompt = this.profile.conversing;
|
||||
prompt = await this.replaceStrings(prompt, messages, this.convo_examples);
|
||||
let generation = await this.chat_model.sendRequest(messages, prompt);
|
||||
// in conversations >2 players LLMs tend to hallucinate and role-play as other bots
|
||||
// the FROM OTHER BOT tag should never be generated by the LLM
|
||||
if (generation.includes('(FROM OTHER BOT)')) {
|
||||
let generation;
|
||||
|
||||
try {
|
||||
generation = await this.chat_model.sendRequest(messages, prompt);
|
||||
if (typeof generation !== 'string') {
|
||||
console.error('Error: Generated response is not a string', generation);
|
||||
throw new Error('Generated response is not a string');
|
||||
}
|
||||
console.log("Generated response:", generation);
|
||||
await this._saveLog(prompt, messages, generation, 'conversation');
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error during message generation or file writing:', error);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check for hallucination or invalid output
|
||||
if (generation?.includes('(FROM OTHER BOT)')) {
|
||||
console.warn('LLM hallucinated message as another bot. Trying again...');
|
||||
continue;
|
||||
}
|
||||
|
||||
if (current_msg_time !== this.most_recent_msg_time) {
|
||||
console.warn(this.agent.name + ' received new message while generating, discarding old response.');
|
||||
console.warn(`${this.agent.name} received new message while generating, discarding old response.`);
|
||||
return '';
|
||||
}
|
||||
|
||||
if (generation?.includes('</think>')) {
|
||||
const [_, afterThink] = generation.split('</think>')
|
||||
generation = afterThink
|
||||
}
|
||||
|
||||
return generation;
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
|
@ -345,8 +380,10 @@ export class Prompter {
|
|||
await this.checkCooldown();
|
||||
let prompt = this.profile.coding;
|
||||
prompt = await this.replaceStrings(prompt, messages, this.coding_examples);
|
||||
|
||||
let resp = await this.code_model.sendRequest(messages, prompt);
|
||||
this.awaiting_coding = false;
|
||||
await this._saveLog(prompt, messages, resp, 'coding');
|
||||
return resp;
|
||||
}
|
||||
|
||||
|
@ -354,7 +391,13 @@ export class Prompter {
|
|||
await this.checkCooldown();
|
||||
let prompt = this.profile.saving_memory;
|
||||
prompt = await this.replaceStrings(prompt, null, null, to_summarize);
|
||||
return await this.chat_model.sendRequest([], prompt);
|
||||
let resp = await this.chat_model.sendRequest([], prompt);
|
||||
await this._saveLog(prompt, to_summarize, resp, 'memSaving');
|
||||
if (resp?.includes('</think>')) {
|
||||
const [_, afterThink] = resp.split('</think>')
|
||||
resp = afterThink
|
||||
}
|
||||
return resp;
|
||||
}
|
||||
|
||||
async promptShouldRespondToBot(new_message) {
|
||||
|
@ -375,6 +418,7 @@ export class Prompter {
|
|||
}
|
||||
|
||||
async promptGoalSetting(messages, last_goals) {
|
||||
// deprecated
|
||||
let system_message = this.profile.goal_setting;
|
||||
system_message = await this.replaceStrings(system_message, messages);
|
||||
|
||||
|
@ -399,4 +443,36 @@ export class Prompter {
|
|||
goal.quantity = parseInt(goal.quantity);
|
||||
return goal;
|
||||
}
|
||||
|
||||
async _saveLog(prompt, messages, generation, tag) {
|
||||
if (!settings.log_all_prompts)
|
||||
return;
|
||||
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
||||
let logEntry;
|
||||
let task_id = this.agent.task.task_id;
|
||||
if (task_id == null) {
|
||||
logEntry = `[${timestamp}] \nPrompt:\n${prompt}\n\nConversation:\n${JSON.stringify(messages, null, 2)}\n\nResponse:\n${generation}\n\n`;
|
||||
} else {
|
||||
logEntry = `[${timestamp}] Task ID: ${task_id}\nPrompt:\n${prompt}\n\nConversation:\n${JSON.stringify(messages, null, 2)}\n\nResponse:\n${generation}\n\n`;
|
||||
}
|
||||
const logFile = `${tag}_${timestamp}.txt`;
|
||||
await this._saveToFile(logFile, logEntry);
|
||||
}
|
||||
|
||||
async _saveToFile(logFile, logEntry) {
|
||||
let task_id = this.agent.task.task_id;
|
||||
let logDir;
|
||||
if (task_id == null) {
|
||||
logDir = path.join(__dirname, `../../bots/${this.agent.name}/logs`);
|
||||
} else {
|
||||
logDir = path.join(__dirname, `../../bots/${this.agent.name}/logs/${task_id}`);
|
||||
}
|
||||
|
||||
await fs.mkdir(logDir, { recursive: true });
|
||||
|
||||
logFile = path.join(logDir, logFile);
|
||||
await fs.appendFile(logFile, String(logEntry), 'utf-8');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
75
src/models/vllm.js
Normal file
75
src/models/vllm.js
Normal file
|
@ -0,0 +1,75 @@
|
|||
// This code uses Dashscope and HTTP to ensure the latest support for the Qwen model.
|
||||
// Qwen is also compatible with the OpenAI API format;
|
||||
|
||||
import OpenAIApi from 'openai';
|
||||
import { getKey, hasKey } from '../utils/keys.js';
|
||||
import { strictFormat } from '../utils/text.js';
|
||||
|
||||
export class VLLM {
|
||||
constructor(model_name, url) {
|
||||
this.model_name = model_name;
|
||||
|
||||
// Currently use self-hosted SGLang API for text generation; use OpenAI text-embedding-3-small model for simple embedding.
|
||||
let vllm_config = {};
|
||||
if (url)
|
||||
vllm_config.baseURL = url;
|
||||
else
|
||||
vllm_config.baseURL = 'http://0.0.0.0:8000/v1';
|
||||
|
||||
vllm_config.apiKey = ""
|
||||
|
||||
this.vllm = new OpenAIApi(vllm_config);
|
||||
}
|
||||
|
||||
async sendRequest(turns, systemMessage, stop_seq = '***') {
|
||||
let messages = [{ 'role': 'system', 'content': systemMessage }].concat(turns);
|
||||
|
||||
if (this.model_name.includes('deepseek') || this.model_name.includes('qwen')) {
|
||||
messages = strictFormat(messages);
|
||||
}
|
||||
|
||||
const pack = {
|
||||
model: this.model_name || "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
|
||||
messages,
|
||||
stop: stop_seq,
|
||||
};
|
||||
|
||||
let res = null;
|
||||
try {
|
||||
console.log('Awaiting openai api response...')
|
||||
// console.log('Messages:', messages);
|
||||
let completion = await this.vllm.chat.completions.create(pack);
|
||||
if (completion.choices[0].finish_reason == 'length')
|
||||
throw new Error('Context length exceeded');
|
||||
console.log('Received.')
|
||||
res = completion.choices[0].message.content;
|
||||
}
|
||||
catch (err) {
|
||||
if ((err.message == 'Context length exceeded' || err.code == 'context_length_exceeded') && turns.length > 1) {
|
||||
console.log('Context length exceeded, trying again with shorter context.');
|
||||
return await this.sendRequest(turns.slice(1), systemMessage, stop_seq);
|
||||
} else {
|
||||
console.log(err);
|
||||
res = 'My brain disconnected, try again.';
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
async saveToFile(logFile, logEntry) {
|
||||
let task_id = this.agent.task.task_id;
|
||||
console.log(task_id)
|
||||
let logDir;
|
||||
if (this.task_id === null) {
|
||||
logDir = path.join(__dirname, `../../bots/${this.agent.name}/logs`);
|
||||
} else {
|
||||
logDir = path.join(__dirname, `../../bots/${this.agent.name}/logs/${task_id}`);
|
||||
}
|
||||
|
||||
await fs.mkdir(logDir, { recursive: true });
|
||||
|
||||
logFile = path.join(logDir, logFile);
|
||||
await fs.appendFile(logFile, String(logEntry), 'utf-8');
|
||||
}
|
||||
|
||||
}
|
291
tasks/analyse_results.py
Normal file
291
tasks/analyse_results.py
Normal file
|
@ -0,0 +1,291 @@
|
|||
import boto3
|
||||
import os
|
||||
import json
|
||||
import re
|
||||
from botocore.exceptions import ClientError
|
||||
import json
|
||||
import argparse
|
||||
from tqdm import tqdm
|
||||
import glob
|
||||
|
||||
# Calculate project root directory
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
# Define output directory for analysis results
|
||||
analysis_output_dir = os.path.join(project_root, "experiments", "analysis_results")
|
||||
# Ensure the output directory exists
|
||||
os.makedirs(analysis_output_dir, exist_ok=True)
|
||||
|
||||
def download_s3_folders(bucket_name, s3_prefix, local_base_dir):
|
||||
"""
|
||||
Downloads groups of folders from S3 based on the next level of prefixes.
|
||||
|
||||
Args:
|
||||
bucket_name (str): Name of the S3 bucket.
|
||||
s3_prefix (str): Prefix where the folders are located (e.g., 'my-experiments/').
|
||||
local_base_dir (str): Local directory to download the folders to.
|
||||
|
||||
Returns:
|
||||
list: List of downloaded local folder paths.
|
||||
"""
|
||||
s3_client = boto3.client('s3')
|
||||
downloaded_folders = []
|
||||
|
||||
# Ensure local_base_dir is relative to project root if not absolute
|
||||
if not os.path.isabs(local_base_dir):
|
||||
local_base_dir = os.path.join(project_root, local_base_dir)
|
||||
|
||||
try:
|
||||
# List objects with the prefix, delimited by '/' to find sub-prefixes (folders)
|
||||
response = s3_client.list_objects_v2(Bucket=bucket_name, Prefix=s3_prefix, Delimiter='/')
|
||||
|
||||
if 'CommonPrefixes' not in response:
|
||||
print(f"No folders found under s3://{bucket_name}/{s3_prefix}")
|
||||
return downloaded_folders
|
||||
|
||||
s3_folder_prefixes = [prefix['Prefix'] for prefix in response['CommonPrefixes']]
|
||||
subfolder = s3_prefix.split('/')[-2]
|
||||
|
||||
for s3_folder_prefix in tqdm(s3_folder_prefixes):
|
||||
folder_name = s3_folder_prefix.split('/')[-2] # Extract folder name
|
||||
local_folder_path = os.path.join(local_base_dir, subfolder, folder_name)
|
||||
os.makedirs(local_folder_path, exist_ok=True)
|
||||
downloaded_folders.append(local_folder_path)
|
||||
|
||||
# Download files within the folder
|
||||
objects_in_folder = s3_client.list_objects_v2(Bucket=bucket_name, Prefix=s3_folder_prefix)
|
||||
if 'Contents' in objects_in_folder:
|
||||
for obj in objects_in_folder['Contents']:
|
||||
s3_key = obj['Key']
|
||||
local_file_path = os.path.join(local_folder_path, os.path.basename(s3_key))
|
||||
try:
|
||||
s3_client.download_file(bucket_name, s3_key, local_file_path)
|
||||
except Exception as e:
|
||||
print(f"Error downloading {s3_key}: {e}")
|
||||
|
||||
else:
|
||||
print(f"No files found in {s3_folder_prefix}")
|
||||
|
||||
except ClientError as e:
|
||||
print(f"Error accessing S3: {e}")
|
||||
return []
|
||||
|
||||
return downloaded_folders
|
||||
|
||||
def analyze_json_file(file_path):
|
||||
"""
|
||||
Analyzes a single JSON file to extract the task outcome.
|
||||
|
||||
Args:
|
||||
file_path (str): Path to the JSON file.
|
||||
|
||||
Returns:
|
||||
str or None: The task outcome string if found, otherwise None.
|
||||
"""
|
||||
try:
|
||||
with open(file_path, 'r') as f:
|
||||
data = json.load(f)
|
||||
if 'turns' in data and isinstance(data['turns'], list):
|
||||
for turn in reversed(data['turns']): # Check turns from the end
|
||||
if turn.get('role') == 'system' and isinstance(turn.get('content'), str):
|
||||
if "Task successful ended with code : 2" in turn['content'] or "Task ended with score : 1" in turn["content"] or "Task ended in score: 1" in turn["content"]:
|
||||
return True
|
||||
return False
|
||||
except FileNotFoundError:
|
||||
print(f"Error: File not found: {file_path}")
|
||||
return None
|
||||
except json.JSONDecodeError:
|
||||
print(f"Error: Invalid JSON format in: {file_path}")
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"An unexpected error occurred while processing {file_path}: {e}")
|
||||
return None
|
||||
|
||||
def extract_result(folder_path):
|
||||
folder_name = os.path.basename(folder_path)
|
||||
json_files = glob.glob(os.path.join(folder_path, "*.json"))
|
||||
assert len(json_files) == 2, f"Expected 2 json files in {folder_name}, found {len(json_files)}"
|
||||
|
||||
if not json_files:
|
||||
print(f"No JSON files found in {folder_name}")
|
||||
return None
|
||||
else:
|
||||
outcome = False
|
||||
for json_file in json_files:
|
||||
outcome = analyze_json_file(json_file)
|
||||
if outcome:
|
||||
return True
|
||||
return False
|
||||
|
||||
def is_base(folder_path):
|
||||
return "full_plan" in folder_path and "depth_0" in folder_path and "missing" not in folder_path
|
||||
|
||||
def base_without_plan(folder_path):
|
||||
return "no_plan" in folder_path and "depth_0" in folder_path and "missing" in folder_path
|
||||
|
||||
def aggregate_results(local_folders):
|
||||
"""
|
||||
Aggregates the analysis results for each folder.
|
||||
|
||||
Args:
|
||||
local_folders (list): List of local folder paths containing the JSON files.
|
||||
|
||||
Returns:
|
||||
dict: A dictionary where keys are folder names and values are the aggregated outcomes.
|
||||
"""
|
||||
aggregated_data = {}
|
||||
|
||||
total = 0
|
||||
successful = 0
|
||||
|
||||
base_successful = 0
|
||||
base_total = 0
|
||||
|
||||
base_no_plan_successful = 0
|
||||
base_no_plan_total = 0
|
||||
|
||||
missing_successful = 0
|
||||
missing_total = 0
|
||||
|
||||
full_plan_successful = 0
|
||||
full_plan_total = 0
|
||||
|
||||
partial_plan_successful = 0
|
||||
partial_plan_total = 0
|
||||
|
||||
no_plan_successful = 0
|
||||
no_plan_total = 0
|
||||
|
||||
high_depth_successful = 0
|
||||
high_depth_total = 0
|
||||
for folder_path in tqdm(local_folders):
|
||||
folder_name = os.path.basename(folder_path)
|
||||
|
||||
try:
|
||||
total += 1
|
||||
result = extract_result(folder_path)
|
||||
success = int(extract_result(folder_path))
|
||||
successful += success
|
||||
|
||||
if "missing" in folder_path and not is_base(folder_path):
|
||||
missing_successful += success
|
||||
missing_total += 1
|
||||
if is_base(folder_path):
|
||||
base_successful += success
|
||||
base_total += 1
|
||||
if base_without_plan(folder_path):
|
||||
base_no_plan_successful += success
|
||||
base_no_plan_total += 1
|
||||
if "full_plan" in folder_path and not is_base(folder_path):
|
||||
full_plan_successful += success
|
||||
full_plan_total += 1
|
||||
if "partial_plan" in folder_path and not is_base(folder_path):
|
||||
partial_plan_successful += success
|
||||
partial_plan_total += 1
|
||||
if "no_plan" in folder_path and not is_base(folder_path):
|
||||
no_plan_successful += success
|
||||
no_plan_total += 1
|
||||
if "depth_1" in folder_path or "depth_2" in folder_path and not is_base(folder_path):
|
||||
high_depth_successful += success
|
||||
high_depth_total += 1
|
||||
except Exception as e:
|
||||
print(f"Error processing {folder_name}: {e}")
|
||||
|
||||
return {
|
||||
"total": total,
|
||||
"successful": successful,
|
||||
"success_rate": successful / total if total > 0 else 0,
|
||||
"base_total": base_total,
|
||||
"base_successful": base_successful,
|
||||
"base_success_rate": base_successful / base_total if base_total > 0 else 0,
|
||||
"base_no_plan_total": base_no_plan_total,
|
||||
"base_no_plan_successful": base_no_plan_successful,
|
||||
"base_no_plan_success_rate": base_no_plan_successful / base_no_plan_total if base_no_plan_total > 0 else 0,
|
||||
"missing_total": missing_total,
|
||||
"missing_successful": missing_successful,
|
||||
"missing_success_rate": missing_successful / missing_total if missing_total > 0 else 0,
|
||||
"full_plan_total": full_plan_total,
|
||||
"full_plan_successful": full_plan_successful,
|
||||
"full_plan_success_rate": full_plan_successful / full_plan_total if full_plan_total > 0 else 0,
|
||||
"partial_plan_total": partial_plan_total,
|
||||
"partial_plan_successful": partial_plan_successful,
|
||||
"partial_plan_success_rate": partial_plan_successful / partial_plan_total if partial_plan_total > 0 else 0,
|
||||
"no_plan_total": no_plan_total,
|
||||
"no_plan_successful": no_plan_successful,
|
||||
"no_plan_success_rate": no_plan_successful / no_plan_total if no_plan_total > 0 else 0,
|
||||
"high_depth_total": high_depth_total,
|
||||
"high_depth_successful": high_depth_successful,
|
||||
"high_depth_success_rate": high_depth_successful / high_depth_total if high_depth_total > 0 else 0
|
||||
}
|
||||
|
||||
def get_immediate_subdirectories(a_dir):
|
||||
# Ensure a_dir is relative to project root if not absolute
|
||||
if not os.path.isabs(a_dir):
|
||||
a_dir = os.path.join(project_root, a_dir)
|
||||
return [os.path.join(a_dir, name) for name in os.listdir(a_dir)
|
||||
if os.path.isdir(os.path.join(a_dir, name))]
|
||||
|
||||
|
||||
# --- Main Execution ---
|
||||
if __name__ == "__main__":
|
||||
# 1. Download folders from AWS or use local directory
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--s3_download', action="store_true", help='Download folders from S3')
|
||||
parser.add_argument('--aws_bucket_name', default="mindcraft" , type=str, help='AWS bucket name')
|
||||
parser.add_argument('--s3_folder_prefix', default="", type=str, help='S3 folder prefix')
|
||||
# Change default input dir to 'experiments' relative to project root
|
||||
parser.add_argument('--local_download_dir', default="experiments", type=str, help='Local directory containing results (relative to project root)')
|
||||
args = parser.parse_args()
|
||||
|
||||
AWS_BUCKET_NAME = args.aws_bucket_name
|
||||
S3_FOLDER_PREFIX = args.s3_folder_prefix
|
||||
|
||||
# Resolve local_download_dir relative to project root
|
||||
local_download_dir_abs = args.local_download_dir
|
||||
if not os.path.isabs(local_download_dir_abs):
|
||||
local_download_dir_abs = os.path.join(project_root, local_download_dir_abs)
|
||||
|
||||
# Construct LOCAL_DOWNLOAD_DIR based on the absolute path
|
||||
if args.local_download_dir != "": # Original check seems redundant now, but kept logic
|
||||
LOCAL_DOWNLOAD_DIR = local_download_dir_abs # Already includes prefix if s3_download
|
||||
if args.s3_download and S3_FOLDER_PREFIX: # Append S3 prefix if downloading
|
||||
LOCAL_DOWNLOAD_DIR = os.path.join(local_download_dir_abs, S3_FOLDER_PREFIX.replace('/', '_').rstrip('_'))
|
||||
else:
|
||||
LOCAL_DOWNLOAD_DIR = local_download_dir_abs # Should not happen with default
|
||||
|
||||
if (args.s3_download):
|
||||
print(f"Downloading folders from s3://{AWS_BUCKET_NAME}/{S3_FOLDER_PREFIX} to {LOCAL_DOWNLOAD_DIR}...")
|
||||
# Pass the absolute base path for downloads
|
||||
folders = download_s3_folders(AWS_BUCKET_NAME, S3_FOLDER_PREFIX, local_download_dir_abs)
|
||||
else:
|
||||
folders = get_immediate_subdirectories(local_download_dir_abs)
|
||||
print(folders)
|
||||
|
||||
if not folders:
|
||||
print("No folders found or downloaded. Exiting.")
|
||||
exit()
|
||||
|
||||
results = aggregate_results(folders)
|
||||
print(results)
|
||||
# Hardcode output path within experiments/analysis_results/
|
||||
results_file_path = os.path.join(analysis_output_dir, "analyse_results_output.txt")
|
||||
with open(results_file_path, "w") as file:
|
||||
file.write("Results\n")
|
||||
for key, value in results.items():
|
||||
file.write(f"{key}: {value}\n")
|
||||
print(f"Results saved to {results_file_path}")
|
||||
# if not downloaded_local_folders:
|
||||
# print("No folders downloaded. Exiting.")
|
||||
# exit()
|
||||
|
||||
# print("\n--- Analyzing downloaded files ---")
|
||||
# # 2. & 3. Analyze files and aggregate results
|
||||
# results = aggregate_results(downloaded_local_folders)
|
||||
|
||||
# print("\n--- Aggregated Results ---")
|
||||
# for folder, outcome in results.items():
|
||||
# print(f"Folder: {folder} -> {outcome}")
|
||||
|
||||
# Optional: Clean up downloaded files
|
||||
# import shutil
|
||||
# shutil.rmtree(LOCAL_DOWNLOAD_DIR)
|
||||
# print(f"\nCleaned up {LOCAL_DOWNLOAD_DIR}")
|
231
tasks/analyze_construction_tasks.py
Normal file
231
tasks/analyze_construction_tasks.py
Normal file
|
@ -0,0 +1,231 @@
|
|||
import os
|
||||
import json
|
||||
from collections import defaultdict
|
||||
from prettytable import PrettyTable
|
||||
import re
|
||||
import argparse
|
||||
import pandas as pd
|
||||
import glob
|
||||
|
||||
# Calculate project root directory
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
# Define output directory for analysis results
|
||||
analysis_output_dir = os.path.join(project_root, "experiments", "analysis_results")
|
||||
# Ensure the output directory exists
|
||||
os.makedirs(analysis_output_dir, exist_ok=True)
|
||||
|
||||
def extract_success_scores(folders, model_names):
|
||||
assert len(folders) == len(model_names), "Folders and model names lists must have the same length."
|
||||
|
||||
all_task_scores = defaultdict(dict) # Stores task-wise scores per model
|
||||
zero_score_tasks = defaultdict(list) # Stores tasks with 0 score per model
|
||||
material_groups = defaultdict(lambda: defaultdict(list))
|
||||
room_groups = defaultdict(lambda: defaultdict(list))
|
||||
material_room_groups = defaultdict(lambda: defaultdict(list))
|
||||
overall_scores = defaultdict(list) # New dict to store all scores for each model
|
||||
skipped_tasks = defaultdict(list) # Stores tasks with no score message per model
|
||||
|
||||
pattern = re.compile(r"materials_(\d+)_rooms_(\d+)")
|
||||
|
||||
for root_dir, model_name in zip(folders, model_names):
|
||||
for task_folder in os.listdir(root_dir):
|
||||
task_path = os.path.join(root_dir, task_folder)
|
||||
if os.path.isdir(task_path):
|
||||
logs_found = False
|
||||
score_found = False
|
||||
|
||||
for file_name in os.listdir(task_path):
|
||||
if file_name.endswith(".json"):
|
||||
logs_found = True
|
||||
file_path = os.path.join(task_path, file_name)
|
||||
|
||||
try:
|
||||
with open(file_path, 'r') as file:
|
||||
data = json.load(file)
|
||||
|
||||
for turn in reversed(data.get("turns", [])):
|
||||
if turn["role"] == "system" and "Task ended with score" in turn["content"]:
|
||||
score = float(turn["content"].split(":")[-1].strip())
|
||||
all_task_scores[task_folder][model_name] = score
|
||||
overall_scores[model_name].append(score) # Add to overall scores
|
||||
score_found = True
|
||||
|
||||
if score == 0:
|
||||
zero_score_tasks[model_name].append(task_folder)
|
||||
break
|
||||
|
||||
if score_found:
|
||||
break
|
||||
except Exception as e:
|
||||
print(f"Error reading {file_path}: {e}")
|
||||
|
||||
if logs_found and not score_found:
|
||||
# Score not found but logs exist - skip this task
|
||||
skipped_tasks[model_name].append(task_folder)
|
||||
print(f"Error: No score message found for task '{task_folder}' with model '{model_name}'. Skipping this task.")
|
||||
|
||||
if not logs_found:
|
||||
print(f"No log files found in {task_folder}")
|
||||
|
||||
# Calculate model completion rates (only consider tasks with scores)
|
||||
model_completion_rates = {}
|
||||
for model_name in model_names:
|
||||
valid_tasks = [task for task in all_task_scores.keys() if model_name in all_task_scores[task]]
|
||||
total_tasks = len(valid_tasks)
|
||||
completed_tasks = len([task for task in valid_tasks if all_task_scores[task][model_name] > 0])
|
||||
model_completion_rates[model_name] = (completed_tasks / total_tasks) if total_tasks > 0 else 0
|
||||
|
||||
# Process task scores into groups (ignore 0 scores)
|
||||
for task, model_scores in all_task_scores.items():
|
||||
match = pattern.search(task)
|
||||
if match:
|
||||
material = int(match.group(1))
|
||||
room = int(match.group(2))
|
||||
|
||||
for model, score in model_scores.items():
|
||||
if score > 0: # Ignore 0 scores
|
||||
material_groups[material][model].append(score)
|
||||
room_groups[room][model].append(score)
|
||||
material_room_groups[(material, room)][model].append(score)
|
||||
|
||||
def calculate_average(group):
|
||||
return {key: {model: sum(scores) / len(scores) for model, scores in models.items() if scores}
|
||||
for key, models in group.items() if models}
|
||||
|
||||
avg_material_scores = calculate_average(material_groups)
|
||||
avg_room_scores = calculate_average(room_groups)
|
||||
avg_material_room_scores = calculate_average(material_room_groups)
|
||||
|
||||
def display_table(title, data, tuple_keys=False):
|
||||
table = PrettyTable(["Category"] + model_names)
|
||||
for key, model_scores in sorted(data.items()):
|
||||
key_display = key if not tuple_keys else f"({key[0]}, {key[1]})"
|
||||
row = [key_display] + [round(model_scores.get(model, 0), 2) for model in model_names]
|
||||
table.add_row(row)
|
||||
print(f"\n{title}")
|
||||
print(table)
|
||||
|
||||
def display_task_scores():
|
||||
table = PrettyTable(["Task"] + model_names)
|
||||
for task in sorted(all_task_scores.keys()):
|
||||
row = [task]
|
||||
for model in model_names:
|
||||
score = all_task_scores[task].get(model)
|
||||
if score is None:
|
||||
row.append("-")
|
||||
else:
|
||||
row.append(round(score, 2))
|
||||
table.add_row(row)
|
||||
print("\nTask-wise Success Scores")
|
||||
print(table)
|
||||
|
||||
def display_zero_and_skipped_tasks():
|
||||
for model in model_names:
|
||||
if zero_score_tasks[model]:
|
||||
table = PrettyTable([f"{model} - Tasks with 0 Score"])
|
||||
for task in zero_score_tasks[model]:
|
||||
table.add_row([task])
|
||||
print(f"\n{model} - Tasks with 0 Success Score")
|
||||
print(table)
|
||||
|
||||
if skipped_tasks[model]:
|
||||
table = PrettyTable([f"{model} - Skipped Tasks (No Score Message)"])
|
||||
for task in skipped_tasks[model]:
|
||||
table.add_row([task])
|
||||
print(f"\n{model} - Skipped Tasks (No Score Message)")
|
||||
print(table)
|
||||
|
||||
def display_overall_averages():
|
||||
table = PrettyTable(["Metric"] + model_names)
|
||||
|
||||
# Overall average score (including zeros)
|
||||
row_with_zeros = ["Average Score (All Tasks)"]
|
||||
for model in model_names:
|
||||
valid_scores = overall_scores[model]
|
||||
avg = sum(valid_scores) / len(valid_scores) if valid_scores else 0
|
||||
row_with_zeros.append(round(avg, 2))
|
||||
table.add_row(row_with_zeros)
|
||||
|
||||
# Overall average score (excluding zeros)
|
||||
row_without_zeros = ["Average Score (Completed Tasks)"]
|
||||
for model in model_names:
|
||||
completed_scores = [s for s in overall_scores[model] if s > 0]
|
||||
avg = sum(completed_scores) / len(completed_scores) if completed_scores else 0
|
||||
row_without_zeros.append(round(avg, 2))
|
||||
table.add_row(row_without_zeros)
|
||||
|
||||
# Task completion rate
|
||||
completion_row = ["Task Completion Rate (%)"]
|
||||
for model in model_names:
|
||||
completion_row.append(round(model_completion_rates[model] * 100, 2))
|
||||
table.add_row(completion_row)
|
||||
|
||||
# Total number of tasks
|
||||
task_count_row = ["Total Tasks"]
|
||||
for model in model_names:
|
||||
valid_tasks = [task for task in all_task_scores.keys() if model in all_task_scores[task]]
|
||||
task_count_row.append(len(valid_tasks))
|
||||
table.add_row(task_count_row)
|
||||
|
||||
# Number of skipped tasks
|
||||
skipped_count_row = ["Skipped Tasks"]
|
||||
for model in model_names:
|
||||
skipped_count_row.append(len(skipped_tasks[model]))
|
||||
table.add_row(skipped_count_row)
|
||||
|
||||
print("\nOverall Performance Metrics")
|
||||
print(table)
|
||||
|
||||
display_overall_averages() # Display overall averages first
|
||||
display_task_scores()
|
||||
display_zero_and_skipped_tasks()
|
||||
display_table("Average Success Score by Material", avg_material_scores)
|
||||
display_table("Average Success Score by Room", avg_room_scores)
|
||||
display_table("Average Success Score by (Material, Room) Tuples", avg_material_room_scores, tuple_keys=True)
|
||||
|
||||
def analyze_construction_log(log_file):
|
||||
# ... existing code ...
|
||||
pass
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Analyze construction task logs.')
|
||||
# Change default input dir to 'experiments' relative to project root
|
||||
parser.add_argument('--log_dir', type=str, default='experiments',
|
||||
help='Directory containing the log files (relative to project root)')
|
||||
# Removed --output_file argument
|
||||
# parser.add_argument('--output_file', type=str, default='construction_analysis_results.csv',
|
||||
# help='Output CSV file name (relative to project root)')
|
||||
args = parser.parse_args()
|
||||
|
||||
# Resolve log_dir path relative to project root
|
||||
log_dir_abs = args.log_dir
|
||||
if not os.path.isabs(log_dir_abs):
|
||||
log_dir_abs = os.path.join(project_root, log_dir_abs)
|
||||
|
||||
# Hardcode output file path
|
||||
output_file_abs = os.path.join(analysis_output_dir, "construction_analysis.csv")
|
||||
|
||||
all_results = []
|
||||
# Use absolute log directory path
|
||||
log_pattern = os.path.join(log_dir_abs, '*.json')
|
||||
print(f"Searching for logs in: {log_pattern}")
|
||||
log_files_found = glob.glob(log_pattern)
|
||||
print(f"Found {len(log_files_found)} log files.")
|
||||
|
||||
for log_file in log_files_found:
|
||||
results = analyze_construction_log(log_file)
|
||||
if results:
|
||||
all_results.append(results)
|
||||
|
||||
if all_results:
|
||||
df = pd.DataFrame(all_results)
|
||||
# Ensure the output directory exists (already done at top)
|
||||
# os.makedirs(os.path.dirname(output_file_abs), exist_ok=True)
|
||||
# Save to hardcoded absolute output file path
|
||||
df.to_csv(output_file_abs, index=False)
|
||||
print(f"Analysis complete. Results saved to {output_file_abs}")
|
||||
else:
|
||||
print("No results generated from log files.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
420
tasks/analyze_cooking_tasks.py
Normal file
420
tasks/analyze_cooking_tasks.py
Normal file
|
@ -0,0 +1,420 @@
|
|||
import os
|
||||
import json
|
||||
import re
|
||||
from collections import defaultdict
|
||||
from prettytable import PrettyTable
|
||||
import pandas as pd
|
||||
import glob
|
||||
import argparse
|
||||
|
||||
# Calculate project root directory
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
# Define output directory for analysis results
|
||||
analysis_output_dir = os.path.join(project_root, "experiments", "analysis_results")
|
||||
# Ensure the output directory exists
|
||||
os.makedirs(analysis_output_dir, exist_ok=True)
|
||||
|
||||
def extract_cooking_items(exp_dir):
|
||||
"""Extract cooking items from experiment directory name."""
|
||||
# Remove prefix and blocked access part
|
||||
clean_name = re.sub(r'^multiagent_cooking_', '', exp_dir)
|
||||
clean_name = re.sub(r'_blocked_access_[0-9_]+$', '', clean_name)
|
||||
|
||||
# Extract individual items
|
||||
items = []
|
||||
for item_match in re.finditer(r'([0-9]+)_([a-zA-Z_]+)', clean_name):
|
||||
count = int(item_match.group(1))
|
||||
item = item_match.group(2)
|
||||
# Remove trailing underscores to fix the item name issue
|
||||
item = item.rstrip('_')
|
||||
items.append(item)
|
||||
|
||||
return items
|
||||
|
||||
def analyze_experiments(root_dir, model_name):
|
||||
# Store results by number of blocked agents
|
||||
blocked_access_results = defaultdict(lambda: {
|
||||
"success": 0,
|
||||
"total": 0
|
||||
})
|
||||
|
||||
# Store results by cooking item
|
||||
cooking_item_results = defaultdict(lambda: {
|
||||
"success": 0,
|
||||
"total": 0
|
||||
})
|
||||
|
||||
# Keep track of all unique cooking items
|
||||
all_cooking_items = set()
|
||||
|
||||
# Keep track of ignored tasks
|
||||
ignored_tasks = []
|
||||
|
||||
# Get a list of all experiment directories
|
||||
experiment_dirs = [d for d in os.listdir(root_dir) if os.path.isdir(os.path.join(root_dir, d))
|
||||
and d.startswith("multiagent_cooking_")]
|
||||
|
||||
for exp_dir in experiment_dirs:
|
||||
# Extract cooking items
|
||||
cooking_items = extract_cooking_items(exp_dir)
|
||||
|
||||
# Add to unique items set
|
||||
all_cooking_items.update(cooking_items)
|
||||
|
||||
# Extract blocked access information from directory name
|
||||
blocked_access_match = re.search(r'blocked_access_([0-9_]+)$', exp_dir)
|
||||
|
||||
if blocked_access_match:
|
||||
blocked_access_str = blocked_access_match.group(1)
|
||||
# Count how many agents have blocked access
|
||||
num_blocked_agents = len(blocked_access_str.split('_'))
|
||||
blocked_key = f"{num_blocked_agents} agent(s)"
|
||||
else:
|
||||
# No agents blocked
|
||||
blocked_key = "0 agent(s)"
|
||||
|
||||
# Check if the task was successful
|
||||
is_successful = False
|
||||
score_found = False
|
||||
full_exp_path = os.path.join(root_dir, exp_dir)
|
||||
|
||||
# Get all JSON files in the experiment directory
|
||||
agent_files = [f for f in os.listdir(full_exp_path) if f.endswith(".json")]
|
||||
|
||||
# Check each agent file for success information
|
||||
for agent_file in agent_files:
|
||||
agent_file_path = os.path.join(full_exp_path, agent_file)
|
||||
|
||||
try:
|
||||
with open(agent_file_path, 'r') as f:
|
||||
agent_data = json.load(f)
|
||||
|
||||
# Check for score information in the turns data
|
||||
if "turns" in agent_data:
|
||||
for turn in agent_data["turns"]:
|
||||
if turn.get("role") == "system" and "content" in turn:
|
||||
if isinstance(turn["content"], str) and "Task ended with score : " in turn["content"]:
|
||||
score_found = True
|
||||
if "Task ended with score : 1" in turn["content"]:
|
||||
is_successful = True
|
||||
break
|
||||
|
||||
# If we found success, no need to check other files
|
||||
if is_successful:
|
||||
break
|
||||
|
||||
except (json.JSONDecodeError, IOError) as e:
|
||||
print(f"Error reading {agent_file_path}: {e}")
|
||||
# Continue to check other agent files instead of failing
|
||||
continue
|
||||
|
||||
# If no score information was found in any agent file, ignore this task
|
||||
if not score_found:
|
||||
ignored_tasks.append(exp_dir)
|
||||
continue
|
||||
|
||||
# Update cooking item results
|
||||
for item in cooking_items:
|
||||
cooking_item_results[item]["total"] += 1
|
||||
if is_successful:
|
||||
cooking_item_results[item]["success"] += 1
|
||||
|
||||
# Update the blocked access counters
|
||||
blocked_access_results[blocked_key]["total"] += 1
|
||||
if is_successful:
|
||||
blocked_access_results[blocked_key]["success"] += 1
|
||||
|
||||
# Print information about ignored tasks
|
||||
if ignored_tasks:
|
||||
print(f"\n{model_name}: Ignored {len(ignored_tasks)} tasks with no score information:")
|
||||
for task in ignored_tasks:
|
||||
print(f" - {task}")
|
||||
|
||||
return blocked_access_results, cooking_item_results, all_cooking_items, ignored_tasks
|
||||
|
||||
def print_model_comparison_blocked(models_results):
|
||||
print("\nModel Comparison by Number of Agents with Blocked Access:")
|
||||
print("=" * 100)
|
||||
|
||||
# Get all possible blocked access keys
|
||||
all_blocked_keys = set()
|
||||
for model_results in models_results.values():
|
||||
all_blocked_keys.update(model_results.keys())
|
||||
|
||||
# Sort the keys
|
||||
sorted_keys = sorted(all_blocked_keys, key=lambda x: int(x.split()[0]))
|
||||
|
||||
# Create the table
|
||||
table = PrettyTable()
|
||||
table.field_names = ["Blocked Agents"] + [
|
||||
f"{model_name} (Success Rate | Success/Total)" for model_name in models_results.keys()
|
||||
]
|
||||
|
||||
# Calculate and add rows for each blocked key
|
||||
model_totals = {model: {"success": 0, "total": 0} for model in models_results.keys()}
|
||||
|
||||
for key in sorted_keys:
|
||||
row = [key]
|
||||
|
||||
for model_name, model_results in models_results.items():
|
||||
if key in model_results:
|
||||
success = model_results[key]["success"]
|
||||
total = model_results[key]["total"]
|
||||
|
||||
model_totals[model_name]["success"] += success
|
||||
model_totals[model_name]["total"] += total
|
||||
|
||||
success_rate = (success / total * 100) if total > 0 else 0
|
||||
row.append(f"{success_rate:.2f}% | {success}/{total}")
|
||||
else:
|
||||
row.append("N/A")
|
||||
|
||||
table.add_row(row)
|
||||
|
||||
# Print the table
|
||||
print(table)
|
||||
|
||||
# Print the overall results
|
||||
overall_row = ["Overall"]
|
||||
for model_name, totals in model_totals.items():
|
||||
success = totals["success"]
|
||||
total = totals["total"]
|
||||
success_rate = (success / total * 100) if total > 0 else 0
|
||||
overall_row.append(f"{success_rate:.2f}% | {success}/{total}")
|
||||
|
||||
table.add_row(overall_row)
|
||||
print(table)
|
||||
|
||||
def print_model_comparison_items(models_item_results, all_cooking_items):
|
||||
print("\nModel Comparison by Cooking Item:")
|
||||
print("=" * 100)
|
||||
|
||||
# Create the table
|
||||
table = PrettyTable()
|
||||
table.field_names = ["Cooking Item"] + [
|
||||
f"{model_name} (Success Rate | Success/Total)" for model_name in models_item_results.keys()
|
||||
]
|
||||
|
||||
# Calculate and add rows for each cooking item
|
||||
model_totals = {model: {"success": 0, "total": 0} for model in models_item_results.keys()}
|
||||
|
||||
for item in sorted(all_cooking_items):
|
||||
row = [item]
|
||||
|
||||
for model_name, model_results in models_item_results.items():
|
||||
if item in model_results:
|
||||
success = model_results[item]["success"]
|
||||
total = model_results[item]["total"]
|
||||
|
||||
model_totals[model_name]["success"] += success
|
||||
model_totals[model_name]["total"] += total
|
||||
|
||||
success_rate = (success / total * 100) if total > 0 else 0
|
||||
row.append(f"{success_rate:.2f}% | {success}/{total}")
|
||||
else:
|
||||
row.append("N/A")
|
||||
|
||||
table.add_row(row)
|
||||
|
||||
# Print the table
|
||||
print(table)
|
||||
|
||||
# Print the overall results
|
||||
overall_row = ["Overall"]
|
||||
for model_name, totals in model_totals.items():
|
||||
success = totals["success"]
|
||||
total = totals["total"]
|
||||
success_rate = (success / total * 100) if total > 0 else 0
|
||||
overall_row.append(f"{success_rate:.2f}% | {success}/{total}")
|
||||
|
||||
table.add_row(overall_row)
|
||||
print(table)
|
||||
|
||||
def print_model_comparison_items_by_blocked(models_data, all_cooking_items):
|
||||
print("\nDetailed Model Comparison by Cooking Item and Blocked Agent Count:")
|
||||
print("=" * 120)
|
||||
|
||||
# For each cooking item, create a comparison table by blocked agent count
|
||||
for item in sorted(all_cooking_items):
|
||||
print(f"\nResults for cooking item: {item}")
|
||||
print("-" * 100)
|
||||
|
||||
# Create the table
|
||||
table = PrettyTable()
|
||||
table.field_names = ["Blocked Agents"] + [
|
||||
f"{model_name} Success Rate" for model_name in models_data.keys()
|
||||
] + [
|
||||
f"{model_name} Success/Total" for model_name in models_data.keys()
|
||||
]
|
||||
|
||||
# Get all possible blocked agent counts
|
||||
all_blocked_keys = set()
|
||||
for model_name, model_data in models_data.items():
|
||||
_, _, item_blocked_data = model_data
|
||||
for blocked_key in item_blocked_data.get(item, {}).keys():
|
||||
all_blocked_keys.add(blocked_key)
|
||||
|
||||
# Sort the keys
|
||||
sorted_keys = sorted(all_blocked_keys, key=lambda x: int(x.split()[0]))
|
||||
|
||||
# Add rows for each blocked key
|
||||
for blocked_key in sorted_keys:
|
||||
row = [blocked_key]
|
||||
|
||||
for model_name, model_data in models_data.items():
|
||||
_, _, item_blocked_data = model_data
|
||||
|
||||
if item in item_blocked_data and blocked_key in item_blocked_data[item]:
|
||||
success = item_blocked_data[item][blocked_key]["success"]
|
||||
total = item_blocked_data[item][blocked_key]["total"]
|
||||
|
||||
if total > 0:
|
||||
success_rate = (success / total * 100)
|
||||
row.append(f"{success_rate:.2f}%")
|
||||
row.append(f"{success}/{total}")
|
||||
else:
|
||||
row.append("N/A")
|
||||
row.append("0/0")
|
||||
else:
|
||||
row.append("N/A")
|
||||
row.append("N/A")
|
||||
|
||||
table.add_row(row)
|
||||
|
||||
# Print the table
|
||||
print(table)
|
||||
|
||||
# Print item summary for each model
|
||||
overall_row = ["Overall"]
|
||||
for model_name, model_data in models_data.items():
|
||||
_, item_results, _ = model_data
|
||||
|
||||
if item in item_results:
|
||||
success = item_results[item]["success"]
|
||||
total = item_results[item]["total"]
|
||||
|
||||
if total > 0:
|
||||
success_rate = (success / total * 100)
|
||||
overall_row.append(f"{success_rate:.2f}%")
|
||||
overall_row.append(f"{success}/{total}")
|
||||
else:
|
||||
overall_row.append("N/A")
|
||||
overall_row.append("0/0")
|
||||
else:
|
||||
overall_row.append("N/A")
|
||||
overall_row.append("N/A")
|
||||
|
||||
table.add_row(overall_row)
|
||||
print(table)
|
||||
|
||||
def generate_item_blocked_data(experiments_root):
|
||||
# Organize data by item and blocked agent count
|
||||
item_blocked_data = defaultdict(lambda: defaultdict(lambda: {"success": 0, "total": 0}))
|
||||
|
||||
# Keep track of ignored tasks
|
||||
ignored_tasks = []
|
||||
|
||||
# Populate the data structure
|
||||
for exp_dir in os.listdir(experiments_root):
|
||||
if not os.path.isdir(os.path.join(experiments_root, exp_dir)) or not exp_dir.startswith("multiagent_cooking_"):
|
||||
continue
|
||||
|
||||
# Extract cooking items
|
||||
cooking_items = extract_cooking_items(exp_dir)
|
||||
|
||||
# Extract blocked access information
|
||||
blocked_access_match = re.search(r'blocked_access_([0-9_]+)$', exp_dir)
|
||||
if blocked_access_match:
|
||||
blocked_access_str = blocked_access_match.group(1)
|
||||
num_blocked_agents = len(blocked_access_str.split('_'))
|
||||
blocked_key = f"{num_blocked_agents} agent(s)"
|
||||
else:
|
||||
blocked_key = "0 agent(s)"
|
||||
|
||||
# Check if the task was successful and if score information exists
|
||||
is_successful = False
|
||||
score_found = False
|
||||
full_exp_path = os.path.join(experiments_root, exp_dir)
|
||||
agent_files = [f for f in os.listdir(full_exp_path) if f.endswith(".json")]
|
||||
|
||||
for agent_file in agent_files:
|
||||
try:
|
||||
with open(os.path.join(full_exp_path, agent_file), 'r') as f:
|
||||
agent_data = json.load(f)
|
||||
|
||||
if "turns" in agent_data:
|
||||
for turn in agent_data["turns"]:
|
||||
if turn.get("role") == "system" and "content" in turn:
|
||||
if isinstance(turn["content"], str) and "Task ended with score : " in turn["content"]:
|
||||
score_found = True
|
||||
if "Task ended with score : 1" in turn["content"]:
|
||||
is_successful = True
|
||||
break
|
||||
|
||||
if is_successful:
|
||||
break
|
||||
except:
|
||||
continue
|
||||
|
||||
# If no score information was found, skip this task
|
||||
if not score_found:
|
||||
ignored_tasks.append(exp_dir)
|
||||
continue
|
||||
|
||||
# Update the item-blocked data
|
||||
for item in cooking_items:
|
||||
item_blocked_data[item][blocked_key]["total"] += 1
|
||||
if is_successful:
|
||||
item_blocked_data[item][blocked_key]["success"] += 1
|
||||
|
||||
return item_blocked_data, ignored_tasks
|
||||
|
||||
def analyze_cooking_log(log_file):
|
||||
# Placeholder for the actual analysis logic if it exists
|
||||
# This function needs to be implemented based on the script's purpose
|
||||
print(f"Analyzing {log_file}...") # Example print
|
||||
# Example: return a dictionary of results
|
||||
return {"file": os.path.basename(log_file), "score": 1} # Dummy result
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Analyze cooking task logs.')
|
||||
# Change default input dir to 'experiments' relative to project root
|
||||
parser.add_argument('--log_dir', type=str, default='experiments',
|
||||
help='Directory containing the log files (relative to project root)')
|
||||
# Removed --output_file argument
|
||||
# parser.add_argument('--output_file', type=str, default='cooking_analysis_results.csv',
|
||||
# help='Output CSV file name (relative to project root)')
|
||||
args = parser.parse_args()
|
||||
|
||||
# Resolve log_dir path relative to project root
|
||||
log_dir_abs = args.log_dir
|
||||
if not os.path.isabs(log_dir_abs):
|
||||
log_dir_abs = os.path.join(project_root, log_dir_abs)
|
||||
|
||||
# Hardcode output file path
|
||||
output_file_abs = os.path.join(analysis_output_dir, "cooking_analysis.csv")
|
||||
|
||||
all_results = []
|
||||
# Use absolute log directory path
|
||||
log_pattern = os.path.join(log_dir_abs, '*.json')
|
||||
print(f"Searching for logs in: {log_pattern}")
|
||||
log_files_found = glob.glob(log_pattern)
|
||||
print(f"Found {len(log_files_found)} log files.")
|
||||
|
||||
for log_file in log_files_found:
|
||||
results = analyze_cooking_log(log_file)
|
||||
if results:
|
||||
all_results.append(results) # Append the results dictionary
|
||||
|
||||
if all_results:
|
||||
df = pd.DataFrame(all_results)
|
||||
# Ensure the output directory exists
|
||||
os.makedirs(os.path.dirname(output_file_abs), exist_ok=True)
|
||||
# Save to hardcoded absolute output file path
|
||||
df.to_csv(output_file_abs, index=False)
|
||||
print(f"Analysis complete. Results saved to {output_file_abs}")
|
||||
else:
|
||||
print("No results generated from log files.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
379
tasks/analyze_crafting_tasks.py
Normal file
379
tasks/analyze_crafting_tasks.py
Normal file
|
@ -0,0 +1,379 @@
|
|||
import boto3
|
||||
import os
|
||||
import json
|
||||
import re
|
||||
from botocore.exceptions import ClientError
|
||||
import json
|
||||
import argparse
|
||||
from tqdm import tqdm
|
||||
import glob
|
||||
from prettytable import PrettyTable
|
||||
import pandas as pd
|
||||
|
||||
# Calculate project root directory
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
# Define output directory for analysis results
|
||||
analysis_output_dir = os.path.join(project_root, "experiments", "analysis_results")
|
||||
# Ensure the output directory exists
|
||||
os.makedirs(analysis_output_dir, exist_ok=True)
|
||||
|
||||
def download_s3_folders(bucket_name, s3_prefix, local_base_dir):
|
||||
"""
|
||||
Downloads groups of folders from S3 based on the next level of prefixes.
|
||||
|
||||
Args:
|
||||
bucket_name (str): Name of the S3 bucket.
|
||||
s3_prefix (str): Prefix where the folders are located (e.g., 'my-experiments/').
|
||||
local_base_dir (str): Local directory to download the folders to.
|
||||
|
||||
Returns:
|
||||
list: List of downloaded local folder paths.
|
||||
"""
|
||||
s3_client = boto3.client('s3')
|
||||
downloaded_folders = []
|
||||
|
||||
# Ensure local_base_dir is relative to project root if not absolute
|
||||
if not os.path.isabs(local_base_dir):
|
||||
local_base_dir = os.path.join(project_root, local_base_dir)
|
||||
|
||||
try:
|
||||
# List objects with the prefix, delimited by '/' to find sub-prefixes (folders)
|
||||
response = s3_client.list_objects_v2(Bucket=bucket_name, Prefix=s3_prefix, Delimiter='/')
|
||||
|
||||
if 'CommonPrefixes' not in response:
|
||||
print(f"No folders found under s3://{bucket_name}/{s3_prefix}")
|
||||
return downloaded_folders
|
||||
|
||||
s3_folder_prefixes = [prefix['Prefix'] for prefix in response['CommonPrefixes']]
|
||||
subfolder = s3_prefix.split('/')[-2]
|
||||
|
||||
for s3_folder_prefix in tqdm(s3_folder_prefixes):
|
||||
folder_name = s3_folder_prefix.split('/')[-2] # Extract folder name
|
||||
local_folder_path = os.path.join(local_base_dir, subfolder, folder_name)
|
||||
os.makedirs(local_folder_path, exist_ok=True)
|
||||
downloaded_folders.append(local_folder_path)
|
||||
|
||||
# Download files within the folder
|
||||
objects_in_folder = s3_client.list_objects_v2(Bucket=bucket_name, Prefix=s3_folder_prefix)
|
||||
if 'Contents' in objects_in_folder:
|
||||
for obj in objects_in_folder['Contents']:
|
||||
s3_key = obj['Key']
|
||||
local_file_path = os.path.join(local_folder_path, os.path.basename(s3_key))
|
||||
try:
|
||||
s3_client.download_file(bucket_name, s3_key, local_file_path)
|
||||
except Exception as e:
|
||||
print(f"Error downloading {s3_key}: {e}")
|
||||
|
||||
else:
|
||||
print(f"No files found in {s3_folder_prefix}")
|
||||
|
||||
except ClientError as e:
|
||||
print(f"Error accessing S3: {e}")
|
||||
return []
|
||||
|
||||
return downloaded_folders
|
||||
|
||||
def analyze_json_file(file_path):
|
||||
"""
|
||||
Analyzes a single JSON file to extract the task outcome.
|
||||
|
||||
Args:
|
||||
file_path (str): Path to the JSON file.
|
||||
|
||||
Returns:
|
||||
bool: True if task was successful, False otherwise.
|
||||
"""
|
||||
try:
|
||||
with open(file_path, 'r') as f:
|
||||
data = json.load(f)
|
||||
if 'turns' in data and isinstance(data['turns'], list):
|
||||
for turn in data['turns']: # Check all turns, not just from the end
|
||||
if turn.get('role') == 'system' and isinstance(turn.get('content'), str):
|
||||
if "Task successful ended with code : 2" in turn['content'] or "Task ended with score : 1" in turn["content"] or "Task ended in score: 1" in turn["content"]:
|
||||
# print(f"Success found in {file_path}")
|
||||
return True
|
||||
return False
|
||||
except FileNotFoundError:
|
||||
print(f"Error: File not found: {file_path}")
|
||||
return None
|
||||
except json.JSONDecodeError:
|
||||
print(f"Error: Invalid JSON format in: {file_path}")
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"An unexpected error occurred while processing {file_path}: {e}")
|
||||
return None
|
||||
|
||||
def extract_result(folder_path):
|
||||
folder_name = os.path.basename(folder_path)
|
||||
json_files = glob.glob(os.path.join(folder_path, "*.json"))
|
||||
|
||||
if not json_files:
|
||||
print(f"No JSON files found in {folder_name}")
|
||||
return None
|
||||
else:
|
||||
# Check each JSON file in the folder for success indication
|
||||
for json_file in json_files:
|
||||
outcome = analyze_json_file(json_file)
|
||||
if outcome: # If any file indicates success, return True
|
||||
return True
|
||||
return False # Return False only if no files indicate success
|
||||
|
||||
def is_base(folder_path):
|
||||
return "full_plan" in folder_path and "depth_0" in folder_path and "missing" not in folder_path
|
||||
|
||||
def base_without_plan(folder_path):
|
||||
return "no_plan" in folder_path and "depth_0" in folder_path and "missing" in folder_path
|
||||
|
||||
def aggregate_results(local_folders):
|
||||
"""
|
||||
Aggregates the analysis results for each folder.
|
||||
|
||||
Args:
|
||||
local_folders (list): List of local folder paths containing the JSON files.
|
||||
|
||||
Returns:
|
||||
dict: A dictionary where keys are folder names and values are the aggregated outcomes.
|
||||
"""
|
||||
aggregated_data = {}
|
||||
|
||||
total = 0
|
||||
successful = 0
|
||||
|
||||
base_successful = 0
|
||||
base_total = 0
|
||||
|
||||
base_no_plan_successful = 0
|
||||
base_no_plan_total = 0
|
||||
|
||||
missing_successful = 0
|
||||
missing_total = 0
|
||||
|
||||
full_plan_successful = 0
|
||||
full_plan_total = 0
|
||||
|
||||
partial_plan_successful = 0
|
||||
partial_plan_total = 0
|
||||
|
||||
no_plan_successful = 0
|
||||
no_plan_total = 0
|
||||
|
||||
high_depth_successful = 0
|
||||
high_depth_total = 0
|
||||
|
||||
# For depth-based metrics
|
||||
depth_0_successful = 0
|
||||
depth_0_total = 0
|
||||
depth_1_successful = 0
|
||||
depth_1_total = 0
|
||||
depth_2_successful = 0
|
||||
depth_2_total = 0
|
||||
|
||||
for folder_path in tqdm(local_folders):
|
||||
folder_name = os.path.basename(folder_path)
|
||||
|
||||
try:
|
||||
total += 1
|
||||
result = extract_result(folder_path)
|
||||
success = int(extract_result(folder_path))
|
||||
successful += success
|
||||
|
||||
print(f"Folder: {folder_name} -> {success}")
|
||||
|
||||
if "missing" in folder_path:
|
||||
missing_successful += success
|
||||
missing_total += 1
|
||||
if is_base(folder_path):
|
||||
base_successful += success
|
||||
base_total += 1
|
||||
if base_without_plan(folder_path):
|
||||
base_no_plan_successful += success
|
||||
base_no_plan_total += 1
|
||||
if "full_plan" in folder_path:
|
||||
full_plan_successful += success
|
||||
full_plan_total += 1
|
||||
if "partial_plan" in folder_path:
|
||||
partial_plan_successful += success
|
||||
partial_plan_total += 1
|
||||
if "no_plan" in folder_path:
|
||||
no_plan_successful += success
|
||||
no_plan_total += 1
|
||||
if "depth_1" in folder_path or "depth_2" in folder_path:
|
||||
high_depth_successful += success
|
||||
high_depth_total += 1
|
||||
|
||||
# Collect depth-specific metrics
|
||||
if "depth_0" in folder_path:
|
||||
depth_0_successful += success
|
||||
depth_0_total += 1
|
||||
elif "depth_1" in folder_path:
|
||||
depth_1_successful += success
|
||||
depth_1_total += 1
|
||||
elif "depth_2" in folder_path:
|
||||
depth_2_successful += success
|
||||
depth_2_total += 1
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error processing {folder_name}: {e}")
|
||||
|
||||
return {
|
||||
"total": total,
|
||||
"successful": successful,
|
||||
"success_rate": successful / total if total > 0 else 0,
|
||||
"base_total": base_total,
|
||||
"base_successful": base_successful,
|
||||
"base_success_rate": base_successful / base_total if base_total > 0 else 0,
|
||||
"base_no_plan_total": base_no_plan_total,
|
||||
"base_no_plan_successful": base_no_plan_successful,
|
||||
"base_no_plan_success_rate": base_no_plan_successful / base_no_plan_total if base_no_plan_total > 0 else 0,
|
||||
"missing_total": missing_total,
|
||||
"missing_successful": missing_successful,
|
||||
"missing_success_rate": missing_successful / missing_total if missing_total > 0 else 0,
|
||||
"full_plan_total": full_plan_total,
|
||||
"full_plan_successful": full_plan_successful,
|
||||
"full_plan_success_rate": full_plan_successful / full_plan_total if full_plan_total > 0 else 0,
|
||||
"partial_plan_total": partial_plan_total,
|
||||
"partial_plan_successful": partial_plan_successful,
|
||||
"partial_plan_success_rate": partial_plan_successful / partial_plan_total if partial_plan_total > 0 else 0,
|
||||
"no_plan_total": no_plan_total,
|
||||
"no_plan_successful": no_plan_successful,
|
||||
"no_plan_success_rate": no_plan_successful / no_plan_total if no_plan_total > 0 else 0,
|
||||
"high_depth_total": high_depth_total,
|
||||
"high_depth_successful": high_depth_successful,
|
||||
"high_depth_success_rate": high_depth_successful / high_depth_total if high_depth_total > 0 else 0,
|
||||
"depth_0_total": depth_0_total,
|
||||
"depth_0_successful": depth_0_successful,
|
||||
"depth_0_success_rate": depth_0_successful / depth_0_total if depth_0_total > 0 else 0,
|
||||
"depth_1_total": depth_1_total,
|
||||
"depth_1_successful": depth_1_successful,
|
||||
"depth_1_success_rate": depth_1_successful / depth_1_total if depth_1_total > 0 else 0,
|
||||
"depth_2_total": depth_2_total,
|
||||
"depth_2_successful": depth_2_successful,
|
||||
"depth_2_success_rate": depth_2_successful / depth_2_total if depth_2_total > 0 else 0
|
||||
}
|
||||
|
||||
def get_immediate_subdirectories(a_dir):
|
||||
# Ensure a_dir is relative to project root if not absolute
|
||||
if not os.path.isabs(a_dir):
|
||||
a_dir = os.path.join(project_root, a_dir)
|
||||
return [os.path.join(a_dir, name) for name in os.listdir(a_dir)
|
||||
if os.path.isdir(os.path.join(a_dir, name))]
|
||||
|
||||
def format_percentage(value):
|
||||
"""Format a decimal value as a percentage with 2 decimal places"""
|
||||
return f"{value * 100:.2f}%"
|
||||
|
||||
def create_pretty_tables(results):
|
||||
"""
|
||||
Create pretty tables for the results.
|
||||
|
||||
Args:
|
||||
results (dict): Dictionary with aggregated results
|
||||
|
||||
Returns:
|
||||
str: String representation of the formatted tables
|
||||
"""
|
||||
# Table 1: Overall Metrics
|
||||
overall_table = PrettyTable()
|
||||
overall_table.title = "Overall Metrics"
|
||||
overall_table.field_names = ["Metric", "Total", "Successful", "Success Rate"]
|
||||
overall_table.add_row(["All Tests", results["total"], results["successful"], format_percentage(results["success_rate"])])
|
||||
overall_table.add_row(["Base", results["base_total"], results["base_successful"], format_percentage(results["base_success_rate"])])
|
||||
overall_table.add_row(["Base (No Plan)", results["base_no_plan_total"], results["base_no_plan_successful"], format_percentage(results["base_no_plan_success_rate"])])
|
||||
overall_table.add_row(["Missing", results["missing_total"], results["missing_successful"], format_percentage(results["missing_success_rate"])])
|
||||
overall_table.add_row(["High Depth", results["high_depth_total"], results["high_depth_successful"], format_percentage(results["high_depth_success_rate"])])
|
||||
|
||||
# Table 2: Depth-based Metrics
|
||||
depth_table = PrettyTable()
|
||||
depth_table.title = "Metrics by Depth"
|
||||
depth_table.field_names = ["Depth", "Total", "Successful", "Success Rate"]
|
||||
depth_table.add_row(["Depth 0", results["depth_0_total"], results["depth_0_successful"], format_percentage(results["depth_0_success_rate"])])
|
||||
depth_table.add_row(["Depth 1", results["depth_1_total"], results["depth_1_successful"], format_percentage(results["depth_1_success_rate"])])
|
||||
depth_table.add_row(["Depth 2", results["depth_2_total"], results["depth_2_successful"], format_percentage(results["depth_2_success_rate"])])
|
||||
|
||||
# Table 3: Plan Availability Metrics
|
||||
plan_table = PrettyTable()
|
||||
plan_table.title = "Metrics by Plan Availability"
|
||||
plan_table.field_names = ["Plan Type", "Total", "Successful", "Success Rate"]
|
||||
plan_table.add_row(["Full Plan", results["full_plan_total"], results["full_plan_successful"], format_percentage(results["full_plan_success_rate"])])
|
||||
plan_table.add_row(["Partial Plan", results["partial_plan_total"], results["partial_plan_successful"], format_percentage(results["partial_plan_success_rate"])])
|
||||
plan_table.add_row(["No Plan", results["no_plan_total"], results["no_plan_successful"], format_percentage(results["no_plan_success_rate"])])
|
||||
|
||||
return overall_table.get_string() + "\n\n" + depth_table.get_string() + "\n\n" + plan_table.get_string()
|
||||
|
||||
def analyze_crafting_log(log_file):
|
||||
# ... existing code ...
|
||||
pass
|
||||
|
||||
def main():
|
||||
# 1. Download folders from AWS or use local directory
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--s3_download', action="store_true", help='Download folders from S3')
|
||||
parser.add_argument('--aws_bucket_name', default="mindcraft" , type=str, help='AWS bucket name')
|
||||
parser.add_argument('--s3_folder_prefix', default="", type=str, help='S3 folder prefix')
|
||||
# Change default input dir to 'experiments' relative to project root
|
||||
parser.add_argument('--local_download_dir', default="experiments", type=str, help='Local directory containing results (relative to project root)')
|
||||
args = parser.parse_args()
|
||||
|
||||
AWS_BUCKET_NAME = args.aws_bucket_name
|
||||
S3_FOLDER_PREFIX = args.s3_folder_prefix
|
||||
|
||||
# Resolve local_download_dir relative to project root
|
||||
local_download_dir_abs = args.local_download_dir
|
||||
if not os.path.isabs(local_download_dir_abs):
|
||||
local_download_dir_abs = os.path.join(project_root, local_download_dir_abs)
|
||||
|
||||
# Construct LOCAL_DOWNLOAD_DIR based on the absolute path
|
||||
# This directory will be used for results aggregation and saving output files
|
||||
if args.local_download_dir != "":
|
||||
LOCAL_DOWNLOAD_DIR = local_download_dir_abs # Base results directory
|
||||
if args.s3_download and S3_FOLDER_PREFIX: # Append S3 prefix if downloading to keep results separate
|
||||
LOCAL_DOWNLOAD_DIR = os.path.join(local_download_dir_abs, S3_FOLDER_PREFIX.replace('/', '_').rstrip('_'))
|
||||
else:
|
||||
LOCAL_DOWNLOAD_DIR = local_download_dir_abs # Should not happen with default
|
||||
|
||||
if (args.s3_download):
|
||||
print(f"Downloading folders from s3://{AWS_BUCKET_NAME}/{S3_FOLDER_PREFIX} to {LOCAL_DOWNLOAD_DIR}...")
|
||||
# Pass the absolute base path for downloads, download_s3_folders handles subfolder creation
|
||||
folders = download_s3_folders(AWS_BUCKET_NAME, S3_FOLDER_PREFIX, local_download_dir_abs)
|
||||
else:
|
||||
# Use the absolute path to get subdirectories
|
||||
folders = get_immediate_subdirectories(local_download_dir_abs)
|
||||
print(f"Found local folders: {folders}")
|
||||
|
||||
if not folders:
|
||||
print("No folders found or downloaded. Exiting.")
|
||||
exit()
|
||||
|
||||
results = aggregate_results(folders)
|
||||
print(results)
|
||||
|
||||
# Create pretty tables
|
||||
tables_output = create_pretty_tables(results)
|
||||
print("\n" + tables_output)
|
||||
|
||||
# Save results to files within the hardcoded experiments/analysis_results/ directory
|
||||
# os.makedirs(LOCAL_DOWNLOAD_DIR, exist_ok=True) # Output dir created at top
|
||||
|
||||
# Save raw results
|
||||
# Determine filename based on S3 prefix or local dir name if possible
|
||||
if S3_FOLDER_PREFIX:
|
||||
results_filename_base = S3_FOLDER_PREFIX.replace('/', '_').rstrip('_')
|
||||
else:
|
||||
results_filename_base = os.path.basename(local_download_dir_abs) if local_download_dir_abs else "local"
|
||||
results_filename_base = f"crafting_analysis_{results_filename_base}"
|
||||
|
||||
results_file_path = os.path.join(analysis_output_dir, f"{results_filename_base}_results.txt")
|
||||
with open(results_file_path, "w") as file:
|
||||
file.write("Results\n")
|
||||
for key, value in results.items():
|
||||
file.write(f"{key}: {value}\n")
|
||||
|
||||
# Save pretty tables
|
||||
tables_file_path = os.path.join(analysis_output_dir, f"{results_filename_base}_tables.txt")
|
||||
with open(tables_file_path, "w") as file:
|
||||
file.write(tables_output)
|
||||
|
||||
print(f"Results saved to {results_file_path} and tables saved to {tables_file_path}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
34
tasks/construction_tasks/README_ConstructionTasks.md
Normal file
34
tasks/construction_tasks/README_ConstructionTasks.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
# Construction Tasks Generation
|
||||
|
||||
## Overview
|
||||
Instructions on how to customize construction task generation.
|
||||
|
||||
## Getting Started
|
||||
Edit and Run `tasks/construction_tasks/generate_multiagent_construction_tasks.js` to create new task variants. Note the 'main' is at the end of the page, and determines which file gets written to.
|
||||
|
||||
## Customization Options
|
||||
|
||||
### Cheats and Profile Configurations
|
||||
To enable cheats, set the `cheat` variable to `true` in `profiles/task_construct.json`.
|
||||
You can additionally access
|
||||
|
||||
### Task Configuration
|
||||
For task specific customization, modify the `generateConstructionTasks` function in `tasks/construction_tasks/generate_multiagent_construction_tasks.js` to adjust:
|
||||
|
||||
1. Room parameters:
|
||||
- Size
|
||||
- Window style
|
||||
- Carpet style
|
||||
|
||||
2. Task generation:
|
||||
- Number of variants
|
||||
- Timeout duration
|
||||
|
||||
The generation code is documented to help with customization.
|
||||
|
||||
## Important File Locations
|
||||
- `tasks/construction_tasks/generate_multiagent_construction_tasks.js` - Main task generation script
|
||||
- `profiles/task_construct.json` - Default configuration profile
|
||||
- `tasks/construction_tasks/test_multiagent_construction_tasks.json` - Training task definitions (initalized with 5 variants)
|
||||
- `tasks/construction_tasks/test_multiagent_construction_tasks.json` - Test task definitions (initalized with 1 variant)
|
||||
- `src/agent/tasks/construction_tasks.js` - Blueprint Class, Construction Validation Class, and Procedural Generation Function
|
|
@ -0,0 +1,32 @@
|
|||
import fs from 'fs';
|
||||
|
||||
// Read and parse the JSON file
|
||||
const tasks = JSON.parse(fs.readFileSync('./test_multiagent_construction_tasks.json'));
|
||||
|
||||
// Validate format and count variants
|
||||
const counts = {};
|
||||
const expectedKeys = ['type', 'goal', 'conversation', 'agent_count', 'blueprint', 'initial_inventory'];
|
||||
|
||||
Object.keys(tasks).forEach(taskName => {
|
||||
const task = tasks[taskName];
|
||||
|
||||
// Validate task format
|
||||
if (!expectedKeys.every(key => key in task)) {
|
||||
console.error(`Invalid task format in ${taskName}`);
|
||||
return;
|
||||
}
|
||||
|
||||
const category = taskName.split('_variant_')[0];
|
||||
counts[category] = (counts[category] || 0) + 1;
|
||||
});
|
||||
|
||||
console.log('\nVariants per category:');
|
||||
Object.entries(counts).forEach(([category, count]) => {
|
||||
console.log(`${category}: ${count}`);
|
||||
});
|
||||
|
||||
console.log(`\nTotal tasks: ${Object.keys(tasks).length}`);
|
||||
console.log(`Total categories: ${Object.keys(counts).length}`);
|
||||
// const expectedTotal = 5 * 3 * 3* 3
|
||||
// * 5; // materialLevels * roomCounts * windowStyles * carpetStyles * variants
|
||||
// console.log(`Expected total tasks: ${expectedTotal}`);
|
2357
tasks/construction_tasks/custom/church_three_agents.json
Normal file
2357
tasks/construction_tasks/custom/church_three_agents.json
Normal file
File diff suppressed because it is too large
Load diff
1351
tasks/construction_tasks/custom/flower_three_agents.json
Normal file
1351
tasks/construction_tasks/custom/flower_three_agents.json
Normal file
File diff suppressed because it is too large
Load diff
690
tasks/construction_tasks/custom/pyramid.json
Normal file
690
tasks/construction_tasks/custom/pyramid.json
Normal file
|
@ -0,0 +1,690 @@
|
|||
{
|
||||
"pyramid": {
|
||||
"type": "construction",
|
||||
"goal": "Make a structure with the blueprint below",
|
||||
"conversation": "Let's share materials and make a structure with the blueprint",
|
||||
"agent_count": 2,
|
||||
"blueprint": {
|
||||
"materials": {
|
||||
"polished_granite": 1,
|
||||
"gold_block": 27,
|
||||
"stone_bricks": 41,
|
||||
"polished_andesite": 34,
|
||||
"quartz_block": 16,
|
||||
"stone": 23,
|
||||
"polished_diorite": 21,
|
||||
"quartz_pillar": 2,
|
||||
"glowstone": 3
|
||||
},
|
||||
"levels": [
|
||||
{
|
||||
"level": 0,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-60,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"polished_granite",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"quartz_block",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"gold_block"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"gold_block"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"gold_block",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"quartz_block",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"quartz_block"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"polished_diorite",
|
||||
"stone_bricks"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"polished_diorite",
|
||||
"stone_bricks",
|
||||
"polished_andesite"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"polished_diorite",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"gold_block",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"quartz_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"gold_block"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 1,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-59,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"quartz_pillar",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"quartz_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"stone",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"stone_bricks",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"polished_andesite",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"quartz_block",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"glowstone",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"quartz_block",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"stone_bricks",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"polished_andesite",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"polished_andesite",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"quartz_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-58,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"quartz_pillar",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"quartz_block",
|
||||
"gold_block",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"polished_andesite",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"quartz_block",
|
||||
"polished_andesite",
|
||||
"glowstone",
|
||||
"stone_bricks",
|
||||
"quartz_block",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone_bricks",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"polished_andesite",
|
||||
"quartz_block",
|
||||
"stone_bricks",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 3,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-57,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"quartz_block",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"quartz_block",
|
||||
"glowstone",
|
||||
"quartz_block",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"quartz_block",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 4,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-56,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"polished_granite": 1,
|
||||
"stone_bricks": 41,
|
||||
"quartz_block": 16,
|
||||
"polished_diorite": 21,
|
||||
"glowstone": 3,
|
||||
"diamond_pickaxe": 1
|
||||
},
|
||||
"1": {
|
||||
"gold_block": 27,
|
||||
"polished_andesite": 34,
|
||||
"stone": 23,
|
||||
"quartz_pillar": 2,
|
||||
"diamond_pickaxe": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
699
tasks/construction_tasks/custom/pyramid_three_agents.json
Normal file
699
tasks/construction_tasks/custom/pyramid_three_agents.json
Normal file
|
@ -0,0 +1,699 @@
|
|||
{
|
||||
"pyramid_three_agents": {
|
||||
"type": "construction",
|
||||
"goal": "Make a structure with the blueprint below",
|
||||
"conversation": "Let's share materials and make a structure with the blueprint",
|
||||
"agent_count": 3,
|
||||
"blueprint": {
|
||||
"materials": {
|
||||
"polished_granite": 1,
|
||||
"gold_block": 27,
|
||||
"stone_bricks": 41,
|
||||
"polished_andesite": 34,
|
||||
"quartz_block": 16,
|
||||
"stone": 23,
|
||||
"polished_diorite": 21,
|
||||
"quartz_pillar": 2,
|
||||
"glowstone": 3
|
||||
},
|
||||
"levels": [
|
||||
{
|
||||
"level": 0,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-60,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"polished_granite",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"quartz_block",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"gold_block"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"gold_block"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"gold_block",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"quartz_block",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"quartz_block"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"polished_diorite",
|
||||
"stone_bricks"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"polished_diorite",
|
||||
"stone_bricks",
|
||||
"polished_andesite"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"polished_diorite",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"gold_block",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"quartz_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"gold_block"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 1,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-59,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"quartz_pillar",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"quartz_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"stone",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"stone_bricks",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"polished_andesite",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"quartz_block",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"glowstone",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"quartz_block",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"stone_bricks",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"polished_andesite",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"polished_andesite",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"quartz_block",
|
||||
"stone_bricks",
|
||||
"polished_andesite",
|
||||
"gold_block",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-58,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"quartz_pillar",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone_bricks",
|
||||
"quartz_block",
|
||||
"gold_block",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"polished_andesite",
|
||||
"stone",
|
||||
"polished_andesite",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"quartz_block",
|
||||
"polished_andesite",
|
||||
"glowstone",
|
||||
"stone_bricks",
|
||||
"quartz_block",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"stone",
|
||||
"stone_bricks",
|
||||
"polished_diorite",
|
||||
"stone_bricks",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"polished_andesite",
|
||||
"quartz_block",
|
||||
"stone_bricks",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 3,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-57,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"quartz_block",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"quartz_block",
|
||||
"glowstone",
|
||||
"quartz_block",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"quartz_block",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 4,
|
||||
"coordinates": [
|
||||
-60,
|
||||
-56,
|
||||
6
|
||||
],
|
||||
"placement": [
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"gold_block",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
],
|
||||
[
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air",
|
||||
"air"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"diamond_pickaxe": 1,
|
||||
"diamond_axe": 1,
|
||||
"diamond_shovel": 1,
|
||||
"polished_granite": 1,
|
||||
"polished_andesite": 34,
|
||||
"polished_diorite": 21
|
||||
},
|
||||
"1": {
|
||||
"diamond_pickaxe": 1,
|
||||
"diamond_axe": 1,
|
||||
"diamond_shovel": 1,
|
||||
"gold_block": 27,
|
||||
"quartz_block": 16,
|
||||
"quartz_pillar": 2
|
||||
},
|
||||
"2": {
|
||||
"diamond_pickaxe": 1,
|
||||
"diamond_axe": 1,
|
||||
"diamond_shovel": 1,
|
||||
"stone_bricks": 41,
|
||||
"stone": 23,
|
||||
"glowstone": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1034
tasks/construction_tasks/custom/tasks.json
Normal file
1034
tasks/construction_tasks/custom/tasks.json
Normal file
File diff suppressed because it is too large
Load diff
241
tasks/construction_tasks/filter_easy_tasks.py
Normal file
241
tasks/construction_tasks/filter_easy_tasks.py
Normal file
|
@ -0,0 +1,241 @@
|
|||
import json
|
||||
import re
|
||||
import statistics
|
||||
import random
|
||||
import os
|
||||
|
||||
def extract_difficulty(task_name):
|
||||
"""Extract difficulty parameters from the task name."""
|
||||
match = re.search(r'materials_(\d+)_rooms_(\d+)_window_(\d+)_carpet_(\d+)_variant_\d+', task_name)
|
||||
if match:
|
||||
return tuple(map(int, match.groups())) # (m, r, w, c)
|
||||
return (0, 0, 0, 0) # Default to lowest difficulty if not found
|
||||
|
||||
def calculate_difficulty_score(task_name, task, alpha=1.0, beta=3.0):
|
||||
"""Compute a difficulty score based on parameters."""
|
||||
m, r, w, c = extract_difficulty(task_name)
|
||||
num_levels = len(task.get("blueprint", {}).get("levels", []))
|
||||
|
||||
# Higher values mean more difficulty
|
||||
score = (m*4 + r*10 + w*2 + c*1)
|
||||
return score
|
||||
|
||||
def process_json(file_path, output_path, alpha=1.0, beta=3.0):
|
||||
"""Process the JSON file to count tasks, quantify difficulty, and filter easiest 30."""
|
||||
with open(file_path, 'r') as f:
|
||||
data = json.load(f)
|
||||
|
||||
# Count total tasks
|
||||
total_tasks = len(data)
|
||||
print(f"Total tasks: {total_tasks}")
|
||||
|
||||
# Compute difficulty scores for tasks with at least 3 levels
|
||||
task_difficulties = []
|
||||
filtered_out = 0
|
||||
|
||||
for task_name, task_details in data.items():
|
||||
num_levels = len(task_details.get("blueprint", {}).get("levels", []))
|
||||
|
||||
# Skip tasks with fewer than 3 levels
|
||||
if num_levels < 3:
|
||||
filtered_out += 1
|
||||
continue
|
||||
|
||||
score = calculate_difficulty_score(task_name, task_details, alpha, beta)
|
||||
task_difficulties.append((task_name, score, task_details))
|
||||
|
||||
print(f"Filtered out {filtered_out} tasks with fewer than 3 levels")
|
||||
print(f"Remaining tasks after filtering: {len(task_difficulties)}")
|
||||
|
||||
# Calculate statistics on the filtered tasks
|
||||
if task_difficulties:
|
||||
difficulty_scores = [score for _, score, _ in task_difficulties]
|
||||
stats = {
|
||||
"mean": statistics.mean(difficulty_scores),
|
||||
"median": statistics.median(difficulty_scores),
|
||||
"min": min(difficulty_scores),
|
||||
"max": max(difficulty_scores),
|
||||
}
|
||||
print(f"Difficulty Statistics for Overall Tasks: {stats}")
|
||||
else:
|
||||
stats = {"mean": 0, "median": 0, "min": 0, "max": 0}
|
||||
print("No tasks remaining after filtering!")
|
||||
|
||||
# Sort tasks by difficulty (ascending)
|
||||
task_difficulties.sort(key=lambda x: x[1])
|
||||
|
||||
# Get the 30 easiest tasks (or all if less than 30)
|
||||
num_tasks_to_select = min(30, len(task_difficulties))
|
||||
easiest_tasks = {task[0]: task[2] for task in task_difficulties[:num_tasks_to_select]}
|
||||
|
||||
# Difficulty scores of the easiest tasks
|
||||
easiest_difficulty_scores = [score for _, score, _ in task_difficulties[:num_tasks_to_select]]
|
||||
easiest_stats = {
|
||||
"mean": statistics.mean(easiest_difficulty_scores),
|
||||
"median": statistics.median(easiest_difficulty_scores),
|
||||
"min": min(easiest_difficulty_scores),
|
||||
"max": max(easiest_difficulty_scores),
|
||||
}
|
||||
print(f"Difficulty Statistics for Easiest Tasks: {easiest_stats}")
|
||||
|
||||
# Add a group by of all unique (m, r, w, c) combinations in the easiest tasks
|
||||
unique_difficulties = {}
|
||||
for task_name, _, task_details in task_difficulties[:num_tasks_to_select]:
|
||||
m, r, w, c = extract_difficulty(task_name)
|
||||
unique_difficulties[(m, r, w, c)] = unique_difficulties.get((m, r, w, c), 0) + 1
|
||||
|
||||
print(f"Unique (m, r, w, c) combinations in the easiest tasks:")
|
||||
for difficulty, count in unique_difficulties.items():
|
||||
print(f" {difficulty}: {count} tasks")
|
||||
|
||||
# Add statistics to output
|
||||
output_data = easiest_tasks
|
||||
|
||||
# Save to output file
|
||||
with open(output_path, 'w') as f:
|
||||
json.dump(output_data, f, indent=4)
|
||||
|
||||
print(f"Saved {num_tasks_to_select} easiest tasks with statistics to {output_path}")
|
||||
|
||||
def sample_tasks_with_distribution(file_path, output_path):
|
||||
"""
|
||||
Sample tasks with a specific distribution:
|
||||
- 3 tasks for each of the 9 possibilities of (m,r) where 0 <= m <= 2 and 0 <= r <= 2
|
||||
- Random (w,c) between 0 and 1 for the above tasks
|
||||
- 2 additional tasks from (m,r,w,c) = (0,0,0,0)
|
||||
- 1 additional task from (m,r,w,c) = (1,0,0,0)
|
||||
"""
|
||||
with open(file_path, 'r') as f:
|
||||
data = json.load(f)
|
||||
|
||||
# Filter tasks with at least 3 levels
|
||||
valid_tasks = {}
|
||||
for task_name, task_details in data.items():
|
||||
num_levels = len(task_details.get("blueprint", {}).get("levels", []))
|
||||
if num_levels >= 3:
|
||||
valid_tasks[task_name] = task_details
|
||||
|
||||
# print(f"Total valid tasks: {len(valid_tasks)}")
|
||||
|
||||
# Categorize tasks by their (m,r,w,c) values
|
||||
tasks_by_params = {}
|
||||
for task_name, task_details in valid_tasks.items():
|
||||
m, r, w, c = extract_difficulty(task_name)
|
||||
key = (m, r, w, c)
|
||||
if key not in tasks_by_params:
|
||||
tasks_by_params[key] = []
|
||||
tasks_by_params[key].append((task_name, task_details))
|
||||
|
||||
# # Print available combinations
|
||||
# print("Available (m,r,w,c) combinations:")
|
||||
# for params, tasks in tasks_by_params.items():
|
||||
# print(f" {params}: {len(tasks)} tasks")
|
||||
|
||||
# Sample tasks according to the distribution
|
||||
sampled_tasks = {}
|
||||
already_sampled = set()
|
||||
|
||||
# 1. Sample 3 tasks for each (m,r) where 0 <= m <= 2 and 0 <= r <= 2
|
||||
for m in range(3):
|
||||
for r in range(3):
|
||||
# Find all tasks with the current (m,r) and w,c between 0 and 1
|
||||
candidates = []
|
||||
for params, tasks in tasks_by_params.items():
|
||||
if params[0] == m and params[1] == r and params[2] <= 1 and params[3] <= 1:
|
||||
candidates.extend(tasks)
|
||||
|
||||
# Sample 3 tasks if possible
|
||||
if len(candidates) >= 3:
|
||||
sampled = random.sample(candidates, 3)
|
||||
for task_name, task_details in sampled:
|
||||
if task_name not in already_sampled:
|
||||
sampled_tasks[task_name] = task_details
|
||||
already_sampled.add(task_name)
|
||||
else:
|
||||
print(f"Warning: Not enough tasks for (m={m}, r={r}) with w,c <= 1. Found {len(candidates)}.")
|
||||
# Add all available
|
||||
for task_name, task_details in candidates:
|
||||
if task_name not in already_sampled:
|
||||
sampled_tasks[task_name] = task_details
|
||||
already_sampled.add(task_name)
|
||||
|
||||
# 2. Add 2 tasks with (m,r,w,c) = (0,0,0,0)
|
||||
zero_zero_zero_zero = tasks_by_params.get((0,0,0,0), [])
|
||||
zero_zero_zero_zero = [t for t in zero_zero_zero_zero if t[0] not in already_sampled]
|
||||
|
||||
if len(zero_zero_zero_zero) >= 2:
|
||||
additional = random.sample(zero_zero_zero_zero, 2)
|
||||
for task_name, task_details in additional:
|
||||
sampled_tasks[task_name] = task_details
|
||||
already_sampled.add(task_name)
|
||||
else:
|
||||
print(f"Warning: Not enough tasks for (0,0,0,0). Found {len(zero_zero_zero_zero)}.")
|
||||
for task_name, task_details in zero_zero_zero_zero:
|
||||
sampled_tasks[task_name] = task_details
|
||||
already_sampled.add(task_name)
|
||||
|
||||
# 3. Add 1 task with (m,r,w,c) = (1,0,0,0)
|
||||
one_zero_zero_zero = tasks_by_params.get((1,0,0,0), [])
|
||||
one_zero_zero_zero = [t for t in one_zero_zero_zero if t[0] not in already_sampled]
|
||||
|
||||
if len(one_zero_zero_zero) >= 1:
|
||||
additional = random.sample(one_zero_zero_zero, 1)
|
||||
for task_name, task_details in additional:
|
||||
sampled_tasks[task_name] = task_details
|
||||
already_sampled.add(task_name)
|
||||
else:
|
||||
print(f"Warning: Not enough tasks for (1,0,0,0). Found {len(one_zero_zero_zero)}.")
|
||||
for task_name, task_details in one_zero_zero_zero:
|
||||
sampled_tasks[task_name] = task_details
|
||||
already_sampled.add(task_name)
|
||||
|
||||
# Print summary of sampled tasks
|
||||
print(f"\nTotal sampled tasks: {len(sampled_tasks)}")
|
||||
|
||||
# Count tasks by their (m,r) values
|
||||
distribution = {}
|
||||
for task_name in sampled_tasks:
|
||||
m, r, w, c = extract_difficulty(task_name)
|
||||
key = (m, r)
|
||||
if key not in distribution:
|
||||
distribution[key] = []
|
||||
distribution[key].append((w, c))
|
||||
|
||||
print("\nDistribution of sampled tasks:")
|
||||
for mr, wc_list in distribution.items():
|
||||
print(f" (m={mr[0]}, r={mr[1]}): {len(wc_list)} tasks")
|
||||
for wc in wc_list:
|
||||
print(f" (w={wc[0]}, c={wc[1]})")
|
||||
|
||||
# Check for duplicates in sampled tasks
|
||||
if len(sampled_tasks) != len(set(sampled_tasks.keys())):
|
||||
print("\nWARNING: Duplicate tasks detected!")
|
||||
|
||||
# Find the duplicates
|
||||
task_counts = {}
|
||||
for task_name in sampled_tasks.keys():
|
||||
task_counts[task_name] = task_counts.get(task_name, 0) + 1
|
||||
|
||||
duplicates = [task for task, count in task_counts.items() if count > 1]
|
||||
print(f"Duplicate tasks: {duplicates}")
|
||||
else:
|
||||
print("\nVerification: No duplicates found in the sampled tasks.")
|
||||
|
||||
# Save to output file
|
||||
with open(output_path, 'w') as f:
|
||||
json.dump(sampled_tasks, f, indent=4)
|
||||
|
||||
print(f"\nSaved {len(sampled_tasks)} distributed tasks to {output_path}")
|
||||
|
||||
# Example usage:
|
||||
# process_json('test/2agents.json', 'test/2_agents_easiest_tasks.json', alpha=1.0, beta=3.0)
|
||||
# Iterate through files in tasks folder
|
||||
tasks_dir = 'test'
|
||||
for filename in os.listdir(tasks_dir):
|
||||
if filename.endswith('agents.json'):
|
||||
input_path = os.path.join(tasks_dir, filename)
|
||||
# Create output filename by replacing .json with _distributed_tasks.json
|
||||
output_filename = filename.replace('.json', '_distributed_tasks.json')
|
||||
output_path = os.path.join(tasks_dir, output_filename)
|
||||
print(f"\nProcessing {filename}...")
|
||||
sample_tasks_with_distribution(input_path, output_path)
|
87
tasks/construction_tasks/filter_training_tasks.py
Normal file
87
tasks/construction_tasks/filter_training_tasks.py
Normal file
|
@ -0,0 +1,87 @@
|
|||
import json
|
||||
import re
|
||||
import random
|
||||
import os
|
||||
from collections import defaultdict
|
||||
|
||||
def extract_difficulty(task_name):
|
||||
"""Extract difficulty parameters from the task name."""
|
||||
match = re.search(r'materials_(\d+)_rooms_(\d+)_window_(\d+)_carpet_(\d+)_variant_\d+', task_name)
|
||||
if match:
|
||||
return tuple(map(int, match.groups())) # (m, r, w, c)
|
||||
return (0, 0, 0, 0) # Default if not found
|
||||
|
||||
def filter_and_sample_tasks(file_path, output_path):
|
||||
"""Filters, samples, and saves 500 unique tasks based on given criteria."""
|
||||
with open(file_path, 'r') as f:
|
||||
data = json.load(f)
|
||||
|
||||
total_tasks = len(data)
|
||||
print(f"\nProcessing file: {file_path}")
|
||||
print(f"Total available tasks: {total_tasks}")
|
||||
|
||||
valid_tasks = {}
|
||||
|
||||
# Filter tasks with at least 3 levels
|
||||
for task_name, task_details in data.items():
|
||||
num_levels = len(task_details.get("blueprint", {}).get("levels", []))
|
||||
if num_levels >= 3:
|
||||
valid_tasks[task_name] = task_details
|
||||
|
||||
print(f"Tasks with at least 3 levels: {len(valid_tasks)}")
|
||||
|
||||
# Organize tasks by difficulty parameters (m, r, w, c)
|
||||
tasks_by_params = defaultdict(list)
|
||||
for task_name, task_details in valid_tasks.items():
|
||||
key = extract_difficulty(task_name)
|
||||
tasks_by_params[key].append((task_name, task_details))
|
||||
|
||||
# Sort keys in increasing order
|
||||
sorted_keys = sorted(tasks_by_params.keys())
|
||||
sampled_tasks = {}
|
||||
total_selected = 0
|
||||
sampled_task_counts = defaultdict(int)
|
||||
|
||||
# Pick tasks sequentially until 500 are collected
|
||||
for key in sorted_keys:
|
||||
if total_selected >= 500:
|
||||
break
|
||||
|
||||
if key in tasks_by_params:
|
||||
candidates = tasks_by_params[key]
|
||||
for task_name, task_details in candidates:
|
||||
if total_selected < 500:
|
||||
sampled_tasks[task_name] = task_details
|
||||
sampled_task_counts[key] += 1 # Keep the key as a tuple
|
||||
total_selected += 1
|
||||
else:
|
||||
break
|
||||
|
||||
print(f"\nTotal sampled tasks: {len(sampled_tasks)}")
|
||||
|
||||
# Print task count per (m, r, w, c) tuple
|
||||
print("\nTask count per (m, r, w, c):")
|
||||
for key, count in sorted(sampled_task_counts.items()):
|
||||
print(f"{key}: {count}")
|
||||
|
||||
# Randomly shuffle the tasks before saving
|
||||
shuffled_tasks = list(sampled_tasks.items())
|
||||
random.shuffle(shuffled_tasks)
|
||||
final_tasks = dict(shuffled_tasks)
|
||||
|
||||
# Save sampled tasks to JSON
|
||||
with open(output_path, 'w') as f:
|
||||
json.dump(final_tasks, f, indent=4)
|
||||
|
||||
print(f"\nSaved {len(final_tasks)} tasks to {output_path}")
|
||||
|
||||
# Process all relevant files
|
||||
tasks_dir = 'train'
|
||||
all_filenames = [f for f in os.listdir(tasks_dir) if f.endswith('agents.json')]
|
||||
all_filenames.sort()
|
||||
|
||||
for i, filename in enumerate(all_filenames):
|
||||
input_path = os.path.join(tasks_dir, filename)
|
||||
output_filename = filename.replace('.json', '_sampled_tasks_for_training.json')
|
||||
output_path = os.path.join(tasks_dir, output_filename)
|
||||
filter_and_sample_tasks(input_path, output_path)
|
|
@ -0,0 +1,178 @@
|
|||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import {proceduralGeneration} from "../../src/agent/tasks/construction_tasks.js";
|
||||
|
||||
//note 'main' (script to run generation of tasks) is at bottom of page
|
||||
|
||||
/**
|
||||
* Helper function to initalize agent inventories
|
||||
* @param blueprint
|
||||
* @param agents
|
||||
* @param evenlySplit - When true, splits materials evenly across inventories
|
||||
* @returns {{}}
|
||||
*/
|
||||
function createInitialInventory(blueprint, agents, evenlySplit = true) {
|
||||
const inventories = {};
|
||||
const materialCounts = {};
|
||||
let currentAgent = 0;
|
||||
|
||||
// Initialize inventories
|
||||
for (let i = 0; i < agents; i++) {
|
||||
inventories[i] = {'diamond_pickaxe': 1};
|
||||
}
|
||||
|
||||
// Count materials in blueprint and replace ladder variants with "ladder"
|
||||
for (const level of blueprint.levels) {
|
||||
for (let rowIndex = 0; rowIndex < level.placement.length; rowIndex++) {
|
||||
for (let blockIndex = 0; blockIndex < level.placement[rowIndex].length; blockIndex++) {
|
||||
let block = level.placement[rowIndex][blockIndex];
|
||||
|
||||
if (block !== 'air') {
|
||||
// Check if material contains 'door' or 'ladder' and convert appropriately
|
||||
let materialKey = block;
|
||||
if (block.includes('dark_oak_door')) {
|
||||
materialKey = 'dark_oak_door';
|
||||
} else if (block.includes('oak_door')) {
|
||||
materialKey = 'oak_door';
|
||||
} else if (block.includes('ladder')) {
|
||||
materialKey = 'ladder';
|
||||
level.placement[rowIndex][blockIndex] = 'ladder'; // Replace in blueprint
|
||||
}
|
||||
|
||||
materialCounts[materialKey] = (materialCounts[materialKey] || 0) + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (evenlySplit) {
|
||||
// Distribute materials evenly among agents
|
||||
for (const [material, count] of Object.entries(materialCounts)) {
|
||||
const baseAmount = Math.floor(count / agents);
|
||||
const remainder = count % agents;
|
||||
|
||||
// Give each agent the base amount
|
||||
for (let i = 0; i < agents; i++) {
|
||||
inventories[i][material] = baseAmount;
|
||||
}
|
||||
|
||||
// Distribute remainder one by one to agents
|
||||
for (let i = 0; i < remainder; i++) {
|
||||
inventories[i][material]++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Original distribution - one material type to one agent
|
||||
for (const [material, count] of Object.entries(materialCounts)) {
|
||||
inventories[currentAgent][material] = count;
|
||||
currentAgent = (currentAgent + 1) % agents;
|
||||
}
|
||||
}
|
||||
|
||||
for (let i = 0; i < agents; i++) {
|
||||
inventories[i]['dirt'] = 128;
|
||||
}
|
||||
|
||||
return inventories;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to allocate space for the blueprint based on the number of rooms
|
||||
* @param rooms
|
||||
* @returns {number}
|
||||
*/
|
||||
function calculateSpaceNeeded(rooms) {
|
||||
const baseSize = 10;
|
||||
const scaleFactor = Math.floor(rooms / 4) * 5;
|
||||
return baseSize + scaleFactor;
|
||||
}
|
||||
|
||||
/**
|
||||
* MAIN GENERATION FUNCTION
|
||||
*
|
||||
* Varies agents, materials, room count, windows and carpets to create different complexities of construction tasks.
|
||||
* @param variants is the number of variants within each complexity level you want.
|
||||
* @returns The tasks as nested JSON {{}}
|
||||
*/
|
||||
function generateConstructionTasks(variants, agents) {
|
||||
const materialLevels = 5;
|
||||
const roomCounts = [4, 6, 8];
|
||||
const windowStyles = [0, 1, 2];
|
||||
const carpetStyles = [0, 1, 2];
|
||||
const timeout = 600; // 10 min base
|
||||
|
||||
const tasks = {};
|
||||
|
||||
for (let m = 0; m < materialLevels; m++) {
|
||||
for (let r = 0; r < roomCounts.length; r++) {
|
||||
for (let w = 0; w < windowStyles.length; w++) {
|
||||
for (let c = 0; c < carpetStyles.length; c++) {
|
||||
for (let variant = 0; variant < variants; variant++) {
|
||||
|
||||
const rooms = roomCounts[r];
|
||||
const spaceSize = calculateSpaceNeeded(rooms);
|
||||
|
||||
const blueprint = proceduralGeneration(
|
||||
spaceSize,
|
||||
spaceSize,
|
||||
spaceSize,
|
||||
rooms,
|
||||
5,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
"air",
|
||||
carpetStyles[c],
|
||||
windowStyles[w],
|
||||
m + 1
|
||||
);
|
||||
|
||||
const taskName = `materials_${m}_rooms_${r}_window_${w}_carpet_${c}_variant_${variant}`;
|
||||
|
||||
tasks[taskName] = {
|
||||
type: "construction",
|
||||
goal: "Make a house with the blueprint",
|
||||
conversation: "Let's share materials and make a house with the blueprint",
|
||||
agent_count: agents,
|
||||
initial_inventory: createInitialInventory(blueprint, agents),
|
||||
timeout: timeout + (300 * r), // 5 minute per additional level of complexity
|
||||
blueprint: blueprint,
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return tasks;
|
||||
}
|
||||
|
||||
|
||||
// const fs = require('fs');
|
||||
// const path = require('path');
|
||||
|
||||
// Function to create directories and generate tasks
|
||||
function setupTaskFiles(baseDirs, agentCounts, variants) {
|
||||
baseDirs.forEach(base => {
|
||||
if (!fs.existsSync(base)) {
|
||||
fs.mkdirSync(base, { recursive: true });
|
||||
}
|
||||
|
||||
agentCounts.forEach(count => {
|
||||
const tasks = generateConstructionTasks(variants, count);
|
||||
const filePath = path.join(base, `${count}agents.json`);
|
||||
|
||||
fs.writeFileSync(filePath, JSON.stringify(tasks, null, 2));
|
||||
console.log(`Generated tasks saved to ${filePath}`);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
const baseDirs = ['./train', './test'];
|
||||
const agentCounts = [2, 3, 4, 5];
|
||||
const variants = 5;
|
||||
|
||||
setupTaskFiles(baseDirs, agentCounts, variants);
|
||||
|
55
tasks/construction_tasks/get_blueprint.js
Normal file
55
tasks/construction_tasks/get_blueprint.js
Normal file
|
@ -0,0 +1,55 @@
|
|||
import mineflayer from 'mineflayer';
|
||||
import { worldToBlueprint, blueprintToTask } from '../../src/agent/tasks/construction_tasks.js';
|
||||
import fs from 'fs';
|
||||
import { start } from 'repl';
|
||||
|
||||
const bot = mineflayer.createBot({
|
||||
host: 'localhost', // Replace with your server IP or hostname
|
||||
port: 55916, // Replace with your server port
|
||||
username: 'andy', // Replace with your bot's username
|
||||
// password: 'your_bot_password' // Only if the server has online-mode=true
|
||||
});
|
||||
|
||||
bot.on('spawn', async () => {
|
||||
console.log("Bot spawned. Starting blueprint check...");
|
||||
// set this to be minX, minY, minZ
|
||||
const startCoord = {
|
||||
x: -124,
|
||||
y: 1,
|
||||
z: 133,
|
||||
}
|
||||
bot.chat(`/tp andy ${startCoord.x} ${startCoord.y} ${startCoord.z}`);
|
||||
const yOffset = 2;
|
||||
const xOffset = 30;
|
||||
const zOffset = 20;
|
||||
|
||||
const taskFilePath = '/Users/isadorawhite/izzy_mindcraft/mindcraft/tasks/construction_tasks/custom/flower_three_agents.json';
|
||||
const task_name = "flower_three_agents";
|
||||
|
||||
|
||||
setTimeout(async () => {
|
||||
let task_blueprint = await worldToBlueprint(startCoord, yOffset, xOffset, zOffset, bot);
|
||||
|
||||
for (let i = 0; i < task_blueprint.levels.length; i++) {
|
||||
// Perform operations on each level
|
||||
const level = task_blueprint.levels[i];
|
||||
console.log("Level coordinates:", level.coordinates);
|
||||
const new_coordinates = [level.coordinates[0], -60 + i, level.coordinates[2]];
|
||||
level.coordinates = new_coordinates;
|
||||
console.log("New coordinates:", level.coordinates);
|
||||
}
|
||||
console.log("Blueprint generated:", task_blueprint.levels[0].coordinates);
|
||||
|
||||
const task = blueprintToTask(task_blueprint, 3);
|
||||
const task_collection = {}
|
||||
task_collection[task_name] = task;
|
||||
|
||||
fs.writeFileSync(taskFilePath, JSON.stringify(task_collection, null, 2), (err) => {
|
||||
if (err) {
|
||||
console.error('Error writing task to file:', err);
|
||||
} else {
|
||||
console.log('Task dumped to file successfully.');
|
||||
}
|
||||
});
|
||||
}, 5000); // Delay of 5 seconds (5000 milliseconds)
|
||||
});
|
270
tasks/cooking_tasks/test_tasks/2_agent_cooking_test_tasks.json
Normal file
270
tasks/cooking_tasks/test_tasks/2_agent_cooking_test_tasks.json
Normal file
|
@ -0,0 +1,270 @@
|
|||
{
|
||||
"multiagent_cooking_2_1_bread_1_golden_apple": {
|
||||
"conversation": "Let's work together to make golden_apple, bread.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"golden_apple": 1,
|
||||
"bread": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 golden_apple, 1 bread. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"1": "Collaborate with agents around you to make 1 golden_apple, 1 bread. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_2_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make golden_apple, rabbit_stew.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"golden_apple": 1,
|
||||
"rabbit_stew": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"1": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_2_1_bread_1_cake": {
|
||||
"conversation": "Let's work together to make cake, bread.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"bread": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_2_1_baked_potato_1_golden_apple": {
|
||||
"conversation": "Let's work together to make baked_potato, golden_apple.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"baked_potato": 1,
|
||||
"golden_apple": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 baked_potato, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"1": "Collaborate with agents around you to make 1 baked_potato, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_2_1_baked_potato_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make baked_potato, rabbit_stew.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"baked_potato": 1,
|
||||
"rabbit_stew": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 baked_potato, 1 rabbit_stew. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"1": "Collaborate with agents around you to make 1 baked_potato, 1 rabbit_stew. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_2_1_bread_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, bread.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"bread": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 bread. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 bread. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_2_1_baked_potato_1_bread": {
|
||||
"conversation": "Let's work together to make bread, baked_potato.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"baked_potato": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_2_1_baked_potato_1_cake": {
|
||||
"conversation": "Let's work together to make baked_potato, cake.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"baked_potato": 1,
|
||||
"cake": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 baked_potato, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"1": "Collaborate with agents around you to make 1 baked_potato, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_2_1_cooked_beef_1_golden_apple": {
|
||||
"conversation": "Let's work together to make golden_apple, cooked_beef.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"golden_apple": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 golden_apple, 1 cooked_beef. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 golden_apple, 1 cooked_beef. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_2_1_bread_1_cooked_beef": {
|
||||
"conversation": "Let's work together to make bread, cooked_beef.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
}
|
||||
}
|
312
tasks/cooking_tasks/test_tasks/3_agent_cooking_test_tasks.json
Normal file
312
tasks/cooking_tasks/test_tasks/3_agent_cooking_test_tasks.json
Normal file
|
@ -0,0 +1,312 @@
|
|||
{
|
||||
"multiagent_cooking_3_1_baked_potato_1_bread_1_cake": {
|
||||
"conversation": "Let's work together to make bread, baked_potato, cake.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"baked_potato": 1,
|
||||
"cake": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 baked_potato, 1 cake. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 baked_potato, 1 cake. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"2": "Collaborate with agents around you to make 1 bread, 1 baked_potato, 1 cake. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_3_1_cake_1_golden_apple": {
|
||||
"conversation": "Let's work together to make golden_apple, cake.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"golden_apple": 1,
|
||||
"cake": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 golden_apple, 1 cake. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"1": "Collaborate with agents around you to make 1 golden_apple, 1 cake. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"2": "Collaborate with agents around you to make 1 golden_apple, 1 cake. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_3_1_baked_potato_1_cooked_beef_1_golden_apple": {
|
||||
"conversation": "Let's work together to make golden_apple, cooked_beef, baked_potato.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"golden_apple": 1,
|
||||
"cooked_beef": 1,
|
||||
"baked_potato": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 golden_apple, 1 cooked_beef, 1 baked_potato. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"1": "Collaborate with agents around you to make 1 golden_apple, 1 cooked_beef, 1 baked_potato. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"2": "Collaborate with agents around you to make 1 golden_apple, 1 cooked_beef, 1 baked_potato. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_3_1_bread_1_cooked_beef_1_golden_apple": {
|
||||
"conversation": "Let's work together to make cooked_beef, bread, golden_apple.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"cooked_beef": 1,
|
||||
"bread": 1,
|
||||
"golden_apple": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cooked_beef, 1 bread, 1 golden_apple. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"1": "Collaborate with agents around you to make 1 cooked_beef, 1 bread, 1 golden_apple. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"2": "Collaborate with agents around you to make 1 cooked_beef, 1 bread, 1 golden_apple. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_3_1_baked_potato_1_cake": {
|
||||
"conversation": "Let's work together to make baked_potato, cake.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"baked_potato": 1,
|
||||
"cake": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 baked_potato, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"1": "Collaborate with agents around you to make 1 baked_potato, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"2": "Collaborate with agents around you to make 1 baked_potato, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_3_1_bread_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, bread, golden_apple.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"bread": 1,
|
||||
"golden_apple": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 bread, 1 golden_apple. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 bread, 1 golden_apple. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 bread, 1 golden_apple. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_3_1_baked_potato_1_bread_1_cooked_beef": {
|
||||
"conversation": "Let's work together to make bread, baked_potato, cooked_beef.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"baked_potato": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 baked_potato, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 baked_potato, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"2": "Collaborate with agents around you to make 1 bread, 1 baked_potato, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_3_1_baked_potato_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, baked_potato.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"baked_potato": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_3_1_cake_1_cooked_beef_1_golden_apple": {
|
||||
"conversation": "Let's work together to make cooked_beef, cake, golden_apple.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"cooked_beef": 1,
|
||||
"cake": 1,
|
||||
"golden_apple": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cooked_beef, 1 cake, 1 golden_apple. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"1": "Collaborate with agents around you to make 1 cooked_beef, 1 cake, 1 golden_apple. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"2": "Collaborate with agents around you to make 1 cooked_beef, 1 cake, 1 golden_apple. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_3_1_bread_1_cooked_beef": {
|
||||
"conversation": "Let's work together to make cooked_beef, bread.",
|
||||
"agent_count": 3,
|
||||
"target": {
|
||||
"cooked_beef": 1,
|
||||
"bread": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cooked_beef, 1 bread. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"1": "Collaborate with agents around you to make 1 cooked_beef, 1 bread. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"2": "Collaborate with agents around you to make 1 cooked_beef, 1 bread. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread."
|
||||
}
|
||||
}
|
||||
}
|
397
tasks/cooking_tasks/test_tasks/4_agent_cooking_test_tasks.json
Normal file
397
tasks/cooking_tasks/test_tasks/4_agent_cooking_test_tasks.json
Normal file
|
@ -0,0 +1,397 @@
|
|||
{
|
||||
"multiagent_cooking_4_1_bread_1_cake_1_cooked_beef": {
|
||||
"conversation": "Let's work together to make cake, bread, cooked_beef.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"bread": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 bread, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 bread, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 bread, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 bread, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_cake_1_cooked_beef_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, cooked_beef, cake, golden_apple.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"cooked_beef": 1,
|
||||
"cake": 1,
|
||||
"golden_apple": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake, 1 golden_apple. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake, 1 golden_apple. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake, 1 golden_apple. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"3": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake, 1 golden_apple. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_baked_potato_1_cake_1_cooked_beef_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make baked_potato, rabbit_stew, cooked_beef, cake.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"baked_potato": 1,
|
||||
"rabbit_stew": 1,
|
||||
"cooked_beef": 1,
|
||||
"cake": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 baked_potato, 1 rabbit_stew, 1 cooked_beef, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"1": "Collaborate with agents around you to make 1 baked_potato, 1 rabbit_stew, 1 cooked_beef, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"2": "Collaborate with agents around you to make 1 baked_potato, 1 rabbit_stew, 1 cooked_beef, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"3": "Collaborate with agents around you to make 1 baked_potato, 1 rabbit_stew, 1 cooked_beef, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_baked_potato_1_bread_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make bread, golden_apple, rabbit_stew, baked_potato.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"golden_apple": 1,
|
||||
"rabbit_stew": 1,
|
||||
"baked_potato": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 golden_apple, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 golden_apple, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"2": "Collaborate with agents around you to make 1 bread, 1 golden_apple, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"3": "Collaborate with agents around you to make 1 bread, 1 golden_apple, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_cake_1_cooked_beef_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, cooked_beef, cake.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"cooked_beef": 1,
|
||||
"cake": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"3": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_baked_potato_1_bread_1_cooked_beef_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, bread, baked_potato, cooked_beef.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"bread": 1,
|
||||
"baked_potato": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 bread, 1 baked_potato, 1 cooked_beef. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 bread, 1 baked_potato, 1 cooked_beef. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 bread, 1 baked_potato, 1 cooked_beef. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"3": "Collaborate with agents around you to make 1 rabbit_stew, 1 bread, 1 baked_potato, 1 cooked_beef. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_baked_potato_1_cooked_beef_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, cooked_beef, baked_potato.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"cooked_beef": 1,
|
||||
"baked_potato": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"3": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_bread_1_cake_1_cooked_beef_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, cooked_beef, cake, bread.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"cooked_beef": 1,
|
||||
"cake": 1,
|
||||
"bread": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake, 1 bread. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake, 1 bread. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake, 1 bread. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"3": "Collaborate with agents around you to make 1 rabbit_stew, 1 cooked_beef, 1 cake, 1 bread. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_bread_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make golden_apple, rabbit_stew, bread.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"golden_apple": 1,
|
||||
"rabbit_stew": 1,
|
||||
"bread": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew, 1 bread. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"1": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew, 1 bread. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"2": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew, 1 bread. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"3": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew, 1 bread. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_baked_potato_1_cake_1_cooked_beef": {
|
||||
"conversation": "Let's work together to make baked_potato, cooked_beef, cake.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"baked_potato": 1,
|
||||
"cooked_beef": 1,
|
||||
"cake": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 baked_potato, 1 cooked_beef, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"1": "Collaborate with agents around you to make 1 baked_potato, 1 cooked_beef, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"2": "Collaborate with agents around you to make 1 baked_potato, 1 cooked_beef, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"3": "Collaborate with agents around you to make 1 baked_potato, 1 cooked_beef, 1 cake. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,393 @@
|
|||
{
|
||||
"multiagent_cooking_4_1_bread_1_cake_1_cooked_mutton": {
|
||||
"conversation": "Let's work together to make cake, cooked_mutton, bread.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"cooked_mutton": 1,
|
||||
"bread": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"cooked_mutton": [
|
||||
"Step 1: Kill a sheep and pick up 1 mutton that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the mutton."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 cooked_mutton, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 cooked_mutton, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 cooked_mutton, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 cooked_mutton, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_baked_potato_1_cake_1_cookie_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cake, cookie, baked_potato, rabbit_stew.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"cookie": 1,
|
||||
"baked_potato": 1,
|
||||
"rabbit_stew": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"cookie": [
|
||||
"Step 1: Go to the farm and collect 2 wheat.",
|
||||
"Step 2: Go to the chest and grab 1 cocoa bean.",
|
||||
"Step 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 cookie, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 cookie, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 cookie, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 cookie, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_cooked_mutton_1_cookie_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cookie, rabbit_stew, cooked_mutton.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"cookie": 1,
|
||||
"rabbit_stew": 1,
|
||||
"cooked_mutton": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cookie": [
|
||||
"Step 1: Go to the farm and collect 2 wheat.",
|
||||
"Step 2: Go to the chest and grab 1 cocoa bean.",
|
||||
"Step 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"cooked_mutton": [
|
||||
"Step 1: Kill a sheep and pick up 1 mutton that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the mutton."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cookie, 1 rabbit_stew, 1 cooked_mutton. \n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.",
|
||||
"1": "Collaborate with agents around you to make 1 cookie, 1 rabbit_stew, 1 cooked_mutton. \n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.",
|
||||
"2": "Collaborate with agents around you to make 1 cookie, 1 rabbit_stew, 1 cooked_mutton. \n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.",
|
||||
"3": "Collaborate with agents around you to make 1 cookie, 1 rabbit_stew, 1 cooked_mutton. \n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_cooked_chicken_1_golden_carrot_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, golden_carrot, cooked_chicken.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"golden_carrot": 1,
|
||||
"cooked_chicken": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"golden_carrot": [
|
||||
"Step 1: Go to the farm and collect 1 carrot.",
|
||||
"Step 2: Go to the chest and collect gold ingots and convert them to gold nuggets.",
|
||||
"Step 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot."
|
||||
],
|
||||
"cooked_chicken": [
|
||||
"Step 1: Kill a chicken and pick up 1 raw chicken that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the raw chicken."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_carrot, 1 cooked_chicken. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cooked_chicken:\nStep 1: Kill a chicken and pick up 1 raw chicken that is dropped.\nStep 2: Go to furnace and use it to cook the raw chicken.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_carrot, 1 cooked_chicken. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cooked_chicken:\nStep 1: Kill a chicken and pick up 1 raw chicken that is dropped.\nStep 2: Go to furnace and use it to cook the raw chicken.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_carrot, 1 cooked_chicken. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cooked_chicken:\nStep 1: Kill a chicken and pick up 1 raw chicken that is dropped.\nStep 2: Go to furnace and use it to cook the raw chicken.",
|
||||
"3": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_carrot, 1 cooked_chicken. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cooked_chicken:\nStep 1: Kill a chicken and pick up 1 raw chicken that is dropped.\nStep 2: Go to furnace and use it to cook the raw chicken."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_cake_1_cooked_mutton_1_golden_apple": {
|
||||
"conversation": "Let's work together to make cake, golden_apple, cooked_mutton.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"golden_apple": 1,
|
||||
"cooked_mutton": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cooked_mutton": [
|
||||
"Step 1: Kill a sheep and pick up 1 mutton that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the mutton."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 golden_apple, 1 cooked_mutton. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 golden_apple, 1 cooked_mutton. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 golden_apple, 1 cooked_mutton. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 golden_apple, 1 cooked_mutton. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_cake_1_cooked_porkchop_1_golden_apple_1_golden_carrot": {
|
||||
"conversation": "Let's work together to make cake, golden_apple, golden_carrot, cooked_porkchop.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"golden_apple": 1,
|
||||
"golden_carrot": 1,
|
||||
"cooked_porkchop": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"golden_carrot": [
|
||||
"Step 1: Go to the farm and collect 1 carrot.",
|
||||
"Step 2: Go to the chest and collect gold ingots and convert them to gold nuggets.",
|
||||
"Step 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot."
|
||||
],
|
||||
"cooked_porkchop": [
|
||||
"Step 1: Kill a pig and pick up 1 porkchop that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the porkchop."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 golden_apple, 1 golden_carrot, 1 cooked_porkchop. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cooked_porkchop:\nStep 1: Kill a pig and pick up 1 porkchop that is dropped.\nStep 2: Go to furnace and use it to cook the porkchop.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 golden_apple, 1 golden_carrot, 1 cooked_porkchop. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cooked_porkchop:\nStep 1: Kill a pig and pick up 1 porkchop that is dropped.\nStep 2: Go to furnace and use it to cook the porkchop.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 golden_apple, 1 golden_carrot, 1 cooked_porkchop. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cooked_porkchop:\nStep 1: Kill a pig and pick up 1 porkchop that is dropped.\nStep 2: Go to furnace and use it to cook the porkchop.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 golden_apple, 1 golden_carrot, 1 cooked_porkchop. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cooked_porkchop:\nStep 1: Kill a pig and pick up 1 porkchop that is dropped.\nStep 2: Go to furnace and use it to cook the porkchop."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_beetroot_soup_1_cooked_beef_1_cookie_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make beetroot_soup, rabbit_stew, cooked_beef, cookie.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"beetroot_soup": 1,
|
||||
"rabbit_stew": 1,
|
||||
"cooked_beef": 1,
|
||||
"cookie": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"beetroot_soup": [
|
||||
"Step 1: Go to the farm and collect 6 beetroot.",
|
||||
"Step 2: Go to the chest and grab a bowl.",
|
||||
"Step 3: Go to the crafting table and combine the 6 beetroot and 1 bowl to make beetroot soup."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"cookie": [
|
||||
"Step 1: Go to the farm and collect 2 wheat.",
|
||||
"Step 2: Go to the chest and grab 1 cocoa bean.",
|
||||
"Step 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 beetroot_soup, 1 rabbit_stew, 1 cooked_beef, 1 cookie. \n\nRecipe for beetroot_soup:\nStep 1: Go to the farm and collect 6 beetroot.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine the 6 beetroot and 1 bowl to make beetroot soup.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.",
|
||||
"1": "Collaborate with agents around you to make 1 beetroot_soup, 1 rabbit_stew, 1 cooked_beef, 1 cookie. \n\nRecipe for beetroot_soup:\nStep 1: Go to the farm and collect 6 beetroot.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine the 6 beetroot and 1 bowl to make beetroot soup.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.",
|
||||
"2": "Collaborate with agents around you to make 1 beetroot_soup, 1 rabbit_stew, 1 cooked_beef, 1 cookie. \n\nRecipe for beetroot_soup:\nStep 1: Go to the farm and collect 6 beetroot.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine the 6 beetroot and 1 bowl to make beetroot soup.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.",
|
||||
"3": "Collaborate with agents around you to make 1 beetroot_soup, 1 rabbit_stew, 1 cooked_beef, 1 cookie. \n\nRecipe for beetroot_soup:\nStep 1: Go to the farm and collect 6 beetroot.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine the 6 beetroot and 1 bowl to make beetroot soup.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_cooked_mutton_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make golden_apple, rabbit_stew, cooked_mutton.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"golden_apple": 1,
|
||||
"rabbit_stew": 1,
|
||||
"cooked_mutton": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"cooked_mutton": [
|
||||
"Step 1: Kill a sheep and pick up 1 mutton that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the mutton."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew, 1 cooked_mutton. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.",
|
||||
"1": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew, 1 cooked_mutton. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.",
|
||||
"2": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew, 1 cooked_mutton. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton.",
|
||||
"3": "Collaborate with agents around you to make 1 golden_apple, 1 rabbit_stew, 1 cooked_mutton. \n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for cooked_mutton:\nStep 1: Kill a sheep and pick up 1 mutton that is dropped.\nStep 2: Go to furnace and use it to cook the mutton."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_cake_1_cooked_beef_1_mushroom_stew_1_suspicious_stew": {
|
||||
"conversation": "Let's work together to make cake, mushroom_stew, suspicious_stew, cooked_beef.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"mushroom_stew": 1,
|
||||
"suspicious_stew": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"mushroom_stew": [
|
||||
"Step 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.",
|
||||
"Step 2: Go to the chest and grab a bowl.",
|
||||
"Step 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew."
|
||||
],
|
||||
"suspicious_stew": [
|
||||
"Step 1: Go to the farm and collect 1 red mushroom, 1 brown mushroom.",
|
||||
"Step 2: Go to the chest and grab a bowl and 1 dandelion",
|
||||
"Step 4: Go to the crafting table and combine the mushrooms, dandelion, and bowl to make suspicious stew."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 mushroom_stew, 1 suspicious_stew, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for mushroom_stew:\nStep 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew.\n\nRecipe for suspicious_stew:\nStep 1: Go to the farm and collect 1 red mushroom, 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl and 1 dandelion\nStep 4: Go to the crafting table and combine the mushrooms, dandelion, and bowl to make suspicious stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 mushroom_stew, 1 suspicious_stew, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for mushroom_stew:\nStep 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew.\n\nRecipe for suspicious_stew:\nStep 1: Go to the farm and collect 1 red mushroom, 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl and 1 dandelion\nStep 4: Go to the crafting table and combine the mushrooms, dandelion, and bowl to make suspicious stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 mushroom_stew, 1 suspicious_stew, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for mushroom_stew:\nStep 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew.\n\nRecipe for suspicious_stew:\nStep 1: Go to the farm and collect 1 red mushroom, 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl and 1 dandelion\nStep 4: Go to the crafting table and combine the mushrooms, dandelion, and bowl to make suspicious stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 mushroom_stew, 1 suspicious_stew, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for mushroom_stew:\nStep 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew.\n\nRecipe for suspicious_stew:\nStep 1: Go to the farm and collect 1 red mushroom, 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl and 1 dandelion\nStep 4: Go to the crafting table and combine the mushrooms, dandelion, and bowl to make suspicious stew.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_4_1_cooked_rabbit_1_cookie_1_golden_carrot_1_mushroom_stew": {
|
||||
"conversation": "Let's work together to make mushroom_stew, cooked_rabbit, golden_carrot, cookie.",
|
||||
"agent_count": 4,
|
||||
"target": {
|
||||
"mushroom_stew": 1,
|
||||
"cooked_rabbit": 1,
|
||||
"golden_carrot": 1,
|
||||
"cookie": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"mushroom_stew": [
|
||||
"Step 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.",
|
||||
"Step 2: Go to the chest and grab a bowl.",
|
||||
"Step 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew."
|
||||
],
|
||||
"cooked_rabbit": [
|
||||
"Step 1: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the raw rabbit."
|
||||
],
|
||||
"golden_carrot": [
|
||||
"Step 1: Go to the farm and collect 1 carrot.",
|
||||
"Step 2: Go to the chest and collect gold ingots and convert them to gold nuggets.",
|
||||
"Step 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot."
|
||||
],
|
||||
"cookie": [
|
||||
"Step 1: Go to the farm and collect 2 wheat.",
|
||||
"Step 2: Go to the chest and grab 1 cocoa bean.",
|
||||
"Step 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 mushroom_stew, 1 cooked_rabbit, 1 golden_carrot, 1 cookie. \n\nRecipe for mushroom_stew:\nStep 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew.\n\nRecipe for cooked_rabbit:\nStep 1: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 2: Go to furnace and use it to cook the raw rabbit.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.",
|
||||
"1": "Collaborate with agents around you to make 1 mushroom_stew, 1 cooked_rabbit, 1 golden_carrot, 1 cookie. \n\nRecipe for mushroom_stew:\nStep 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew.\n\nRecipe for cooked_rabbit:\nStep 1: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 2: Go to furnace and use it to cook the raw rabbit.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.",
|
||||
"2": "Collaborate with agents around you to make 1 mushroom_stew, 1 cooked_rabbit, 1 golden_carrot, 1 cookie. \n\nRecipe for mushroom_stew:\nStep 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew.\n\nRecipe for cooked_rabbit:\nStep 1: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 2: Go to furnace and use it to cook the raw rabbit.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie.",
|
||||
"3": "Collaborate with agents around you to make 1 mushroom_stew, 1 cooked_rabbit, 1 golden_carrot, 1 cookie. \n\nRecipe for mushroom_stew:\nStep 1: Go to the farm and collect 1 red mushroom and 1 brown mushroom.\nStep 2: Go to the chest and grab a bowl.\nStep 3: Go to the crafting table and combine both the mushrooms and bowl to make mushroom stew.\n\nRecipe for cooked_rabbit:\nStep 1: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 2: Go to furnace and use it to cook the raw rabbit.\n\nRecipe for golden_carrot:\nStep 1: Go to the farm and collect 1 carrot.\nStep 2: Go to the chest and collect gold ingots and convert them to gold nuggets.\nStep 3: Go to the crafting table and surround the carrot with gold nuggets to create a golden carrot.\n\nRecipe for cookie:\nStep 1: Go to the farm and collect 2 wheat.\nStep 2: Go to the chest and grab 1 cocoa bean.\nStep 3: Go to the crafting table and combine the wheat and cocoa bean to craft a cookie."
|
||||
}
|
||||
}
|
||||
}
|
455
tasks/cooking_tasks/test_tasks/5_agent_cooking_test_tasks.json
Normal file
455
tasks/cooking_tasks/test_tasks/5_agent_cooking_test_tasks.json
Normal file
|
@ -0,0 +1,455 @@
|
|||
{
|
||||
"multiagent_cooking_5_1_baked_potato_1_cake_1_cooked_beef_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cooked_beef, baked_potato, cake, rabbit_stew.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cooked_beef": 1,
|
||||
"baked_potato": 1,
|
||||
"cake": 1,
|
||||
"rabbit_stew": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"1": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"2": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"3": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"4": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_bread_1_cake_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make bread, cake, golden_apple, baked_potato, rabbit_stew.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"cake": 1,
|
||||
"golden_apple": 1,
|
||||
"baked_potato": 1,
|
||||
"rabbit_stew": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"2": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"3": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"4": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_bread_1_cooked_beef_1_golden_apple": {
|
||||
"conversation": "Let's work together to make baked_potato, bread, cooked_beef, golden_apple.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"baked_potato": 1,
|
||||
"bread": 1,
|
||||
"cooked_beef": 1,
|
||||
"golden_apple": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"1": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"2": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"3": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"4": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_bread_1_cake_1_cooked_beef_1_golden_apple": {
|
||||
"conversation": "Let's work together to make cake, bread, golden_apple, baked_potato, cooked_beef.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"bread": 1,
|
||||
"golden_apple": 1,
|
||||
"baked_potato": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"4": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_cake_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, golden_apple, cake, baked_potato.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"golden_apple": 1,
|
||||
"cake": 1,
|
||||
"baked_potato": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"3": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"4": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_bread_1_cooked_beef_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make bread, rabbit_stew, golden_apple, cooked_beef.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"rabbit_stew": 1,
|
||||
"golden_apple": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"2": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"3": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"4": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_bread_1_cake_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cake, rabbit_stew, golden_apple, bread.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"rabbit_stew": 1,
|
||||
"golden_apple": 1,
|
||||
"bread": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"4": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_cake_1_cooked_beef_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cooked_beef, golden_apple, cake, baked_potato, rabbit_stew.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cooked_beef": 1,
|
||||
"golden_apple": 1,
|
||||
"cake": 1,
|
||||
"baked_potato": 1,
|
||||
"rabbit_stew": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"1": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"2": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"3": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"4": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_bread_1_cake_1_cooked_beef_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cooked_beef, golden_apple, rabbit_stew, bread, cake.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cooked_beef": 1,
|
||||
"golden_apple": 1,
|
||||
"rabbit_stew": 1,
|
||||
"bread": 1,
|
||||
"cake": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"1": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"2": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"3": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"4": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_bread_1_cooked_beef_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make bread, cooked_beef, rabbit_stew, baked_potato.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"cooked_beef": 1,
|
||||
"rabbit_stew": 1,
|
||||
"baked_potato": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"2": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"3": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"4": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato."
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,455 @@
|
|||
{
|
||||
"multiagent_cooking_5_1_baked_potato_1_cake_1_cooked_beef_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cooked_beef, baked_potato, cake, rabbit_stew.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cooked_beef": 1,
|
||||
"baked_potato": 1,
|
||||
"cake": 1,
|
||||
"rabbit_stew": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"1": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"2": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"3": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"4": "Collaborate with agents around you to make 1 cooked_beef, 1 baked_potato, 1 cake, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_bread_1_cake_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make bread, cake, golden_apple, baked_potato, rabbit_stew.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"cake": 1,
|
||||
"golden_apple": 1,
|
||||
"baked_potato": 1,
|
||||
"rabbit_stew": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"2": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"3": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"4": "Collaborate with agents around you to make 1 bread, 1 cake, 1 golden_apple, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_bread_1_cooked_beef_1_golden_apple": {
|
||||
"conversation": "Let's work together to make baked_potato, bread, cooked_beef, golden_apple.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"baked_potato": 1,
|
||||
"bread": 1,
|
||||
"cooked_beef": 1,
|
||||
"golden_apple": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"1": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"2": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"3": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.",
|
||||
"4": "Collaborate with agents around you to make 1 baked_potato, 1 bread, 1 cooked_beef, 1 golden_apple. \n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_bread_1_cake_1_cooked_beef_1_golden_apple": {
|
||||
"conversation": "Let's work together to make cake, bread, golden_apple, baked_potato, cooked_beef.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"bread": 1,
|
||||
"golden_apple": 1,
|
||||
"baked_potato": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"4": "Collaborate with agents around you to make 1 cake, 1 bread, 1 golden_apple, 1 baked_potato, 1 cooked_beef. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_cake_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make rabbit_stew, golden_apple, cake, baked_potato.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"rabbit_stew": 1,
|
||||
"golden_apple": 1,
|
||||
"cake": 1,
|
||||
"baked_potato": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"1": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"2": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"3": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"4": "Collaborate with agents around you to make 1 rabbit_stew, 1 golden_apple, 1 cake, 1 baked_potato. \n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_bread_1_cooked_beef_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make bread, rabbit_stew, golden_apple, cooked_beef.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"rabbit_stew": 1,
|
||||
"golden_apple": 1,
|
||||
"cooked_beef": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"2": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"3": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.",
|
||||
"4": "Collaborate with agents around you to make 1 bread, 1 rabbit_stew, 1 golden_apple, 1 cooked_beef. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_bread_1_cake_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cake, rabbit_stew, golden_apple, bread.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cake": 1,
|
||||
"rabbit_stew": 1,
|
||||
"golden_apple": 1,
|
||||
"bread": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"1": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"2": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"3": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.",
|
||||
"4": "Collaborate with agents around you to make 1 cake, 1 rabbit_stew, 1 golden_apple, 1 bread. \n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_cake_1_cooked_beef_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cooked_beef, golden_apple, cake, baked_potato, rabbit_stew.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cooked_beef": 1,
|
||||
"golden_apple": 1,
|
||||
"cake": 1,
|
||||
"baked_potato": 1,
|
||||
"rabbit_stew": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"1": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"2": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"3": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.",
|
||||
"4": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 cake, 1 baked_potato, 1 rabbit_stew. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_bread_1_cake_1_cooked_beef_1_golden_apple_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make cooked_beef, golden_apple, rabbit_stew, bread, cake.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"cooked_beef": 1,
|
||||
"golden_apple": 1,
|
||||
"rabbit_stew": 1,
|
||||
"bread": 1,
|
||||
"cake": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"golden_apple": [
|
||||
"Step 1: Go to the chest and collect 1 apple and 8 gold ingots.",
|
||||
"Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cake": [
|
||||
"Step 1: Go to the farm and collect 3 wheat, 2 sugar cane.",
|
||||
"Step 2: Go to the chest and grab 3 milk buckets.",
|
||||
"Step 3: Go to the chest and grab an egg.",
|
||||
"Step 4: Go to the crafting table and craft the sugarcane into sugar.",
|
||||
"Step 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"1": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"2": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"3": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake.",
|
||||
"4": "Collaborate with agents around you to make 1 cooked_beef, 1 golden_apple, 1 rabbit_stew, 1 bread, 1 cake. \n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for golden_apple:\nStep 1: Go to the chest and collect 1 apple and 8 gold ingots.\nStep 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cake:\nStep 1: Go to the farm and collect 3 wheat, 2 sugar cane.\nStep 2: Go to the chest and grab 3 milk buckets.\nStep 3: Go to the chest and grab an egg.\nStep 4: Go to the crafting table and craft the sugarcane into sugar.\nStep 5: Go to the crafting table and combine all ingredients (3 wheat, 2 sugar, 1 egg, and milk bucket) to make a cake."
|
||||
}
|
||||
},
|
||||
"multiagent_cooking_5_1_baked_potato_1_bread_1_cooked_beef_1_rabbit_stew": {
|
||||
"conversation": "Let's work together to make bread, cooked_beef, rabbit_stew, baked_potato.",
|
||||
"agent_count": 5,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"cooked_beef": 1,
|
||||
"rabbit_stew": 1,
|
||||
"baked_potato": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 1500,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cooked_beef": [
|
||||
"Step 1: Kill a cow and pick up 1 beef that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the beef."
|
||||
],
|
||||
"rabbit_stew": [
|
||||
"Step 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').",
|
||||
"Step 2: Go to the furnace and bake the potato.",
|
||||
"Step 3: Go to the chest and grab a bowl",
|
||||
"Step 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.",
|
||||
"Step 6: Go to the furnace and cook the raw rabbit.",
|
||||
"Step 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew."
|
||||
],
|
||||
"baked_potato": [
|
||||
"Step 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).",
|
||||
"Step 2: Go to the furnace and bake the potato."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal": {
|
||||
"0": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"1": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"2": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"3": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato.",
|
||||
"4": "Collaborate with agents around you to make 1 bread, 1 cooked_beef, 1 rabbit_stew, 1 baked_potato. \n\nRecipe for bread:\nStep 1: Go to the farm and collect 3 wheat.\nStep 2: Go to the crafting table and use the wheat to craft bread.\n\nRecipe for cooked_beef:\nStep 1: Kill a cow and pick up 1 beef that is dropped.\nStep 2: Go to furnace and use it to cook the beef.\n\nRecipe for rabbit_stew:\nStep 1: Go to the farm and collect 1 carrot, 1 potato, and 1 brown mushroom (search for 'potatoes' (not 'potato').\nStep 2: Go to the furnace and bake the potato.\nStep 3: Go to the chest and grab a bowl\nStep 5: Kill a rabbit and pick up 1 raw rabbit that is dropped.\nStep 6: Go to the furnace and cook the raw rabbit.\nStep 7: Go to the crafting table and combine the cooked rabbit, baked potato, carrot, brown mushroom, and bowl to make rabbit stew.\n\nRecipe for baked_potato:\nStep 1: Go to the farm and collect 1 potato (search for 'potatoes' (not 'potato')).\nStep 2: Go to the furnace and bake the potato."
|
||||
}
|
||||
}
|
||||
}
|
1072
tasks/cooking_tasks/test_tasks/hells_kitchen_test_tasks.json
Normal file
1072
tasks/cooking_tasks/test_tasks/hells_kitchen_test_tasks.json
Normal file
File diff suppressed because it is too large
Load diff
1051
tasks/cooking_tasks/test_tasks/test_tasks.json
Normal file
1051
tasks/cooking_tasks/test_tasks/test_tasks.json
Normal file
File diff suppressed because it is too large
Load diff
1051
tasks/cooking_tasks/test_tasks/test_tasks_longer_timeout.json
Normal file
1051
tasks/cooking_tasks/test_tasks/test_tasks_longer_timeout.json
Normal file
File diff suppressed because it is too large
Load diff
1190
tasks/cooking_tasks/train_tasks/2_agent_cooking_train_tasks.json
Normal file
1190
tasks/cooking_tasks/train_tasks/2_agent_cooking_train_tasks.json
Normal file
File diff suppressed because it is too large
Load diff
3093
tasks/cooking_tasks/train_tasks/3_agent_cooking_train_tasks.json
Normal file
3093
tasks/cooking_tasks/train_tasks/3_agent_cooking_train_tasks.json
Normal file
File diff suppressed because it is too large
Load diff
3224
tasks/cooking_tasks/train_tasks/hells_kitchen_train_tasks.json
Normal file
3224
tasks/cooking_tasks/train_tasks/hells_kitchen_train_tasks.json
Normal file
File diff suppressed because it is too large
Load diff
2417
tasks/cooking_tasks/train_tasks/train_tasks.json
Normal file
2417
tasks/cooking_tasks/train_tasks/train_tasks.json
Normal file
File diff suppressed because it is too large
Load diff
2864
tasks/cooking_tasks/train_tasks/train_tasks_3_agents.json
Normal file
2864
tasks/cooking_tasks/train_tasks/train_tasks_3_agents.json
Normal file
File diff suppressed because it is too large
Load diff
3345
tasks/cooking_tasks/train_tasks/train_tasks_4_agents.json
Normal file
3345
tasks/cooking_tasks/train_tasks/train_tasks_4_agents.json
Normal file
File diff suppressed because it is too large
Load diff
3772
tasks/cooking_tasks/train_tasks/train_tasks_5_agents.json
Normal file
3772
tasks/cooking_tasks/train_tasks/train_tasks_5_agents.json
Normal file
File diff suppressed because it is too large
Load diff
1945
tasks/crafting_tasks/filtered_train_tasks.json
Normal file
1945
tasks/crafting_tasks/filtered_train_tasks.json
Normal file
File diff suppressed because it is too large
Load diff
703
tasks/crafting_tasks/test_tasks/2_agent.json
Normal file
703
tasks/crafting_tasks/test_tasks/2_agent.json
Normal file
|
@ -0,0 +1,703 @@
|
|||
{
|
||||
"multiagent_crafting_pink_wool_full_plan__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft an pink_wool",
|
||||
"conversation": "Let's work together to craft an pink_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"pink_dye": 1
|
||||
},
|
||||
"1": {
|
||||
"black_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "pink_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": false
|
||||
},
|
||||
"multiagent_crafting_lime_wool_partial_plan__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft an lime_wool",
|
||||
"conversation": "Let's work together to craft an lime_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"lime_dye": 1
|
||||
},
|
||||
"1": {
|
||||
"black_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "lime_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
],
|
||||
"1": ["!getCraftingPlan"]
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": false
|
||||
},
|
||||
"multiagent_crafting_purple_banner_full_plan_requires_ctable__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft an purple_banner",
|
||||
"conversation": "Let's work together to craft an purple_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"purple_wool": 4,
|
||||
"stick": 1
|
||||
},
|
||||
"1": {
|
||||
"purple_wool": 3,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "purple_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_soul_campfire_partial_plan_requires_ctable__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft an soul_campfire",
|
||||
"conversation": "Let's work together to craft an soul_campfire.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_planks": 2,
|
||||
"soul_sand": 1,
|
||||
"dark_oak_log": 2
|
||||
},
|
||||
"1": {
|
||||
"oak_planks": 1,
|
||||
"dark_oak_log": 1,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "soul_campfire",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_bookshelf_full_plan_requires_ctable__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft a bookshelf",
|
||||
"conversation": "Let's work together to craft a bookshelf.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_planks": 4,
|
||||
"book": 2
|
||||
},
|
||||
"1": {
|
||||
"oak_planks": 2,
|
||||
"book": 1,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "bookshelf",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_compass_partial_plan_requires_ctable__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft a compass",
|
||||
"conversation": "Let's work together to craft a compass.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 2
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 2,
|
||||
"redstone": 1,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "compass",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_fishing_rod_full_plan_requires_ctable__depth_1": {
|
||||
"goal": "Collaborate with other agents to craft a fishing_rod",
|
||||
"conversation": "Let's work together to craft a fishing_rod.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"string": 1,
|
||||
"oak_planks": 2
|
||||
},
|
||||
"1": {
|
||||
"string": 1,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "fishing_rod",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 1,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_cake_partial_plan_requires_ctable__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft a cake",
|
||||
"conversation": "Let's work together to craft a cake.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"wheat": 2,
|
||||
"sugar": 1,
|
||||
"egg": 1
|
||||
},
|
||||
"1": {
|
||||
"wheat": 1,
|
||||
"milk_bucket": 2,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "cake",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_golden_carrot_full_plan_requires_ctable__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft a golden_carrot",
|
||||
"conversation": "Let's work together to craft a golden_carrot.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"gold_nugget": 5,
|
||||
"carrot": 1
|
||||
},
|
||||
"1": {
|
||||
"gold_nugget": 3,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "golden_carrot",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_map_partial_plan_requires_ctable__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft a map",
|
||||
"conversation": "Let's work together to craft a map.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"paper": 5
|
||||
},
|
||||
"1": {
|
||||
"paper": 3,
|
||||
"compass": 1,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "map",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_blue_wool_full_plan__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft blue_wool",
|
||||
"conversation": "Let's work together to craft blue_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_dye": 1
|
||||
},
|
||||
"1": {
|
||||
"white_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "blue_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": false
|
||||
},
|
||||
"multiagent_crafting_lime_wool_partial_plan__depth_2": {
|
||||
"goal": "Collaborate with other agents to craft lime_wool",
|
||||
"conversation": "Let's work together to craft lime_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"green_dye": 1
|
||||
},
|
||||
"1": {
|
||||
"white_wool": 1,
|
||||
"bone_meal": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "lime_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": false
|
||||
},
|
||||
"multiagent_crafting_magenta_wool_full_plan__depth_2": {
|
||||
"goal": "Collaborate with other agents to craft magenta_wool",
|
||||
"conversation": "Let's work together to craft magenta_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"rose_red": 1,
|
||||
"lapis_lazuli": 1
|
||||
},
|
||||
"1": {
|
||||
"white_wool": 1,
|
||||
"bone_meal": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "magenta_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": false
|
||||
},
|
||||
"multiagent_crafting_chest_full_plan_requires_ctable__depth_1": {
|
||||
"goal": "Collaborate with other agents to craft a chest",
|
||||
"conversation": "Let's work together to craft a chest.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_log": 1
|
||||
},
|
||||
"1": {
|
||||
"oak_planks": 4,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "chest",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 1,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_barrel_partial_plan_requires_ctable__depth_1": {
|
||||
"goal": "Collaborate with other agents to craft a barrel",
|
||||
"conversation": "Let's work together to craft a barrel.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"spruce_planks": 3,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"spruce_planks": 3,
|
||||
"wooden_slab": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "barrel",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_lectern_full_plan_requires_ctable__depth_2": {
|
||||
"goal": "Collaborate with other agents to craft a lectern",
|
||||
"conversation": "Let's work together to craft a lectern.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"birch_slab": 5,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"birch_log": 2,
|
||||
"book": 3
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "lectern",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 2,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_clock_partial_plan_requires_ctable__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft a clock",
|
||||
"conversation": "Let's work together to craft a clock.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"gold_ingot": 2
|
||||
},
|
||||
"1": {
|
||||
"gold_ingot": 2,
|
||||
"redstone": 1,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "clock",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_firework_rocket_partial_plan__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft firework_rocket",
|
||||
"conversation": "Let's work together to craft firework_rocket.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"paper": 1
|
||||
},
|
||||
"1": {
|
||||
"gunpowder": 3
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "firework_rocket",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": false
|
||||
},
|
||||
"multiagent_crafting_enchanting_table_partial_plan_requires_ctable__depth_0": {
|
||||
"goal": "Collaborate with other agents to craft an enchanting_table",
|
||||
"conversation": "Let's work together to craft an enchanting_table.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"diamond": 2,
|
||||
"obsidian": 2,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"obsidian": 2,
|
||||
"book": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "enchanting_table",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 0,
|
||||
"depth": 0,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_jukebox_full_plan_requires_ctable__depth_1": {
|
||||
"goal": "Collaborate with other agents to craft a jukebox",
|
||||
"conversation": "Let's work together to craft a jukebox.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"diamond": 1
|
||||
},
|
||||
"1": {
|
||||
"oak_log": 2,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "jukebox",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 1,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_light_gray_wool_full_plan__depth_1": {
|
||||
"goal": "Collaborate with other agents to craft light_gray_wool",
|
||||
"conversation": "Let's work together to craft light_gray_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"black_dye": 1
|
||||
},
|
||||
"1": {
|
||||
"white_wool": 1,
|
||||
"white_dye": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "light_gray_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": false
|
||||
},
|
||||
"multiagent_crafting_blast_furnace_full_plan_requires_ctable__depth_1": {
|
||||
"goal": "Collaborate with other agents to craft a blast_furnace",
|
||||
"conversation": "Let's work together to craft a blast_furnace.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 5,
|
||||
"smooth_stone": 3
|
||||
},
|
||||
"1": {
|
||||
"cobblestone": 8,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "blast_furnace",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_activator_rail_full_plan_requires_ctable__depth_2": {
|
||||
"goal": "Collaborate with other agents to craft activator_rail",
|
||||
"conversation": "Let's work together to craft activator_rail.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 3,
|
||||
"oak_planks": 6
|
||||
},
|
||||
"1": {
|
||||
"redstone": 1,
|
||||
"iron_ingot": 3,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "activator_rail",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_campfire_partial_plan_requires_ctable__depth_2": {
|
||||
"goal": "Collaborate with other agents to craft campfire",
|
||||
"conversation": "Let's work together to craft campfire.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_log": 8
|
||||
},
|
||||
"1": {
|
||||
"coal": 1,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "campfire",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": true
|
||||
},
|
||||
"multiagent_crafting_crossbow_full_plan_requires_ctable__depth_2": {
|
||||
"goal": "Collaborate with other agents to craft a crossbow",
|
||||
"conversation": "Let's work together to craft a crossbow.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_planks": 8,
|
||||
"iron_ingot": 2
|
||||
},
|
||||
"1": {
|
||||
"string": 2,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 2,
|
||||
"target": "crossbow",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 300,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"missing_items": [
|
||||
],
|
||||
"requires_ctable": true
|
||||
}
|
||||
}
|
840
tasks/crafting_tasks/test_tasks/filtered_tasks_3_agents.json
Normal file
840
tasks/crafting_tasks/test_tasks/filtered_tasks_3_agents.json
Normal file
|
@ -0,0 +1,840 @@
|
|||
{
|
||||
"multiagent_crafting_requires_ctable_dark_prismarine_0_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an dark_prismarine",
|
||||
"conversation": "Let's work together to craft an dark_prismarine.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"prismarine_shard": 2,
|
||||
"black_dye": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"prismarine_shard": 2
|
||||
},
|
||||
"2": {
|
||||
"prismarine_shard": 4
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "dark_prismarine",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cut_red_sandstone_0_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an cut_red_sandstone",
|
||||
"conversation": "Let's work together to craft an cut_red_sandstone.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"red_sandstone": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"red_sandstone": 1
|
||||
},
|
||||
"2": {
|
||||
"red_sandstone": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "cut_red_sandstone",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_pink_banner_0_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an pink_banner",
|
||||
"conversation": "Let's work together to craft an pink_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"pink_wool": 2,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"pink_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"pink_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "pink_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_blue_banner_0_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an blue_banner",
|
||||
"conversation": "Let's work together to craft an blue_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_wool": 2,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"blue_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"blue_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "blue_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_bookshelf_0_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an bookshelf",
|
||||
"conversation": "Let's work together to craft an bookshelf.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_planks": 2,
|
||||
"book": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"oak_planks": 2,
|
||||
"book": 1
|
||||
},
|
||||
"2": {
|
||||
"oak_planks": 2,
|
||||
"book": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "bookshelf",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_blue_banner_2_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an blue_banner",
|
||||
"conversation": "Let's work together to craft an blue_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_wool": 2,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"blue_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"blue_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "blue_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_bed_1_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_bed",
|
||||
"conversation": "Let's work together to craft an cyan_bed.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"cyan_wool": 1,
|
||||
"oak_planks": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"cyan_wool": 1,
|
||||
"oak_planks": 1
|
||||
},
|
||||
"2": {
|
||||
"cyan_wool": 1,
|
||||
"oak_planks": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "cyan_bed",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_blue_banner_1_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an blue_banner",
|
||||
"conversation": "Let's work together to craft an blue_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_wool": 2,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"blue_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"blue_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "blue_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_banner_1_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_banner",
|
||||
"conversation": "Let's work together to craft an cyan_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"cyan_wool": 2,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"cyan_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"cyan_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "cyan_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_white_banner_2_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an white_banner",
|
||||
"conversation": "Let's work together to craft an white_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"white_wool": 2,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"white_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"white_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "white_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_waxed_oxidized_cut_copper_2_with_plan__depth_0_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an waxed_oxidized_cut_copper",
|
||||
"conversation": "Let's work together to craft an waxed_oxidized_cut_copper.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"waxed_oxidized_copper": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"waxed_oxidized_copper": 1
|
||||
},
|
||||
"2": {
|
||||
"waxed_oxidized_copper": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "waxed_oxidized_cut_copper",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_chest_minecart_0_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an chest_minecart",
|
||||
"conversation": "Let's work together to craft an chest_minecart.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"2": {
|
||||
"oak_planks": 4,
|
||||
"iron_ingot": 3
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "chest_minecart",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_magenta_bed_0_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an magenta_bed",
|
||||
"conversation": "Let's work together to craft an magenta_bed.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"allium": 1,
|
||||
"black_wool": 1,
|
||||
"oak_planks": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"black_wool": 1,
|
||||
"oak_planks": 1
|
||||
},
|
||||
"2": {
|
||||
"black_wool": 1,
|
||||
"oak_planks": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "magenta_bed",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_red_banner_0_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an red_banner",
|
||||
"conversation": "Let's work together to craft an red_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"red_dye": 2,
|
||||
"black_wool": 2,
|
||||
"oak_planks": 2,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"red_dye": 2,
|
||||
"black_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"red_dye": 2,
|
||||
"black_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "red_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_black_banner_0_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an black_banner",
|
||||
"conversation": "Let's work together to craft an black_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"black_wool": 2,
|
||||
"oak_planks": 2,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"black_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"black_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "black_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_spectral_arrow_0_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an spectral_arrow",
|
||||
"conversation": "Let's work together to craft an spectral_arrow.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"glowstone_dust": 1,
|
||||
"flint": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"glowstone_dust": 2,
|
||||
"stick": 1
|
||||
},
|
||||
"2": {
|
||||
"glowstone_dust": 1,
|
||||
"feather": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "spectral_arrow",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_wool_2_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_wool",
|
||||
"conversation": "Let's work together to craft an cyan_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_dye": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"green_dye": 1
|
||||
},
|
||||
"2": {
|
||||
"black_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "cyan_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_pink_banner_2_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an pink_banner",
|
||||
"conversation": "Let's work together to craft an pink_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"pink_dye": 2,
|
||||
"black_wool": 2,
|
||||
"oak_planks": 2,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"pink_dye": 2,
|
||||
"black_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"pink_dye": 2,
|
||||
"black_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "pink_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_spectral_arrow_1_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an spectral_arrow",
|
||||
"conversation": "Let's work together to craft an spectral_arrow.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"glowstone_dust": 1,
|
||||
"flint": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"glowstone_dust": 2,
|
||||
"stick": 1
|
||||
},
|
||||
"2": {
|
||||
"glowstone_dust": 1,
|
||||
"feather": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "spectral_arrow",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_chiseled_polished_blackstone_1_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an chiseled_polished_blackstone",
|
||||
"conversation": "Let's work together to craft an chiseled_polished_blackstone.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"polished_blackstone": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"polished_blackstone": 1
|
||||
},
|
||||
"2": {
|
||||
"polished_blackstone": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "chiseled_polished_blackstone",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_purple_wool_1_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an purple_wool",
|
||||
"conversation": "Let's work together to craft an purple_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_dye": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"red_dye": 1
|
||||
},
|
||||
"2": {
|
||||
"black_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "purple_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_spectral_arrow_2_with_plan__depth_1_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an spectral_arrow",
|
||||
"conversation": "Let's work together to craft an spectral_arrow.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"glowstone_dust": 1,
|
||||
"flint": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"glowstone_dust": 2,
|
||||
"stick": 1
|
||||
},
|
||||
"2": {
|
||||
"glowstone_dust": 1,
|
||||
"feather": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "spectral_arrow",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_bed_0_with_plan__depth_2_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_bed",
|
||||
"conversation": "Let's work together to craft an cyan_bed.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_dye": 2,
|
||||
"black_wool": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"green_dye": 2,
|
||||
"black_wool": 1
|
||||
},
|
||||
"2": {
|
||||
"black_wool": 1,
|
||||
"oak_log": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "cyan_bed",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_banner_1_with_plan__depth_2_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_banner",
|
||||
"conversation": "Let's work together to craft an cyan_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_dye": 1,
|
||||
"green_dye": 1,
|
||||
"black_wool": 2,
|
||||
"oak_log": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"blue_dye": 1,
|
||||
"green_dye": 1,
|
||||
"black_wool": 2
|
||||
},
|
||||
"2": {
|
||||
"blue_dye": 1,
|
||||
"green_dye": 1,
|
||||
"black_wool": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "cyan_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_gray_wool_1_with_plan__depth_2_num_agents_3": {
|
||||
"goal": "Collaborate with other agents to craft an gray_wool",
|
||||
"conversation": "Let's work together to craft an gray_wool.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"ink_sac": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"bone_meal": 1
|
||||
},
|
||||
"2": {
|
||||
"black_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 3,
|
||||
"target": "gray_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
}
|
||||
}
|
960
tasks/crafting_tasks/test_tasks/filtered_tasks_4_agents.json
Normal file
960
tasks/crafting_tasks/test_tasks/filtered_tasks_4_agents.json
Normal file
|
@ -0,0 +1,960 @@
|
|||
{
|
||||
"multiagent_crafting_requires_ctable_lectern_0_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an lectern",
|
||||
"conversation": "Let's work together to craft an lectern.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_slab": 1,
|
||||
"bookshelf": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"oak_slab": 1
|
||||
},
|
||||
"2": {
|
||||
"oak_slab": 1
|
||||
},
|
||||
"3": {
|
||||
"oak_slab": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "lectern",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_polished_granite_0_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an polished_granite",
|
||||
"conversation": "Let's work together to craft an polished_granite.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"granite": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"granite": 1
|
||||
},
|
||||
"2": {
|
||||
"granite": 1
|
||||
},
|
||||
"3": {
|
||||
"granite": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "polished_granite",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_smoker_0_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an smoker",
|
||||
"conversation": "Let's work together to craft an smoker.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"dark_oak_log": 1,
|
||||
"furnace": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"dark_oak_log": 1
|
||||
},
|
||||
"2": {
|
||||
"dark_oak_log": 1
|
||||
},
|
||||
"3": {
|
||||
"dark_oak_log": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "smoker",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_white_banner_0_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an white_banner",
|
||||
"conversation": "Let's work together to craft an white_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"white_wool": 1,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"white_wool": 3
|
||||
},
|
||||
"2": {
|
||||
"white_wool": 1
|
||||
},
|
||||
"3": {
|
||||
"white_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "white_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_blue_banner_0_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an blue_banner",
|
||||
"conversation": "Let's work together to craft an blue_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_wool": 1,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"blue_wool": 1
|
||||
},
|
||||
"2": {
|
||||
"blue_wool": 1
|
||||
},
|
||||
"3": {
|
||||
"blue_wool": 3
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "blue_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_red_stained_glass_0_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an red_stained_glass",
|
||||
"conversation": "Let's work together to craft an red_stained_glass.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"glass": 2,
|
||||
"red_dye": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"glass": 2
|
||||
},
|
||||
"2": {
|
||||
"glass": 2
|
||||
},
|
||||
"3": {
|
||||
"glass": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "red_stained_glass",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_white_banner_1_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an white_banner",
|
||||
"conversation": "Let's work together to craft an white_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"white_wool": 1,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"white_wool": 3
|
||||
},
|
||||
"2": {
|
||||
"white_wool": 1
|
||||
},
|
||||
"3": {
|
||||
"white_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "white_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_stained_glass_3_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_stained_glass",
|
||||
"conversation": "Let's work together to craft an cyan_stained_glass.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"glass": 2,
|
||||
"cyan_dye": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"glass": 2
|
||||
},
|
||||
"2": {
|
||||
"glass": 2
|
||||
},
|
||||
"3": {
|
||||
"glass": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "cyan_stained_glass",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_waxed_oxidized_cut_copper_1_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an waxed_oxidized_cut_copper",
|
||||
"conversation": "Let's work together to craft an waxed_oxidized_cut_copper.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"waxed_oxidized_copper": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"waxed_oxidized_copper": 1
|
||||
},
|
||||
"2": {
|
||||
"waxed_oxidized_copper": 1
|
||||
},
|
||||
"3": {
|
||||
"waxed_oxidized_copper": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "waxed_oxidized_cut_copper",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_blue_banner_3_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an blue_banner",
|
||||
"conversation": "Let's work together to craft an blue_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_wool": 1,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"blue_wool": 1
|
||||
},
|
||||
"2": {
|
||||
"blue_wool": 1
|
||||
},
|
||||
"3": {
|
||||
"blue_wool": 3
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "blue_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_white_banner_2_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an white_banner",
|
||||
"conversation": "Let's work together to craft an white_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"white_wool": 1,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"white_wool": 3
|
||||
},
|
||||
"2": {
|
||||
"white_wool": 1
|
||||
},
|
||||
"3": {
|
||||
"white_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "white_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_smoker_3_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an smoker",
|
||||
"conversation": "Let's work together to craft an smoker.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"dark_oak_log": 1,
|
||||
"furnace": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"dark_oak_log": 1
|
||||
},
|
||||
"2": {
|
||||
"dark_oak_log": 1
|
||||
},
|
||||
"3": {
|
||||
"dark_oak_log": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "smoker",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 1,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_black_banner_1_with_plan__depth_0_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an black_banner",
|
||||
"conversation": "Let's work together to craft an black_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"black_wool": 1,
|
||||
"stick": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"black_wool": 1
|
||||
},
|
||||
"2": {
|
||||
"black_wool": 1
|
||||
},
|
||||
"3": {
|
||||
"black_wool": 3
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "black_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 0,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_stained_glass_0_with_plan__depth_1_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_stained_glass",
|
||||
"conversation": "Let's work together to craft an cyan_stained_glass.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"glass": 2,
|
||||
"blue_dye": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"glass": 2,
|
||||
"green_dye": 1
|
||||
},
|
||||
"2": {
|
||||
"glass": 2
|
||||
},
|
||||
"3": {
|
||||
"glass": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "cyan_stained_glass",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_polished_granite_0_with_plan__depth_1_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an polished_granite",
|
||||
"conversation": "Let's work together to craft an polished_granite.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"diorite": 1,
|
||||
"quartz": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"diorite": 1,
|
||||
"quartz": 1
|
||||
},
|
||||
"2": {
|
||||
"diorite": 1,
|
||||
"quartz": 1
|
||||
},
|
||||
"3": {
|
||||
"diorite": 1,
|
||||
"quartz": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "polished_granite",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_banner_0_with_plan__depth_1_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_banner",
|
||||
"conversation": "Let's work together to craft an cyan_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"cyan_dye": 1,
|
||||
"black_wool": 1,
|
||||
"oak_planks": 2,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"cyan_dye": 1,
|
||||
"black_wool": 1
|
||||
},
|
||||
"2": {
|
||||
"cyan_dye": 3,
|
||||
"black_wool": 3
|
||||
},
|
||||
"3": {
|
||||
"cyan_dye": 1,
|
||||
"black_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "cyan_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_white_banner_0_with_plan__depth_1_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an white_banner",
|
||||
"conversation": "Let's work together to craft an white_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"white_dye": 3,
|
||||
"black_wool": 1,
|
||||
"oak_planks": 2,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"white_dye": 1,
|
||||
"black_wool": 1
|
||||
},
|
||||
"2": {
|
||||
"white_dye": 1,
|
||||
"black_wool": 1
|
||||
},
|
||||
"3": {
|
||||
"white_dye": 1,
|
||||
"black_wool": 3
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "white_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_bookshelf_2_with_plan__depth_1_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an bookshelf",
|
||||
"conversation": "Let's work together to craft an bookshelf.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_log": 2,
|
||||
"paper": 3,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"paper": 2,
|
||||
"leather": 3
|
||||
},
|
||||
"2": {
|
||||
"paper": 2
|
||||
},
|
||||
"3": {
|
||||
"paper": 2
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "bookshelf",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_spectral_arrow_1_with_plan__depth_1_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an spectral_arrow",
|
||||
"conversation": "Let's work together to craft an spectral_arrow.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"glowstone_dust": 1,
|
||||
"flint": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"glowstone_dust": 1,
|
||||
"stick": 1
|
||||
},
|
||||
"2": {
|
||||
"glowstone_dust": 1,
|
||||
"feather": 1
|
||||
},
|
||||
"3": {
|
||||
"glowstone_dust": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "spectral_arrow",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_chest_minecart_2_with_plan__depth_1_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an chest_minecart",
|
||||
"conversation": "Let's work together to craft an chest_minecart.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 2
|
||||
},
|
||||
"2": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"3": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "chest_minecart",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_chest_minecart_3_with_plan__depth_1_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an chest_minecart",
|
||||
"conversation": "Let's work together to craft an chest_minecart.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 2
|
||||
},
|
||||
"2": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"3": {
|
||||
"oak_planks": 2,
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "chest_minecart",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_blue_banner_3_with_plan__depth_1_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an blue_banner",
|
||||
"conversation": "Let's work together to craft an blue_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_wool": 1,
|
||||
"oak_planks": 2,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"blue_wool": 3
|
||||
},
|
||||
"2": {
|
||||
"blue_wool": 1
|
||||
},
|
||||
"3": {
|
||||
"blue_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "blue_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 2,
|
||||
"depth": 1,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_banner_0_with_plan__depth_2_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_banner",
|
||||
"conversation": "Let's work together to craft an cyan_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_dye": 3,
|
||||
"black_wool": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"green_dye": 3,
|
||||
"black_wool": 3
|
||||
},
|
||||
"2": {
|
||||
"black_wool": 1,
|
||||
"oak_log": 1
|
||||
},
|
||||
"3": {
|
||||
"black_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "cyan_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_cyan_banner_2_with_plan__depth_2_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an cyan_banner",
|
||||
"conversation": "Let's work together to craft an cyan_banner.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"blue_dye": 3,
|
||||
"black_wool": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"green_dye": 3,
|
||||
"black_wool": 3
|
||||
},
|
||||
"2": {
|
||||
"black_wool": 1,
|
||||
"oak_log": 1
|
||||
},
|
||||
"3": {
|
||||
"black_wool": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "cyan_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
},
|
||||
"multiagent_crafting_requires_ctable_spectral_arrow_2_with_plan__depth_2_num_agents_4": {
|
||||
"goal": "Collaborate with other agents to craft an spectral_arrow",
|
||||
"conversation": "Let's work together to craft an spectral_arrow.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"glowstone_dust": 1,
|
||||
"flint": 1,
|
||||
"crafting_table": 1
|
||||
},
|
||||
"1": {
|
||||
"glowstone_dust": 1,
|
||||
"oak_planks": 2
|
||||
},
|
||||
"2": {
|
||||
"glowstone_dust": 1,
|
||||
"feather": 1
|
||||
},
|
||||
"3": {
|
||||
"glowstone_dust": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 4,
|
||||
"target": "spectral_arrow",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"max_depth": 3,
|
||||
"depth": 2,
|
||||
"timeout": 500,
|
||||
"blocked_actions": {
|
||||
"0": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"1": [
|
||||
"!getCraftingPlan"
|
||||
],
|
||||
"2": [],
|
||||
"3": []
|
||||
},
|
||||
"missing_items": [],
|
||||
"requires_crafting_table": true
|
||||
}
|
||||
}
|
1084
tasks/crafting_tasks/test_tasks/filtered_tasks_5_agents.json
Normal file
1084
tasks/crafting_tasks/test_tasks/filtered_tasks_5_agents.json
Normal file
File diff suppressed because it is too large
Load diff
786
tasks/evaluation_script.py
Normal file
786
tasks/evaluation_script.py
Normal file
|
@ -0,0 +1,786 @@
|
|||
import argparse
|
||||
import json
|
||||
import shutil
|
||||
import subprocess
|
||||
import time
|
||||
from datetime import datetime
|
||||
import re
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
import filecmp
|
||||
import json
|
||||
import glob
|
||||
import socket
|
||||
|
||||
from tqdm import tqdm
|
||||
import boto3
|
||||
|
||||
BLOCKED_ACTIONS_COOKING = [
|
||||
'!activate', '!attackPlayer', '!checkBlueprint', '!checkBlueprintLevel',
|
||||
'!clearChat', '!clearFurnace', '!consume', '!craftable', '!discard',
|
||||
'!endGoal', '!entities', '!equip', '!followPlayer', '!getBlueprint', '!getBlueprintLevel',
|
||||
'!goToBed', '!help', '!modes', '!moveAway', '!newAction', '!placeHere', '!putInChest',
|
||||
'!restart', '!setMode', '!stay', '!stfu', '!stop'
|
||||
]
|
||||
BLOCKED_ACTIONS_CRAFTING = [
|
||||
'!activate', '!attack', '!attackPlayer', '!checkBlueprint', '!checkBlueprintLevel',
|
||||
'!clearChat', '!clearFurnace', '!consume', '!craftable', '!discard', '!endConversation',
|
||||
'!endGoal', '!entities', '!followPlayer', '!getBlueprint', '!getBlueprintLevel',
|
||||
'!goToBed', '!help', '!modes', '!newAction', '!putInChest', '!restart',
|
||||
'!searchForEntity', '!setMode', '!stay', '!stfu', '!stop', '!takeFromChest',
|
||||
'!viewChest'
|
||||
]
|
||||
BLOCKED_ACTIONS_CONSTRUCTION = [
|
||||
'!activate', '!attackPlayer', '!clearChat', '!clearFurnace', '!collectBlocks',
|
||||
'!consume', '!craftable', '!discard', '!endConversation', '!endGoal', '!entities',
|
||||
'!equip', '!followPlayer', '!getBlueprint', '!getBlueprintLevel', '!goToBed',
|
||||
'!help', '!modes', '!moveAway', '!newAction', '!placeHere', '!putInChest',
|
||||
'!restart', '!searchForBlock', '!searchForEntity', '!setMode', '!stay', '!stfu',
|
||||
'!stop', '!takeFromChest', '!viewChest', '!craftRecipe', '!smeltItem'
|
||||
]
|
||||
|
||||
def analyze_json_file(file_path):
|
||||
"""
|
||||
Analyzes a single JSON file to extract the task outcome.
|
||||
|
||||
Args:
|
||||
file_path (str): Path to the JSON file.
|
||||
|
||||
Returns:
|
||||
str or None: The task outcome string if found, otherwise None.
|
||||
"""
|
||||
try:
|
||||
with open(file_path, 'r') as f:
|
||||
data = json.load(f)
|
||||
if "turns" in data:
|
||||
for turn in data["turns"]:
|
||||
if turn.get("role") == "system" and "content" in turn:
|
||||
if isinstance(turn["content"], str) and "Task ended with score : " in turn["content"]:
|
||||
if "Task ended with score : 1" in turn["content"]:
|
||||
return 1
|
||||
elif "Task ended with score : 0" in turn["content"]:
|
||||
return 0
|
||||
else:
|
||||
score = float(turn["content"].split(":")[-1].strip())
|
||||
return score
|
||||
|
||||
|
||||
return None
|
||||
except FileNotFoundError:
|
||||
print(f"Error: File not found: {file_path}")
|
||||
return None
|
||||
except json.JSONDecodeError:
|
||||
print(f"Error: Invalid JSON format in: {file_path}")
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"An unexpected error occurred while processing {file_path}: {e}")
|
||||
return None
|
||||
|
||||
def extract_result(folder_path):
|
||||
folder_name = os.path.basename(folder_path)
|
||||
json_files = glob.glob(os.path.join(folder_path, "*.json"))
|
||||
# assert len(json_files) == 2, f"Expected 2 json files in {folder_name}, found {len(json_files)}"
|
||||
|
||||
if not json_files:
|
||||
return None
|
||||
else:
|
||||
score = None
|
||||
curr_score = 0
|
||||
for json_file in json_files:
|
||||
score = analyze_json_file(json_file)
|
||||
if score is not None:
|
||||
max_score = max(score, curr_score)
|
||||
curr_score = max_score
|
||||
|
||||
return curr_score
|
||||
|
||||
def aggregate_results(local_folders):
|
||||
"""
|
||||
Aggregates the analysis results for each folder.
|
||||
|
||||
Args:
|
||||
local_folders (list): List of local folder paths containing the JSON files.
|
||||
|
||||
Returns:
|
||||
dict: A dictionary where keys are folder names and values are the aggregated outcomes.
|
||||
"""
|
||||
aggregated_data = {}
|
||||
|
||||
total = 0
|
||||
successful = 0
|
||||
successful_tasks = []
|
||||
|
||||
task_type = local_folders[0].split("/")[-2]
|
||||
if "cooking" in task_type:
|
||||
task_type = "cooking"
|
||||
elif "techtree" in task_type:
|
||||
task_type = "techtree"
|
||||
elif "construction" in task_type:
|
||||
task_type = "construction"
|
||||
|
||||
for folder_path in tqdm(local_folders):
|
||||
folder_name = os.path.basename(folder_path)
|
||||
|
||||
try:
|
||||
result = extract_result(folder_path)
|
||||
|
||||
if result == 1:
|
||||
successful_tasks.append(folder_name)
|
||||
if result is not None:
|
||||
total += 1
|
||||
successful += result
|
||||
except Exception as e:
|
||||
print(f"Error processing {folder_name}: {e}")
|
||||
|
||||
successful_tasks.sort()
|
||||
|
||||
if task_type == "construction":
|
||||
successful = successful / total
|
||||
|
||||
return {
|
||||
"total": total,
|
||||
"successful": successful,
|
||||
}
|
||||
|
||||
def check_folder_results(folder_path):
|
||||
"""
|
||||
Evaluate all JSON files in a folder and its subfolders and calculate success metrics.
|
||||
|
||||
Args:
|
||||
folder_path (str): Path to the folder containing JSON log files.
|
||||
|
||||
Returns:
|
||||
dict: A dictionary with success metrics.
|
||||
"""
|
||||
print(f"Checking results in folder: {folder_path}")
|
||||
|
||||
# Check if the folder exists
|
||||
if not os.path.exists(folder_path):
|
||||
print(f"Error: Folder not found: {folder_path}")
|
||||
return None
|
||||
|
||||
# Find all subfolders (task IDs) in the given folder
|
||||
if os.path.isdir(folder_path):
|
||||
subfolders = [f for f in glob.glob(os.path.join(folder_path, "*")) if os.path.isdir(f)]
|
||||
if subfolders:
|
||||
# If there are subfolders, evaluate each subfolder
|
||||
print(f"Found {len(subfolders)} subfolders to evaluate")
|
||||
results = aggregate_results(subfolders)
|
||||
else:
|
||||
# If no subfolders, treat the folder itself as a results folder
|
||||
print("No subfolders found, evaluating the folder itself")
|
||||
results = aggregate_results([folder_path])
|
||||
|
||||
# Calculate success rate
|
||||
if results["total"] > 0:
|
||||
results["success_rate"] = results["successful"] / results["total"]
|
||||
else:
|
||||
results["success_rate"] = 0.0
|
||||
|
||||
# Print summary
|
||||
print("\n=== Evaluation Results ===")
|
||||
print(f"Total tasks evaluated: {results['total']}")
|
||||
|
||||
if "construction" not in folder_path:
|
||||
print(f"Successful tasks: {results['successful']}")
|
||||
|
||||
if "construction" not in folder_path:
|
||||
print(f"Success rate: {results['success_rate']:.2f}")
|
||||
else:
|
||||
print(f"Success rate: {results['successful']:.2f}")
|
||||
|
||||
return results
|
||||
else:
|
||||
print(f"Error: {folder_path} is not a directory")
|
||||
return None
|
||||
|
||||
def read_settings(file_path):
|
||||
"""Read and parse the settings.js file to get agent profiles."""
|
||||
with open(file_path, 'r', encoding='utf-8') as file:
|
||||
content = file.read()
|
||||
|
||||
# Remove `export default` and trailing commas
|
||||
content = re.sub(r'export\s+default', '', content)
|
||||
content = re.sub(r',\s*(?=[}\]])', '', content)
|
||||
|
||||
# Remove JavaScript comments
|
||||
content = re.sub(r'//.*', '', content)
|
||||
|
||||
# Remove trailing commas (e.g., before } or ])
|
||||
content = re.sub(r',\s*(?=[}\]])', '', content)
|
||||
|
||||
# Strip leading and trailing whitespace
|
||||
content = content.strip()
|
||||
|
||||
json_data = json.loads(content)
|
||||
|
||||
profiles = json_data['profiles']
|
||||
|
||||
## profiles is a list of strings like "./andy.json" and "./bob.json"
|
||||
|
||||
agent_names = [profile.split('/')[-1].split('.')[0] for profile in profiles]
|
||||
return agent_names
|
||||
|
||||
def update_keys_json():
|
||||
"""Update the keys.json file with the specified key-value pair."""
|
||||
with open("keys.example.json", 'r', encoding='utf-8') as file:
|
||||
content = file.read()
|
||||
data = json.loads(content)
|
||||
|
||||
# Update keys with environment variables
|
||||
for key in data.keys():
|
||||
env_value = os.getenv(key) # Fetch from environment variables
|
||||
if env_value: # If the variable exists, update it
|
||||
data[key] = env_value
|
||||
|
||||
with open("keys.json", 'w', encoding='utf-8') as file:
|
||||
json.dump(data, file, indent=4)
|
||||
|
||||
def set_environment_variable_tmux_session(session_name, key, value):
|
||||
"""Set an environment variable for the current process."""
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, f"export {key}={value}", "C-m"])
|
||||
|
||||
def launch_parallel_experiments(task_path,
|
||||
num_exp,
|
||||
exp_name,
|
||||
num_agents=2,
|
||||
model="gpt-4o-mini",
|
||||
api="openai",
|
||||
num_parallel=1,
|
||||
s3=False,
|
||||
bucket_name="mindcraft-experiments",
|
||||
template_profile="profiles/tasks/collab_profile.json",
|
||||
insecure_coding=False,
|
||||
url="http://127.0.0.1:8000/v1",
|
||||
max_messages=15,
|
||||
num_examples=2,
|
||||
no_pruning=False,
|
||||
block_conversation=False,
|
||||
run_in_tmux=True):
|
||||
|
||||
with open(task_path, 'r', encoding='utf-8') as file:
|
||||
content = file.read()
|
||||
json_data = json.loads(content)
|
||||
|
||||
task_ids = json_data.keys()
|
||||
|
||||
task_type = json_data[list(task_ids)[0]]["type"]
|
||||
# split the task_ids into num_parallel groups
|
||||
task_ids = list(task_ids)
|
||||
task_ids_split = [task_ids[i::num_parallel] for i in range(num_parallel)]
|
||||
|
||||
if task_type == "cooking":
|
||||
world_name = "Superflat"
|
||||
elif task_type == "techtree":
|
||||
world_name = "Forest"
|
||||
elif task_type == "construction":
|
||||
world_name = "Superflat"
|
||||
|
||||
if run_in_tmux:
|
||||
servers = create_server_files("./tasks/server_data/", num_parallel, world_name=world_name)
|
||||
else:
|
||||
servers = [(f"./tasks/server_data_{i}/", 55916 + i) for i in range(num_parallel)]
|
||||
date_time = datetime.now().strftime("%m-%d_%H-%M")
|
||||
experiments_folder = f"experiments/{exp_name}_{date_time}"
|
||||
exp_name = f"{exp_name}_{date_time}"
|
||||
|
||||
split_task_path = task_path.split("/")
|
||||
if len(split_task_path) > 1:
|
||||
task_path_name = split_task_path[-2]
|
||||
else:
|
||||
task_path_name = "tasks"
|
||||
|
||||
s3_path = f"{bucket_name}/{task_type}/{model}/{task_path_name}/{exp_name}"
|
||||
|
||||
# start wandb
|
||||
os.makedirs(experiments_folder, exist_ok=True)
|
||||
for i, server in enumerate(servers):
|
||||
launch_server_experiment(task_path,
|
||||
task_ids_split[i],
|
||||
num_exp,
|
||||
server,
|
||||
experiments_folder,
|
||||
exp_name,
|
||||
s3=s3,
|
||||
bucket_name=bucket_name,
|
||||
template_profile=template_profile,
|
||||
model=model,
|
||||
api=api,
|
||||
insecure_coding=insecure_coding,
|
||||
num_agents=num_agents,
|
||||
url=url,
|
||||
task_type=task_type,
|
||||
s3_path=s3_path,
|
||||
max_messages=max_messages,
|
||||
num_examples=num_examples,
|
||||
no_pruning=no_pruning,
|
||||
block_conversation=block_conversation,
|
||||
run_in_tmux=run_in_tmux)
|
||||
time.sleep(5)
|
||||
|
||||
total_num_tasks = len(task_ids)
|
||||
total_num_experiments = total_num_tasks * num_exp
|
||||
total_run = 0
|
||||
while total_run < total_num_experiments:
|
||||
results = aggregate_results([f"{experiments_folder}/{task_id}" for task_id in task_ids])
|
||||
total_run = results["total"]
|
||||
print(f"Total tasks run: {total_run}/{total_num_experiments}")
|
||||
print(results)
|
||||
results["exp_name"] = exp_name
|
||||
results["template_profile"] = template_profile
|
||||
results["model"] = model
|
||||
results["api"] = api
|
||||
results["num_agents"] = num_agents
|
||||
results["task_path"] = task_path
|
||||
results["task_type"] = task_type
|
||||
results["max_messages"] = max_messages
|
||||
results["num_examples"] = num_examples
|
||||
with open(f"{experiments_folder}/results.txt", "w") as file:
|
||||
file.write(str(results))
|
||||
if s3:
|
||||
cmd = f"aws s3 cp {experiments_folder}/results.txt s3://{s3_path}/results.txt"
|
||||
print(cmd)
|
||||
subprocess.run(cmd.split())
|
||||
|
||||
time.sleep(60)
|
||||
|
||||
def launch_server_experiment(task_path,
|
||||
task_ids,
|
||||
num_exp,
|
||||
server,
|
||||
experiments_folder,
|
||||
exp_name="exp",
|
||||
num_agents=2,
|
||||
model="gpt-4o",
|
||||
api="openai",
|
||||
s3=False,
|
||||
bucket_name="mindcraft-experiments",
|
||||
template_profile="profiles/tasks/collab_profile.json",
|
||||
insecure_coding=False,
|
||||
url="http://127.0.0.1:8000/v1",
|
||||
task_type="techtree",
|
||||
s3_path="",
|
||||
max_messages=15,
|
||||
num_examples=2,
|
||||
no_pruning=False,
|
||||
block_conversation=False,
|
||||
run_in_tmux=True):
|
||||
|
||||
"""
|
||||
Launch a Minecraft server and run experiments on it.
|
||||
@param task_path: Path to the task file
|
||||
@param task_ids: IDs of the tasks to run
|
||||
@param num_exp: Number of experiments to run
|
||||
@param server: Tuple containing server path and port
|
||||
@param experiments_folder: Folder to store experiment results
|
||||
@param exp_name: Name of the experiment for wandb dataset
|
||||
@param num_agents: Number of agents to run
|
||||
@param model: Model to use for the agents
|
||||
@param s3: Boolean flag to enable S3 upload
|
||||
@param bucket_name: Name of the S3 bucket
|
||||
"""
|
||||
server_path, server_port = server
|
||||
edit_file(os.path.join(server_path, "server.properties"), {"server-port": server_port})
|
||||
mindserver_port = server_port - 55916 + 8080
|
||||
|
||||
# set up server and agents
|
||||
session_name = str(server_port - 55916)
|
||||
if num_agents == 1:
|
||||
agent_names = [f"Andy_{session_name}"]
|
||||
models = [model]
|
||||
apis = [api]
|
||||
elif num_agents == 2:
|
||||
agent_names = [f"Andy_{session_name}", f"Jill_{session_name}"]
|
||||
models = [model] * 2
|
||||
apis = [api] * 2
|
||||
else:
|
||||
# Lets use an ordered list of 10 human names.
|
||||
human_names = ["Andy", "Jill", "Bob", "Sally", "Mike", "Laura", "John", "Emma", "Tom", "Kate"]
|
||||
agent_names = []
|
||||
for i in range(num_agents):
|
||||
name = human_names[i % len(human_names)]
|
||||
agent_names.append(f"{name}_{session_name}")
|
||||
models = [model] * num_agents
|
||||
apis = [api] * num_agents
|
||||
|
||||
make_profiles(agent_names, models, apis, template_profile=template_profile, url=url)
|
||||
|
||||
agent_profiles = [f"./{agent}.json" for agent in agent_names]
|
||||
|
||||
if num_agents == 1:
|
||||
agent_profiles_str = f"'[\"{agent_profiles[0]}\"]'"
|
||||
elif num_agents == 2:
|
||||
agent_profiles_str = f"'[\"{agent_profiles[0]}\", \"{agent_profiles[1]}\"]'"
|
||||
else:
|
||||
agent_profiles_str = "'["
|
||||
for agent in agent_profiles[:-1]:
|
||||
agent_profiles_str += f'\"{agent}\", '
|
||||
agent_profiles_str += f"\"{agent_profiles[-1]}\"]'"
|
||||
print(agent_profiles_str)
|
||||
if run_in_tmux:
|
||||
print("run in tmux is true")
|
||||
launch_world(server_path, session_name="server_" + session_name, agent_names=agent_names, port=server_port)
|
||||
|
||||
subprocess.run(['tmux', 'new-session', '-d', '-s', session_name], check=True)
|
||||
# set environment variables
|
||||
if run_in_tmux:
|
||||
set_environment_variable_tmux_session(session_name, "MINECRAFT_PORT", server_port)
|
||||
set_environment_variable_tmux_session(session_name, "MINDSERVER_PORT", mindserver_port)
|
||||
set_environment_variable_tmux_session(session_name, "PROFILES", agent_profiles_str)
|
||||
set_environment_variable_tmux_session(session_name, "MAX_MESSAGES", str(max_messages))
|
||||
set_environment_variable_tmux_session(session_name, "NUM_EXAMPLES", str(num_examples))
|
||||
set_environment_variable_tmux_session(session_name, "LOG_ALL", "true")
|
||||
if insecure_coding:
|
||||
set_environment_variable_tmux_session(session_name, "INSECURE_CODING", "true")
|
||||
make_ops(agent_names, session_name)
|
||||
else:
|
||||
agent_profiles_str = "["
|
||||
for agent in agent_profiles[:-1]:
|
||||
agent_profiles_str += f"\"{agent}\", "
|
||||
agent_profiles_str += f"\"{agent_profiles[-1]}\"]"
|
||||
# print(agent_profiles_str)
|
||||
os.environ["PROFILES"] = agent_profiles_str
|
||||
os.environ["MAX_MESSAGES"] = str(max_messages)
|
||||
os.environ["NUM_EXAMPLES"] = str(num_examples)
|
||||
os.environ["LOG_ALL"] = "true"
|
||||
|
||||
run_script(task_path,
|
||||
task_ids,
|
||||
num_exp,
|
||||
experiments_folder,
|
||||
agent_names,
|
||||
server_path,
|
||||
s3=s3,
|
||||
s3_path=s3_path,
|
||||
session_name=session_name,
|
||||
run_in_tmux=run_in_tmux)
|
||||
|
||||
def run_script(task_path,
|
||||
task_ids,
|
||||
num_exp,
|
||||
experiments_folder,
|
||||
agent_names,
|
||||
server_path,
|
||||
s3=False,
|
||||
s3_path="mindcraft-experiments",
|
||||
session_name="0",
|
||||
run_in_tmux=True,):
|
||||
script_content = ""
|
||||
for task_id in task_ids:
|
||||
# Create a separate folder for each task_id
|
||||
task_folder = os.path.join(experiments_folder, str(task_id))
|
||||
os.makedirs(task_folder, exist_ok=True)
|
||||
assert os.path.exists(task_folder), f"Directory {task_folder} was not created"
|
||||
print(f"Created directory: {task_folder}")
|
||||
|
||||
cmd = f"node main.js --task_path \'{task_path}\' --task_id {task_id}"
|
||||
cp_cmd = f"cp {agent_names[0]}.json {server_path}bots/{agent_names[0]}/profile.json"
|
||||
for _ in range(num_exp):
|
||||
script_content += f"{cmd}\n"
|
||||
script_content += "sleep 2\n"
|
||||
for agent in agent_names:
|
||||
agent_file_path = os.path.join(task_folder, f"{agent}_{_}.json")
|
||||
script_content += f"echo 'Saving to {agent_file_path}'\n"
|
||||
cp_cmd = f"cp bots/{agent}/memory.json {agent_file_path}"
|
||||
script_content += f"echo '{cp_cmd}'\n"
|
||||
script_content += f"{cp_cmd}\n"
|
||||
script_content += "sleep 1\n"
|
||||
if s3:
|
||||
s3_cmd = f"aws s3 cp {agent_file_path} s3://{s3_path}/{task_id}/{agent}_{_}.json"
|
||||
script_content += f"echo 'Uploading {agent_file_path} to S3'\n"
|
||||
script_content += f"echo '{s3_cmd}'\n"
|
||||
script_content += f"{s3_cmd}\n"
|
||||
script_content += "sleep 1\n"
|
||||
script_content += f"sleep 10\n"
|
||||
if s3:
|
||||
for agent in agent_names:
|
||||
script_content += f"aws s3 cp bots/{agent} s3://{s3_path}/bots/{agent} --recursive\n"
|
||||
|
||||
# Create a temporary shell script file
|
||||
script_file = f"./tmp/experiment_script_{session_name}.sh"
|
||||
make_script_file_and_run(script_content, script_file, session_name=session_name, run_in_tmux=run_in_tmux)
|
||||
|
||||
|
||||
def make_ops(agent_names, session_name):
|
||||
"""Make the agents operators in the Minecraft world."""
|
||||
print('Making agents operators...')
|
||||
|
||||
cmd = f"node main.js --task_path tasks/example_tasks.json --task_id debug_{len(agent_names)}_agent_timeout"
|
||||
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, cmd, "C-m"])
|
||||
|
||||
time.sleep(30)
|
||||
|
||||
subprocess.run(["tmux", "send-keys", "-t", "server_" + session_name, f"/op @a", "C-m"])
|
||||
|
||||
agents_op = check_agent_ops(agent_names, ops_file=f"./tasks/server_data_{session_name}/ops.json")
|
||||
if agents_op:
|
||||
print("Agents are operators! You are good to go :D")
|
||||
else:
|
||||
print("Agents are not operators! Something went wrong :(")
|
||||
make_ops(agent_names, session_name)
|
||||
|
||||
def check_agent_ops(agent_names, ops_file="ops.json"):
|
||||
with open(ops_file, "r") as f:
|
||||
ops_data = json.load(f)
|
||||
|
||||
ops_names = [op["name"] for op in ops_data]
|
||||
|
||||
for agent in agent_names:
|
||||
if agent not in ops_names:
|
||||
return False
|
||||
return True
|
||||
|
||||
def make_script_file_and_run(script_content,
|
||||
file_name,
|
||||
session_name="0",
|
||||
run_in_tmux=True):
|
||||
script_dir = os.path.dirname(file_name)
|
||||
os.makedirs(script_dir, exist_ok=True)
|
||||
assert os.path.exists(script_dir), f"Script directory {script_dir} was not created"
|
||||
print(f"Created script directory: {script_dir}")
|
||||
|
||||
# Call the function before writing the script file
|
||||
with open(file_name, 'w') as f:
|
||||
f.write(script_content)
|
||||
assert os.path.exists(file_name), f"Script file {file_name} was not created"
|
||||
|
||||
script_file_run = "bash " + file_name
|
||||
|
||||
# Execute the shell script using subprocess
|
||||
if run_in_tmux:
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, script_file_run, "C-m"])
|
||||
else:
|
||||
subprocess.run(script_file_run.split())
|
||||
|
||||
def make_profiles(agent_names, models, apis, template_profile="profiles/collab_profile.json", url="http://127.0.0.1:8000/v1"):
|
||||
assert len(agent_names) == len(models)
|
||||
|
||||
with open(template_profile, 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
profile = json.loads(content)
|
||||
|
||||
for index in range(len(agent_names)):
|
||||
profile["name"] = agent_names[index]
|
||||
if apis[index] == "vllm":
|
||||
profile["model"] = {
|
||||
"api": "vllm",
|
||||
"model": models[index],
|
||||
"url": url
|
||||
}
|
||||
elif apis[index] == "ollama":
|
||||
profile["model"] = {
|
||||
"api": "ollama",
|
||||
"model": models[index],
|
||||
"embedding": "ollama"
|
||||
}
|
||||
else:
|
||||
profile["model"] = models[index]
|
||||
|
||||
with open(f"{agent_names[index]}.json", 'w') as f:
|
||||
json.dump(profile, f, indent=4)
|
||||
|
||||
def create_server_files(source_path, num_copies, world_name="Forest"):
|
||||
"""Create multiple copies of server files for parallel experiments."""
|
||||
print("Creating server files...")
|
||||
print(num_copies)
|
||||
servers = []
|
||||
for i in range(num_copies):
|
||||
dest_path = f"./tasks/server_data_{i}/"
|
||||
copy_server_files(source_path, dest_path)
|
||||
print(dest_path)
|
||||
edit_file(dest_path + "server.properties", {"server-port": 55916 + i,
|
||||
"level-name": world_name})
|
||||
# edit_server_properties_file(dest_path, 55916 + i)
|
||||
servers.append((dest_path, 55916 + i))
|
||||
return servers
|
||||
|
||||
def edit_file(file, content_dict):
|
||||
try:
|
||||
with open(file, 'r') as f:
|
||||
lines = f.readlines()
|
||||
with open(file, 'w') as f:
|
||||
for line in lines:
|
||||
for key, value in content_dict.items():
|
||||
if line.startswith(key):
|
||||
f.write(f"{key}={value}\n")
|
||||
else:
|
||||
f.write(line)
|
||||
print(f"{file} updated with {content_dict}")
|
||||
except Exception as e:
|
||||
print(f"Error editing file {file}: {e}")
|
||||
|
||||
def clean_up_server_files(num_copies):
|
||||
"""Delete server files from multiple locations."""
|
||||
for i in range(num_copies):
|
||||
dest_path = f"./tasks/server_data_{i}/"
|
||||
delete_server_files(dest_path)
|
||||
|
||||
def copy_server_files(source_path, dest_path):
|
||||
"""Copy server files to the specified location."""
|
||||
try:
|
||||
shutil.copytree(source_path, dest_path)
|
||||
print(f"Server files copied to {dest_path}")
|
||||
except Exception as e:
|
||||
print(f"Error copying server files: {e}")
|
||||
time.sleep(10)
|
||||
|
||||
same_files = check_same_files(source_path, dest_path)
|
||||
if not same_files:
|
||||
copy_server_files(source_path, dest_path)
|
||||
print("The destination path does not contain all the same files as the source path.")
|
||||
else:
|
||||
print("The destination path contains all the same files as the source path.")
|
||||
|
||||
def check_same_files(d1, d2):
|
||||
|
||||
items1 = set(os.listdir(d1))
|
||||
items2 = set(os.listdir(d2))
|
||||
|
||||
if items1 != items2:
|
||||
return False
|
||||
return True
|
||||
|
||||
def delete_server_files(dest_path):
|
||||
"""Delete server files from the specified location."""
|
||||
try:
|
||||
shutil.rmtree(dest_path)
|
||||
print(f"Server files deleted from {dest_path}")
|
||||
except Exception as e:
|
||||
print(f"Error deleting server files: {e}")
|
||||
if not os.path.exists(dest_path):
|
||||
print("Server files deleted successfully.")
|
||||
# else:
|
||||
# print("Error deleting server files.")
|
||||
# delete_server_files(dest_path)
|
||||
|
||||
|
||||
def launch_world(server_path="./tasks/server_data/", agent_names=["andy", "jill"], session_name="server", port=55916):
|
||||
"""Launch the Minecraft world."""
|
||||
print(f"Launching Minecraft world with port {port}...")
|
||||
cmd = f"cd {server_path} && java -jar server.jar"
|
||||
subprocess.run(['tmux', 'new-session', '-d', '-s', session_name], check=True)
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, cmd, "C-m"])
|
||||
time.sleep(10)
|
||||
if not test_server_running(port):
|
||||
print("Server failed to start. Retrying...")
|
||||
launch_world(server_path, agent_names, session_name, port)
|
||||
|
||||
def test_server_running(port=55916):
|
||||
host = 'localhost'
|
||||
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||
try:
|
||||
s.connect((host, port))
|
||||
print("Server is running on port 55916")
|
||||
return True
|
||||
except ConnectionRefusedError:
|
||||
print("Server is not running on port 55916")
|
||||
return False
|
||||
|
||||
def kill_world(session_name="server"):
|
||||
"""Kill the Minecraft world."""
|
||||
subprocess.run(["tmux", "send-keys", "-t", session_name, "stop", "C-m"])
|
||||
time.sleep(5)
|
||||
subprocess.run(["tmux", "kill-session", "-t", session_name])
|
||||
|
||||
def detach_process(command):
|
||||
"""
|
||||
Launches a subprocess and detaches from it, allowing it to run independently.
|
||||
|
||||
Args:
|
||||
command: A list of strings representing the command to execute, e.g., ['python', 'my_script.py'].
|
||||
"""
|
||||
|
||||
try:
|
||||
# Create a new process group so the child doesn't get signals intended for the parent.
|
||||
# This is crucial for proper detachment.
|
||||
kwargs = {}
|
||||
if sys.platform == 'win32':
|
||||
kwargs.update(creationflags=subprocess.CREATE_NEW_PROCESS_GROUP) # Windows specific
|
||||
|
||||
process = subprocess.Popen(command,
|
||||
stdin=subprocess.PIPE, # Prevent stdin blocking
|
||||
stdout=subprocess.PIPE, # Redirect stdout
|
||||
stderr=subprocess.PIPE, # Redirect stderr
|
||||
close_fds=True, # Close open file descriptors
|
||||
**kwargs)
|
||||
|
||||
print(f"Process launched with PID: {process.pid}")
|
||||
return process.pid # Return the PID of the detached process
|
||||
|
||||
except FileNotFoundError:
|
||||
print(f"Error: Command not found: {command}")
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {e}")
|
||||
return None
|
||||
|
||||
def main():
|
||||
# edit_settings("settings.js", {"profiles": ["./andy.json", "./jill.json"], "port": 55917})
|
||||
# edit_server_properties_file("../server_data/", 55917)
|
||||
|
||||
parser = argparse.ArgumentParser(description='Run Minecraft AI agent experiments')
|
||||
parser.add_argument('--no_launch_world', action='store_true', help='Do not launch the Minecraft world')
|
||||
parser.add_argument('--task_path', default="tasks/multiagent_crafting_tasks.json", help='Path to the task file')
|
||||
parser.add_argument('--num_agents', default=2, type=int, help='Number of agents to run')
|
||||
parser.add_argument('--num_exp', default=1, type=int, help='Number of experiments to run')
|
||||
parser.add_argument('--num_parallel', default=1, type=int, help='Number of parallel servers to run')
|
||||
parser.add_argument('--exp_name', default="exp", help='Name of the experiment')
|
||||
parser.add_argument('--s3', action='store_true', help='Whether to upload to s3')
|
||||
parser.add_argument('--bucket_name', default="mindcraft-experiments", help='Name of the s3 bucket')
|
||||
parser.add_argument('--add_keys', action='store_true', help='Create the keys.json to match the environment variables')
|
||||
parser.add_argument('--template_profile', default="profiles/tasks/crafting_profile.json", help='Model to use for the agents')
|
||||
parser.add_argument('--model', default="gpt-4o-mini", help='Model to use for the agents')
|
||||
parser.add_argument('--api', default="openai", help='API to use for the agents')
|
||||
# parser.add_argument('--world_name', default="Forest", help='Name of the world')
|
||||
parser.add_argument('--insecure_coding', action='store_true', help='Enable insecure coding')
|
||||
parser.add_argument('--url', default="http://127.0.0.1:8000/v1")
|
||||
parser.add_argument('--max_messages', default=15, type=int, help='Maximum number of messages before summarizing')
|
||||
parser.add_argument('--num_examples', default=2, type=int, help='Maximum number of turns before summarizing')
|
||||
parser.add_argument('--no-pruning', action='store_true', help='Disable pruning of the actions')
|
||||
parser.add_argument('--block_conversation', action='store_true', help='Block conversation actions')
|
||||
parser.add_argument('--check', metavar='FOLDER_PATH', help='Check and evaluate results in the specified folder without running experiments')
|
||||
|
||||
args = parser.parse_args()
|
||||
print(args)
|
||||
|
||||
# If --check flag is provided, evaluate results in the specified folder and exit
|
||||
if args.check:
|
||||
check_folder_results(args.check)
|
||||
return
|
||||
|
||||
if not args.no_launch_world:
|
||||
try:
|
||||
subprocess.run(['tmux', 'kill-server'], check=True)
|
||||
except:
|
||||
print("No tmux session to kill")
|
||||
|
||||
# delete all server files
|
||||
if not args.no_launch_world:
|
||||
clean_up_server_files(args.num_parallel)
|
||||
if args.add_keys:
|
||||
update_keys_json()
|
||||
|
||||
launch_parallel_experiments(args.task_path,
|
||||
num_exp=args.num_exp,
|
||||
exp_name=args.exp_name,
|
||||
num_parallel=args.num_parallel,
|
||||
s3=args.s3,
|
||||
bucket_name=args.bucket_name,
|
||||
template_profile=args.template_profile,
|
||||
model=args.model,
|
||||
api=args.api,
|
||||
insecure_coding=args.insecure_coding,
|
||||
num_agents=args.num_agents,
|
||||
url=args.url,
|
||||
max_messages=args.max_messages,
|
||||
num_examples=args.num_examples,
|
||||
no_pruning=args.no_pruning,
|
||||
block_conversation=args.block_conversation,
|
||||
run_in_tmux=not args.no_launch_world)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
453
tasks/example_tasks.json
Normal file
453
tasks/example_tasks.json
Normal file
|
@ -0,0 +1,453 @@
|
|||
{
|
||||
"debug_single_agent": {
|
||||
"goal": "Just stand at a place and don't do anything",
|
||||
"initial_inventory": {},
|
||||
"type": "debug"
|
||||
},
|
||||
"debug_multi_agent": {
|
||||
"goal": "Just stand at a place and don't do anything",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"type": "debug"
|
||||
},
|
||||
"debug_1_agent_timeout": {
|
||||
"goal": "Just stand at a place and don't do anything",
|
||||
"agent_count": 1,
|
||||
"initial_inventory": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"type": "debug",
|
||||
"timeout": 60
|
||||
},
|
||||
"debug_2_agent_timeout": {
|
||||
"goal": "Just stand at a place and don't do anything",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"type": "debug",
|
||||
"timeout": 60
|
||||
},
|
||||
"debug_3_agent_timeout": {
|
||||
"goal": "Just stand at a place and don't do anything",
|
||||
"agent_count": 3,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"2": {
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"type": "debug",
|
||||
"timeout": 60
|
||||
},
|
||||
"debug_4_agent_timeout": {
|
||||
"goal": "Just stand at a place and don't do anything",
|
||||
"agent_count": 4,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"2": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"3": {
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"type": "debug",
|
||||
"timeout": 60
|
||||
},
|
||||
"debug_5_agent_timeout": {
|
||||
"goal": "Just stand at a place and don't do anything",
|
||||
"agent_count": 5,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"2": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"3": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"4": {
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"type": "debug",
|
||||
"timeout": 60
|
||||
},
|
||||
"debug_different_goal": {
|
||||
"goal": {
|
||||
"0": "Reply to all messages with star emojis when prompted",
|
||||
"1": "Reply to all messages with heart emojis when prompted"
|
||||
},
|
||||
"agent_count": 2,
|
||||
"type": "debug"
|
||||
},
|
||||
"debug_inventory_restriction": {
|
||||
"goal": "Place 1 oak plank, then place 1 stone brick",
|
||||
"initial_inventory": {
|
||||
"oak_planks": 20
|
||||
},
|
||||
"type": "debug",
|
||||
"restrict_to_inventory": true
|
||||
},
|
||||
"construction": {
|
||||
"type": "construction",
|
||||
"goal": "Build a house",
|
||||
"initial_inventory": {
|
||||
"oak_planks": 20
|
||||
}
|
||||
},
|
||||
"techtree_1_shears_with_2_iron_ingot": {
|
||||
"goal": "Build a shear.",
|
||||
"initial_inventory": {
|
||||
"iron_ingot": 2
|
||||
},
|
||||
"target": "shears",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 60
|
||||
},
|
||||
"multiagent_techtree_1_stone_pickaxe": {
|
||||
"conversation": "Let's collaborate to build a stone pickaxe",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"wooden_pickaxe": 1
|
||||
},
|
||||
"1": {
|
||||
"wooden_axe": 1
|
||||
}
|
||||
},
|
||||
"target": "stone_pickaxe",
|
||||
"goal": "Build a stone pickaxe",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 300
|
||||
},
|
||||
"construction_house": {
|
||||
"type": "construction",
|
||||
"goal": "Make a house with the blueprint below",
|
||||
"agent_count": 1,
|
||||
"blueprint": {
|
||||
"materials": {
|
||||
"plank": {
|
||||
"id": "oak_planks",
|
||||
"number": 40
|
||||
},
|
||||
"door": {
|
||||
"id": "oak_door",
|
||||
"number": 1
|
||||
}
|
||||
},
|
||||
"levels": [
|
||||
{
|
||||
"level": 0,
|
||||
"coordinates": [142, -60, -179],
|
||||
"placement":
|
||||
[
|
||||
["oak_planks", "oak_planks", "oak_door", "oak_planks", "oak_planks"],
|
||||
["oak_planks", "air", "air", "air", "oak_planks"],
|
||||
["oak_planks", "air", "air", "air", "oak_planks"],
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 1,
|
||||
"coordinates": [142, -59, -179],
|
||||
"placement":
|
||||
[
|
||||
["oak_planks", "oak_planks", "oak_door", "oak_planks", "oak_planks"],
|
||||
["oak_planks", "air", "air", "air", "oak_planks"],
|
||||
["oak_planks", "air", "air", "air", "oak_planks"],
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"coordinates": [142, -58, -179],
|
||||
"placement":
|
||||
[
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"],
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"],
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"],
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"initial_inventory": {
|
||||
"oak_planks": 40,
|
||||
"oak_door": 1
|
||||
}
|
||||
},
|
||||
"multiagent_construction_house": {
|
||||
"type": "construction",
|
||||
"goal": "Make a house with the blueprint below ",
|
||||
"conversation": "Let's share materials and make a house with the blueprint",
|
||||
"agent_count": 2,
|
||||
"blueprint": {
|
||||
"materials": {
|
||||
"plank": {
|
||||
"id": "oak_plank",
|
||||
"number": 20
|
||||
},
|
||||
"door": {
|
||||
"id": "oak_door",
|
||||
"number": 1
|
||||
}
|
||||
},
|
||||
"levels": [
|
||||
{
|
||||
"level": 0,
|
||||
"coordinates": [142, -60, -179],
|
||||
"placement":
|
||||
[
|
||||
["stone", "stone", "oak_door", "stone", "stone"],
|
||||
["stone", "air", "air", "air", "stone"],
|
||||
["stone", "air", "air", "air", "stone"],
|
||||
["stone", "stone", "stone", "stone", "stone"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 1,
|
||||
"coordinates": [142, -59, -179],
|
||||
"placement":
|
||||
[
|
||||
["stone", "stone", "oak_door", "stone", "stone"],
|
||||
["stone", "air", "air", "air", "stone"],
|
||||
["stone", "air", "air", "air", "stone"],
|
||||
["stone", "stone", "stone", "stone", "stone"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"coordinates": [142, -58, -179],
|
||||
"placement":
|
||||
[
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"],
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"],
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"],
|
||||
["oak_planks", "oak_planks", "oak_planks", "oak_planks", "oak_planks"]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_planks": 20
|
||||
},
|
||||
"1": {
|
||||
"stone": 40,
|
||||
"oak_door": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"construction_large_house": {
|
||||
"type": "construction",
|
||||
"goal": "Make a large house with the blueprint below ",
|
||||
"agent_count": 1,
|
||||
"blueprint": {
|
||||
"materials": {
|
||||
"bricks": {
|
||||
"id": "bricks",
|
||||
"number": 200
|
||||
},
|
||||
"glass_pane": {
|
||||
"id": "glass_pane",
|
||||
"number": 24
|
||||
},
|
||||
"oak_door": {
|
||||
"id": "oak_door",
|
||||
"number": 2
|
||||
}
|
||||
},
|
||||
"levels": [
|
||||
{
|
||||
"level": 0,
|
||||
"coordinates": [162, -60, -180],
|
||||
"placement":
|
||||
[
|
||||
["bricks", "bricks", "bricks", "bricks", "dark_oak_door", "dark_oak_door", "bricks", "bricks", "bricks", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 1,
|
||||
"coordinates": [162, -59, -180],
|
||||
"placement":
|
||||
[
|
||||
["bricks", "glass_pane", "glass_pane", "bricks", "dark_oak_door", "dark_oak_door", "bricks", "glass_pane", "glass_pane", "bricks"],
|
||||
["glass_pane", "air", "air", "air", "air", "air", "air", "air", "air", "glass_pane"],
|
||||
["glass_pane", "air", "air", "air", "air", "air", "air", "air", "air", "glass_pane"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["glass_pane", "air", "air", "air", "air", "air", "air", "air", "air", "glass_pane"],
|
||||
["glass_pane", "air", "air", "air", "air", "air", "air", "air", "air", "glass_pane"],
|
||||
["bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"coordinates": [162, -58, -180],
|
||||
"placement":
|
||||
[
|
||||
["bricks", "glass_pane", "glass_pane", "bricks", "air", "air", "bricks", "glass_pane", "glass_pane", "bricks"],
|
||||
["glass_pane", "air", "air", "air", "air", "air", "air", "air", "air", "glass_pane"],
|
||||
["glass_pane", "air", "air", "air", "air", "air", "air", "air", "air", "glass_pane"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["glass_pane", "air", "air", "air", "air", "air", "air", "air", "air", "glass_pane"],
|
||||
["glass_pane", "air", "air", "air", "air", "air", "air", "air", "air", "glass_pane"],
|
||||
["bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": 3,
|
||||
"coordinates": [162, -57, -180],
|
||||
"placement":
|
||||
[
|
||||
["bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "air", "air", "air", "air", "air", "air", "air", "air", "bricks"],
|
||||
["bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks", "bricks"]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"initial_inventory": {
|
||||
"bricks": 200,
|
||||
"dark_oak_door": 2,
|
||||
"glass_pane": 24
|
||||
}
|
||||
},
|
||||
"multiagent_techtree_1_shears": {
|
||||
"goal": "Collaborate with other agents to build a shear.",
|
||||
"conversation": "Let's collaborate to build a shear.",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_ingot": 1
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 1
|
||||
}
|
||||
},
|
||||
"target": "shears",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 60
|
||||
},
|
||||
"smelt_ingot": {
|
||||
"goal": "Smelt 1 iron ingot and 1 copper ingot",
|
||||
"agent_count": 1,
|
||||
"initial_inventory": {
|
||||
"furnace": 1,
|
||||
"raw_iron": 1,
|
||||
"raw_copper": 1,
|
||||
"coal": 2
|
||||
},
|
||||
"target": "copper_ingot",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 300
|
||||
},
|
||||
"multiagent_smelt_ingot": {
|
||||
"conversation": "Let's collaborate to smelt ingots",
|
||||
"goal": "Smelt 1 iron ingot and 1 copper ingot, use star emojis in every response",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"furnace": 1,
|
||||
"coal": 2
|
||||
},
|
||||
"1": {
|
||||
"raw_iron": 1,
|
||||
"raw_copper": 1
|
||||
}
|
||||
},
|
||||
"target": "copper_ingot",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 300
|
||||
},
|
||||
"multiagent_cooking_1": {
|
||||
"conversation": "Let's collaborate to make dinner, I am going to search for 'potatoes' and make 1 'baked_potato', you on the other hand, search for cow and cook 1 beef. We have a furnace (fuel already present) nearby to help us cook, search for it over long distances to find it. Note : We only need one of each item, lets not waste time by collecting unnecessary resources.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"baked_potato":1,
|
||||
"cooked_beef":1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 300,
|
||||
"goal": "Make 1 baked potato, use a furnace nearby to cook which has fuel in it, let the other agent cook 1 beef"
|
||||
},
|
||||
"multiagent_cooking_2": {
|
||||
"conversation": "Let's collaborate to make bread and cooked_mutton. We can split up to gather ingredients and use the nearby furnace that's already fueled.",
|
||||
"agent_count": 2,
|
||||
"target": {
|
||||
"bread": 1,
|
||||
"cooked_mutton": 1
|
||||
},
|
||||
"type": "cooking",
|
||||
"timeout": 300,
|
||||
"recipes": {
|
||||
"bread": [
|
||||
"Step 1: Go to the farm and collect 3 wheat.",
|
||||
"Step 2: Go to the crafting table and use the wheat to craft bread."
|
||||
],
|
||||
"cooked_mutton": [
|
||||
"Step 1: Kill a sheep and pick up 1 mutton that is dropped.",
|
||||
"Step 2: Go to furnace and use it to cook the mutton."
|
||||
]
|
||||
},
|
||||
"blocked_access_to_recipe": [],
|
||||
"goal" : {
|
||||
"0": "Collaborate with randy to make 1 bread and 1 cooked mutton, you can divide the tasks among yourselves.\nThere is a furnace nearby that is already fueled, there is also a smoker and crafting table nearby, use them to your advantage. Crops of all different types are available in the farm where you are standing, you can use them to your advantage as well. The farm also includes animals like cows, pigs, sheep, and chickens that you can use to your advantage.\nSince the farm is huge, make sure to search for the resources over long distances to find them.",
|
||||
"1": "Collaborate with andy to make 1 bread and 1 cooked mutton, you can divide the tasks among yourselves.\nThere is a furnace nearby that is already fueled, there is also a smoker and crafting table nearby, use them to your advantage. Crops of all different types are available in the farm where you are standing, you can use them to your advantage as well. The farm also includes animals like cows, pigs, sheep, and chickens that you can use to your advantage.\nSince the farm is huge, make sure to search for the resources over long distances to find them."
|
||||
}
|
||||
}
|
||||
}
|
198
tasks/multi_data_collection_script.py
Normal file
198
tasks/multi_data_collection_script.py
Normal file
|
@ -0,0 +1,198 @@
|
|||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
import time
|
||||
import json
|
||||
import tqdm
|
||||
from analyse_results import extract_result, get_immediate_subdirectories, analyze_json_file
|
||||
import glob
|
||||
|
||||
# Calculate project root directory
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
# Define tasks directory
|
||||
tasks_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
# Define paths relative to project root (for reading)
|
||||
LOGS_DIR = os.path.join(project_root, "logs")
|
||||
EXPERIMENTS_DIR = os.path.join(project_root, "experiments")
|
||||
BOTS_DIR = os.path.join(project_root, "bots")
|
||||
|
||||
"""
|
||||
This script is intended to run the evaluation script multiple times and then automatically aggregate the
|
||||
successful logs into a subfolder for each run, based on the success marked in the experiment folder. Then
|
||||
at the end it will aggregate everything into a json file, ready for training.
|
||||
|
||||
Example usage:
|
||||
python3 ./multi_data_collection_script.py --api vllm --model meta-llama/Meta-Llama-3-8B-Instruct --num_agents 2 --num_parallel 2 \
|
||||
--tasks "tasks/crafting_tasks/test_tasks/tasks_2_agents.json:3" "tasks/crafting_tasks/test_tasks/tasks_3_agents.json:3"
|
||||
|
||||
Meaning run those two tasks each 2 times, with num agents. The results will be in
|
||||
./full_run_logs_{date}
|
||||
and ./successful_run_logs_{date}
|
||||
Use the successful run logs to train the next model.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def extract_result_single_agent(folder_path):
|
||||
folder_name = os.path.basename(folder_path)
|
||||
json_files = glob.glob(os.path.join(folder_path, "*.json"))
|
||||
if not json_files:
|
||||
print(f"No JSON files found in {folder_name}")
|
||||
return None
|
||||
else:
|
||||
outcome = False
|
||||
for json_file in json_files:
|
||||
outcome = analyze_json_file(json_file)
|
||||
if outcome:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def identify_success_folders(download_dir, num_agents):
|
||||
folders = get_immediate_subdirectories(download_dir)
|
||||
|
||||
if num_agents == 1:
|
||||
extract_result_fn = extract_result_single_agent
|
||||
else:
|
||||
extract_result_fn = extract_result
|
||||
|
||||
total = 0
|
||||
successful = 0
|
||||
successful_exp_list = []
|
||||
|
||||
for folder_path in tqdm.tqdm(folders):
|
||||
folder_name = os.path.basename(folder_path)
|
||||
|
||||
try:
|
||||
total += 1
|
||||
success = int(extract_result_fn(folder_path))
|
||||
successful += success
|
||||
if success:
|
||||
successful_exp_list.append(folder_path)
|
||||
except Exception as e:
|
||||
print(f"Error processing {folder_name}: {e}")
|
||||
|
||||
return successful_exp_list
|
||||
|
||||
|
||||
def run_data_collection(args):
|
||||
# Set up output directories inside tasks/
|
||||
timestamp_str = datetime.now().strftime('%Y-%m-%d_%H%M%S') # Add time to avoid overwrite
|
||||
SUCCESSFUL_DIR = Path(os.path.join(tasks_dir, f"successful_run_logs_{timestamp_str}"))
|
||||
FULL_RUN_LOGS_DIR = Path(os.path.join(tasks_dir, f"full_run_logs_{timestamp_str}"))
|
||||
# Input/state dirs (relative to project root)
|
||||
logs_dir_path = Path(LOGS_DIR)
|
||||
experiments_dir_path = Path(EXPERIMENTS_DIR)
|
||||
bots_dir_path = Path(BOTS_DIR)
|
||||
|
||||
logs_dir_path.mkdir(exist_ok=True)
|
||||
SUCCESSFUL_DIR.mkdir(exist_ok=True)
|
||||
FULL_RUN_LOGS_DIR.mkdir(exist_ok=True)
|
||||
|
||||
# Parse tasks and repetitions, ensuring paths are relative to project root
|
||||
TASKS_TO_RUN = []
|
||||
for task_spec in args.tasks:
|
||||
parts = task_spec.split(':')
|
||||
if len(parts) == 2:
|
||||
task_path, repeats = parts[0], int(parts[1])
|
||||
# Resolve task_path relative to project root
|
||||
if not os.path.isabs(task_path):
|
||||
task_path = os.path.join(project_root, task_path)
|
||||
TASKS_TO_RUN.append((task_path, repeats))
|
||||
else:
|
||||
print(f"Warning: Invalid task specification '{task_spec}', expected format 'path:repeats'")
|
||||
|
||||
# Clear temp agent dirs from project_root/bots/
|
||||
for bot_dir in bots_dir_path.glob("*"):
|
||||
if bot_dir.name.startswith(("Andy_", "Jill_", "agent_")):
|
||||
shutil.rmtree(bot_dir)
|
||||
|
||||
# Resolve eval_script path
|
||||
eval_script_path = args.eval_script
|
||||
if not os.path.isabs(eval_script_path):
|
||||
eval_script_path = os.path.join(project_root, eval_script_path)
|
||||
|
||||
run_counter = 1
|
||||
for task_path, repeats in TASKS_TO_RUN:
|
||||
for rep in range(repeats):
|
||||
run_id = f"run_{run_counter:03d}"
|
||||
print(f"\n Starting {task_path} (rep {rep + 1}/{repeats}) -> {run_id}")
|
||||
|
||||
# Track start time to locate experiment folder
|
||||
# Ensure EXPERIMENTS_DIR is treated as Path object if needed
|
||||
before = set(experiments_dir_path.glob("*"))
|
||||
|
||||
# Run evaluation using the resolved eval_script_path
|
||||
# Run from project root
|
||||
subprocess.run([
|
||||
"python", eval_script_path,
|
||||
"--api", args.api,
|
||||
"--model", args.model,
|
||||
"--task_path", task_path, # task_path is already absolute or resolved
|
||||
"--num_agents", str(args.num_agents),
|
||||
"--num_parallel", str(args.num_parallel)
|
||||
], check=True, cwd=project_root)
|
||||
|
||||
# Wait for experiment folder to appear in project_root/experiments/
|
||||
time.sleep(20) # avoid race condition
|
||||
after = set(experiments_dir_path.glob("*"))
|
||||
new_experiments = list(after - before)
|
||||
assert len(new_experiments) == 1, f"Expected one new experiment folder, found {len(new_experiments)}"
|
||||
experiment_dir = new_experiments[0]
|
||||
|
||||
print(f"Found experiment folder: {experiment_dir}")
|
||||
|
||||
# Identify successful experiments from project_root/experiments/...
|
||||
successful_exp_list = identify_success_folders(experiment_dir, args.num_agents)
|
||||
|
||||
# Save successful logs and results (read from project_root/bots, write to tasks/successful_...)
|
||||
success_output_dir = SUCCESSFUL_DIR / run_id
|
||||
success_output_dir.mkdir(parents=True, exist_ok=True)
|
||||
# Identify the ones that are successful
|
||||
for exp_path in successful_exp_list:
|
||||
exp_name = os.path.basename(exp_path)
|
||||
# For each agent, find and copy their logs for this successful experiment
|
||||
for bot_dir in bots_dir_path.glob("*"):
|
||||
if bot_dir.name.startswith(("Andy_", "Jill_", "agent_")):
|
||||
agent_logs_dir = bot_dir / "logs"
|
||||
if agent_logs_dir.exists():
|
||||
# Look for the experiment directory directly under logs
|
||||
exp_dir = agent_logs_dir / exp_name
|
||||
if exp_dir.exists():
|
||||
# Add timestamp for uniqueness
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f")
|
||||
dest_dir = success_output_dir / f"{bot_dir.name}_{timestamp}_{exp_name}"
|
||||
shutil.copytree(exp_dir, dest_dir)
|
||||
print(f"Copied successful log directory: {exp_dir} -> {dest_dir}")
|
||||
|
||||
# Move full logs to the full logs dir (read from project_root/bots, write to tasks/full_...)
|
||||
full_logs_dir = FULL_RUN_LOGS_DIR / run_id
|
||||
full_logs_dir.mkdir(parents=True, exist_ok=True)
|
||||
for bot_dir in bots_dir_path.glob("*"):
|
||||
if bot_dir.name.startswith(("Andy_", "Jill_", "agent_")):
|
||||
# bot_dir is already the full path, no need for agent_dir
|
||||
dest_dir = full_logs_dir / bot_dir.name
|
||||
if bot_dir.exists():
|
||||
shutil.copytree(bot_dir, dest_dir, dirs_exist_ok=True)
|
||||
print(f"Copied full agent directory for {bot_dir.name} to {dest_dir}")
|
||||
|
||||
run_counter += 1
|
||||
|
||||
print("\nAll evaluations done and successful runs saved.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Run multiple evaluations and collect successful logs")
|
||||
parser.add_argument("--eval_script", default="tasks/evaluation_script.py", help="Path to evaluation script relative to project root")
|
||||
parser.add_argument("--api", default="vllm", help="API to use")
|
||||
parser.add_argument("--model", default="meta-llama/Meta-Llama-3-8B-Instruct", help="Model to use")
|
||||
parser.add_argument("--num_agents", type=int, default=2, help="Number of agents")
|
||||
parser.add_argument("--num_parallel", type=int, default=2, help="Number of parallel runs")
|
||||
parser.add_argument("--tasks", nargs="+", default=["tasks/crafting_tasks/test_tasks/tasks_2_agents.json:2"],
|
||||
help="Tasks to run in format 'path:repeats'")
|
||||
|
||||
args = parser.parse_args()
|
||||
run_data_collection(args)
|
|
@ -1,24 +1,4 @@
|
|||
{
|
||||
"multiagent_techtree_1_stone_pickaxe": {
|
||||
"conversation": "Let's collaborate to build a stone pickaxe",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"wooden_pickaxe": 1
|
||||
},
|
||||
"1": {
|
||||
"wooden_axe": 1
|
||||
}
|
||||
},
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
},
|
||||
"target": "stone_pickaxe",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 20
|
||||
},
|
||||
"multiagent_techtree_1_shears": {
|
||||
"goal": "Collaborate with other agents to build a shear.",
|
||||
"conversation": "Let's collaborate to build a shear.",
|
||||
|
@ -28,16 +8,38 @@
|
|||
"iron_ingot": 1
|
||||
},
|
||||
"1": {
|
||||
"iron_ingot": 1
|
||||
"iron_ingot": 1,
|
||||
"crafting_table": 1
|
||||
}
|
||||
},
|
||||
"blocked_actions": {
|
||||
"0": [],
|
||||
"1": []
|
||||
"0": ["!collectBlocks"],
|
||||
"1": ["!collectBlocks"]
|
||||
},
|
||||
"target": "shears",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 20
|
||||
"timeout": 120
|
||||
},
|
||||
"multiagent_techtree_1_wooden_pickaxe": {
|
||||
"goal": "Collaborate with other agents to build a wooden pickaxe.",
|
||||
"conversation": "Let's collaborate to build a wooden pickaxe.",
|
||||
"agent_count": 2,
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"oak_planks": 10
|
||||
},
|
||||
"1": {
|
||||
"stick": 10
|
||||
}
|
||||
},
|
||||
"blocked_actions": {
|
||||
"0": ["!collectBlocks"],
|
||||
"1": ["!collectBlocks"]
|
||||
},
|
||||
"target": "wooden_pickaxe",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 120
|
||||
}
|
||||
}
|
||||
}
|
58
tasks/run_task_file.py
Normal file
58
tasks/run_task_file.py
Normal file
|
@ -0,0 +1,58 @@
|
|||
# run all tasks in a given file
|
||||
|
||||
import os
|
||||
import json
|
||||
import argparse
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
def run_task(task_path, task_id, profiles=None):
|
||||
"""Run a single task using main.js"""
|
||||
# Convert task_path to absolute path if it's relative
|
||||
if not os.path.isabs(task_path):
|
||||
task_path = os.path.abspath(task_path)
|
||||
|
||||
cmd = ["node", "main.js", "--task_path", task_path, "--task_id", task_id]
|
||||
|
||||
# Add profiles if provided
|
||||
if profiles:
|
||||
cmd.extend(["--profiles", *profiles])
|
||||
|
||||
print(f"Running task: {task_id}")
|
||||
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
# Execute the command from the project root directory
|
||||
process = subprocess.run(cmd, check=True, cwd=project_root)
|
||||
|
||||
return process.returncode == 0
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Run all tasks in a JSON file sequentially')
|
||||
parser.add_argument('--task_path', required=True, help='Path to the task file')
|
||||
parser.add_argument('--profiles', nargs='+', help='List of agent profile paths')
|
||||
parser.add_argument('--delay', type=int, default=2, help='Delay in seconds between tasks')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Load the task file
|
||||
with open(args.task_path, 'r') as f:
|
||||
tasks = json.load(f)
|
||||
|
||||
print(f"Found {len(tasks)} tasks in {args.task_path}")
|
||||
|
||||
# Run each task sequentially
|
||||
successful_tasks = 0
|
||||
for task_id in tasks:
|
||||
success = run_task(args.task_path, task_id, args.profiles)
|
||||
if success:
|
||||
successful_tasks += 1
|
||||
|
||||
# Wait between tasks
|
||||
time.sleep(args.delay)
|
||||
|
||||
print(f"Completed {successful_tasks}/{len(tasks)} tasks successfully")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
217
tasks/single_agent/crafting_train.json
Normal file
217
tasks/single_agent/crafting_train.json
Normal file
|
@ -0,0 +1,217 @@
|
|||
{
|
||||
"crafting_iron_pickaxe": {
|
||||
"goal": "Craft an iron pickaxe.",
|
||||
"initial_inventory": {
|
||||
"stone_pickaxe": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "iron_pickaxe",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_stick": {
|
||||
"goal": "Craft sticks.",
|
||||
"initial_inventory": {},
|
||||
"agent_count": 1,
|
||||
"target": "stick",
|
||||
"number_of_target": 4,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_oak_log": {
|
||||
"goal": "Get oak logs.",
|
||||
"initial_inventory": {},
|
||||
"agent_count": 1,
|
||||
"target": "oak_log",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_wooden_pickaxe": {
|
||||
"goal": "Craft a wooden pickaxe.",
|
||||
"initial_inventory": {},
|
||||
"agent_count": 1,
|
||||
"target": "wooden_pickaxe",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_stone_pickaxe": {
|
||||
"goal": "Craft a stone pickaxe.",
|
||||
"initial_inventory": {},
|
||||
"agent_count": 1,
|
||||
"target": "stone_pickaxe",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_shears": {
|
||||
"goal": "Craft shears.",
|
||||
"initial_inventory": {
|
||||
"0": {
|
||||
"iron_pickaxe": 1
|
||||
}
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "shears",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_redstone": {
|
||||
"goal": "Get redstone.",
|
||||
"initial_inventory": {
|
||||
"iron_pickaxe": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "redstone",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_gold_ingot": {
|
||||
"goal": "Get gold ingot.",
|
||||
"initial_inventory": {
|
||||
"iron_pickaxe": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "gold_ingot",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_copper_ingot": {
|
||||
"goal": "Get copper ingot.",
|
||||
"initial_inventory": {
|
||||
"iron_pickaxe": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "copper_ingot",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_diamond": {
|
||||
"goal": "Get diamond.",
|
||||
"initial_inventory": {
|
||||
"iron_pickaxe": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "diamond",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 1000
|
||||
},
|
||||
"crafting_pink_wool_missing_wool": {
|
||||
"goal": "Craft a pink wool.",
|
||||
"initial_inventory": {
|
||||
"pink_dye": 1,
|
||||
"shears": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "pink_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_purple_wool_missing_blue_dye": {
|
||||
"goal": "Craft a purple wool.",
|
||||
"initial_inventory": {
|
||||
"red_dye": 1,
|
||||
"shears": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "purple_wool",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_lodestone": {
|
||||
"goal": "Craft a lodestone.",
|
||||
"initial_inventory": {
|
||||
"netherite_ingot": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "lodestone",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_blue_dye": {
|
||||
"goal": "Craft a blue dye.",
|
||||
"agent_count": 1,
|
||||
"target": "blue_dye",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_light_gray_banner": {
|
||||
"goal": "Craft a light gray banner.",
|
||||
"initial_inventory": {
|
||||
"shears": 1,
|
||||
"light_gray_dye": 7,
|
||||
"oak_planks": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "light_gray_banner",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_brush_missing_copper_ingot_": {
|
||||
"goal": "Craft a brush.",
|
||||
"initial_inventory": {
|
||||
"feather": 1,
|
||||
"diamond_pickaxe": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "brush",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_shield_missing_planks": {
|
||||
"goal": "Craft a shield.",
|
||||
"initial_inventory": {
|
||||
"iron_ingot": 6
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "shield",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_shield_missing_iron_ingot": {
|
||||
"goal": "Craft a shield.",
|
||||
"initial_inventory": {
|
||||
"oak_planks": 7
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "shield",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_chest_minecart": {
|
||||
"goal": "Craft a chest",
|
||||
"agent_count": 1,
|
||||
"initial_inventory":{
|
||||
"chest": 1,
|
||||
"minecart": 1
|
||||
},
|
||||
"target": "chest_minecart",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
},
|
||||
"crafting_stone_hoe": {
|
||||
"goal": "Craft a stone hoe.",
|
||||
"initial_inventory": {
|
||||
"wooden_pickaxe": 1
|
||||
},
|
||||
"agent_count": 1,
|
||||
"target": "stone_hoe",
|
||||
"number_of_target": 1,
|
||||
"type": "techtree",
|
||||
"timeout": 500
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue