侧边栏壁纸
博主头像
打功人聊AI

行动起来,活在当下

  • 累计撰写 23 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

一个AI机器人,连续28天自己写自己的代码,从200行长到了3万行

一个AI机器人,连续28天自己写自己的代码,从200行长到了3万行

你敢信?

一个 AI 编程助手,从 200 行代码起步,没人给它写需求,没人给它排优先级。它自己读自己的源码,自己找 bug,自己加功能,自己写测试。

28 天后:3万行 Rust 代码,1346 个测试用例,14 个核心模块。

项目叫 yoyo-evolve,GitHub 上完全开源,每一条 commit 都是机器人自己提交的。


先看它怎么进化的

它的进化不是乱来的,每次都遵循一个严格的循环:

第1步:自我评估(assessment)

读一遍自己的全部源码,像一个代码审查员一样,找出当前最值得改进的地方。可能是一个 bug,可能是一个缺失的功能,也可能是一个性能瓶颈。

第2步:制定计划(session plan)

根据评估结果,列出本轮要做的事情。跟人类开发者写 TODO list 没区别。

第3步:动手改代码

实现改进。写新功能、修 bug、重构代码,所有人类程序员会做的事它都做。

第4步:自测自纠

跑测试。不过就修,修完再跑。代码格式不符合规范就自动格式化。

第5步:记录经验(learnings)

把本轮学到了什么记下来,下次不会再犯同样的错。

第6步:总结收尾(session wrap-up)

收尾,提交代码,准备下一轮。

每隔几小时重复一次。一天可能循环好几次。28 天,从不间断。


28天,它学会了什么?

粗略翻了一下它的 commit 记录,几个比较有代表性的进化节点:

早期(Day 1-7):打地基

把 200 行的 CLI demo 扩展成完整框架。加了文件读写、shell 命令执行、多轮对话这些基础能力。就像一个刚入行的程序员,先学会写 CRUD。

中期(Day 8-20):长能力

  • 学会了上下文管理:对话太长就自动压缩摘要,防止撑爆 token 限制
  • 加了 11 个大模型的支持:Anthropic、OpenAI、Google、DeepSeek 等随意切换
  • 实现了子代理(Subagent):可以把复杂任务拆分给”助手”并行处理
  • 加了 MCP 协议支持:可以调用外部工具
  • 做了安全沙箱:限制危险命令执行

近期(Day 21-28):精细化

  • 遇到主 API 挂了?自动切换备用模型继续工作
  • 终端响铃提醒:长时间运算完成后通知开发者
  • 流式输出、语法高亮、代码折叠这些体验优化
  • 甚至开始”社交学习”——从社区和其他项目中汲取灵感

最有意思的三个设计

1. 测试即护栏

这是整个项目最核心的设计。AI 改完代码必须跑通全部测试才能提交。

为什么这很重要?因为 AI 生成代码有一个致命问题:它可能会”好心办坏事”——修了一个 bug 引入三个新 bug。

yoyo-evolve 用测试套件当安全网。每次改动必须通过验证,确保代码只变好不变坏。1346 个测试用例,就是这个项目的进化护栏。

2. 结构化记忆

它不是每次都从头开始思考。它维护了几个关键文件:

  • learnings:跨 session 的经验教训
  • journal:每次改动的思考过程
  • assessment:当前状态评估

这跟人类程序员的习惯一模一样——好记性不如烂笔头。

3. 预防性上下文压缩

这个设计很巧妙。AI 对话有个硬限制:上下文窗口大小。对话越长,越可能因为超限而崩溃。

大多数方案是”用完了再压缩”。yoyo-evolve 的做法是:到 70% 就开始预防性压缩,不等爆了再救

就像你在高速公路上不会等油箱见底才找加油站。


这意味着什么?

yoyo-evolve 不只是一个编程工具,它展示了一种新的软件开发范式:

AI 驱动的自主进化。

传统的软件迭代是:产品经理写需求 → 开发者写代码 → 测试验证 → 发布。周期按周算。

yoyo-evolve 的迭代是:AI 自己发现问题 → 自己设计方案 → 自己实现 → 自己验证。周期按小时算。

当然,它现在还做不到完全自主。它的进化方向受限于训练数据和系统提示。但它证明了一件事:

AI 可以成为自己最好的使用者。

谁最了解一个代码库的缺陷?每天跟它打交道的人。如果这个”人”是 AI 本身,它可以 24 小时不间断地审视、改进、进化。


最后

这个项目还有一个细节让我印象深刻:所有 commit 的作者都是 yoyo-evolve[bot],没有一条是人工提交的。

28 天前的第一条 commit 是一个 200 行的 CLI demo。28 天后的今天,它是一个功能完整的 coding agent,55 个命令,支持 11 个模型,1346 个测试。

没有 roadmap,没有 sprint,没有站会。只有代码、测试、和不断的进化。

这可能就是未来软件开发的样子。


项目地址:https://github.com/yologdev/yoyo-evolve

看完觉得有意思的,欢迎转发给你的程序员朋友。

0

评论区