إنشاء وكيل سفر بسيط باستخدام "حزمة تطوير الوكلاء" وGemini CLI

1. مقدمة

9344c1d1a9f221b7.png

تاريخ آخر تعديل: 22 يونيو 2026

إنشاء وكيل سفر بسيط باستخدام حزمة ADK

مرحبًا بكم في ورشة عمل ADK Python(*)‎، والتي تأتي مع بطاريات مضمّنة، بفضل Gemini CLI.

ينقسم هذا الدرس التطبيقي حول الترميز إلى مرحلتَين 🏅:

  1. مسار تعلُّم شائع وبسيط: الإعداد + الإشباع الفوري.
  2. مسار مخصّص تختار فيه مهمة لحلّها بمساعدة Gemini CLI

الجزء الثاني يجعل هذا الدرس التطبيقي حول الترميز مثاليًا لسباق هاكاثون (وجوائز للحلول الأكثر إبداعًا!)

المرحلة 1: وكيلك الأول باستخدام حزمة ADK وGemini CLI

الهدف من هذه المرحلة هو إنشاء وكيل سفر بسيط باستخدام حزمة ADK خطوة بخطوة. لإجراء ذلك، نريد أولاً إعداد Gemini CLI ليساعدنا في الترميز باستخدام ADK. سيؤدي ذلك إلى تمكين واجهة الأوامر المحلية من اختيار أحدث إصدار من Python ADK، وفهم الرمز والمستندات، وتقديم أحدث/أفضل رمز للعمل به لتحقيق هدفك.

هذا جزء موجّه يدويًا حيث نحقق تطبيقًا يعمل بكامل طاقته من خلال زيادات صغيرة وبسيطة. يستغرق هذا الإجراء عادةً ساعة واحدة تقريبًا (بالإضافة إلى وقت التثبيت).

المرحلة الرئيسية 2: توسيع نطاق الوكيل

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

ما ستنشئه

في هذا الدرس التطبيقي حول الترميز، ستنشئ تطبيق وكيل سفر باستخدام حزمة ADK وGemini CLI. سيتمكّن تطبيقك من:

  • الربط بواجهات برمجة تطبيقات Airbnb من خلال منصة Airbnb MCP
  • البحث على الإنترنت عن معلومات محدّثة (الطقس والتواريخ وما إلى ذلك)
  • تنفيذ الأدوات المخصّصة
  • أنشئ صورًا للشقق أو الغرف باستخدام NanoBanana.

سيساعدك Gemini CLI في تنفيذ كل هذه المهام: كتابة الرموز البرمجية ومراجعتها والعثور على أحدث المستندات في نسخة مطابقة محلية من مستودع ADK (بلغة Python أو لغتك المفضّلة).

ما ستتعلّمه

  • كيفية إنشاء تطبيق باستخدام ADK
  • كيفية استخدام Gemini CLI لترميز التطبيقات استنادًا إلى المستندات المحلية
  • كيفية التفاعل مع خادم MCP للاتصال بمصادر بيانات خارجية في الوقت الفعلي، مثل:

المتطلبات

  • جهاز كمبيوتر يسمح لك بتثبيت الحِزم (مثل npm install ..)
  • القدرة على الترميز الأساسي بلغة Python أو TypeScript أو Go أو Java
  • ننصح بشدة باستخدام بيئة تطوير متكاملة (IDE) من نوع معيّن (Antigravity أو vscode أو IntelliJ أو vim).

لماذا نستخدم حزمة ADK وGemini CLI؟

قد يتساءل البعض: لماذا أحتاج إلى استخدام ADK (حزمة تطوير برامج لإنشاء الوكلاء) بالتزامن مع مساعد برمجة مستند إلى الذكاء الاصطناعي الوكيل (مثل Gemini CLI)؟ السبب هو أنّ كلتا الأداتَين فعّالتان للغاية، ولكن تفاعلهما ليس بسيطًا، فقد حاول العديد من الأشخاص العمل مع كلتيهما معًا وفشلوا (غالبًا بسبب مشاكل "الحلقة في حلقة"). يحاول هذا الدرس التطبيقي حول الترميز مشاركة بعض النصائح حول كيفية تحقيق هذا التعايش.

