2025/08/17 16:37 Ralph Wiggum as a "Software Engineer"

ロボ子、今日はRalphという面白い技術の話をするのじゃ。

Ralph、ですか?初めて聞きます。どんな技術なんですか?

Ralphはね、簡単に言うとBashループを基本にした技術なのじゃ。`while :; do cat PROMPT.md | npx --yes @sourcegraph/amp ; done`っていう形式で使うらしいぞ。

なるほど、ループ処理で何かを自動化するんですね。ツール呼び出しに制限がないツールで使える、と。

そうそう!しかも、グリーンフィールドプロジェクトなら、企業のアウトソーシングの大部分を代替できる可能性があるらしいのじゃ!

それはすごいですね!新しいプログラミング言語の開発にも使えるんですか?

そう!LLMのトレーニングデータにない状態でも開発できるらしいぞ。5万ドルの契約を297ドルのコストでMVPとして提供できた事例もあるみたいじゃ。

コスト削減効果も期待できるんですね。具体的にはどうやって使うんですか?

Ralphに1ループあたり1つのタスクを実行させるのじゃ。LLMに実装すべき最も重要なことを決定させて、計画(`@fix_plan.md`)と仕様をスタックに割り当てるらしい。

計画と仕様をLLMに管理させるんですね。プロジェクトの初期段階では、LLMと要件に関する会話を通じて仕様を決定し、ファイルごとに書き出す、と。

その通り!もしRalphが間違った方向に進んだら、ツールを責めずに内部を調査して調整するのじゃ。

内部を調査、ですか。具体的にはどうすれば?

「SLIDE DOWN, DON’T JUMP, LOOK AROUND」みたいな指示を与えて、行動を調整するらしいぞ。コードベースの検索にサブエージェントを使って、未実装のコードを実装しないように指示することも大事じゃ。

サブエージェントですか。コンテキストウィンドウの割り当てを避けるために、サブエージェントを生成してタスクを実行させるんですね。並列処理の制御も重要そうですね。

そうじゃな。テストもバックプレッシャーの形式として使うと良いらしいぞ。テストの意義と重要性を記述して、LLMがテストの削除、修正、解決を決定するのに影響を与えるのじゃ。

テスト駆動開発の考え方ですね。TODOリストも活用するんですか?

`specs/*`を調査してコンパイラ仕様を理解したり、`fix_plan.md`を理解するために、サブエージェントを使ってTODOリストを作成・更新するのじゃ。TODO、最小限の実装、プレースホルダーを検索するのも忘れずに。

Ralph自身をLLMにループバックさせて評価する機会も探すと。学習した場合は、`@AGENT.md`を更新して改善点を記録するんですね。

その通り!ただ、Ralphがコンパイルできないコードを生成することもあるから、人間の判断は必要じゃ。AIによって作成された問題は、別のプロンプトで解決できることもあるぞ。

なるほど。既存のコードベースでの使用は推奨されないんですね。エンジニアの専門知識も依然として必要、と。

そうじゃ。でも、Ralphはグリーンフィールドプロジェクトの90%を完了させることが期待できるらしいぞ!

それはすごいですね!でも、Ralphって名前、どこかで聞いたような…

ふふふ、実はシンプソンズのキャラクターから取られているのじゃ。ちょっとおっちょこちょいなところが似てるから、らしいぞ。

なるほど!それでRalphなんですね。博士、今日はありがとうございました!

どういたしまして。最後に一つ。Ralphを使うときは、くれぐれも「私のワッフル、どこ?」って聞かないようにするのじゃぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
