ساخت یک برنامه چند عاملی با جعبه ابزار MCP برای AlloyDB & ADK

یک برنامه چند عامله با جعبه ابزار MCP برای AlloyDB و ADK بسازید

درباره این codelab

subjectآخرین به‌روزرسانی: ژوئن ۱۷, ۲۰۲۵
account_circleنویسنده: Author: Abirami Sukumaran

1. نمای کلی

Agent یک برنامه مستقل است که با یک مدل هوش مصنوعی صحبت می کند تا یک عملیات مبتنی بر هدف را با استفاده از ابزارها و زمینه ای که دارد انجام دهد و قادر به تصمیم گیری مستقل مبتنی بر حقیقت است!

هنگامی که برنامه شما دارای چندین عامل است که به طور مستقل و با هم کار می کنند تا هدف بزرگتر خود را برآورده کنند و هر یک از نمایندگان آن به طور مستقل دانش و مسئولیت یک منطقه متمرکز خاص را داشته باشند، برنامه شما به یک سیستم چند عاملی تبدیل می شود.

کیت توسعه عامل (ADK)

کیت توسعه عامل (ADK) یک چارچوب انعطاف‌پذیر و ماژولار برای توسعه و استقرار عوامل هوش مصنوعی است. ADK از ساخت برنامه های پیچیده با ترکیب چندین نمونه عامل متمایز در یک سیستم چند عاملی (MAS) پشتیبانی می کند.

در ADK، یک سیستم چند عامله برنامه‌ای است که در آن عوامل مختلف، که اغلب یک سلسله مراتب را تشکیل می‌دهند، برای دستیابی به یک هدف بزرگ‌تر با یکدیگر همکاری یا هماهنگی می‌کنند. ساختار برنامه شما به این روش مزایای قابل توجهی را ارائه می دهد، از جمله ماژولار بودن، تخصصی شدن، قابلیت استفاده مجدد، قابلیت نگهداری، و توانایی تعریف جریان های کنترل ساخت یافته با استفاده از عوامل گردش کار اختصاصی.

مواردی که برای یک سیستم چند عاملی باید در نظر داشت

اول ، داشتن درک و استدلال مناسب از تخصص برای هر نماینده مهم است. - "آیا می دانید چرا برای چیزی به یک عامل فرعی خاص نیاز دارید"، ابتدا آن را حل کنید.

دوم ، نحوه گردآوری آنها با یک عامل ریشه برای مسیریابی و درک هر یک از پاسخ ها.

سوم ، انواع مختلفی از مسیریابی عامل وجود دارد که می توانید در اینجا در این مستندات پیدا کنید. مطمئن شوید که کدام یک با جریان برنامه شما مطابقت دارد. همچنین زمینه ها و حالت های مختلفی که برای کنترل جریان سیستم چند عامله خود نیاز دارید چیست.

چیزی که خواهی ساخت

بیایید یک سیستم چند عامله بسازیم تا با استفاده از جعبه ابزار MCP برای AlloyDB و ADK به بازسازی آشپزخانه رسیدگی کند.

  1. نماینده پیشنهاد نوسازی
  2. نماینده بررسی مجوزها و انطباق
  3. بررسی وضعیت سفارش (ابزار با استفاده از جعبه ابزار MCP برای پایگاه‌های داده)

نماینده پیشنهاد بازسازی، برای ایجاد سند پیشنهاد بازسازی آشپزخانه.

مجوزها و نماینده انطباق، برای مراقبت از مجوزها و وظایف مربوط به انطباق.

مامور بررسی وضعیت سفارش، برای بررسی وضعیت سفارش مواد با کار بر روی پایگاه داده مدیریت سفارش که ما در AlloyDB راه اندازی کرده ایم. اما برای این بخش پایگاه داده، از جعبه ابزار MCP برای AlloyDB برای پیاده سازی منطق بازیابی وضعیت برای سفارشات استفاده خواهیم کرد.

2. MCP

