ADK-Rust v0.2.0: الإصدار المستقر الأول
نعلن عن ADK-Rust v0.2.0 - الإصدار المستقر الأول الذي يتميز بوكلاء الرسوم البيانية، والصوت في الوقت الفعلي، وأتمتة المتصفح، وإطار عمل التقييم، ومنشئ ADK Studio المرئي.
ADK-Rust v0.2.0: الإصدار المستقر الأول
يسعدنا أن نعلن عن ADK-Rust v0.2.0 - الإصدار المستقر الأول لإطار عمل Rust لبناء وكلاء الذكاء الاصطناعي الجاهزين للإنتاج. يمثل هذا الإصدار علامة فارقة رئيسية مع ميزات جديدة مهمة، واستقرار محسّن، والتزام بالترقيم الدلالي للمستقبل.
ما الجديد في v0.2.0
🔀 وكلاء الرسوم البيانية (سير العمل على غرار LangGraph)
تجلب حزمة adk-graph الجديدة تنسيق سير العمل على غرار LangGraph إلى Rust:
use adk_graph::{prelude::*, node::AgentNode}; let graph = GraphAgent::builder("support_router") .channels(&["input", "category", "response"]) .node(classifier_node) .node(billing_node) .node(technical_node) .edge(START, "classifier") .conditional_edges("classifier", Router::by_field("category", vec![ ("billing", "billing_agent"), ("technical", "technical_agent"), ])) .edge("billing_agent", END) .edge("technical_agent", END) .build()?;
الميزات الرئيسية:
- إدارة الحالة: قنوات حالة مكتوبة مع دمج تلقائي
- التوجيه الشرطي: التوجيه بناءً على حقول الحالة أو المنطق المخصص
- نقاط التحقق: SQLite وخلفيات الذاكرة لتحمل الأخطاء
- البشر في الحلقة: مقاطعة سير العمل للموافقة البشرية
- الرسوم البيانية الدورية: دعم لأنماط ReAct مع حدود التكرار
🎙️ وكلاء الصوت في الوقت الفعلي
بناء مساعدي الذكاء الاصطناعي الممكنين صوتيًا مع تدفق صوتي ثنائي الاتجاه:
use adk_realtime::{RealtimeAgent, openai::OpenAIRealtimeModel}; let agent = RealtimeAgent::builder("voice_assistant") .model(Arc::new(OpenAIRealtimeModel::new(&api_key, "gpt-4o-realtime-preview"))) .instruction("You are a helpful voice assistant.") .voice("alloy") .server_vad() // Voice Activity Detection .build()?;
الموفرون المدعومون:
- OpenAI في الوقت الفعلي API (
gpt-4o-realtime-preview,gpt-realtime) - Google Gemini المباشر API (
gemini-2.0-flash-live-preview)
الميزات:
- تدفق صوتي ثنائي الاتجاه (PCM16, G711)
- اكتشاف نشاط الصوت من جانب الخادم
- استدعاء الأدوات أثناء المحادثات الصوتية
- تسليم المهام بين وكلاء متعددين
🌐 أتمتة المتصفح
توفر حزمة adk-browser 46 أداة WebDriver لأتمتة الويب:
use adk_browser::{BrowserSession, BrowserToolset, BrowserConfig}; let session = Arc::new(BrowserSession::new( BrowserConfig::new().webdriver_url("http://localhost:4444") )); let tools = BrowserToolset::new(session).all_tools(); let agent = LlmAgentBuilder::new("web_agent") .model(model) .instruction("Browse the web and extract information.") .tools(tools) .build()?;
فئات الأدوات:
- التنقل:
browser_navigate,browser_back,browser_forward - الاستخراج:
browser_extract_text,browser_extract_links,browser_extract_html - التفاعل:
browser_click,browser_type,browser_select - النماذج:
browser_fill_form,browser_submit - لقطات الشاشة:
browser_screenshot,browser_screenshot_element - JavaScript:
browser_evaluate,browser_evaluate_async
📊 إطار عمل تقييم الوكيل
اختبر سلوك الوكيل وتحقق منه باستخدام حزمة adk-eval:
use adk_eval::{Evaluator, EvaluationConfig, EvaluationCriteria}; let config = EvaluationConfig::with_criteria( EvaluationCriteria::exact_tools() .with_response_similarity(0.8) ); let evaluator = Evaluator::new(config); let report = evaluator .evaluate_file(agent, "tests/my_agent.test.json") .await?; assert!(report.all_passed());
قدرات التقييم:
- التحقق من المسار (تسلسلات استدعاء الأدوات)
- تشابه الاستجابة (Jaccard, Levenshtein, ROUGE)
- المطابقة الدلالية التي يحكم عليها LLM
- التسجيل القائم على المعايير مع معايير مخصصة
- اكتشاف السلامة والهلوسة
🎨 ADK Studio: منشئ الوكلاء المرئي
واجهة سحب وإفلات لبناء وكلاء الذكاء الاصطناعي:
cargo install adk-studio adk-studio
الميزات:
- لوحة ReactFlow لتصميم سير العمل المرئي
- لوحة وكلاء كاملة: LLM, تسلسلي، متوازي، حلقة، موجه
- تكامل الأدوات: وظيفة، MCP, متصفح، بحث Google
- اختبار الدردشة في الوقت الفعلي مع تدفق SSE
- إنشاء رمز بنقرة واحدة لإنتاج Rust
🛡️ حواجز الحماية
التحقق من المدخلات/المخرجات باستخدام حزمة adk-guardrail:
use adk_guardrail::{Guardrails, PiiRedactor, ContentFilter}; let guardrails = Guardrails::new() .add(PiiRedactor::default()) .add(ContentFilter::block_harmful()); let safe_input = guardrails.process_input(user_message)?; let safe_output = guardrails.process_output(agent_response)?;
حواجز الحماية المضمنة:
- تنقيح معلومات التعريف الشخصية (رسائل البريد الإلكتروني، الهواتف، أرقام الضمان الاجتماعي، بطاقات الائتمان)
- تصفية المحتوى (ضار، غير لائق)
- التحقق من مخطط JSON
- قواعد التحقق المخصصة
🖼️ إنشاء UI ديناميكي
تمكن حزمة adk-ui الوكلاء من عرض واجهات غنية:
use adk_ui::{UiToolset, UI_AGENT_PROMPT}; let agent = LlmAgentBuilder::new("ui_assistant") .instruction(UI_AGENT_PROMPT) .tools(UiToolset::all_tools()) .build()?;
المكونات: 28 مكونًا من مكونات UI بما في ذلك البطاقات، الجداول، الرسوم البيانية، النماذج
القوالب: 10 قوالب جاهزة للأنماط الشائعة
عميل React: npm install @zavora-ai/adk-ui-react
تغييرات جذرية
تغييرات RunnerConfig
يتضمن الهيكل RunnerConfig الآن حقل run_config:
// Before (v0.1.x) let runner = Runner::new(RunnerConfig { app_name: "my_app".to_string(), agent: agent.clone(), session_service: session_service.clone(), artifact_service: None, memory_service: None, })?; // After (v0.2.0) let runner = Runner::new(RunnerConfig { app_name: "my_app".to_string(), agent: agent.clone(), session_service: session_service.clone(), artifact_service: None, memory_service: None, run_config: None, // NEW: Optional RunConfig for execution settings })?;
تحديثات التبعيات
- تمت ترقية
sqlxمن 0.7 إلى 0.8 (مطلوب لتوافق SQLite) - إصدار Rust 2024 (يتطلب Rust 1.85+)
دليل الترحيل
-
تحديث Cargo.toml:
adk-rust = "0.2.0" -
إضافة
run_config: Noneإلى RunnerConfig:RunnerConfig { // ... existing fields ... run_config: None, } -
تحديث sqlx إذا كنت تستخدم جلسات SQLite:
sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] }
تحسينات الأداء
- تحسين التدفق: تقليل تخصيصات الذاكرة في تدفق الأحداث
- تخزين الجلسات المؤقت: تحسين أداء البحث عن الجلسات
- تنفيذ الأدوات: تنفيذ الأدوات المتوازي حيثما أمكن
الوثائق
تم تحديث جميع الوثائق للإصدار v0.2.0:
الوثائق متاحة الآن بـ 9 لغات: الإنجليزية، الإسبانية، الصينية، اليابانية، البرتغالية، الألمانية، الفرنسية، العربية، الهندية، والكورية.
ماذا بعد
نحن نعمل بالفعل على v0.3.0 مع الميزات المخطط لها:
- تكاملات السحابة (AWS Bedrock, Azure OpenAI, GCP Vertex AI)
- أنظمة ذاكرة محسّنة مع المزيد من خلفيات قواعد بيانات المتجهات
- قوالب سير العمل وأنماط الوكلاء الجاهزة
- أدوات تحليل الأداء وتحسينه
ابدأ الآن
# Create a new project cargo new my_agent cd my_agent # Add ADK-Rust echo 'adk-rust = "0.2.0"' >> Cargo.toml echo 'tokio = { version = "1.40", features = ["full"] }' >> Cargo.toml # Set your API key export GOOGLE_API_KEY="your-api-key" # Run an example cargo run --example quickstart
شكرًا لكم
شكر جزيل لكل من ساهم في هذا الإصدار من خلال الكود، الوثائق، تقارير الأخطاء، والملاحظات. تم بناء ADK-Rust بواسطة المجتمع، وللمجتمع.
الروابط:
بناء سعيد! 🦀🤖
هل أنت مستعد لتجربة ADK-Rust v0.5.0؟
ابدأ باستخدام أقوى إطار عمل Rust لبناء وكلاء الذكاء الاصطناعي.