AI-Programmer

GitHub
1.1k 266 简单 2 次阅读 6天前Agent图像开发框架
AI 解读 由 AI 自动生成,仅供参考

AI-Programmer 是一个利用人工智能与遗传算法自动编写程序的开源实验项目。它致力于探索计算机自主生成代码的潜力,试图解决特定计算任务的自动化编程问题,比如让机器自行写出输出“你好世界”或计算斐波那契数列的代码。

AI-Programmer 主要面向对 AI 编程、进化算法感兴趣的研究人员及技术开发者。虽然目前仍处于概念验证阶段,但它已成功生成包括字符串反转、加减法在内的多种基础程序,展现了惊人的进化能力。

其独特之处在于底层采用了一种仅含 8 条指令却具备图灵完备性的编程语言,便于构建解释器并在模拟环境中运行生成的代码。系统通过计算程序输出的适应度评分来评估质量,再利用选择、交叉和变异机制迭代优化基因组,直至达成目标。这种自我修改与改进代码的机制,为理解 AI 如何创造软件提供了极具价值的参考视角。

使用场景

某物联网设备维护团队需要为资源受限的嵌入式芯片生成多个执行特定数据格式化任务的微型程序,目标芯片仅支持一种特殊的 8 指令虚拟机架构。

没有 AI-Programmer 时

  • 工程师需手动编写晦涩的底层指令,耗时极长且极易出现语法错误导致程序崩溃。
  • 调整功能逻辑(如增加校验位或修改循环次数)必须重写代码并重新编译验证,反馈周期慢。
  • 难以穷举所有可能的指令组合来寻找最优的代码体积方案,往往只能凭经验猜测。
  • 缺乏自动化测试机制,无法快速评估不同实现方案的执行效率,依赖人工逐个检查。

使用 AI-Programmer 后

  • AI-Programmer 根据目标输出自动演化出合法的指令序列,完全省去了手写底层代码的过程。
  • 利用遗传算法迭代优化,直接生成满足性能要求的最终程序代码,大幅缩短开发周期。
  • 可批量生成不同版本的解决方案,快速对比筛选出最佳匹配项,适应多变的业务需求。
  • 内置模拟器自动验证输出结果,确保生成的程序逻辑准确无误,减少后期调试成本。

AI-Programmer 将特定领域的重复性编码工作转化为自动化进化过程,显著提升了底层程序的开发效率与准确性。

运行环境要求

操作系统
  • Windows
  • Linux
  • macOS
GPU

未说明

内存

未说明

依赖
notes该项目基于 C#/.NET 框架开发(非 Python 项目),需安装 .NET 9.0 SDK。使用遗传算法在 CPU 上运行,无 GPU 需求。支持 Visual Studio 和 VS Code 开发环境。
python未说明
.NET SDK 9.0
AI-Programmer hero image

快速开始

AI-Programmer

阅读完整文章 使用人工智能编写自修改/改进程序

阅读研究论文 AI 程序员:使用遗传算法 (Genetic Algorithms) 自主创建软件程序

AI-Programmer 是一个实验,旨在利用人工智能 (Artificial Intelligence) 和遗传算法 (Genetic Algorithms) 自动生成程序。由 AI 成功创建的 程序 包括:hello world, hello , addition, subtraction, reversing a string, fibonnaci sequence, 99 bottles of beer on the wall, 以及更多。它正变得越来越聪明。简而言之,这是一个带有自修改代码 (Self-modifying code) 的 AI 遗传算法实现。

动机

计算机有可能编写自己的程序吗?需要文字处理器?让计算机为你创建一个。需要屏幕截图工具?让计算机为你创建一个。更进一步,让计算机创建简化你生活的程序,甚至是你自己都没意识到的需求!

这就是 AI-Programmer 实验背后的理念。目标是最终创建一个能够编写自身计算机程序以解决特定计算问题的计算机程序。虽然计算机决定编写何种类型程序的能力超出了我们目前的手段,我们仍可以让计算机生成程序来解决非常具体的任务,例如输出文本 "Hello World"。AI 程序员使用一种晦涩的编程语言来生成软件程序。

详情

底层编程语言仅包含 8 条指令,同时具备图灵完备性 (Turing complete)。理论上,它有能力解决任何计算问题。这使得开发解释器 (Interpreter) 变得容易,该解释器能够在模拟环境中运行 AI 生成的程序。以此方式,每个生成的程序都可以被执行,并根据其性能排名为适应度分数 (fitness score)。由于 AI 使用的是图灵完备 (Turing complete) 的编程语言,AI 本身在理论上也具备解决任何计算问题的能力。然而,对于本实验,AI 将专注于向控制台输出简单字符串。

工作原理

AI-Programmer 的工作原理如下:

  • 基因组 (Genome) 由双精度浮点数数组组成。
  • 每个基因 (Gene) 对应编程语言中的一条指令。
  • 从随机基因组种群 (Population) 开始。
  • 通过将每个双精度数转换为其对应的指令并执行程序,将每个基因组解码为结果程序。
  • 根据程序写入控制台的输出(如果有),获取每个程序的适应度分数 (fitness score) 并进行排名。
  • 使用轮盘赌选择 (Roulette selection)、交叉 (Crossover) 和变异 (Mutation) 将最佳基因组结合,产生新一代。
  • 用新一代重复此过程,直到达到目标适应度分数。

适应度方法

适应度方法通过对生成程序的输出进行评分来工作。分数是通过查看程序输出的每个字符并将其值与目标字符相减来计算:

