Introducing Cattykit – a toolkit for cognitive models

Introducing Cattykit – a toolkit for cognitive models

Introducing Cattykit – a toolkit for cognitive models

When I first began a career in Artificial Intelligence research, back in 2019, Large Language Models had not yet come to dominate the field, and I happened to develop an interest in the cognitively inspired models of the Fluid Analogies Research Group (FARG)1. Their models of analogy-making and pattern recognition such as Copycat, Tabletop, Metacat, Musicat, and Seqsee were mostly produced in the 1990s and 2000s. They used symbolic representations, but promised to do away with the rigid logic and centralized decision making of the so-called “expert systems” that had by then fallen out of favour. Unfortunately, despite the shared underlying philosophy of FARG models, they were typically developed as stand-alone projects, often using different programming languages, some of which are now obsolete2. This made it difficult for me to build on their research or even to casually experiment with the models in the way that you can now with open-weight LLMs. I recently therefore decided to set about building modern reproductions of the models within a unified framework, Cattykit – a toolkit for building –cats.

I have now released on PyPI, the first version of this framework which defines an interface for the models and provides tools for logging and running experiments. I have almost finished a reproduction of Copycat that runs within this framework and I am also developing Cattycam, a tool for visualizing the internal workings of models as they run. In future, I plan to implement more reproductions and turn Cattykit into a library of models’ generalizable components. It is my hope that this toolkit and accompanying models will allow people to play around with an interesting family of AI models and maybe develop their own.

The models, in their original implementations, include: a shared workspace which contains graph-like structures representing a problem and the work towards its solution; a symbolic Slipnet which represents concepts that have become active during the course of the program’s run; and a coderack which schedules the running of codelets (micro-agents which make incremental changes to the structures in the workspace). The selection of codelets and changes to the workspace all happen with a degree of randomness that is determined by the temperature of the program3. Unlike in language model decoding, the program sets its own temperature and adjusts it according to the quality and coherence of structures in its workspace. The model Metacat has yet more apparatus for inspecting its own behaviour.

As I have previously argued4, the distributed nature of these models’ architectures represents a pathway in the search for human-like general intelligence that is orthogonal to that taken by deep learning research. Artificial neural networks, including LLMs have benefited from replacing symbolic representations with distributed and fluid vector-based representations, but have largely stuck with rigid and fixed architectures, whereas the FARG approach uses representations which are largely symbolic within a more flexible distributed architecture. I hope that Cattykit can aid further research in this direction, watch this space for updates!

  1. Their work is described in the 1995 book by Douglas Hofstadter and his then research group Fluid Concepts and Creative Analogies ↩︎
  2. Many of the original implementations of FARG models can be found on their GitHub repository. ↩︎
  3. You can find a video demonstrating Metacat on YouTube ↩︎
  4. See my paper presented at AGI 2025 ↩︎