πŸ† Start Here: Register & Get Aura Credits: Aura Agent Hackathon

Agent Name: IPL Cricket Intelligence Agent

What it does: IPL Cricket Intelligence Agent is a conversational AI powered by a Neo4j Aura knowledge graph containing real IPL data from 2008–2024. It answers complex cricket questions through multi-hop graph traversal β€” from player awards to team rivalries to venue stats β€” delivering real insights, not just raw numbers.

Dataset and why a graph fits: I used the IPL Complete Dataset (2008–2024) containing 1,095 matches and 260,920 ball-by-ball deliveries. Cricket is naturally a graph problem β€” Players connect to Teams, Teams connect to Matches, Matches connect to Venues and Seasons. A graph captures these relationships perfectly, enabling queries that flat tables simply cannot answer.

Graph Structure:

  • Nodes: Player, Team, Match, Venue, Season
  • Relationships: PLAYED_FOR, PLAYED_IN, HELD_AT, IN_SEASON, PLAYER_OF_MATCH

Agent in action:

  • "Who has the most Player of Match awards?" β†’ AB de Villiers with 25 awards
  • "CSK vs MI head to head?" β†’ MI leads with 20 wins, CSK 17
  • "Which teams has Virat Kohli played for?" β†’ RCB exclusively

Technology Stack:

  • Database: Neo4j Aura Professional (Google Cloud Mumbai)

  • Agent: Neo4j Aura Built-in Agent

  • Query Language: Cypher
    Here's the json for my agent:
    {
    "name": "IPL Cricket Intelligence Agent",
    "description": "An intelligent agent powered by a Neo4j graph of IPL data from 2008-2024, capable of answering questions about players, teams, venues, player-of-match awards, and season performance.",
    "system_prompt": "You are an enthusiastic and insightful IPL Cricket Intelligence Agent. Always provide answers backed by real data from the IPL knowledge graph and share interesting analysis. Ensure your responses convey your passion for cricket.",
    "is_private": true,
    "is_mcp_enabled": false,
    "tools": [
    {
    "name": "Player's Teams",
    "description": "Lists all distinct teams a specific player has played for throughout their IPL career.",
    "enabled": true,
    "type": "cypherTemplate",
    "config": {
    "template": "MATCH (p:Player {name: $player_name})-[:PLAYED_FOR]->(t:Team) RETURN DISTINCT t.name AS Team",
    "parameters": [
    {
    "name": "player_name",
    "data_type": "string",
    "description": "The exact name of the cricket player."
    }
    ]
    }
    },
    {
    "name": "Matches Played by Team",
    "description": "Retrieves information about matches a specific team has played in.",
    "enabled": true,
    "type": "cypherTemplate",
    "config": {
    "template": "MATCH (t:Team {name: $team_name})-[:PLAYED_IN]->(m:Match) RETURN m.date AS Date, m.winner AS Winner, m.player_of_match AS PlayerOfMatch, m.city AS City, m.toss_winner AS TossWinner, m.toss_decision AS TossDecision LIMIT 50",
    "parameters": [
    {
    "name": "team_name",
    "data_type": "string",
    "description": "The exact name of the IPL team."
    }
    ]
    }
    },
    {
    "name": "Matches at Venue",
    "description": "Finds all matches that were held at a particular IPL venue.",
    "enabled": true,
    "type": "cypherTemplate",
    "config": {
    "template": "MATCH (v:Venue {name: $venue_name})<-[:HELD_AT]-(m:Match) RETURN m.date AS Date, m.winner AS Winner, m.player_of_match AS PlayerOfMatch, m.city AS City, m.toss_winner AS TossWinner, m.toss_decision AS TossDecision LIMIT 50",
    "parameters": [
    {
    "name": "venue_name",
    "data_type": "string",
    "description": "The exact name of the IPL venue/stadium."
    }
    ]
    }
    },
    {
    "name": "Player of Match Awards",
    "description": "Lists all matches where a specific player was awarded 'Player of the Match'.",
    "enabled": true,
    "type": "cypherTemplate",
    "config": {
    "template": "MATCH (p:Player {name: $player_name})-[:PLAYER_OF_MATCH]->(m:Match) RETURN m.date AS Date, m.winner AS Winner, m.city AS City, m.season AS SeasonYear LIMIT 50",
    "parameters": [
    {
    "name": "player_name",
    "data_type": "string",
    "description": "The exact name of the cricket player."
    }
    ]
    }
    },
    {
    "name": "Matches in Season",
    "description": "Lists all matches played during a specific IPL season.",
    "enabled": true,
    "type": "cypherTemplate",
    "config": {
    "template": "MATCH (s:Season {year: $season_year})<-[:IN_SEASON]-(m:Match) RETURN m.date AS Date, m.winner AS Winner, m.player_of_match AS PlayerOfMatch, m.city AS City, m.toss_winner AS TossWinner, m.toss_decision AS TossDecision LIMIT 50",
    "parameters": [
    {
    "name": "season_year",
    "data_type": "string",
    "description": "The year of the IPL season (e.g., '2023')."
    }
    ]
    }
    },
    {
    "name": "Natural Language to Cypher Tool",
    "description": "A general-purpose, free-form Text-to-Cypher tool that converts natural language questions into Cypher queries, executes them, and returns the results. Use this option when no specialized tool (e.g. for aggregation or domain-specific logic) is more appropriate.",
    "enabled": true,
    "type": "text2cypher"
    }
    ]
    }