MCP مخفف Model Context Protocol است، یک استاندارد باز که توسط Anthropic توسعه یافته است و راه ثابتی را برای عوامل هوش مصنوعی برای ارتباط با ابزارها، خدمات و داده های خارجی فراهم می کند. اساساً به عنوان یک استاندارد مشترک برای برنامه های کاربردی هوش مصنوعی عمل می کند و به آنها اجازه می دهد به طور یکپارچه با منابع و ابزارهای مختلف داده تعامل داشته باشند.

  1. از یک مدل کلاینت-سرور استفاده می کند، جایی که برنامه های کاربردی هوش مصنوعی (میزبان ها) مشتری MCP را اجرا می کنند که با سرورهای MCP ارتباط برقرار می کند.
  2. هنگامی که یک عامل هوش مصنوعی نیاز به دسترسی به یک ابزار یا داده خاص دارد، یک درخواست ساختاریافته را به مشتری MCP ارسال می کند که آن را به سرور MCP مناسب ارسال می کند.
  3. به مدل‌های هوش مصنوعی اجازه می‌دهد به داده‌ها و ابزارهای خارجی بدون نیاز به کد سفارشی برای هر ادغام دسترسی داشته باشند.
  4. فرآیند ساخت عامل ها و گردش های کاری پیچیده را در بالای مدل های زبان بزرگ (LLM) ساده می کند.

جعبه ابزار MCP برای پایگاه های داده

Google's MCP Toolbox for Databases یک سرور MCP منبع باز برای پایگاه های داده است. این با در نظر گرفتن درجه سازمانی و کیفیت تولید طراحی شده است. این به شما امکان می دهد تا با مدیریت پیچیدگی هایی مانند ادغام اتصال، احراز هویت و موارد دیگر، ابزارها را آسان تر، سریع تر و ایمن تر توسعه دهید.

اجازه دهید عوامل شما به داده های موجود در پایگاه داده شما دسترسی داشته باشند!!! چگونه؟

توسعه ساده: ابزارها را در کمتر از 10 خط کد با عامل خود ادغام کنید، از ابزارها بین چندین عامل یا فریمورک استفاده مجدد کنید و نسخه های جدید ابزارها را راحت تر اجرا کنید.

عملکرد بهتر: بهترین روش‌ها مانند ادغام اتصال، احراز هویت و موارد دیگر.

امنیت پیشرفته: احراز هویت یکپارچه برای دسترسی ایمن تر به داده های شما

قابلیت مشاهده سرتاسر: معیارهای خارج از جعبه و ردیابی با پشتیبانی داخلی برای OpenTelemetry.

باید به این واقعیت اشاره کرد که این MCP قدیمی شده است!!!

جعبه ابزار MCP برای پایگاه‌های داده بین چارچوب سازماندهی برنامه عامل شما و پایگاه داده شما قرار می‌گیرد و یک صفحه کنترلی را ارائه می‌کند که برای اصلاح، توزیع یا فراخوانی ابزارها استفاده می‌شود. با ارائه یک مکان متمرکز برای ذخیره و به‌روزرسانی ابزارها، مدیریت ابزارهای شما را ساده می‌کند و به شما این امکان را می‌دهد که ابزارها را بین عوامل و برنامه‌ها به اشتراک بگذارید و آن ابزارها را بدون نیاز به استقرار مجدد برنامه خود به‌روزرسانی کنید.

9a9018b8596bd34e.png

ما یک عامل ریشه خواهیم داشت که این عوامل را بر اساس نیاز سازماندهی می کند.

الزامات

  • مرورگری مانند کروم یا فایرفاکس
  • یک پروژه Google Cloud با فعال کردن صورت‌حساب.

3. قبل از شروع

یک پروژه ایجاد کنید

  1. در Google Cloud Console ، در صفحه انتخاب پروژه، یک پروژه Google Cloud را انتخاب یا ایجاد کنید.
  2. مطمئن شوید که صورتحساب برای پروژه Cloud شما فعال است. با نحوه بررسی فعال بودن صورت‌حساب در پروژه آشنا شوید.