fitness += 256 - Math.Abs(console[i] - targetString[i]);

解释器指令集

> 	Increment the pointer.
< 	Decrement the pointer.
+ 	Increment the byte at the pointer.
- 	Decrement the byte at the pointer.
. 	Output the byte at the pointer.
, 	Input a byte and store it in the byte at the pointer.
[ 	Jump forward past the matching ] if the byte at the pointer is zero.
] 	Jump backward to the matching [ unless the byte at the pointer is zero.

结果?

请记住,这是一个概念验证 (Proof of concept)。到目前为止,该程序已成功在其目标编程语言中编写了几个程序。你可以在 /Results 文件夹中查看所有结果的截图。这些测试是在 Intel Core 2 Quad 2.5GHz 上运行的。

hi

AI 成功编写了一个程序,在约 1 分钟后的第 5,700 代输出了 "hi"。它生成了以下代码:

+[+++++-+>++>++-++++++<<]>++.[+.]-.,-#>>]<]

虽然上述代码包含解析错误,如不匹配的括号,我们的模拟解释器 (Interpreter) 会计算直到程序失败为止的结果,因此在上述情况下,语法错误(稍后出现在代码中,在找到解决方案之后)不会影响适应度。

你可以尝试将上述代码粘贴到在线 解释器 中。点击“启动调试器”,忽略警告,然后点击“运行到断点”。注意输出。

如果我们修剪掉多余的代码,可以看到以下语法有效的代码:

+[+++++-+>++>++-++++++<<]>++.[+.]

hello

AI 成功编写了一个程序,在约 29 分钟后的第 252,0000 代输出了 "hello"。它生成了以下代码:

+-+-+>-<[++++>+++++<+<>++]>[-[---.--[[-.++++[+++..].+]],]<-+<+,.+>[[.,],+<.+-<,--+.]],+][[[.+.,,+].-

在生成过程中,AI 非常接近解决方案,但有几个字母被绑定在一起,位于一个循环内。AI 能够通过在该问题循环内创建一个内部循环来克服这一点,该内部循环成功输出了正确的字符,并继续处理。

Hi!

在另一个例子中,AI 成功编写了一个程序,在约 2 小时 7 分钟后的第 1,219,400 代输出了 "Hi!"。它生成了以下代码:

>-----------<++[[++>++<+][]>-.+[+++++++++++++++++++++++++++++><+++.<><-->>>+].]

I love all humans

AI 成功编写了一个程序,在约 10 小时后的第 6,057,200 代输出了 "I love all humans"。它生成了以下代码:

+[>+<+++]+>------------.+<+++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++.+++.+++++++.-----------------.--<.>--.+++++++++++..---<.>-.+++++++++++++.--------.------------.+++++++++++++.+++++.

使用更快的 PC 可能会生成更复杂的程序。下一步包括尝试接受用户输入并处理结果。

代码使用快速入门指南

兼容 Visual Studio 和 VS Code。

使用代码

默认情况下,代码配置为使用经典指令集,并编写一个用于输出字符串的程序。若要更改生成的字符串,只需展开“私有变量”部分,并将 TargetString 的文本更改为您想要的值。

private static TargetParams _targetParams = new TargetParams { TargetString = "hello world" };

若要更改 AI 所编写的程序类型,请修改 GetFitnessMethod() 内部的适应度方法(fitness method)。

private static IFitness GetFitnessMethod()
{
	return new StringStrictFitness(_ga, _maxIterationCount, _targetParams.TargetString, _appendCode);
}

您可以将其更改为 AI.Programmer.Fitness/Concrete 项目中的任何类。示例:

return new StringStrictFitness(_ga, _maxIterationCount, _targetParams.TargetString, _appendCode);
return new AddFitness(_ga, _maxIterationCount);
return new SubtractFitness(_ga, _maxIterationCount);
return new ReverseStringFitness(_ga, _maxIterationCount);
return new HelloUserFitness(_ga, _maxIterationCount, _targetString);

要使用子例程(sub-routines),您需要启用函数功能。这将使 AI 生成程序的速度快得多。取消注释 functionGenerator 的代码,如下所示:

private static IFunction _functionGenerator = new StringFunction(() => GetFitnessMethod(), _bestStatus, fitnessFunction, OnGeneration, _crossoverRate, _mutationRate, _genomeSize, _targetParams);

将 App.config 设置为使用 BrainPlus,以便 AI 可以访问子例程指令:

<appSettings>
	<add key="BrainfuckVersion" value="2"/> <!-- 1 = BF Classic, 2 = BrainPlus (BF Extended Type 3, Functions, Faster) -->
</appSettings>

使用子例程时,所需代码更少。因此,为了提升速度,您可以使用更小的 genomeSize。展开遗传算法设置(Genetic Algorithm Settings)部分,并将 _genomeSize 更改为较小的值:

private static int _genomeSize = 50;

尽情实验,享受乐趣!

作者

Kory Becker http://www.primaryobjects.com/kory-becker

使用人工智能编写自修改/改进程序

突破自编程人工智能的极限

自编程人工智能学会使用函数

BF-Programmer:一种利用遗传算法自主构建简单程序的非常规方法

在 GitHub 上查看 https://github.com/primaryobjects/ai-programmer

版权

版权所有 (c) 2018 Kory Becker http://primaryobjects.com/kory-becker

版本历史

v1.0
OPTIMIZED_CODE
BEFORE_STRATEGY
BEFORE_SIMPLE_FITNESS_MERGE

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架