diff --git a/.gitignore b/.gitignore index 95f54ae..94e3d0b 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,5 @@ wandb/ experiments/ andy_*.json jill_*.json -src/models/logs/* \ No newline at end of file +src/models/logs/* +server_data* \ No newline at end of file diff --git a/evaluation_script.py b/evaluation_script.py index 4aaf596..2d05a6c 100644 --- a/evaluation_script.py +++ b/evaluation_script.py @@ -126,7 +126,7 @@ def launch_parallel_experiments(task_path, 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, world_name=world_name) + servers = create_server_files("./server_data/", num_parallel, world_name=world_name) date_time = datetime.now().strftime("%m-%d_%H-%M") experiments_folder = f"experiments/{exp_name}_{date_time}" exp_name = f"{exp_name}_{date_time}" @@ -292,7 +292,7 @@ def create_server_files(source_path, num_copies, world_name="Forest"): print(num_copies) servers = [] for i in range(num_copies): - dest_path = f"../server_data_{i}/" + 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, @@ -319,7 +319,7 @@ def edit_file(file, content_dict): 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}/" + dest_path = f"./server_data_{i}/" delete_server_files(dest_path) def copy_server_files(source_path, dest_path): @@ -338,7 +338,7 @@ def delete_server_files(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"): +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" @@ -406,7 +406,7 @@ def main(): parser.add_argument('--world_name', default="Forest", help='Name of the world') args = parser.parse_args() - + try: subprocess.run(['tmux', 'kill-server'], check=True) except: diff --git a/src/agent/agent.js b/src/agent/agent.js index a403cd9..c4e928d 100644 --- a/src/agent/agent.js +++ b/src/agent/agent.js @@ -556,13 +556,6 @@ export class Agent { cleanKill(msg='Killing agent process...', code=1) { this.history.add('system', msg); - - if (code === 2 || code === 3 || code === 4) { - this.bot.chat('Exiting the world permanently.'); - } - else { - this.bot.chat('Restarting.') - } this.bot.chat(code > 1 ? 'Restarting.': 'Exiting.'); this.history.save(); process.exit(code); @@ -571,7 +564,7 @@ export class Agent { 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.add('system', `Task ended with score : ${res.score}`); await this.history.save(); console.log('Task finished:', res.message); this.killAll(); diff --git a/src/agent/tasks.js b/src/agent/tasks.js index 592e3ec..0abfa34 100644 --- a/src/agent/tasks.js +++ b/src/agent/tasks.js @@ -128,9 +128,13 @@ class CookingCraftingTaskValidator { } validate() { const result = checkItemPresence(this.data, this.agent); + let score = 0; + if (result.success) { + score = 1; + } return { "valid": result.success, - "score": result.success ? 1 : 0, + "score": score, }; } } @@ -279,7 +283,6 @@ export class Task { await new Promise((resolve) => setTimeout(resolve, 3000)); if (this.data.initial_inventory) { - console.log("\n\n\n\n\n") console.log("Setting inventory..."); let initialInventory = {}; @@ -290,7 +293,6 @@ export class Task { } else { initialInventory = this.data.initial_inventory; console.log("Initial inventory:", initialInventory); - console.log("\n\n\n\n"); } console.log(this.data.initial_inventory); @@ -343,7 +345,7 @@ export class Task { } async teleportBots() { - console.log('\n\n\n\n\nTeleporting bots'); + console.log('\n\nTeleporting bots'); function getRandomOffset(range) { return Math.floor(Math.random() * (range * 2 + 1)) - range; }