Files
yaze/assets/agent/function_schemas.json
scawful 61f1d6fbac feat: Update function schemas and system prompt for enhanced agent capabilities
- Revised function schemas in `function_schemas.json` to streamline resource listing and searching, including new parameters for dungeon and overworld queries.
- Introduced a new system prompt in `system_prompt_v3.txt` to improve the agent's proactive exploration and multi-tool chaining strategies.
- Updated `GeminiAIService` to support the new prompt version and enhanced function calling logic for better tool integration.
- Added tests for multimodal image analysis and error handling in `test_gemini_vision.cc` to ensure robust functionality.
2025-10-04 22:14:04 -04:00

166 lines
4.8 KiB
JSON

{
"function_declarations": [
{
"name": "resource-list",
"description": "List all resources of a specific type from the ROM (rooms, sprites, dungeons, entrances, items, overlords)",
"parameters": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["room", "sprite", "dungeon", "entrance", "item", "overlord"],
"description": "Type of resource to list"
}
},
"required": ["type"]
}
},
{
"name": "resource-search",
"description": "Search for resources by name or pattern",
"parameters": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["room", "sprite", "dungeon", "entrance", "item"],
"description": "Type of resource to search"
},
"query": {
"type": "string",
"description": "Search query or pattern to match"
}
},
"required": ["type", "query"]
}
},
{
"name": "dungeon-list-sprites",
"description": "List all sprites in a specific dungeon or room",
"parameters": {
"type": "object",
"properties": {
"dungeon": {
"type": "string",
"description": "Dungeon name (e.g., 'hyrule_castle', 'eastern_palace') or leave empty for all"
},
"room_id": {
"type": "string",
"description": "Specific room ID to query (optional)"
}
}
}
},
{
"name": "dungeon-describe-room",
"description": "Get detailed information about a specific dungeon room including sprites, chests, layout, and connections",
"parameters": {
"type": "object",
"properties": {
"room_id": {
"type": "string",
"description": "Room ID to describe (0-296)"
},
"include_sprites": {
"type": "string",
"enum": ["true", "false"],
"description": "Include sprite information (default: true)"
}
},
"required": ["room_id"]
}
},
{
"name": "overworld-find-tile",
"description": "Find all locations where a specific tile16 ID appears in the overworld",
"parameters": {
"type": "object",
"properties": {
"tile_id": {
"type": "string",
"description": "Tile16 ID to search for (hex format like '0x42' or decimal)"
},
"map_id": {
"type": "string",
"description": "Specific overworld map to search (0-63, optional)"
}
},
"required": ["tile_id"]
}
},
{
"name": "overworld-describe-map",
"description": "Get detailed information about a specific overworld map including tile composition, warps, and sprites",
"parameters": {
"type": "object",
"properties": {
"map_id": {
"type": "string",
"description": "Overworld map ID (0-63 for light/dark world)"
},
"include_tiles": {
"type": "string",
"enum": ["true", "false"],
"description": "Include tile distribution statistics"
}
},
"required": ["map_id"]
}
},
{
"name": "overworld-list-warps",
"description": "List all warp/entrance points for a specific overworld map",
"parameters": {
"type": "object",
"properties": {
"map_id": {
"type": "string",
"description": "Overworld map ID (0-63)"
}
},
"required": ["map_id"]
}
},
{
"name": "overworld-list-sprites",
"description": "List all sprites placed on a specific overworld map",
"parameters": {
"type": "object",
"properties": {
"map_id": {
"type": "string",
"description": "Overworld map ID (0-63)"
}
},
"required": ["map_id"]
}
},
{
"name": "overworld-get-entrance",
"description": "Get detailed information about a specific entrance/exit including destination and properties",
"parameters": {
"type": "object",
"properties": {
"entrance_id": {
"type": "string",
"description": "Entrance ID to query"
}
},
"required": ["entrance_id"]
}
},
{
"name": "overworld-tile-stats",
"description": "Get statistical analysis of tile usage across overworld maps",
"parameters": {
"type": "object",
"properties": {
"map_id": {
"type": "string",
"description": "Specific map ID or 'all' for global statistics"
}
}
}
}
]
}