Ralph:Ampを回す自律エージェント・ループ
概要
Ralphは、Amp(https://ampcode.com)を繰り返し呼び出してPRD項目を順次完了させる、自律実行型のエージェント・ループです。各反復は新しいAmpインスタンスとして「クリーンなコンテキスト」で実行され、過去の知見や進捗はgitのコミット履歴、progress.txt、およびprd.jsonにより保持されます。シンプルなシェルスクリプトを中心に設計されており、外部ライブラリに依存せずにAmp CLIとgitを使って軽量に自動化を回すことが目的です。Geoffrey HuntleyのRalphパターンに則り、繰り返しと記憶の仕組みを分離して、反復毎に状態のリセットと永続化を両立させます。
リポジトリの統計情報
- スター数: 26
- フォーク数: 0
- ウォッチャー数: 26
- コミット数: 4
- ファイル数: 7
- メインの言語: Shell
主な特徴
- Amp CLIを用いた反復的な自律エージェント実行(各イテレーションはクリーンなコンテキスト)
- メモリはgit履歴、progress.txt、prd.jsonで永続化し、状態は外部化され追跡可能
- シンプルなシェル実装(ralph.sh)が主要ロジックを担い、導入が容易
- Geoffrey HuntleyのRalphパターンに基づく設計思想
技術的なポイント
Ralphは「反復ごとにクリーンなエージェント」を起動しつつ、必要な履歴や進捗を外部ストレージ(gitやファイル)に保存することで、自律エージェントにありがちな「文脈の肥大化」と「再現性の欠如」を避ける設計です。技術面での核は三点に集約されます。
-
イテレーション分離: 各ループで新しいAmpインスタンスを立ち上げ、内部コンテキストをリセットするため、エラーや不要依存が累積しません。これにより各実行は独立して検証可能で、失敗時のロールバックや再試行が容易になります。
-
永続化と履歴管理: 状態はprd.json(タスク定義や進捗を保持する想定)、progress.txt(単純な進行ログ)、およびgitコミット履歴により保存されます。gitを用いることで各イテレーションの差分が自動で残り、なぜある決定が行われたかやどのイテレーションで何が完了したかを時系列で追跡できます。これは監査やデバッグに有用です。
-
最小限の実装(シェル中心): ralph.shがループのエントリポイントとして動作し、外部依存を最小化しています。導入要件はAmp CLIとgitが主なものと推測され、余計なランタイムを要求しないためCIや軽量なサーバ環境にも組み込みやすいです。prompt.mdやprd.json.exampleがテンプレート/プロンプト仕様を提供し、プロジェクト固有のPRDに合わせたカスタマイズが可能です。
この構成は、小〜中規模のタスク自動化やプロダクト要件の逐次実装を目的とするワークフローに向いています。反復の独立性と履歴の明瞭さは、AIの決定ログと人間側のレビューを両立させる点で有用です。一方で、Ampに依存するためAmpの利用制約やコスト、外部APIとの連携設計(認証やレート制限)については利用者側で考慮が必要です。また、シェル実装ゆえに高度なエラーハンドリングや並列処理を追加する場合は拡張設計が必要になります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- README.md: file
- prd.json.example: file
- prompt.md: file
- ralph.sh: file
…他 2 ファイル
まとめ
Ampとgitを組み合わせた軽量な自律エージェントループで、追跡可能性を重視した実験的ツールです(50字)。
リポジトリ情報:
- 名前: ralph
- 説明: Ralph is an autonomous AI agent loop that runs Amp repeatedly until all PRD items are complete.
- スター数: 26
- 言語: Shell
- URL: https://github.com/snarktank/ralph
- オーナー: snarktank
- アバター: https://avatars.githubusercontent.com/u/152063952?v=4
READMEの抜粋:
Ralph
Ralph
Ralph is an autonomous AI agent loop that runs Amp repeatedly until all PRD items are complete. Each iteration is a fresh Amp instance with clean context. Memory persists via git history, progress.txt, and prd.json.
Based on Geoffrey Huntley’s Ralph pattern.
Read my in-depth article on how I use Ralph