Automata is a self-coding agent project whose goal is to evolve into a fully autonomous, self-programming artificial intelligence system. The project name comes from the Greek word αὐτόματος, meaning "automatic, autonomous, self-moving," and also echoes automata theory—the discipline that studies abstract machines and automata and the problems they can compute.
Purpose and Goals Automata's ultimate goal is to reach a level where it can independently design, write, test, and optimize complex software systems, including understanding and navigating large codebases, reasoning about software architecture, optimizing performance, and inventing new algorithms or data structures when necessary. The project holds that code is essentially a form of memory, and that when AI obtains the right tools, it can evolve capabilities in real time and may help bring about the birth of AGI.
Main Capabilities By combining large language models (such as GPT-4) with a vector database, Automata forms an integrated system capable of documenting, searching, and writing code. Its workflow begins with generating comprehensive documentation and code instances, which, combined with search capabilities, forms the foundation of self-coding. The system uses downstream tools to perform advanced coding tasks, continuously building specialized capabilities and autonomy. This self-coding approach is similar to the work of an autonomous artisan, with tools and techniques continuously improving based on feedback and accumulated experience.
Embeddings in the codebase are represented by classes such as SymbolCodeEmbedding and SymbolDocEmbedding, which store symbols and their embedding information (vectors in a high-dimensional space). SymbolCodeEmbedding is used to store embeddings related to symbol code, and SymbolDocEmbedding is used to store embeddings related to symbol documentation.
Usage How to Use The project provides a Docker installation method: pull the Docker image and run it, which will start a container with Automata installed and open an interactive shell. Windows users may need to install C++ support through Visual Studio's "Desktop development with C++," and may need to update to gcc-11 and g++-11. Running Automata search requires SCIP indexes, which are used to create code graphs that associate symbols in the codebase by dependency relationships. Indexes for the Automata codebase are generated and uploaded periodically, but programmers may need to generate them manually during local development.
After building embeddings and documentation, you can run the system and pass in simple instructions. It is recommended to use simple instructions on the first run to ensure the system works properly. The project also mentionsProvides an example of building a custom agent: the agent receives simple instructions during initialization, then attempts to write code to satisfy the instructions and returns the result of the attempt.
Use cases Automata is suitable for developers and researchers who want to explore self-programming AI systems, as well as scenarios that require automated code documentation, search, and writing tasks. It can help understand large codebases, perform advanced coding tasks, and serve as an experimental platform for researching AGI and automata theory.
Limitations The project materials do not provide specific performance metrics, the range of supported programming languages, system resource requirements, or pricing information. Achieving the full goal is considered complex and long-term. Using the search feature requires a SCIP index, and local development may require manual generation. Windows users may need additional configuration of the C++ compilation environment.