همچنین اگر در حال خواندن این مطلب هستید و می‌خواهید چند اعتبار برای شروع کار با Google Cloud و استفاده از ADK دریافت کنید، از این پیوند برای بازخرید اعتبار استفاده کنید. برای بازخرید آن می توانید دستورالعمل های اینجا را دنبال کنید. لطفا توجه داشته باشید که این لینک فقط تا پایان اردیبهشت برای بازخرید معتبر است.

  1. Cloud Shell را با کلیک بر روی این پیوند فعال کنید. می توانید با کلیک بر روی دکمه مربوطه از Cloud Shell بین Cloud Shell Terminal (برای اجرای دستورات ابری) و Editor (برای ساخت پروژه ها) جابه جا شوید.
  2. پس از اتصال به Cloud Shell، با استفاده از دستور زیر بررسی می‌کنید که قبلاً احراز هویت شده‌اید و پروژه به ID پروژه شما تنظیم شده است:
gcloud auth list
  1. دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد.
gcloud config list project
  1. اگر پروژه شما تنظیم نشده است، از دستور زیر برای تنظیم آن استفاده کنید:
gcloud config set project <YOUR_PROJECT_ID>
  1. API های زیر را با اجرای دستورات زیر فعال کنید:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com \alloydb.googleapis.com
  1. حتما پایتون 3.9+ را داشته باشید
  2. برای دستورات و استفاده از gcloud به اسناد مراجعه کنید.

4. راه اندازی ADK

  1. ایجاد و فعال کردن محیط مجازی (توصیه می شود)

از ترمینال Cloud Shell خود، یک محیط مجازی ایجاد کنید:

python -m venv .venv

فعال کردن محیط مجازی:

source .venv/bin/activate
  1. ADK را نصب کنید
pip install google-adk

5. ساختار پروژه

  1. از Cloud Shell Terminal، دستورات زیر را یکی یکی برای ایجاد پوشه‌های root و project اجرا کنید:
mkdir agentic-apps
cd agentic
-apps
mkdir renovation
-agent
  1. به ویرایشگر Cloud Shell بروید و با ایجاد فایل‌ها (برای شروع خالی) ساختار پروژه زیر را ایجاد کنید:
renovation-agent/
        __init__
.py
        agent
.py
       
.env

6. کد منبع

  1. به init .py بروید و با محتوای زیر به‌روزرسانی کنید:
from . import agent
  1. به agent.py بروید و فایل را با محتوای زیر از مسیر زیر به روز کنید:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

در agent.py، وابستگی های لازم را وارد می کنیم، پارامترهای پیکربندی را از فایل .env بازیابی می کنیم و root_agent را تعریف می کنیم که از 1 ابزار برای فراخوانی ابزار جعبه ابزار استفاده می کند.

  1. به request.txt بروید و آن را با محتوای زیر به روز کنید:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

7. راه اندازی پایگاه داده

در یکی از ابزارهای استفاده شده توسط ordering_agent به نام "check_status"، برای دریافت وضعیت سفارش ها به پایگاه داده سفارشات AlloyDB دسترسی پیدا می کنیم. در این بخش، کلاستر و نمونه پایگاه داده AlloyDB را تنظیم می کنیم.

یک خوشه و نمونه ایجاد کنید

  1. صفحه AlloyDB را در Cloud Console پیمایش کنید. یک راه آسان برای یافتن بیشتر صفحات در Cloud Console این است که آنها را با استفاده از نوار جستجوی کنسول جستجو کنید.
  2. CREATE CLUSTER را از آن صفحه انتخاب کنید:

f76ff480c8c889aa.png

  1. صفحه ای مانند تصویر زیر خواهید دید. یک خوشه و نمونه با مقادیر زیر ایجاد کنید (مطمئن شوید که مقادیر مطابقت دارند در صورتی که کد برنامه را از مخزن شبیه سازی می کنید):
  • cluster id : " vector-cluster "
  • رمز عبور : " alloydb "
  • سازگار با PostgreSQL 16 / هر آنچه جدیدتر باشد توصیه می شود
  • منطقه : " us-central1 "
  • شبکه سازی : " default "

538dba58908162fb.png

  1. وقتی شبکه پیش‌فرض را انتخاب می‌کنید، صفحه‌ای مانند تصویر زیر خواهید دید.

