An agent that can solve Sudoku puzzles, following a backtracking search, using a combination of depth-first search and constraint propagation.