मिलिए Ralph
एक स्वायत्त एजेंट लूप जो PRD के सभी आइटम पूरे होने तक लगातार चलता है। Bash स्क्रिप्ट की आवश्यकता नहीं है—सब कुछ ADK-Rust के भीतर चलता है।

लाइव ADK-Ralph v2 डेमो
राल्फ को एक छोटा उत्पाद बनाने दें।
यह वास्तविक Rust बाइनरी चलाता है। PRD एजेंट एक उपयोगकर्ता कहानी परिभाषित करता है, आर्किटेक्ट एजेंट डिजाइन और कार्य योजना बनाता है, और Ralph Loop एजेंट एक पृथक कार्यक्षेत्र में प्रोजेक्ट लिखता और सत्यापित करता है।
01 · PRD Agent
उत्पाद परिभाषित करें
02 · Architect Agent
सिस्टम डिज़ाइन करें
03 · Ralph Loop Agent
बनाएं और सत्यापित करें
एक प्रोजेक्ट · तीन कार्यान्वयन पुनरावृत्तियाँ · आठ मिनट की सीमा · डिलीवरी के बाद अस्थायी फ़ाइलें हटाई गईं
वास्तविक रन यहाँ दिखाई देगा।
आप एजेंट चरण, टूल गतिविधि, गुणवत्ता जांच, और राल्फ द्वारा लौटाए गए फ़ाइल देखेंगे।
आर्किटेक्चर अवलोकन
ADK-Rust की नेटिव लूप क्षमताओं के साथ पूरी तरह Rust में निर्मित
लूप एजेंट
मुख्य ऑर्केस्ट्रेटर कार्यों को क्रम से चलाता है, काम सौंपता है और समग्र प्रगति पर नज़र रखता है।
वर्कर एजेंट
केंद्रित संदर्भ में अलग-अलग कार्य करता है। बदलावों को लागू, जाँच और कमिट करता है।
कस्टम टूल
Git, फ़ाइल संचालन, गुणवत्ता जाँच और PRD प्रबंधन के लिए नेटिव ADK-Rust टूल।
मुख्य क्षमताएँ
Ralph स्वायत्त एजेंट विकास के लिए ADK-Rust की मुख्य क्षमताएँ दिखाता है
स्वायत्त लूप
सभी PRD आइटम पूरे होने तक निरंतर निष्पादन। Bash स्क्रिप्ट के बिना नेटिव लूप टूल एकीकरण।
मल्टी-एजेंट समन्वय
लूप एजेंट वर्कर एजेंटों का समन्वय करता है। बेहतर परिणाम के लिए हर एजेंट अपनी भूमिका में विशेषज्ञ होता है।
कस्टम टूल
Git, फ़ाइल संचालन, गुणवत्ता जाँच और PRD प्रबंधन—सभी नेटिव ADK-Rust टूल के रूप में निर्मित।
PRD द्वारा संचालित
यूज़र स्टोरी, स्वीकृति मानदंड और पास/फेल ट्रैकिंग के साथ JSON-आधारित कार्य प्रबंधन।
गुणवत्ता द्वार
हर कमिट से पहले cargo check, test, clippy और fmt की स्वचालित जाँच।
स्थिति का स्थायी भंडारण
Git कमिट, प्रगति लॉग और AGENTS.md अपडेट पूरा संदर्भ और ऑडिट योग्यता देते हैं।
कार्यान्वयन विवरण
साफ़ और प्रचलित Rust कोड जो ADK-Rust की पूरी क्षमता का उपयोग करता है
use serde::{Deserialize, Serialize};
use std::fs;
use anyhow::Result;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Prd {
pub project: String,
pub branch_name: String,
pub description: String,
pub user_stories: Vec<UserStory>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserStory {
pub id: String,
pub title: String,
pub description: String,
pub acceptance_criteria: Vec<String>,
pub priority: u32,
pub passes: bool,
#[serde(default)]
pub notes: String,
}
impl Prd {
pub fn load(path: &str) -> Result<Self> {
let content = fs::read_to_string(path)?;
let prd: Prd = serde_json::from_str(&content)?;
Ok(prd)
}
pub fn save(&self, path: &str) -> Result<()> {
let content = serde_json::to_string_pretty(self)?;
fs::write(path, content)?;
Ok(())
}
pub fn get_next_task(&self) -> Option<&UserStory> {
self.user_stories
.iter()
.filter(|story| !story.passes)
.min_by_key(|story| story.priority)
}
pub fn mark_complete(&mut self, task_id: &str) -> Result<()> {
if let Some(story) = self.user_stories
.iter_mut()
.find(|s| s.id == task_id)
{
story.passes = true;
}
Ok(())
}
pub fn is_complete(&self) -> bool {
self.user_stories.iter().all(|story| story.passes)
}
pub fn stats(&self) -> (usize, usize) {
let complete = self.user_stories
.iter()
.filter(|s| s.passes)
.count();
let total = self.user_stories.len();
(complete, total)
}
}प्रोजेक्ट संरचना
एक साफ़ मॉड्यूलर संरचना जो एजेंट, टूल और मॉडल अलग रखती है, जिससे रखरखाव और विस्तार आसान होता है।
ralph/ ├── Cargo.toml # Ralph agent config ├── src/ │ ├── main.rs # Entry point │ ├── agents/ │ │ ├── mod.rs │ │ ├── loop_agent.rs # Main orchestrator │ │ └── worker_agent.rs # Task executor │ ├── tools/ │ │ ├── mod.rs │ │ ├── git_tool.rs # Git operations │ │ ├── file_tool.rs # File manipulation │ │ ├── test_tool.rs # Quality checks │ │ └── prd_tool.rs # PRD management │ └── models/ │ ├── prd.rs # PRD data structures │ └── config.rs # Configuration ├── prd.json # Task list └── progress.txt # Learnings log
नेटिव बनाम Bash
स्वायत्त एजेंटों को shell स्क्रिप्ट से संचालित करने के बजाय सीधे Rust में क्यों बनाएँ?
| पहलू | Bash | नेटिव |
|---|---|---|
| कार्यान्वयन | Shell स्क्रिप्ट + ADK-Rust | शुद्ध Rust |
| टाइप सुरक्षा | रनटाइम | कम्पाइल समय |
| त्रुटि प्रबंधन | एग्ज़िट कोड | Result<T, E> |
| समवर्ती निष्पादन | क्रमिक | Async/await |
| टूल एकीकरण | Shell कमांड | नेटिव ADK-Rust टूल |
| डीबगिंग | लॉग फ़ाइलें | ट्रेसिंग + संरचित लॉगिंग |
| प्रदर्शन | नई प्रक्रियाएँ बनाने का अतिरिक्त खर्च | शून्य-लागत एब्स्ट्रैक्शन |
| मेमोरी सुरक्षा | मैन्युअल प्रबंधन | कम्पाइलर द्वारा सुनिश्चित |
| टेस्टिंग | केवल इंटीग्रेशन टेस्ट | यूनिट + इंटीग्रेशन टेस्ट |
अपना Ralph बनाने के लिए तैयार हैं?
पूरा सोर्स कोड देखें, इसे अपने उपयोग के अनुसार बदलें या अपने स्वायत्त एजेंट सिस्टम के लिए इससे प्रेरणा लें।