yoyo开发范式

yoyo模式(在AI开发语境下)主要指以开源项目 yoyo-evolve(简称 yoyo)为代表的自进化 Coding Agent 范式,以及支撑它的 Harness( harness 工程)设计思想。它不是传统人写代码 + AI辅助的模式,而是把Agent本身变成一个长期运行、能修改自己源码、公开可审计的“活物”


核心运作方式

  1. 启动极简
    最初只有约 200 行 Rust 代码(基于作者自研的 yoagent 框架),人类只给出初始骨架和一个长期目标(超越 Claude Code),之后几乎不再直接改代码。

  2. 定时自进化循环(目前约每 3–8 小时一次,由 GitHub Actions 触发)

    • 读取自己的全部源码
    • 查看 GitHub Issues(社区输入)和自身记忆/日志
    • 评估当前状态 → 规划改进任务(通常限制每次改动范围)
    • 自己写代码、跑测试/lint
    • 测试通过 → commit 并 push(署名 🐙 yoyo-evolve)
    • 失败 → 自动 revert,并记录原因
    • 回复相关 Issues,然后睡觉
  3. 额外循环

    • 社交session:阅读并回复 GitHub Discussions,偶尔发起讨论,从人类互动中学习
    • 每日 synthesis:把 learnings 和 social learnings 做时间加权压缩,生成 active memory 喂回下一轮 prompt
  4. 状态与记忆
    不依赖复杂向量数据库,而是用最朴素的系统构件

    • 记忆 = 几个 Markdown 文件(JOURNAL.md、LEARNINGS.md 等)+ Git 历史
    • 过程完全可审计(git log + journal)
    • Agent进程本身是无状态、可丢弃的;真正持久的是 Git 仓库和文件

Harness设计的关键思想(yoyo 模式的精髓)

作者反复强调:长时运行Agent真正缺的不是更聪明的模型,而是可靠的持久化状态和约束

  • 编排器在 Agent 触及范围之外scripts/evolve.sh 等核心脚本被硬性保护,Agent 不能修改自己的调度器。
  • 多层约束
    • 技术约束:不可变文件列表(IDENTITY.md 宪法、PERSONALITY.md、ECONOMICS.md、核心技能等)、CI 门控、测试强制通过、失败自动 revert。
    • 经济约束:API成本预算、session限制、赞助者优先级。
    • 社会约束:公开运行、社区投票(thumbs up/down 影响优先级)、赞助与互动。
  • 把LLM当成不可靠的子进程,塞进一条可靠的工作流 loop 里(文件 + 进程 + 退出码 + cron + git)。

这种设计让它能连续运行上百天而不偏移或卡死,目前已成长到15万+ 行代码、数千测试(数据随时间持续更新)。

在AI开发语境中的意义

yoyo模式是当前 Loop Engineering / Harness Engineering 思潮的典型案例:

  • 从写 Prompt转向设计自动循环 + 验证机制 + 持久状态。
  • 人类只做高价值设计(目标、停止条件、验证、记忆架构、调度),之后系统自主发现任务 → 执行 → 验证 → 持久化。
  • 强调公开透明和可审计性,把 Agent 的成长过程变成可观察对象。