SET UP CONECTION را انتخاب کنید.
7939bbb6802a91bf.png

  1. از آنجا، « استفاده از محدوده IP خودکار اختصاص داده شده » را انتخاب کنید و ادامه دهید. پس از بررسی اطلاعات، CREATE CONNECTION را انتخاب کنید. 768ff5210e79676f.png

6. نکته مهم: مطمئن شوید که شناسه نمونه (که می توانید در زمان پیکربندی خوشه / نمونه پیدا کنید) را به تغییر دهید

vector-instance اگر نمی توانید آن را تغییر دهید، به یاد داشته باشید که از شناسه نمونه خود در همه مراجع بعدی استفاده کنید .

  1. در آماده سازی برای راه اندازی جعبه ابزار، اجازه دهید اتصال IP عمومی را در نمونه AlloyDB خود فعال کنیم تا ابزار جدید بتواند به پایگاه داده دسترسی داشته باشد.
  2. به بخش اتصال IP عمومی بروید، کادر فعال کردن IP عمومی را علامت بزنید و آدرس IP دستگاه Cloud Shell خود را وارد کنید.
  3. برای دریافت IP دستگاه Cloud Shell خود، به Cloud Shell Terminal بروید و ifconfig را وارد کنید. از نتیجه، آدرس inet eth0 را شناسایی کنید و 2 رقم آخر را با 0.0 با اندازه ماسک '/16' جایگزین کنید. به عنوان مثال به نظر می رسد "XX.XX.0.0/16" که در آن XX اعداد هستند.
  4. این IP را در کادر متنی «شبکه‌ها» شبکه‌های خارجی مجاز صفحه ویرایش نمونه قرار دهید.

e4d1045e1255e40f.png

  1. هنگامی که شبکه شما راه اندازی شد، می توانید به ایجاد خوشه خود ادامه دهید. روی CREATE CLUSTER کلیک کنید تا راه اندازی خوشه مطابق شکل زیر کامل شود:

e06623e55195e16e.png

توجه داشته باشید که ایجاد Cluster حدود 10 دقیقه طول خواهد کشید. پس از موفقیت آمیز بودن، باید صفحه ای را ببینید که نمای کلی خوشه شما را که به تازگی ایجاد کرده اید نشان می دهد.

بلع داده ها

اکنون زمان اضافه کردن یک جدول با داده های مربوط به فروشگاه است. به AlloyDB بروید، خوشه اصلی و سپس AlloyDB Studio را انتخاب کنید:

847e35f1bf8a8bd8.png

ممکن است لازم باشد منتظر بمانید تا ایجاد نمونه شما به پایان برسد. پس از آن، با استفاده از اعتبارنامه هایی که هنگام ایجاد کلاستر ایجاد کردید، وارد AlloyDB شوید. از داده های زیر برای احراز هویت در PostgreSQL استفاده کنید:

  • نام کاربری: " postgres "
  • پایگاه داده: " postgres "
  • رمز عبور: " alloydb "

هنگامی که با موفقیت در AlloyDB Studio احراز هویت شدید، دستورات SQL در ویرایشگر وارد می شوند. می‌توانید چندین پنجره ویرایشگر را با استفاده از علامت مثبت در سمت راست آخرین پنجره اضافه کنید.

91a86d9469d499c4.png

در صورت لزوم با استفاده از گزینه‌های Run، Format و Clear، دستورات AlloyDB را در پنجره‌های ویرایشگر وارد می‌کنید.

یک جدول ایجاد کنید

می توانید با استفاده از دستور DDL زیر در استودیو AlloyDB یک جدول ایجاد کنید:

-- Table DDL for Procurement Material Order Status

CREATE TABLE material_order_status (
    order_id VARCHAR(50) PRIMARY KEY,
    material_name VARCHAR(100) NOT NULL,
    supplier_name VARCHAR(100) NOT NULL,
    order_date DATE NOT NULL,
    estimated_delivery_date DATE,
    actual_delivery_date DATE,
    quantity_ordered INT NOT NULL,
    quantity_received INT,
    unit_price DECIMAL(10, 2) NOT NULL,
    total_amount DECIMAL(12, 2),
    order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
    delivery_address VARCHAR(255),
    contact_person VARCHAR(100),
    contact_phone VARCHAR(20),
    tracking_number VARCHAR(100),
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    quality_check_passed BOOLEAN,  -- Indicates if the material passed quality control
    quality_check_notes TEXT,        -- Notes from the quality control check
    priority VARCHAR(20),            -- e.g., "High", "Medium", "Low"
    project_id VARCHAR(50),          -- Link to a specific project
    receiver_name VARCHAR(100),        -- Name of the person who received the delivery
    return_reason TEXT,               -- Reason for returning material if applicable
    po_number VARCHAR(50)             -- Purchase order number
);

