Automata 是一个自我编码智能体(self-coding agent)项目,其目标是演化为完全自主、可自我编程的人工智能系统。项目名称源自希腊语 αὐτόματος,意为“自动、自主、自移”,同时呼应自动机理论——研究抽象机器与自动机及其可计算问题的学科。
用途与目标 Automata 的最终目标是达到能够独立设计、编写、测试和优化复杂软件系统的水平,包括理解并导航大型代码库、推理软件架构、优化性能,以及在必要时发明新算法或数据结构。项目认为,代码本质上是记忆的一种形式,当 AI 获得合适的工具时,可以实时进化出能力,并可能推动 AGI 的诞生。
主要能力 Automata 通过结合大语言模型(如 GPT-4)与向量数据库,形成集成系统,能够文档化、搜索和编写代码。其工作流程从生成全面的文档和代码实例开始,结合搜索能力,构成自我编码的基础。系统使用下游工具执行高级编码任务,持续构建专业能力和自主性。这种自我编码方式类似于自主工匠的工作,工具和技术根据反馈和积累的经验不断改进。
代码库中的嵌入由 SymbolCodeEmbedding 和 SymbolDocEmbedding 等类表示,这些类存储符号及其嵌入信息(高维空间中的向量)。SymbolCodeEmbedding 用于存储与符号代码相关的嵌入,SymbolDocEmbedding 用于存储与符号文档相关的嵌入。
使用方式 项目提供 Docker 安装方式:拉取 Docker 镜像并运行,将启动一个安装了 Automata 的容器并打开交互式 shell。Windows 用户可能需要通过 Visual Studio 的“使用 C++ 的桌面开发”安装 C++ 支持,并可能需要更新到 gcc-11 和 g++-11。运行 Automata 搜索需要 SCIP 索引,这些索引用于创建代码图,按依赖关系关联代码库中的符号。Automata 代码库的索引会定期生成和上传,但本地开发时程序员可能需要手动生成。
构建嵌入和文档后,可以运行系统并传入简单指令,建议初次运行时使用简单指令以确保系统正常工作。项目还提供了构建自定义智能体的示例:智能体初始化时接收简单指令,然后尝试编写代码来满足指令,并返回尝试结果。
适用场景 Automata 适用于希望探索自我编程 AI 系统的开发者、研究人员,以及需要自动化代码文档、搜索和编写任务的场景。它可以帮助理解大型代码库、执行高级编码任务,并作为研究 AGI 和自动机理论的实验平台。
限制 项目资料未提供具体的性能指标、支持的编程语言范围、系统资源要求或收费信息。完整目标的实现被认为是复杂且长期的。使用搜索功能需要 SCIP 索引,本地开发可能需要手动生成。Windows 用户可能需要额外配置 C++ 编译环境。