I’ve been thinking for a long time about how we can explain an agent’s individual actions in a long-horizon task, when their consequences may only become clear many steps later.
Chess and Go provide strong engines that give us reliable estimates of move quality, even when the reasons behind a good move are far from obvious. That lets us ground explanations in the consequences of a move, compared with those of alternative moves. The question then is how can we discover useful concepts and turn them into explanations of why one move is better than another?
I’m excited to explore how these ideas might extend to coding agents and other agents operating in open-ended environments, where evaluating intermediate actions and explaining their value is much harder.
LMs can play chess, but they can't really explain their moves well (chess engines can't at all). Our new BinProp scaffold tackles this, and nearly triples LMs’ score on our chess-explanation benchmark. It works on other games too!
Try it on your own games on our site-🧵👇