مقدمة إلى ADK-Rust

Agent Development Kit (ADK) هو إطار عمل مرن ووحداتي لتطوير ونشر وكلاء الذكاء الاصطناعي. وعلى الرغم من أنه مُحسَّن لـ Gemini ونظام Google البيئي، فإن ADK محايد بالنسبة للنموذج ومحايد بالنسبة لبيئة النشر، ومصمم للتوافق مع الأطر الأخرى. وقد صُمِّم ADK لجعل تطوير الوكلاء أقرب إلى تطوير البرمجيات، مما يسهل على المطورين إنشاء وهَـرْجَلة ونشر هياكل وكيلية تمتد من المهام البسيطة إلى سير العمل المعقدة.

ملاحظة: يتطلب ADK-Rust Rust 1.95.0 أو أحدث.

التثبيت

أضف ADK-Rust إلى مشروعك:

cargo add adk-rust

أو أضفه إلى Cargo.toml:

[dependencies]
adk-rust = "2.0.0"
tokio = { version = "1.40", features = ["full"] }

مثال سريع

use adk_rust::prelude::*;
use std::sync::Arc;

#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;
    
    let agent = LlmAgentBuilder::new("assistant")
        .description("A helpful AI assistant")
        .model(Arc::new(model))
        .build()?;
    
    println!("Agent '{}' ready!", agent.name());
    Ok(())
}

نظرة عامة على البنية

يستخدم ADK-Rust بنية متعددة الطبقات مصممة لتحقيق الوحدوية وقابلية التوسعة:

Rendering architecture…

المفاهيم الأساسية

تم بناء ADK-Rust حول عدة بدائيات رئيسية تعمل معًا لإنشاء وكلاء ذكاء اصطناعي أقوياء:

الوكلاء

وحدة العمل الأساسية المصممة لمهام محددة. يوفر ADK-Rust عدة أنواع من الوكلاء:

  • LlmAgent: يستخدم نموذج لغة كبيرًا للاستدلال واتخاذ القرار. هذا هو نوع الوكيل الأساسي لمعظم حالات الاستخدام.
  • RealtimeAgent: وكلاء مُمكَّنون بالصوت يستخدمون OpenAI Realtime API أو Gemini Live API لبث الصوت ثنائي الاتجاه.
  • GraphAgent: تنسيق سير عمل بأسلوب LangGraph مع إدارة الحالة ونقاط التحقق ودعم الإنسان ضمن الحلقة.
  • CustomAgent: يتيح لك تنفيذ منطق مخصص مع تحكم كامل في سلوك الوكيل.
  • وكلاء سير العمل: وكلاء حتميون يتبعون مسارات تنفيذ محددة مسبقًا:
    • SequentialAgent: ينفذ الوكلاء الفرعيين بالترتيب
    • ParallelAgent: ينفذ الوكلاء الفرعيين بالتوازي
    • LoopAgent: ينفذ الوكلاء الفرعيين تكراريًا حتى يتحقق شرط ما

الأدوات

تمنح الأدوات الوكلاء قدرات تتجاوز المحادثة، مما يتيح لهم التفاعل مع APIs الخارجية، أو البحث عن المعلومات، أو تنفيذ عمليات مخصصة:

  • FunctionTool: يغلّف أي دالة Rust غير متزامنة كأداة
  • GoogleSearchTool: قدرة مدمجة على البحث في الويب
  • BrowserToolset: 46 أداة WebDriver لأتمتة الويب (التنقل، النماذج، لقطات الشاشة، إلخ.)
  • ExitLoopTool: التحكم في إنهاء حلقة LoopAgent
  • McpToolset: يربط خادم MCP واحدًا ويعرض الأدوات، والموارد المُراجَعة، والمطالبات، والإكمال، والاشتراكات، والاستجلاء، والمهام المتفاوض عليها
  • McpServerManager: إضافة وتحديث ومراقبة وإعادة تشغيل وحفظ وتجميع سجل متغير من خوادم MCP المحلية أثناء تشغيل التطبيق

الجلسات

تتعامل الجلسات مع سياق محادثة واحدة، بما في ذلك:

  • معرّف الجلسة: معرّف فريد للمحادثة
  • الأحداث: سجل المحادثة (رسائل المستخدم، ردود الوكيل، استدعاءات الأدوات)
  • الحالة: الذاكرة العاملة للمحادثة مع بادئات نطاقية (app:، user:، temp:)

الاستدعاءات

كود مخصص يعمل عند نقاط محددة في تنفيذ الوكيل:

  • before_agent / after_agent: يعترض استدعاءات الوكيل
  • before_model / after_model: يعترض استدعاءات LLM
  • before_tool / after_tool: يعترض تنفيذ الأدوات

تمكّن الاستدعاءات من التسجيل، وضوابط الحماية، والتخزين المؤقت، وتعديل السلوك.

الأصول

تخزين بيانات ثنائية للملفات أو الصور أو أي محتوى آخر غير نصي:

  • حفظ وتحميل الأصول مع الإصدارات
  • نطاقات أسماء (على مستوى الجلسة أو على مستوى المستخدم)
  • خلفيات تخزين قابلة للتوصيل

الأحداث

