feat: Add complex command generation and error handling test cases for agent interactions

This commit is contained in:
scawful
2025-10-04 03:54:11 -04:00
parent 9ab2d2bde8
commit ed75bdc268
3 changed files with 37 additions and 7 deletions

View File

@@ -0,0 +1,11 @@
# Test 2: Complex Command Generation
# This requires knowledge of different water tiles for edges vs. center,
# and the ability to generate a 4x4 grid of `overworld set-tile` commands.
Create a 4x4 square of deep water on map 0 starting at coordinate 25, 30.
# This tests generating a long sequence of commands for a path.
Draw a vertical dirt path on map 1 from y=10 to y=25 at x=40.
# This tests a combination of different, related tiles to form a structure.
Build a small 2x2 house at 50, 50 on map 0 using the appropriate house tiles.

View File

@@ -0,0 +1,19 @@
# Test 3: Error Handling and Edge Cases
# Invalid room ID. The tool should fail, and the agent should report that failure gracefully.
List the sprites in room 0x999.
# Ambiguous query. There are many "main" palettes.
# The agent should ideally ask for clarification or state its assumption.
Describe the main palette.
# A query that is completely outside the scope of its tools.
# The agent should recognize it cannot answer this.
What is the story of A Link to the Past?
# A complex, multi-step request that would require both reading and writing in a loop.
# This tests if the agent attempts such a complex plan or asks the user to simplify.
Find all the tree tiles on map 0 and replace them with water tiles.
# A nonsense query to test its ability to reject impossible questions.
How many pixels are in a single rupee?

View File

@@ -65,22 +65,22 @@ You must follow this exact two-step process to avoid errors.
```json
[
{
"name": "resource_list",
"description": "List all labeled resources of a specific type (dungeons, sprites, palettes)",
"name": "resource-list",
"description": "List all labeled resources of a specific type (rooms, entrances, sprites, overlords, items)",
"parameters": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Resource type to list",
"enum": ["dungeon", "sprite", "palette", "all"]
"enum": ["room", "entrance", "sprite", "overlord", "item"]
}
},
"required": ["type"]
}
},
{
"name": "dungeon_list_sprites",
"name": "dungeon-list-sprites",
"description": "List all sprites in a specific dungeon room",
"parameters": {
"type": "object",
@@ -94,7 +94,7 @@ You must follow this exact two-step process to avoid errors.
}
},
{
"name": "overworld_find_tile",
"name": "overworld-find-tile",
"description": "Find all occurrences of a specific tile16 ID on overworld maps",
"parameters": {
"type": "object",
@@ -112,7 +112,7 @@ You must follow this exact two-step process to avoid errors.
}
},
{
"name": "overworld_describe_map",
"name": "overworld-describe-map",
"description": "Get summary information about an overworld map",
"parameters": {
"type": "object",
@@ -126,7 +126,7 @@ You must follow this exact two-step process to avoid errors.
}
},
{
"name": "overworld_list_warps",
"name": "overworld-list-warps",
"description": "List warp/entrance/exit points on the overworld",
"parameters": {
"type": "object",