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

1. مقدمة

9344c1d1a9f221b7.png

تاريخ آخر تعديل: 2026-02-02

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

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

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

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

الجزء الثاني يجعل هذا الدرس البرمجي مناسبًا تمامًا لجلسة برمجة مكثّفة (مع جوائز لأكثر الحلول إبداعًا).

المرحلة 1: إنشاء أول وكيل باستخدام حزمة تطوير التطبيقات وGemini CLI

الهدف من هذا الإنجاز هو إنشاء وكيل سفر بسيط باستخدام "حزمة تطوير التطبيقات" خطوة بخطوة.

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

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

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

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

ما ستنشئه

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

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

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

ما ستتعلمه

  • كيفية إنشاء تطبيق باستخدام "حزمة تطوير التطبيقات"
  • كيفية استخدام 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.png

37d264871000675d.png

96d86d3d5655cdbe.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، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا الدرس العملي ضمن المتصفّح. لست بحاجة إلى تثبيت أي تطبيق.

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

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

1. ‫Python وuv

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

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

لماذا الأشعة فوق البنفسجية؟ على الرغم من أنّه يمكنك استخدام أي أداة إدارة 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 .

ملاحظة: يتطلب ذلك تثبيت npm أو npx.

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 مساعدتك هنا.

يمكنك أيضًا تثبيت just، وهو Makefile أكثر تقدّمًا ويوثّق نفسه. يمكنك أيضًا أن تطلب من 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/، لذا لننشئ المجلد والملفَين اللذين نحتاجهما.

في هذه المرحلة، يمكنك فتح بيئة التطوير المتكاملة (Visual Studio Code وIntelliJ وRubyMine وما إلى ذلك) وفتح المجلد.

# 1. Find an empty directory, and download this repo.
git clone https://github.com/palladius/ai-friendly-agents/
cd ai-friendly-agents/adk/workshops/simple-travel-agent/

# 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 sync

# 4. Call Gemini CLI
gemini  # This runs Gemini CLI under the simple-travel-agent/ folder.
# Login with your GMail account.

uv sync ليس مطلوبًا بشكل صارم، ولكن في حال تعذُّر تنفيذه، ستعرف أنّه عليك إصلاح عملية تثبيت Python أو uv.

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

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

لا يهدف هذا الدرس التطبيقي إلى تعليمك كيفية كتابة رمز ADK جيد، بل يهدف إلى إعداد بيئتك لكتابة رمز GOOD تلقائيًا بتوجيه منك.

  1. تثبيت البرنامج
  2. ضبطها أو إعدادها للعمل
  3. الدخول في حلقة ملاحظات إيجابية

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

3. الخطوة 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.",
)

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

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

  • CLI هي الأنسب للاختبارات السريعة والمبرمَجة
  • الويب هو الخيار الأفضل لمعرفة ما يحدث بشكل مرئي، واستخدام الميكروفون، وتحديد المشاكل وحلّها.

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

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

# <!– litmus prompt –> مرحبًا، أريد حجز فندق في باريس لليلة واحدة فقط، في وسط المدينة، ابتداءً من مساء الغد. يُفضّل أن يكون بالقرب من "محطة ليون". الميزانية: أقل من 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. اطرح سؤالك في نص أو عبر الميكروفون، على سبيل المثال، "اختبار الحموضة".

TODO(ricc): <image here>

يُرجى العِلم أنّه عليك طلب adk web من المجلد العلوي، وذلك وفقًا لإصدار واجهة سطر الأوامر.

في ما يلي حلّ محتمل يتضمّن معلومات غير صحيحة جزئيًا عن التاريخ. ملاحظة: 3 من 5 روابط حجز تعمل. لا بأس.

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

لا يعرف الوكيل ما هو "اليوم". لنزوّده بأداة.

TODO(image): ricc put here image of step2.

أضِف هذه الدالة إلى 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

  travel_agent = LlmAgent(
        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/

5. الخطوة 3: لنغيّر الموضوع: google_search

بعد أن تعرّفنا على كيفية إنشاء أداة مخصّصة، لنستكشف كيفية استخدام إحدى الأدوات المضمّنة الفعّالة التي توفّرها "مجموعة أدوات المطوّرين" (ADK): 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 ونفِّذه باستخدام just run-step3b. هذه الخطوة اختيارية تمامًا.

6. الخطوة 4: أداة أكثر تعقيدًا: "إدارة العملاء المتعددين" (MCM)

TODO(ricc): إضافة الصورة 4

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

7. 🏅 اكتمل الإنجاز 1!

🏅 تهانينا! 🏅 أنت الآن خبير في حزمة تطوير التطبيقات (ADK)! لقد أكملت الجزء الأول من ورشة العمل ونجحت في إنشاء واختبار وكلاء الذكاء الاصطناعي باستخدام أدوات مخصّصة وأدوات مضمّنة وأدوات متقدّمة في "منصة Google Cloud للتسويق". أنت الآن جاهز لإنشاء وكلاء مذهلين باستخدام "حزمة تطوير الوكلاء من Google".

أصبح لديك الآن وكيل سفر يعمل بشكل جيد ويعرف الوقت ويمكنه البحث على الويب. أصبح بإمكانك الآن تحقيق أي هدف!

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

8. ‫🏅 الإنجاز 2: البرمجة الوصفية باستخدام ADK من خلال Gemini CLI

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

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

💡 الأفكار

في ما يلي قائمة تتضمّن بعض الأفكار بدرجات تعقيد مختلفة.

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

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

  1. يمكنك الاطّلاع على البرنامج التعليمي الرائع حول حزمة تطوير التطبيقات على Android الذي أعدّه "ماوريتسيو" للحصول على بعض الأفكار.
  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.

المتطلبات الأساسية لـ "إنشاء الردود" في حزمة تطوير التطبيقات (ADK)

لإنشاء رمز برمجي لوظيفة معيّنة، ننصحك بتنزيل حزمة تطوير التطبيقات (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__/، لذا يُفضّل تضمين المجلد بشكل صريح.

9- الخطوات التالية

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

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

تعرّفنا على كيفية إقران "حزمة تطوير التطبيقات" مع Gemini CLI

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

6d05afb6b8b235d8.png