# YOLOスタイルとラルフループ

AIエージェント開発でのスラングのメモ。いずれも、先日メモした[ハーネスエンジニアリング]({{< relref "07_harness_engineering.md" >}})で参照したOpenAIの記事[^1]で目にした単語

### YOLO（You Only Live Once）

**YOLO** （You Only Live Once）は直訳すると「人生一度きり」だけど、AIエージェントでYOLOというと、型やスキーマ、検証をほとんど設けずに、とりあえずモデルにタスクを投げて動かしてみるやり方を指す。物体検出の[YOLO](https://pjreddie.com/darknet/yolo/)のことではない。

AIエージェント開発が出てきた当初は「まず生成AIで開発ループを回せ」という文化＝YOLOスタイルが勧められていた。プロンプトと試行回数に頼って結果を引き出すスタイル。

YOLOスタイルの知見が溜まってくると、初速は速いものの挙動は不安定になりやすいとか、特にAIエージェントのように複数ステップで処理が進む場合、小さな誤りが連鎖して壊れやすいとか、ネガティブな面も見えてきた。ハーネスエンジニアリングの文脈ではアンチパターンとされる。

Microsoftの研究者は、YOLOが特にファイル操作においてリークや意図しない削除を招く、つまり安全性に懸念があるとして、YoloFSというAIエージェント操作に適したファイルシステムを提案していた[^2]

### ラルフループ

**ラルフループ（Ralph loop）** とは、AIエージェントに「実装 → 実行 → テスト → 修正 → 再試行」を延々と繰り返させる開発パターンを指す。人間が逐次細かく指示するのではなく、AIにゴールだけを与え、失敗を前提にループを回し続けることで問題を解決させる。最近のAIエージェント開発における象徴的な考え方の1つとも言える。

{{< embed url="https://ghuntley.com/loop/" >}}

> 300 lines of code running in a loop with LLM tokens. You just keep throwing tokens at the loop, and then you've got yourself an agent.
>
> _(LLMトークンを使用したループ処理で動作する300行程度のコードです。トークンをこのループに次々と入力していくだけで、あっという間にエージェントが完成します。)_
>
> [how to build a coding agent: free workshop](https://ghuntley.com/agent/)

ラルフとは、アニメ「ザ・シンプソンズ」のキャラ、[ラルフ・ウィガム（Ralph Wiggum）](https://en.wikipedia.org/wiki/Ralph_Wiggum)に由来するらしい。ラルフは賢いキャラクターとしては描かれていないが、妙に粘り強く、何度も試して偶然うまくいく、みたいな感じで登場する。「AIは完全に理解しているわけではなくても、試行回数を回すことで成果を出せる」みたいなニュアンスだろうか。

[^1]: [Harness engineering: leveraging Codex in an agent-first world | OpenAI](https://openai.com/index/harness-engineering/)
[^2]: [Don't Let AI Agents YOLO Your Files: Shifting Information and Control to Filesystems for Agent Safety and Autonomy - Microsoft Research](https://www.microsoft.com/en-us/research/publication/dont-let-ai-agents-yolo-your-files-shifting-information-and-control-to-filesystems-for-agent-safety-and-autonomy/?lang=ja)