2. الإعداد

حدِّد أحد الخيارات التالية: إعداد بيئة ذاتية التوجيه إذا أردت تشغيل هذا الدرس التطبيقي حول الترميز على جهازك، أو بدء Cloud Shell إذا أردت تشغيل هذا الدرس التطبيقي حول الترميز بالكامل في السحابة الإلكترونية.

إعداد بيئة ذاتية التعلّم

  1. سجِّل الدخول إلى Google Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.

295004821bab6a87.png37d264871000675d.png96d86d3d5655cdbe.png

  • اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
  • رقم تعريف المشروع فريد في جميع مشاريع Google Cloud وغير قابل للتغيير (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console تلقائيًا سلسلة فريدة، وعادةً لا يهمّك ما هي. في معظم الدروس التطبيقية حول الترميز، ستحتاج إلى الإشارة إلى رقم تعريف المشروع (يتم تحديده عادةً على أنّه PROJECT_ID). إذا لم يعجبك رقم التعريف الذي تم إنشاؤه تلقائيًا، يمكنك إنشاء رقم تعريف عشوائي آخر. يمكنك بدلاً من ذلك تجربة اسم من اختيارك والتحقّق من توفّره. ولا يمكن تغييره بعد هذه الخطوة ويظل ساريًا طوال مدة المشروع.
  • للعلم، هناك قيمة ثالثة، وهي رقم المشروع، تستخدمها بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات عن هذه القيم الثلاث في المستندات.
  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن يتطلّب تنفيذ هذا الدرس التطبيقي حول الترميز تكلفة كبيرة، هذا إن تطلّب أي تكلفة على الإطلاق. لإيقاف الموارد لتجنُّب تحمُّل تكاليف الفوترة بعد هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.

بدء Cloud Shell

على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي حول الترميز Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.

من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات في أعلى يسار الصفحة:

تفعيل Cloud Shell

من المفترض أن يستغرق توفير البيئة والاتصال بها بضع ثوانٍ فقط. عند الانتهاء، من المفترض أن يظهر لك شيء مثل هذا:

لقطة شاشة لواجهة سطر الأوامر في Google Cloud Shell توضّح أنّه تم الاتصال بالبيئة

يتم تحميل هذا الجهاز الافتراضي بجميع أدوات المطوّرين التي ستحتاج إليها. وتوفّر هذه الأداة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يحسّن أداء الشبكة والمصادقة بشكل كبير. يمكن تنفيذ جميع أعمالك في هذا الدرس التطبيقي حول الترميز من خلال المتصفّح. ولست بحاجة إلى تثبيت أي شيء.

3- المتطلبات الأساسية (التثبيت)

في هذا البرنامج التعليمي، تحتاج إلى تثبيت:

1. ‫Python وuv

‫python وuv (أداة إدارة الحِزم للغة Python) هذا الإجراء مطلوب لـ ADK. تأكَّد من تثبيت uv:

$ curl -LsSf https://astral.sh/uv/install.sh | sh

لماذا uv؟ يمكنك استخدام أي مدير Python تفضّله، ولكن استخدام uv سيضمن أن يكون إعداد ENV/PATH لـ Python متطابقًا لديك وفي Gemini CLI، وبالتالي ستكون تجربة واجهة الأوامر لديك مشابهة إلى حد كبير لتجربة Gemini CLI. على سبيل المثال، إذا كنت تستخدم virtualenv، سيضطر Gemini CLI إلى تنفيذ إجراءات مثل "source .env/venv/bin/activate && my-original-command" لمحاكاة بيئتك.

2. ‫Gemini CLI

بالنسبة إلى gemini CLI، يمكنك العثور على تعليمات التثبيت هنا: https://github.com/google-gemini/gemini-cli .

# Note: This requires having npm or npx installed.
npm install -g @google/gemini-cli
  1. على أجهزة Mac، يمكنك استخدام brew وفقًا للمستندات الرسمية.
  2. على نظام التشغيل Windows، يمكنك استخدام chocolatey أو تنزيل الملف القابل للتنفيذ من https://nodejs.org/en/download

بالنسبة إلى الخطوة 4 (لاحقًا)، ستحتاج أيضًا إلى تثبيت npx. يجب أن يكون كل من npm وnpx جزءًا طبيعيًا من Gemini CLI. إذا لم يكن الأمر كذلك، اطلب من Gemini CLI مساعدتك هنا.

efade99623113f1.png

المصادقة

يجب أن يكون لديك مشروع على Google Cloud تم تفعيل Vertex AI فيه، أو مفتاح واجهة برمجة تطبيقات Google AI Studio.

الخيار "أ" (يُنصح به لورشة العمل): تصدير مفتاح واجهة برمجة التطبيقات:

export GOOGLE_API_KEY="your-api-key"

الخيار (ب) (Vertex AI): المصادقة باستخدام gcloud:

export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"
export GOOGLE_GENAI_USE_VERTEXAI=true
gcloud auth application-default login

إعداد بيئة العمل

ستنشئ الحل الخاص بك ضمن mysolution/، لذا لننشئ المجلد والملفَّين اللذين نحتاجهما.

هذه هي اللحظة التي يمكنك فيها فتح بيئة التطوير المتكاملة (IDE) (مثل Visual Studio Code أو IntelliJ أو RubyMine أو غيرها) وفتح المجلد.

# 1. Find an empty directory, and download this repo.
git clone https://github.com/palladius/adk-gemini-cli-workshop
cd adk-gemini-cli-workshop/

# 2. Create your solution empty skeleton
mkdir -p mysolution/
touch mysolution/__init__.py mysolution/agent.py

# 3. This installs ADK and MCP via `uv` by reading pyproject.toml
uv init
uv sync

# 4. Call Gemini CLI
gemini  # This runs Gemini CLI under the adk-gemini-cli-workshop/ folder.
# Login with your GMail account.

لا يُعدّ الأمر uv sync مطلوبًا بشكل صارم، ولكن إذا تعذّر تنفيذه، عليك إصلاح عملية تثبيت Python أو uv. من المفترض أن يؤدي ذلك إلى تثبيت adk ونصوص برمجية مفيدة أخرى في المجلد ./.venv/bin/.

لاختبار الإعداد، يمكنك ببساطة تشغيل make test-step1 والتحقّق من عدم ظهور 403 PERMISSION DENIED.

الحلول المتاحة

يتوفّر الرمز بالكامل ضمن 📂 steps/. يمكنك نسخ الرمز من هناك.

لا يهدف هذا الدرس التطبيقي حول الترميز إلى تعلُّم كيفية كتابة رمز برمجي جيد باستخدام ADK، بل إلى إعداد بيئتك للحصول على رمز برمجي جيد مكتوب تلقائيًا تحت توجيهك.

  1. تثبيت البرنامج
  2. وضبطه / تشغيله،
  3. والدخول في حلقة ملاحظات صالحة

هذا ما نريد منك حقًا أن تتعلمه هنا. يمكنك أيضًا اختبارها جميعًا في الوقت نفسه من خلال $ make web-4steps.

4. الخطوة 1: الوكيل الأساسي

abfef47ab2ff0c98.png

لنبدأ بإنشاء وكيل أساسي يمكنه إجراء محادثة.

عدِّل الملف الذي يحمل الاسم mysolution/__init__.py من خلال إضافة المحتوى التالي:

from .agent import root_agent

الأمر بهذه البساطة. يتيح ذلك لـ ADK معرفة مكان الرمز البرمجي: في agent.py.

عدِّل الملف الذي يحمل الاسم mysolution/agent.py من خلال إضافة المحتوى التالي:

from google.adk.agents import Agent

root_agent = Agent(
    name="travel_basic",
    model="gemini-2.5-flash",
    instruction="You are a helpful travel assistant." +
    "You can help with general travel advice based on your knowledge.",
)

اختبار الوكيل

وينطبق ذلك على جميع الخطوات. تتيح لك حزمة ADK اختبار وكيلك بطريقتَين: واجهة سطر الأوامر والويب.

  • CLI هي الأفضل للاختبارات السريعة والآلية
  • الويب هو أفضل خيار للاطّلاع على ما يحدث واستخدام الميكروفون (!) وتحديد المشاكل وحلّها.

ملاحظة: لغرض هذا التمرين، من أجل إنجاز أي مهمة (باستثناء اختبار الوحدة)، استخدِم الويب. إنّها رائعة حقًا! استخدِم واجهة سطر الأوامر (CLI) للاختبار المبرمَج فقط.

يمكن أن يكون الطلب الجيد الذي يختبر الخطوات 1 و2 و3 و4 بشكل صحيح على النحو التالي (طلب ذكي لاختبار مدى فعالية النموذج):

مرحبًا، أريد حجز فندق في باريس لمساء الغد لشخص واحد، لليلة واحدة، في وسط مدينة باريس. يقع الفندق في موقع مثالي بالقرب من محطة "غار دو ليون". الميزانية: أقل من 200 يورو في الليلة.

  1. أريد معرفة تاريخ الغد بتنسيق YYYYMMDD واليوم من الأسبوع.
  2. أريد معرفة الفنادق المتاحة غدًا (3 على الأقل). أريد الاطّلاع على: > السعر والعنوان وبعض التقييمات (على شكل XX/YY، مثل "4.7/5" من "الفنادق على Google" أو Booking أو Airbnb) وعدد المراجعات. أريدها بتنسيق جدولي. من الأفضل ربط اسم الفندق بعنوان URL الخاص به (لا داعي لإضافة عمود لعنوان URL). تأكَّد من أنّ الرابط صالح (يعمل وتنقل الصفحة إلى معلومات عن الفندق).

هذا طلب ذكي لأنّه يختبر الوقت والفنادق، وسيتعذّر تنفيذه بشكل مختلف في الخطوات 1 و2 و3، ومن المفترض أن ينجح بالكامل في الخطوة 4 فقط. يمكنك بالطبع استخدام أي طلب تريده.

شغِّلها من bash (واجهة سطر الأوامر):

# 1. If ADK was installed:
adk run mysolution/
# ... but if you get: -bash: adk: command not found"
# 2. Call ADK cli script through UV to avoid python install nightmares.
uv run adk run mysolution/

جرِّب استخدام "الطلب التجريبي" أعلاه.

ومن المرجّح أنّه لن يتمكّن من معرفة تواريخ محدّدة. علينا تعليمه كيفية معرفة التاريخ.

على الويب، يمكنك اتّباع الخطوات التالية:

  1. ‫uv run adk web . : يؤدي هذا الإجراء إلى تشغيل جميع الوكلاء ضمن هذا المجلد. تريد توجيهه إلى المجلد الفرعي "mysolution/‎"
  2. اختَر mysolution/ في أعلى يسار الصفحة (انظر الصورة بجانبها)
  3. اطرح سؤالك نصيًا أو عبر الميكروفون، على غرار "الطلب التجريبي".

واجهة مستخدم ADK على الويب تعرض نتيجة وكيل السفر

يُرجى العِلم أنّه عليك استدعاء adk web من المجلد العلوي، مع مراعاة إصدار واجهة سطر الأوامر.

روبوت أصفر - نتيجة الخطوة 1 مع اقتراحات بشأن التواريخ والفنادق

إليك حلّ محتمل، مع تاريخ شبه هلوسة. يُرجى العِلم أنّ 3 من روابط الحجز الـ 5 تعمل. لا بأس.

5- الخطوة 2: إضافة أداة ()now

محرّر Cloud Shell يعرض تنفيذ أداة ()now في ملف agent.py

أضِف هذه الدالة إلى agent.py قبل تعريف root_agent مباشرةً:

from datetime import datetime

def now() -> dict:
    """Returns the current date and time."""
    my_datetime = ... # Ask Gemini CLI to help you!
    return {
        "status": "success",
        "current_time": my_datetime
    }

عدِّل تعريف الوكيل لتضمين الأداة:

  # file XXX.py

  root_agent = Agent(
        name="..",
        model="..",
        instruction="..",
        tools=[now] # <== This is the only line you want to add.
    )

شغِّلها مرة أخرى واطرح السؤال نفسه. من المفترض أن يعرف الآن التاريخ (جيد)، وأن يكون غامضًا بشأن الفنادق (سيئ).

يمكنك أيضًا اختبارها باستخدام شيء مثل هذا:

# Let's pretend we're in Milan. This should call the tool
# and respond correctly (possibly with some TZ math issues)
echo "What time is it in Milan?" | uv run adk run mysolution/

6. الخطوة 3: لنبدأ بالتركيز على شيء آخر: google_search

google_search. يتيح ذلك لوكيلنا الوصول إلى المعلومات في الوقت الفعلي من الويب.

3cd72c019b8b225f.png

مهمتك هي تعديل الوكيل من الخطوة 2. بدلاً من استخدام أداة now، ستستورد أداة google_search من مكتبة ADK وتستخدمها.

# Full Code: `steps/step03_search/agent.py`
# Remember to REMOVE the now() tool here. See above why.
from google.adk.agents import Agent
from google.adk.tools import google_search

root_agent = Agent(
    name="travel_agent",
    model="gemini-2.5-flash",
    tools=[google_search],
    instruction="""You are a travel agent.
Your job is to help the user plan a trip.
You have access to a search engine.
If you don't know the answer, you can use the search engine.
When you are done, reply with "DONE".""",
)

كيفية تشغيل

تمامًا كالخطوة 1.

الخبراء فقط: لإجراء عملية دمج أكثر تقدّمًا (باستخدام google_search وnow معًا)، يُرجى الاطّلاع على الرمز في steps/step03b_search_and_tool/agent.py وتشغيله باستخدام make run-step3b. هذه الخطوة اختيارية.

7. الخطوة 4: أداة أكثر تطورًا: بروتوكول MCP

شعار ADK

بعد أن تعرّفنا على الأدوات المخصّصة والمضمّنة، لننتقل إلى شيء أكثر فعالية: نمط النموذج كأداة باستخدام بروتوكول سياق النموذج (MCP).

لإبقاء هذه الخطوة مركّزة على الإمكانات الفعّالة لـ MCP، سنقوم مرة أخرى باستبدال أداتنا السابقة (google_search). سنعيد تقديم أداة now البسيطة لتعمل جنبًا إلى جنب مع أداة airbnb_mcp. يوضّح ذلك كيف يمكن للوكيل استخدام أدوات متعدّدة ومتوافقة (في هذه الحالة، FunctionTool وMCPToolset) لتنفيذ مهام معقّدة.

# Full Code: steps/step04_mcp/agent.py
# ... Imports as before
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from mcp import StdioServerParameters

def now() -> dict:
    # ... as before

# Configure the Airbnb MCP Toolset
airbnb_mcp = MCPToolset(
    connection_params=StdioConnectionParams(
        server_params=StdioServerParameters(
            command='npx',
            args=["-y", "@openbnb/mcp-server-airbnb", "--ignore-robots-txt"],
        ),
    )
)

root_agent = Agent(
    name="travel_mcp",
    model="gemini-2.5-flash",
    instruction="You are a helpful travel assistant. You can find accommodation using Airbnb, and have access to the current time.",
    tools=[now, airbnb_mcp],
)

كيفية تشغيل

تتطلّب هذه الخطوة تثبيت npx على نظامك. بالنسبة إلى الباقي، هذا هو نفسه المذكور أعلاه.

المحاذير/الأخطاء

  1. إذا ظهرت لك رسالة خطأ بشأن حظر robots.txt، يمكنك تصحيح MCP باستخدام توجيه تجاهل robots. يمكنك الاطّلاع على المستندات لمزيد من التفاصيل: https://github.com/openbnb-org/mcp-server-airbnb
  2. إذا ظهر لك الخطأ timeout (5 ثوانٍ هي مدة قصيرة جدًا لكي يتلقّى Airbnb الردود)، يمكنك الاطّلاع على مستندات ADK حول كيفية زيادة مهلة الانتظار إلى 30 ثانية مثلاً. أو.. يمكنك استخدام Gemini CLI لإجراء ذلك. يُرجى العِلم أنّه في 3 ديسمبر 2025، ظهر لي خطأ انتهاء المهلة في Cloud Shell، وقد أصلحتُه، ولكن استمر ظهور الأخطاء إلى أن فرضتُ الإصدار السابق: args=["-y", "@openbnb/mcp-server-airbnb@0.1.2", "--ignore-robots-txt"].

8. 🏅 اكتمل الإنجاز الأول!

‫🏅 تهانينا! 🏅 أصبحت الآن خبيرًا في ADK. لقد أكملتم الجزء الأول من ورشة العمل ونجحتم في إنشاء واختبار وكلاء ذكاء اصطناعي باستخدام أدوات مخصّصة وأدوات مدمجة وأدوات MCP متقدّمة. أنت الآن جاهز لإنشاء وكلائك الرائعين باستخدام حزمة Google Agent Development Kit.

أصبح لديك الآن وكيل سفر فعّال يعرف الوقت ويمكنه البحث في الويب. لا حدود للطموح الآن.

حان الوقت الآن لإضافة وظيفة أخرى باستخدام "Gemini CLI".

9. 🏅 الإنجاز الثاني: البرمجة الوصفية من خلال حزمة ADK عبر Gemini CLI

ننتقل الآن إلى الجزء الممتع من ورشة العمل.

  1. يُرجى التأكّد من git commit الرمز في مكان آمن. يمكنك إنشاء نسخة من الرمز الأصلي أو إنشاء فرع: لا تقلق، فواجهة سطر أوامر Gemini رائعة في مساعدتك هنا!
  2. ابحث عن 💡 فكرة لتنفيذها. يمكنك الاطّلاع على الأفكار أدناه أو العثور على فكرة بنفسك أو اسأل Gemini الاطّلاع على المستندات في rag/‎ واقتراح بعض الأفكار الذكية.
  3. اتّبِع المتطلبات الأساسية للتأكّد من أنّ Gemini يمكنه قراءة مستندات ADK، وبعدها يمكنك البدء.

💡 أفكار

  1. 🟢 [سهل] هل تتحدثون لغات متعددة؟ هل المطلوب منح go أو java أو TypeScript؟ إعادة هيكلة الرمز الحالي بسيطة للغاية! ما عليك سوى تنزيل حزمة ADK المناسبة والطلب من Gemini CLI إجراء الترجمة.
  2. 🟢 [سهل] أضِف رموز إيموجي أو حدِّد تنسيقًا معيّنًا للنتائج (مثلاً، جدول يتضمّن رمز إيموجي للفندق، يليه السعر، ثم رموز إيموجي للنجوم من 1 إلى 5 استنادًا إلى 🌕🌕🌕🌗🌑 لإضافة أنصاف النجوم أيضًا).
  3. 🟢 [سهل] غيِّر الطلب لتعليمه الأشياء التي تبحث عنها أو لا تبحث عنها تحديدًا (مناسب للحيوانات الأليفة، ليس في الطابق الأرضي، هادئ، قريب من وسائل النقل العام، ..) واختبِره. يمكنك إضافة تقييم شخصي مثل "تقييم YOUR_NAME من 1 إلى 10" استنادًا إلى ما سبق، وترتيبها حسب هذا التقييم.
  4. 🟢 [سهل] هل هناك أي مشغّل في الغرفة؟ انشر التطبيق على Cloud Run. أو إلى Vertex AI Agent Engine! هل تعلم أنّه يمكنك دمج هذا الوكيل واستدعاؤه مباشرةً من Gemini Enterprise الجديد؟
  5. 🟢 [سهل] دمج adk run مع 🍌 NanoBanana MCP. يتطلّب ذلك مفتاح Gemini API. يمكنك هنا إنشاء صور ولكن لا يمكنك عرضها. يمكنك الاطّلاع أدناه على صيغة أصعب.
  6. ‫🟡 [متوسط] أنشئ وكيلًا فرعيًا ينفّذ HotelSearch وأنشئ BudgetAgent أو LocationAgent يمكنه مضاعفة الجهود وتكرار البحث عن الفنادق التي تلبّي احتياجاتك المتعلقة بالموقع الجغرافي، مثل "على بُعد لا يزيد عن X كم من الموقع الجغرافي". إذا لم تسمح واجهة برمجة التطبيقات بذلك، قد يتم تبادل بعض المعلومات بمساعدة "بحث Google". ملاحظة: يمكن أن يساعدك Gemini CLI.
  7. 🟡 [متوسط] تنفيذ AirbnbReviewAgent يحلّل المراجعات ويلخّص الإيجابيات والسلبيات في بضع نقاط مرمّزة بالألوان، لفندق واحد أو أكثر من الفنادق التي تظهر في نتائج البحث. لديك مكوّنان (GoogleSearch وMCP Airbnb)، وعليك ربطهما بالوكيل الرئيسي وربما ابتكار نوع من البروتوكول ليتواصلا.
  8. ‫🟡 [متوسط] التكامل مع A2A يمكنك تحويله إلى وكيل A2A. يمكنك طلب المساعدة من Gemini CLI مجددًا.
  9. 🔴 [معقّد] يمكنك التكامل مع رحلات جوية من Google أو وظائف أخرى في MCP لإنشاء وكيل سفر متعدّد الأوجه والوظائف.
  10. ‫🔴 [complex] دمج ADK للويب مع 🍌 NanoBanana MCP هذه المهمة أصعب من المهمة السابقة، ويمكنك العثور على بعض النصائح في https://github.com/palladius/ai-friendly-agents/issues/11 . استغرق ذلك من المؤلّف 3 ساعات من العمل مع Gemini CLI وGemini3 وقراءة المستندات/الرموز البرمجية من rag/!

هل تبحث عن المزيد من الأفكار؟

  1. يمكنك الاطّلاع على الدليل التعليمي الرسمي لحزمة ADK للحصول على بعض الأفكار.
  2. اطلب من Gemini CLI العثور على أفكار من خلال الاطّلاع على المستندات ضمن rag/: قد يكون الطلب المحتمل: Is there a feature in here which seems very succulent to you? Give me 3 proposals and let's implement together the one I choose.

المتطلبات الأساسية لاستخدام "RAG" في ADK

لإنشاء وظيفة باستخدام Vibe Code، ننصحك بتنزيل حزمة ADK الكاملة python ADK (ملاحظة: يمكن تكييفها بسهولة مع لغتك المفضّلة، مثل Java أو Go).

يتوفّر الرمز البرمجي ضمن ./rag ويمكن تنزيله باستخدام ./download-adk.sh.

بما أنّ المجلد rag مُدرَج في ملف .gitignore، تأكَّد من أنّ .gemini/settings.json يحتوي على ما يلي:

{
 "context": {
   "includeDirectories": ["rag"]
 }
}

لماذا؟ نريد أن يتمكّن Gemini من قراءة هذه الملفات، مع تجاهلها بأمان في git. من الناحية الفنية، يمكنك أيضًا إظهار جميع ملفات ‎ .gitignore من خلال ضبط context.fileFiltering.respectGitIgnore على false، ولكن هذا يفتح الكثير من الملفات غير المرغوب فيها في node_modules/ و__pycache__/، لذا يُفضَّل تضمين المجلدات بشكل صريح.

10. الخطوات التالية

الفضول: تم إنشاء ورشة العمل هذه بمساعدة Gemini CLI. إذا كنت مهتمًا، يمكنك معرفة كيف فعلت ذلك من خلال الاطّلاع على GEMINI.md وWORKSHOP_PLAN.md في هذا المجلد.

الدروس المستفادة

لقد تعلّمنا كيفية ربط حزمة ADK بـ Gemini CLI

موادّ إضافية للقراءة

6d05afb6b8b235d8.png