درج رکوردها

عبارت insert query را از اسکریپت database_script.sql که در بالا ذکر شد در ویرایشگر کپی کنید.

روی Run کلیک کنید.

اکنون که مجموعه داده آماده است، بیایید جعبه ابزار MCP را برای پایگاه های داده راه اندازی کنیم تا به عنوان صفحه کنترل برای همه تعاملات پایگاه داده سفارش ما در AlloyDB عمل کند!!!

8. جعبه ابزار MCP برای راه اندازی پایگاه داده

جعبه ابزار بین چارچوب سازماندهی برنامه شما و پایگاه داده شما قرار می گیرد و یک صفحه کنترل را ارائه می دهد که برای اصلاح، توزیع یا فراخوانی ابزارها استفاده می شود. با ارائه یک مکان متمرکز برای ذخیره و به‌روزرسانی ابزارها، مدیریت ابزارهای شما را ساده می‌کند و به شما این امکان را می‌دهد که ابزارها را بین عوامل و برنامه‌ها به اشتراک بگذارید و آن ابزارها را بدون نیاز به استقرار مجدد برنامه خود به‌روزرسانی کنید.

می بینید که یکی از پایگاه های داده پشتیبانی شده توسط MCP Toolbox for Databases، AlloyDB است و از آنجایی که قبلاً در قسمت قبل آن را ارائه کرده ایم، بیایید جلو برویم و Toolbox را راه اندازی کنیم.

  1. به ترمینال Cloud Shell خود بروید و مطمئن شوید که پروژه شما انتخاب شده و در اعلان ترمینال نشان داده شده است. دستور زیر را از ترمینال Cloud Shell خود اجرا کنید تا به فهرست پروژه خود بروید:
cd adk-renovation-agent
  1. دستور زیر را برای دانلود و نصب جعبه ابزار در پوشه جدید خود اجرا کنید:
# see releases page for other versions
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
  1. به ویرایشگر پوسته ابری (برای حالت ویرایش کد) بروید و در پوشه ریشه پروژه، فایلی به نام "tools.yaml" اضافه کنید.
sources:
    alloydb-orders:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "<<YOUR_ALLOYDB_CLUSTER>>"
        instance: "<<YOUR_ALLOYDB_INSTANCE>>"
        database: "<<YOUR_ALLOYDB_DATABASE>>"
        user: "<<YOUR_ALLOYDB_USER>>"
        password: "<<YOUR_ALLOYDB_PASSWORD>>"

tools:
  get-order-data:
    kind: postgres-sql
    source: alloydb-orders
    description: Get the status of an order based on the material description.
    parameters:
      - name: description
        type: string
        description: A description of the material to search for its order status.
    statement: |
      select order_status from material_order_status where lower(material_name) like lower($1)
      LIMIT 1;

در بخش پرس و جو (به پارامتر "گزاره" در بالا مراجعه کنید)، ما فقط مقدار فیلد order_status را زمانی که نام ماده با متن جستجوی کاربر مطابقت دارد، بازیابی می کنیم.

بیایید tools.yaml را بفهمیم

منابع نشان دهنده منابع داده های مختلف شما هستند که یک ابزار می تواند با آنها تعامل داشته باشد. منبع یک منبع داده را نشان می دهد که یک ابزار می تواند با آن تعامل داشته باشد. می توانید Sources را به عنوان نقشه در قسمت sources فایل tools.yaml خود تعریف کنید. به طور معمول، یک پیکربندی منبع حاوی اطلاعات مورد نیاز برای اتصال و تعامل با پایگاه داده است.

