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

۱. مرور کلی

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

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

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

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

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

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

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

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

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

آنچه خواهید ساخت

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

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

نماینده طرح نوسازی، برای تهیه سند طرح نوسازی آشپزخانه.

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

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

۲. ام سی پی

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

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

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

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

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

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

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

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

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

باید این واقعیت را مطرح کنم که این مربوط به قبل از MCP است!!!

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

9a9018b8596bd34e.png

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

الزامات

  • یک مرورگر، مانند کروم یا فایرفاکس
  • یک پروژه گوگل کلود با قابلیت پرداخت.

۳. قبل از شروع

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

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

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

  1. با کلیک روی این لینک، Cloud Shell را فعال کنید. می‌توانید با کلیک روی دکمه مربوطه از Cloud Shell، بین Cloud Shell Terminal (برای اجرای دستورات ابری) و Editor (برای ساخت پروژه‌ها) جابجا شوید.
  2. پس از اتصال به Cloud Shell، با استفاده از دستور زیر بررسی می‌کنید که آیا از قبل احراز هویت شده‌اید و پروژه روی شناسه پروژه شما تنظیم شده است یا خیر:
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. حتماً پایتون ۳.۹+ داشته باشید
  2. برای دستورات و نحوه‌ی استفاده از gcloud به مستندات مراجعه کنید.

۴. تنظیمات ADK

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

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

python -m venv .venv

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

source .venv/bin/activate
  1. نصب ADK
pip install google-adk

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

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

۶. کد منبع

  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. به فایل requirements.txt بروید و آن را با محتوای زیر به‌روزرسانی کنید:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

۷. راه‌اندازی پایگاه داده

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

ایجاد یک کلاستر و نمونه

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

f76ff480c8c889aa.png

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

538dba58908162fb.png

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

تنظیم اتصال را انتخاب کنید.
7939bbb6802a91bf.png

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

۶. نکته مهم: حتماً شناسه نمونه (که می‌توانید در زمان پیکربندی خوشه/نمونه پیدا کنید) را به تغییر دهید.

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

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

e4d1045e1255e40f.png

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

e06623e55195e16e.png

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

مصرف داده

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

847e35f1bf8a8bd8.png

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

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

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

۹۱a۸۶d۹۴۶۹d۴۹۹c۴.png

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

ایجاد یک جدول

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

-- 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 که در بالا ذکر شد، در ویرایشگر کپی کنید.

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

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

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

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

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

  1. به ترمینال Cloud Shell خود بروید و مطمئن شوید که پروژه شما انتخاب شده و در اعلان ترمینال نمایش داده می‌شود. دستور زیر را از ترمینال Cloud Shell خود اجرا کنید تا به دایرکتوری پروژه خود بروید:
cd adk-renovation-agent
  1. دستور زیر را برای دانلود و نصب toolbox در پوشه جدید خود اجرا کنید:
# 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. به ویرایشگر Cloud Shell (برای حالت ویرایش کد) بروید و در پوشه ریشه پروژه، فایلی به نام "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;

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

بیایید tools.yaml را درک کنیم

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

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

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

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

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

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

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

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

مطابق شکل زیر، روی پیش‌نمایش وب در Cloud Shell کلیک کنید:

f990712162e8e924.png

روی Change port کلیک کنید و پورت را مانند تصویر زیر روی ۵۰۰۰ تنظیم کنید و روی Change and Preview کلیک کنید.

d1b9de0c46ecef8a.png

این باید خروجی را به همراه داشته باشد:

2fdcdac326034d41.png

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

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

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

  1. یک ترمینال Cloud Shell جدید راه‌اندازی کنید یا از یک ترمینال Cloud Shell موجود استفاده کنید. به پوشه پروژه که فایل باینری toolbox و tools.yaml در آن قرار دارند بروید، در این مورد adk-renovation-agent
  2. متغیر PROJECT_ID را طوری تنظیم کنید که به شناسه پروژه گوگل کلود شما اشاره کند.
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
  1. فعال کردن این سرویس‌های ابری گوگل
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

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

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

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

بیایید Toolbox Tool را به Agent خود وصل کنیم!!!

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

  1. فایل requirements.txt خود را به همراه سورس آن از مخزن مشاهده کنید :

ما وابستگی مربوط به MCP Toolbox for Databases را در requirements.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

۹. تنظیمات مدل

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

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

۱۰. تنظیمات متغیرهای 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>>

مقادیر خود را جایگزین متغیرهایی کنید.

۱۱. عامل خود را اجرا کنید

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

Hello. Check order status for Cement Bags.

۱۲. نتیجه

3e74f6f757e2db2c.png

۱۳. تمیز کردن

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

  1. در کنسول گوگل کلود، به صفحه مدیریت منابع بروید.
  2. در لیست پروژه‌ها، پروژه‌ای را که می‌خواهید حذف کنید انتخاب کنید و سپس روی «حذف» کلیک کنید.
  3. در کادر محاوره‌ای، شناسه پروژه را تایپ کنید و سپس برای حذف پروژه، روی خاموش کردن کلیک کنید.

۱۴. تبریک

تبریک! شما با موفقیت یک برنامه چندعاملی با استفاده از ADK و MCP Toolbox for Databases ایجاد کرده‌اید! برای اطلاعات بیشتر، به مستندات محصول مراجعه کنید: Agent Development Kit و MCP Toolbox for Databases .