الوحدة الأساسية للتواصل التي تمثل الأشياء التي تحدث أثناء الجلسة:

  • رسائل المستخدم
  • ردود الوكيل
  • استدعاءات الأدوات ونتائجها
  • تغييرات الحالة

تشكل الأحداث سجل المحادثة وتتيح إعادة التشغيل وتصحيح الأخطاء.

النماذج

الـ LLM الأساسي الذي يشغّل LlmAgents. تم تحسين ADK-Rust لـ Gemini لكنه يدعم عدة مزودين عبر الخاصية Llm:

  • Gemini: نماذج Gemini من Google (gemini-3-pro، gemini-3-flash، gemini-2.5-flash، gemini-2.5-pro)
  • OpenAI: gpt-5.1، gpt-5، gpt-5-mini، Azure OpenAI
  • Anthropic: claude-opus-4-6، claude-sonnet-4-6، claude-haiku-4-5
  • DeepSeek: deepseek-r1، deepseek-v3.1، deepseek-chat مع وضع التفكير
  • Groq: استدلال فائق السرعة مع llama-4-scout، llama-3.1-70b-versatile، mixtral-8x7b-32768
  • Ollama: استدلال محلي مع qwen3.6:35b-a3b، qwen3.5، llama3.2:3b، deepseek-r1:14b
  • mistral.rs: استدلال محلي عالي الأداء مع تسريع عتادي

تطبق جميع المزودين الخاصية نفسها للاستخدام المتبادل:

pub trait Llm: Send + Sync {
    async fn generate(&self, request: LlmRequest) -> Result<LlmResponse>;
    async fn generate_stream(&self, request: LlmRequest) -> Result<LlmResponseStream>;
}

المشغّل

المحرّك الذي يدير تدفق التنفيذ، وينسق تفاعلات الوكيل، ويتعاون مع خدمات الخلفية. يتولى المشغّل:

  • استدعاء الوكيل ومعالجة الاستجابة
  • تنفيذ الأدوات
  • إدارة الجلسة والحالة
  • بث الأحداث

علامات الميزات

يستخدم ADK-Rust ميزات Cargo لتحقيق الوحدوية. تتحكم أربعة إعدادات مسبقة في الحزم التي يتم تجميعها:

# Minimal (default) — Gemini, agents, runner, sessions
adk-rust = "2.0.0"

# Standard — adds tools, memory, telemetry, server, auth, graph, eval, guardrail, plugins, artifacts, skills
adk-rust = { version = "2.0.0", features = ["standard"] }

# Enterprise — standard + realtime, browser, RAG, payments, AWP
adk-rust = { version = "2.0.0", features = ["enterprise"] }

# Full — enterprise + audio, code execution, sandbox
adk-rust = { version = "2.0.0", features = ["full"] }

# Equivalent explicit minimal selection
adk-rust = { version = "2.0.0", default-features = false, features = ["minimal"] }

# Custom: Pick what you need
adk-rust = { version = "2.0.0", default-features = false, features = ["agents", "gemini", "tools"] }

الميزات المتاحة:

  • agents: تطبيقات الوكيل (LlmAgent، CustomAgent، وكلاء سير العمل)
  • models: تكاملات النموذج (Gemini)
  • openai: نماذج OpenAI (GPT-5، GPT-5 Mini)
  • anthropic: نماذج Anthropic (Claude 4.6، Claude 4.5)
  • deepseek: نماذج DeepSeek (الدردشة، الاستدلال)
  • groq: استدلال Groq فائق السرعة
  • ollama: نماذج Ollama المحلية
  • tools: نظام الأدوات والأدوات المدمجة
  • sessions: إدارة الجلسات
  • artifacts: تخزين الأصول
  • memory: نظام الذاكرة مع البحث الدلالي وواجهة خلفية لرسوم المعرفة ثنائية الزمن (GraphMemoryService)
  • runner: وقت تشغيل تنفيذ الوكيل
  • server: خادم HTTP (REST + A2A)
  • telemetry: مساعدات التتبّع؛ أضف telemetry-otlp فقط عند تصدير OTLP
  • cli: مشغّل CLI؛ أضف cli-openai أو cli-anthropic أو أي ميزة موفّر CLI أخرى فقط عند الحاجة
  • mcp: تكامل بروتوكول سياق النموذج لـ adk-tool
  • record-payloads: فعّل التقاط الحمولة الكاملة للتتبّع
  • graph: سير عمل قائم على الرسوم البيانية (الإعداد المسبق القياسي)
  • realtime: الصوت + البث متعدد الوسائط — OpenAI Realtime و Gemini Live، صوت ثنائي الاتجاه، إطارات الفيديو، الحوار الوجداني، أدوات جهة الخادم (الإعداد المسبق المؤسسي)
  • browser: أتمتة المتصفح (الإعداد المسبق المؤسسي)
  • eval: تقييم الوكيل (الإعداد المسبق القياسي)
  • rag: خط أنابيب RAG (الإعداد المسبق المؤسسي)
  • code: تنفيذ الشيفرة (الإعداد المسبق الكامل)
  • sandbox: تنفيذ معزول (الإعداد المسبق الكامل)
  • audio: معالجة الصوت (الإعداد المسبق الكامل)

لغات أخرى

يتوفر ADK بعدة لغات:


التالي: Quickstart →

مقدمة إلى ADK-Rust - وثائق ADK-Rust | ADK-Rust