ابزارها اقداماتی را که یک عامل می تواند انجام دهد را تعریف می کند - مانند خواندن و نوشتن برای یک منبع. یک ابزار عملکردی را نشان می دهد که نماینده شما می تواند انجام دهد، مانند اجرای یک دستور SQL. می توانید Tools را به عنوان نقشه در قسمت tools فایل tools.yaml خود تعریف کنید. به طور معمول، یک ابزار برای عمل کردن به یک منبع نیاز دارد.

برای جزئیات بیشتر در مورد پیکربندی tools.yaml خود، به این مستندات مراجعه کنید.

بیایید جعبه ابزار MCP را برای سرور پایگاه داده اجرا کنیم

دستور زیر را (از پوشه mcp-toolbox) برای راه اندازی سرور اجرا کنید:

./toolbox --tools-file "tools.yaml"

اکنون اگر سرور را در حالت پیش‌نمایش وب در فضای ابری باز کنید، باید بتوانید سرور جعبه ابزار را با ابزار جدید خود به نام get-order-data در حال اجرا و اجرا ببینید.

سرور MCP Toolbox به طور پیش فرض روی پورت 5000 اجرا می شود. اجازه دهید از Cloud Shell برای آزمایش آن استفاده کنیم.

مطابق شکل زیر روی Web Preview در Cloud Shell کلیک کنید:

f990712162e8e924.png

بر روی Change port کلیک کنید و مطابق شکل زیر پورت را روی 5000 قرار دهید و روی Change and Preview کلیک کنید.

d1b9de0c46ecef8a.png

این باید خروجی را بیاورد:

2fdcdac326034d41.png

MCP Toolkit برای پایگاه‌های داده یک SDK پایتون را برای اعتبارسنجی و آزمایش ابزارها توصیف می‌کند که در اینجا مستند شده است. ما آن را نادیده می گیریم و در بخش بعدی که از این ابزارها استفاده می کند، مستقیماً به کیت توسعه عامل (ADK) می پریم.

بیایید جعبه ابزار خود را در Cloud Run مستقر کنیم

ابتدا می‌توانیم با سرور MCP Toolbox شروع کنیم و آن را در Cloud Run میزبانی کنیم. سپس یک نقطه پایانی عمومی به ما می دهد که می توانیم با هر برنامه دیگر و/یا برنامه های Agent نیز ادغام کنیم. دستورالعمل های میزبانی این در Cloud Run در اینجا آورده شده است. اکنون مراحل کلیدی را طی خواهیم کرد.

  1. یک ترمینال جدید Cloud Shell راه اندازی کنید یا از یک ترمینال Cloud Shell موجود استفاده کنید. به پوشه پروژه بروید که جعبه ابزار باینری و tools.yaml در آن وجود دارد، در این مورد adk-renovation-agent.
  2. متغیر PROJECT_ID را طوری تنظیم کنید که به شناسه پروژه Google Cloud شما اشاره کند.
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
  1. این خدمات Google Cloud را فعال کنید
gcloud services enable run.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       iam.googleapis.com \
                       secretmanager.googleapis.com
  1. بیایید یک حساب سرویس جداگانه ایجاد کنیم که به عنوان هویت سرویس Toolbox که در Google Cloud Run اجرا خواهیم کرد، عمل می کند.
gcloud iam service-accounts create toolbox-identity
  1. ما همچنین تضمین می‌کنیم که این حساب سرویس دارای نقش‌های صحیح است، یعنی توانایی دسترسی به Secret Manager و صحبت با AlloyDB
gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/secretmanager.secretAccessor

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/alloydb.client

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/serviceusage.serviceUsageConsumer
  1. ما فایل tools.yaml را به صورت مخفی آپلود می کنیم:
gcloud secrets create tools --data-file=tools.yaml

اگر از قبل یک Secret دارید و می خواهید نسخه مخفی را به روز کنید ، موارد زیر را اجرا کنید:

gcloud secrets versions add tools --data-file=tools.yaml

یک متغیر محیطی را برای تصویر کانتینری که می‌خواهید برای Cloud Run استفاده کنید، تنظیم کنید:

export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
  1. آخرین مرحله در دستور استقرار آشنا در Cloud Run:
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--allow-unauthenticated

