Get LLMs to Play Each Other in Chess: The Power of GenAI Agents!


LLM Chess

Finally a way to evaluate who is really the superior Large Language Model!

Setting Up the Chess Board

To begin, we initialize a chess board using the chess library. This board will serve as the playing field for our LLM agents.

import chess
import chess.svg

# Initialize the chess board
board = chess.Board()
made_move = False

Defining the Tools

Next, we define two essential tools: one for getting legal moves and another for making a move on the board.

  1. Tool for Getting Legal Moves: This function returns a list of all legal moves in the Universal Chess Interface (UCI) format.
def get_legal_moves() -> str:
return "Possible moves are: " + ",".join(
[str(move) for move in board.legal_moves]

2. Tool for Making a Move: This function executes a move on the board, updates the board state, and provides a visual representation of the move.

def make_move(move: str) -> str:
move = chess.Move.from_uci(move)
global made_move
made_move = True

# Display the board