| name | wargame_query |
| description | Tactical map query skill for accessing war game state information. Use when needing information about unit positions, friendly forces, hostile forces, or tactical situation from the interactive map. |
Tactical Map Query Skill
Overview
This skill provides access to the tactical map state, showing military unit positions with NATO symbols. Use it to get information about friendly and hostile forces for comprehensive battlefield awareness.
Context Awareness
The system context header indicates if the tactical map is available. If available, you'll see unit counts. If not available, focus on video and PDF analysis instead.
Available Actions
1. tactical_situation
Get overall tactical overview.
result = wargame_query_skill("tactical_situation")
2. friendly_units
Get all friendly (blue force) units. Use for "our forces" queries.
result = wargame_query_skill("friendly_units")
Note: Friendly unit names typically start with "F-" (e.g., F-1, F-2)
3. hostile_units
Get all hostile (red force/enemy) units.
result = wargame_query_skill("hostile_units")
Note: Hostile unit names typically start with "H-" (e.g., H-1, H-2)
4. unit_details
Get detailed information about a specific unit.
result = wargame_query_skill("unit_details", unit_name="Alpha Company")
5. unit_waypoints
Get movement waypoints (planned route) for a unit.
result = wargame_query_skill("unit_waypoints", unit_name="Bravo Platoon")
6. units_by_type
Find all units of a specific type.
result = wargame_query_skill("units_by_type", unit_type="ARMOR")
Valid Unit Types
- INFANTRY, ARMOR, ARTILLERY, AIR_DEFENSE
- AVIATION, ENGINEER, RECONNAISSANCE, SIGNAL
- MEDICAL, SUPPLY, HEADQUARTERS, MECHANIZED
- MOTORIZED, AIRBORNE, SPECIAL_FORCES, NAVY
- CYBER, ELECTRONIC_WARFARE, UAV
Critical: Keep Results Separate
When comparing friendly and hostile forces, never mix up the results:
friendly_result = wargame_query_skill("friendly_units")
hostile_result = wargame_query_skill("hostile_units")
friendly_units = friendly_result["result"]["units"]
hostile_units = hostile_result["result"]["units"]
print("FRIENDLY FORCES:")
for unit in friendly_units:
print(f" {unit['name']} at {unit['location']}")
print("HOSTILE FORCES:")
for unit in hostile_units:
print(f" {unit['name']} at {unit['location']}")
Integrating with Video Analysis
Correlate video findings with map positions:
video_tanks = videodb_query_skill("object_search", object_type="tank")
map_armor = wargame_query_skill("units_by_type", unit_type="ARMOR")
Error Handling
result = wargame_query_skill("tactical_situation")
if result["status"] == "error":
print("Tactical map not available")
elif result["status"] == "success":
if result["result"]["total_units"] == 0:
print("No units on tactical map")
else:
Best Practices
- Check if tactical map is available before querying
- Keep friendly and hostile results separate
- Include unit movement info (waypoints) when relevant
- Correlate map data with video analysis
- Always specify which side (friendly/hostile) units belong to