این باید فرآیند استقرار Toolbox Server را با tools.yaml پیکربندی شده در Cloud Run آغاز کند. در استقرار موفقیت آمیز، باید پیامی شبیه به زیر مشاهده کنید:

Deploying container to Cloud Run service [toolbox] in project [YOUR_PROJECT_ID] region [us-central1]
OK Deploying new service... Done.                                                                                                                                                                                    
  OK Creating Revision...                                                                                                                                                                                            
  OK Routing traffic...                                                                                                                                                                                              
  OK Setting IAM Policy...                                                                                                                                                                                            
Done.                                                                                                                                                                                                                
Service [toolbox] revision [toolbox-00001-zsk] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-<SOME_ID>.us-central1.run.app

شما آماده اید که از ابزار تازه مستقر شده خود در برنامه کاربردی خود استفاده کنید!!!

بیایید ابزار جعبه ابزار را به نماینده خود وصل کنیم!!!

ما قبلاً منبع را برای برنامه عامل خود ایجاد کرده ایم. بیایید آن را به‌روزرسانی کنیم تا یک ابزار جدید MCP Toolbox برای پایگاه‌های داده را که به تازگی در Cloud Run به کار گرفته‌ایم، شامل شود.

  1. فایل requires.txt خود را با منبع از مخزن مشاهده کنید :

ما وابستگی جعبه ابزار MCP برای پایگاه‌های داده را در requirement.txt گنجانده‌ایم

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

  1. فایل agent.py خود را با کد موجود در مخزن مشاهده کنید :

ما ابزاری را گنجانده ایم که نقطه پایانی جعبه ابزار را برای واکشی داده های سفارش برای یک ماده خاص سفارش داده شده فراخوانی می کند.

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

9. راه اندازی مدل

توانایی نماینده شما برای درک درخواست‌های کاربر و ایجاد پاسخ توسط یک مدل زبان بزرگ (LLM) ارائه می‌شود. نماینده شما باید با این سرویس خارجی LLM تماس های ایمن برقرار کند که به اعتبارنامه احراز هویت نیاز دارد. بدون احراز هویت معتبر، سرویس LLM درخواست های عامل را رد می کند و عامل قادر به کار نخواهد بود.

  1. یک کلید API از Google AI Studio دریافت کنید.
  2. در مرحله بعدی که فایل .env را راه اندازی کردید، <<your API KEY>> را با مقدار واقعی کلید API خود جایگزین کنید.

10. تنظیم متغیرهای ENV

  1. مقادیر خود را برای پارامترهای موجود در قالب فایل env تنظیم کنید. در مورد من، .env این متغیرها را دارد:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>

جانشین ها را با مقادیر خود جایگزین کنید.

11. نماینده خود را اجرا کنید

  1. با استفاده از ترمینال، به دایرکتوری والد پروژه نماینده خود بروید:
cd renovation-agent
  1. نصب وابستگی ها:
pip install -r requirements.txt
  1. برای اجرای عامل می توانید دستور زیر را در ترمینال Cloud Shell خود اجرا کنید:
adk run .
  1. می توانید موارد زیر را برای اجرای آن در یک UI وب ارائه شده ADK اجرا کنید:
adk web
  1. با دستورات زیر تست کنید:
user>> 

Hello. Check order status for Cement Bags.

13. پاک کن

برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این پست، این مراحل را دنبال کنید:

  1. در کنسول Google Cloud، به صفحه مدیریت منابع بروید.
  2. در لیست پروژه، پروژه ای را که می خواهید حذف کنید انتخاب کنید و سپس روی Delete کلیک کنید.
  3. در محاوره، شناسه پروژه را تایپ کنید و سپس روی Shut down کلیک کنید تا پروژه حذف شود.

14. تبریک میگم

تبریک می گویم! شما با موفقیت یک برنامه چند عامله با استفاده از ADK و جعبه ابزار MCP برای پایگاه داده ایجاد کردید! برای اطلاعات بیشتر، به اسناد محصول مراجعه کنید: کیت توسعه عامل و جعبه ابزار MCP برای پایگاه‌های داده .