diff --git a/README.md b/README.md index 95f90ef..07ce15a 100644 --- a/README.md +++ b/README.md @@ -10,15 +10,15 @@ Do not connect this bot to public servers with coding enabled. This project allo ## Requirements -- [Minecraft Java Edition](https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc) (up to v1.21.1, recommend v1.20.4) -- [Node.js Installed](https://nodejs.org/) (at least v14) +- [Minecraft Java Edition](https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc) (up to v1.21.1, recommend v1.21.1) +- [Node.js Installed](https://nodejs.org/) (at least v18) - One of these: [OpenAI API Key](https://openai.com/blog/openai-api) | [Gemini API Key](https://aistudio.google.com/app/apikey) | [Anthropic API Key](https://docs.anthropic.com/claude/docs/getting-access-to-claude) | [Replicate API Key](https://replicate.com/) | [Hugging Face API Key](https://huggingface.co/) | [Groq API Key](https://console.groq.com/keys) | [Ollama Installed](https://ollama.com/download). | [Mistral API Key](https://docs.mistral.ai/getting-started/models/models_overview/) | [Qwen API Key [Intl.]](https://www.alibabacloud.com/help/en/model-studio/developer-reference/get-api-key)/[[cn]](https://help.aliyun.com/zh/model-studio/getting-started/first-api-call-to-qwen?) | [Novita AI API Key](https://novita.ai/settings?utm_source=github_mindcraft&utm_medium=github_readme&utm_campaign=link#key-management) | ## Install and Run 1. Make sure you have the requirements above. -2. Clone or download this repository (big green button) +2. Clone or download this repository (big green button) 'git clone https://github.com/kolbytn/mindcraft.git' 3. Rename `keys.example.json` to `keys.json` and fill in your API keys (you only need one). The desired model is set in `andy.json` or other profiles. For other models refer to the table below. @@ -28,7 +28,7 @@ Do not connect this bot to public servers with coding enabled. This project allo 6. Run `node main.js` from the installed directory -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. +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. To run tasks please refer to [Minecollab Instructions](minecollab.md#installation) ## Tasks diff --git a/minecollab.md b/minecollab.md index 29206d4..cebaaa1 100644 --- a/minecollab.md +++ b/minecollab.md @@ -41,6 +41,8 @@ You can view the crafting task in action [here](https://www.youtube.com/shorts/V ## Installation +You **DO NOT** need Linux to run this, you can run on Windows with the --no-launch-world flag and by installing git bash. + Please follow the installation docs in the README to install mindcraft. You can create a docker image using the Dockerfile. If you don't own Minecraft you can run a limited version solely for offline games using these instructions: diff --git a/src/agent/tasks/tasks.js b/src/agent/tasks/tasks.js index 1c00d95..a7948f5 100644 --- a/src/agent/tasks/tasks.js +++ b/src/agent/tasks/tasks.js @@ -426,7 +426,6 @@ export class Task { } async initBotTask() { - await this.setAgentGoal(); await this.agent.bot.chat(`/clear ${this.name}`); console.log(`Cleared ${this.name}'s inventory.`); @@ -511,7 +510,7 @@ export class Task { this.agent.killAll(); } } - + await new Promise((resolve) => setTimeout(resolve, 500)); if (this.data.conversation && this.agent.count_id === 0) { let other_name = this.available_agents.filter(n => n !== this.name)[0]; let waitCount = 0; @@ -526,8 +525,7 @@ export class Task { } await executeCommand(this.agent, `!startConversation("${other_name}", "${this.data.conversation}")`); } - - + await this.setAgentGoal(); } async teleportBots() { diff --git a/src/models/vllm.js b/src/models/vllm.js index 52e3e5b..e9116ef 100644 --- a/src/models/vllm.js +++ b/src/models/vllm.js @@ -38,6 +38,7 @@ export class VLLM { try { console.log('Awaiting openai api response...') // console.log('Messages:', messages); + // todo set max_tokens, temperature, top_p, etc. in pack let completion = await this.vllm.chat.completions.create(pack); if (completion.choices[0].finish_reason == 'length') throw new Error('Context length exceeded'); diff --git a/tasks/construction_tasks/church_three_agents.pdf b/tasks/construction_tasks/church_blueprint.pdf similarity index 100% rename from tasks/construction_tasks/church_three_agents.pdf rename to tasks/construction_tasks/church_blueprint.pdf diff --git a/tasks/construction_tasks/human_ai/1_agent_1_human.json b/tasks/construction_tasks/human_ai/1_agent_1_human.json index 2dfaa22..23171da 100644 --- a/tasks/construction_tasks/human_ai/1_agent_1_human.json +++ b/tasks/construction_tasks/human_ai/1_agent_1_human.json @@ -2351,7 +2351,7 @@ } }, "usernames": [ - "izzycw" + "erringnine" ] } } \ No newline at end of file diff --git a/tasks/cooking_tasks/human_ai/1_agent_1_human.json b/tasks/cooking_tasks/human_ai/1_agent_1_human.json new file mode 100644 index 0000000..20a4973 --- /dev/null +++ b/tasks/cooking_tasks/human_ai/1_agent_1_human.json @@ -0,0 +1,38 @@ +{ + "multiagent_cooking_bread_golden_apple": { + "type": "cooking", + "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: Get 1 apple and 8 gold ingots from your inventory or other bots.", + "Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple." + ] + }, + "agent_count": 1, + "human_count": 1, + "target": { + "bread": 1, + "golden_apple": 1 + }, + "initial_inventory": { + "0": { + "gold_ingot": 4, + "apple": 1 + }, + "1": { + "gold_ingot": 4 + } + }, + "goal": { + "0": "Collaborate with other agents around you to make bread, golden_apple, The recipes are as follows:\nRecipe for bread:\n['Step 1: Go to the farm and collect 3 wheat.', 'Step 2: Go to the crafting table and use the wheat to craft bread.']\nRecipe for golden_apple:\n['Step 1: Get 1 apple and 8 gold ingots from your inventory or other bots.', 'Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.']\n", + "1": "Collaborate with other agents around you to make bread, golden_apple, The recipes are as follows:\nRecipe for bread:\n['Step 1: Go to the farm and collect 3 wheat.', 'Step 2: Go to the crafting table and use the wheat to craft bread.']\nRecipe for golden_apple:\n['Step 1: Get 1 apple and 8 gold ingots from your inventory or other bots.', 'Step 2: Go to the crafting table and surround the apple with the gold ingots to create a golden apple.']\n" + }, + "conversation": "Let's collaborate to make bread, golden_apple, ", + "usernames": [ + "izzycw" + ] + } +} \ No newline at end of file diff --git a/tasks/crafting_tasks/human_ai/1_agent_1_human.json b/tasks/crafting_tasks/human_ai/1_agent_1_human.json new file mode 100644 index 0000000..cf01d07 --- /dev/null +++ b/tasks/crafting_tasks/human_ai/1_agent_1_human.json @@ -0,0 +1,31 @@ +{ + "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": 1, + "target": "pink_wool", + "number_of_target": 1, + "type": "techtree", + "max_depth": 1, + "depth": 0, + "timeout": 300, + "blocked_actions": { + "0": [], + "1": [] + }, + "missing_items": [], + "human_count": 1, + "usernames": [ + "izzycw" + ], + "requires_ctable": false + } +} \ No newline at end of file diff --git a/tasks/crafting_tasks/human_ai_tasks/1_agent_1_human_copy.json b/tasks/crafting_tasks/human_ai/1_agent_1_human_copy.json similarity index 100% rename from tasks/crafting_tasks/human_ai_tasks/1_agent_1_human_copy.json rename to tasks/crafting_tasks/human_ai/1_agent_1_human_copy.json diff --git a/tasks/crafting_tasks/human_ai_tasks/3_agent_1_human.json b/tasks/crafting_tasks/human_ai/3_agent_1_human.json similarity index 100% rename from tasks/crafting_tasks/human_ai_tasks/3_agent_1_human.json rename to tasks/crafting_tasks/human_ai/3_agent_1_human.json diff --git a/tasks/crafting_tasks/human_ai_tasks/1_agent_1_human.json b/tasks/crafting_tasks/human_ai_tasks/1_agent_1_human.json deleted file mode 100644 index e539510..0000000 --- a/tasks/crafting_tasks/human_ai_tasks/1_agent_1_human.json +++ /dev/null @@ -1,793 +0,0 @@ -{ - "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": 1, - "target": "pink_wool", - "number_of_target": 1, - "type": "techtree", - "max_depth": 1, - "depth": 0, - "timeout": 300, - "blocked_actions": { - "0": [], - "1": [] - }, - "missing_items": [], - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "lime_wool", - "number_of_target": 1, - "type": "techtree", - "max_depth": 2, - "depth": 0, - "timeout": 300, - "blocked_actions": { - "0": [], - "1": [ - "!getCraftingPlan" - ] - }, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "purple_banner", - "number_of_target": 1, - "type": "techtree", - "max_depth": 3, - "depth": 0, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "bookshelf", - "number_of_target": 1, - "type": "techtree", - "max_depth": 1, - "depth": 0, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "compass", - "number_of_target": 1, - "type": "techtree", - "max_depth": 2, - "depth": 0, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "fishing_rod", - "number_of_target": 1, - "type": "techtree", - "max_depth": 3, - "depth": 1, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "cake", - "number_of_target": 1, - "type": "techtree", - "max_depth": 3, - "depth": 0, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "golden_carrot", - "number_of_target": 1, - "type": "techtree", - "max_depth": 2, - "depth": 0, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "map", - "number_of_target": 1, - "type": "techtree", - "max_depth": 1, - "depth": 0, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "magenta_wool", - "number_of_target": 1, - "type": "techtree", - "max_depth": 3, - "depth": 2, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "lectern", - "number_of_target": 1, - "type": "techtree", - "max_depth": 2, - "depth": 2, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "clock", - "number_of_target": 1, - "type": "techtree", - "max_depth": 2, - "depth": 0, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "jukebox", - "number_of_target": 1, - "type": "techtree", - "max_depth": 1, - "depth": 1, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "light_gray_wool", - "number_of_target": 1, - "type": "techtree", - "max_depth": 2, - "depth": 1, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "activator_rail", - "number_of_target": 1, - "type": "techtree", - "max_depth": 3, - "depth": 2, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "campfire", - "number_of_target": 1, - "type": "techtree", - "max_depth": 3, - "depth": 2, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "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": 1, - "target": "crossbow", - "number_of_target": 1, - "type": "techtree", - "max_depth": 3, - "depth": 2, - "timeout": 300, - "human_count": 1, - "usernames": [ - "izzycw" - ], - "blocked_actions": { - "0": [], - "1": [] - }, - "missing_items": [], - "requires_ctable": true - } -} \ No newline at end of file diff --git a/tasks/evaluation_script.py b/tasks/evaluation_script.py index cb380f5..4b5cb3c 100644 --- a/tasks/evaluation_script.py +++ b/tasks/evaluation_script.py @@ -179,7 +179,8 @@ def check_folder_results(folder_path): # Print summary print("\n=== Evaluation Results ===") - print(f"Total tasks evaluated: {results['total']}") + print("\nEvaluating Tasks!") + print(f"Results so far: {results['total']}") if "construction" not in folder_path: print(f"Successful tasks: {results['successful']}") @@ -517,7 +518,7 @@ def make_ops(agent_names, session_name): if agents_op: print("Agents are operators! You are good to go :D") else: - print("Agents are not operators! Something went wrong :(") + print("Agents are not operators! We will need to try making them operators again!") make_ops(agent_names, session_name) def check_agent_ops(agent_names, ops_file="ops.json"): diff --git a/tasks/running_human_ai.md b/tasks/running_human_ai.md new file mode 100644 index 0000000..1dcb8ec --- /dev/null +++ b/tasks/running_human_ai.md @@ -0,0 +1,34 @@ +# Human AI Instructions + +## Finishing Installation + +Install the conda environment for running the experiments by executing this in your command line: + +``` +conda create --name mindcraft python=3.11 +conda activate mindcraft +pip install -r requirements.txt +``` + +## Setting up the world + +Setting up the world! Make sure your world has cheats enabled! You can do this on creation of your Minecraft world in the Minecraft console, or you can type ```/op @a``` in the chat or in the console of the world launched from the jar file. + +## Construction +Press F3 to view the coordinates of the game. And pull up the file tasks/construction_tasks/church_blueprint.pdf +Run +``` +python tasks/evaluation_script.py --no_launch_world --template_profile profiles/tasks/construction_profile.json --task_path tasks/construction_tasks/human_ai/1_agent_1_human.json --usernames YOUR_USERNAME --num_agents 1 --insecure_coding +``` + +## Crafting + +``` +python tasks/evaluation_script.py --no_launch_world --template_profile profiles/tasks/crafting_profile.json --task_path tasks/crafting_tasks/human_ai/1_agent_1_human.json --usernames YOUR_USERNAME --num_agents 1 +``` + +## Cooking + +``` +python tasks/evaluation_script.py --no_launch_world --template_profile profiles/tasks/cooking_profile.json --task_path tasks/cooking_tasks/human_ai/1_agent_1_human.json --usernames YOUR_USERNAME --num_agents 1 +``` \ No newline at end of file