مقدمة إلى ADK-Rust

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

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

التثبيت

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

cargo add adk-rust

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

[dependencies]
adk-rust = "2.1.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-3.7-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-3.7-flash، gemini-3.6-flash، gemini-3.5-flash-lite
  • OpenAI: gpt-5.6-terra، gpt-5.6-sol، gpt-5.6-luna، عمليات نشر Azure OpenAI
  • Anthropic: claude-sonnet-5، claude-opus-5، claude-fable-5
  • DeepSeek: deepseek-v4-flash، deepseek-v4-pro
  • Groq: استدلال فائق السرعة باستخدام openai/gpt-oss-120b وopenai/gpt-oss-20b
  • 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.1.0"

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

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

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

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

# Custom: Pick what you need
adk-rust = { version = "2.1.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: تكامل Model Context Protocol مع adk-tool
  • record-payloads: الاشتراك في التقاط حمولة التتبع الكاملة
  • graph: سير العمل المستند إلى الرسم البياني (الإعداد القياسي المسبق)
  • realtime: البث الصوتي ومتعدد الوسائط — OpenAI Realtime وGemini Live، الصوت ثنائي الاتجاه، إطارات الفيديو، الحوار العاطفي، الأدوات من جانب الخادم (الإعداد المؤسسي المسبق)
  • browser: أتمتة المتصفح (الإعداد المؤسسي المسبق)
  • eval: تقييم الوكلاء (الإعداد القياسي المسبق)
  • rag: مسار RAG (الإعداد المؤسسي المسبق)
  • code: تنفيذ التعليمات البرمجية (الإعداد الكامل المسبق)
  • sandbox: التنفيذ في بيئة معزولة (الإعداد الكامل المسبق)
  • audio: معالجة الصوت (الإعداد الكامل المسبق)

اللغات الأخرى

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


التالي: البدء السريع →

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