ADK, MCP, এবং মেমোরি ব্যাংকের মাধ্যমে ব্যক্তিগতকৃত এজেন্ট তৈরি করা

১. ভূমিকা

আধুনিক এজেন্ট স্ট্যাক

একটি প্রোডাকশন-গ্রেড এআই এজেন্ট তৈরি করতে শুধু একটি বৃহৎ ল্যাঙ্গুয়েজ মডেল (LLM)-এর চেয়েও বেশি কিছু প্রয়োজন। যদিও একটি LLM যুক্তি প্রদানের ক্ষমতা দেয়, একটি শক্তিশালী এজেন্টের বহির্বিশ্বের সাথে যোগাযোগ স্থাপন, কথোপকথনের অবস্থা পরিচালনা এবং সময়ের সাথে সাথে ব্যবহারকারীর পছন্দ মনে রাখার ক্ষমতা থাকা প্রয়োজন।

ডেমো১ডেমো২

এই কর্মশালায় আপনি তিনটি মৌলিক প্রযুক্তি ব্যবহার করে একটি পূর্ণাঙ্গ এজেন্টিক সিস্টেমের নকশা ও নির্মাণ করতে শিখবেন:

  1. কানেক্টিভিটি (এমসিপি) : আপনার এজেন্টকে স্থানীয় টুলস এবং ডেটাতে অ্যাক্সেস দেওয়ার জন্য।
  2. অর্কেস্ট্রেশন (ADK) : এজেন্টের রিজনিং লুপ এবং স্টেট পরিচালনা করার জন্য।
  3. স্মৃতি (স্মৃতি ভান্ডার) : দীর্ঘমেয়াদী ও ব্যক্তিগত প্রেক্ষাপট প্রদান করা।

কর্মশালার সংক্ষিপ্ত বিবরণ

মূল ধারণা

উপাদান

ফাংশন

মডেল প্রসঙ্গ প্রোটোকল (MCP)

একটি সর্বজনীন মান যা কাস্টম ইন্টিগ্রেশন ছাড়াই এআই মডেলগুলিকে বাহ্যিক সিস্টেমের (ডাটাবেস, ফাইলসিস্টেম, এপিআই) সাথে সংযুক্ত করে।

এজেন্ট ডেভেলপমেন্ট কিট (ADK)

একটি ফ্রেমওয়ার্ক যা এজেন্টদের জন্য রানটাইম এনভায়রনমেন্ট প্রদান করে এবং ইভেন্ট লুপ, স্টেট ট্রানজিশন ও টুল এক্সিকিউশন পরিচালনা করে।

অধিবেশন পরিষেবা

এটি স্বল্পমেয়াদী স্মৃতি পরিচালনা করে। এটি তাৎক্ষণিক কথোপকথনের প্রেক্ষাপট (যেমন, "ব্যবহারকারী এইমাত্র কী জিজ্ঞাসা করলেন?") সংরক্ষণ করে, কিন্তু সেশন শেষ হলে তা মুছে যায়।

ভার্টেক্স এআই মেমরি ব্যাংক

এটি দীর্ঘমেয়াদী স্মৃতি পরিচালনা করে। এটি ব্যবহারকারীর নির্দিষ্ট তথ্য এবং পছন্দসমূহ (যেমন, "ব্যবহারকারী পাইথন পছন্দ করেন") অনির্দিষ্টকালের জন্য সংরক্ষণ করে, যা এজেন্টকে ভবিষ্যতের মিথস্ক্রিয়া ব্যক্তিগতকৃত করার সুযোগ দেয়।

ভার্টেক্স এআই এজেন্ট ইঞ্জিন

পরিচালিত অবকাঠামো পরিষেবা যা আপনার এজেন্ট লজিক এবং মেমরি উপাদানগুলিকে বৃহৎ পরিসরে হোস্ট করে।

আপনি যা তৈরি করবেন

এই ধারণাগুলো প্রদর্শন করার জন্য, আপনি একটি হলিডে ডিজাইন অ্যাসিস্ট্যান্ট তৈরি করবেন। এই এজেন্টটি উচ্চ-স্তরের ব্যবহারকারীর অনুরোধ গ্রহণ করতে এবং ব্যক্তিগতকৃত কোড ও ছবি তৈরি করার জন্য স্থানীয় পাইথন টুলগুলোকে স্বয়ংক্রিয়ভাবে পরিচালনা করতে সক্ষম হবে।

আপনি তিনটি পর্যায় অতিক্রম করবেন:

  1. টুলিং লেয়ার : স্থানীয় পাইথন ফাংশনগুলোকে এআই-এর কাছে উন্মুক্ত করার জন্য একটি এমসিপি সার্ভার তৈরি করুন।
  2. এজেন্ট লেয়ার : ADK ব্যবহার করে এমন একটি এজেন্ট তৈরি করুন যা বহু-ধাপের ওয়ার্কফ্লো পরিকল্পনা ও সম্পাদন করে।
  3. মেমরি লেয়ার : এজেন্টকে ব্যবহারকারীর স্টাইলের পছন্দগুলো শিখতে ও মনে রাখতে সক্ষম করার জন্য মেমরি ব্যাংক একীভূত করুন।

২. সেট আপ করুন

আমাদের এআই এজেন্টদের শক্তিশালী করতে দুটি জিনিস প্রয়োজন: ভিত্তি স্থাপনের জন্য একটি গুগল ক্লাউড প্রজেক্ট।

প্রথম অংশ: বিলিং অ্যাকাউন্ট সক্রিয় করুন

এই কোডল্যাবটি চালানোর জন্য আপনার কিছু ক্রেডিট সহ একটি বিলিং অ্যাকাউন্ট প্রয়োজন। শুরু করার জন্য এই কোডল্যাবের উপরের ব্যানার থেকে ক্রেডিট ব্যবহার করুন। আপনি যদি ইতিমধ্যেই একটি বিলিং অ্যাকাউন্টের সাথে সংযুক্ত থাকেন, তাহলে আপনি এই ধাপটি এড়িয়ে যেতে পারেন।

দ্বিতীয় পর্ব: উন্মুক্ত পরিবেশ

  1. 👉 সরাসরি ক্লাউড শেল এডিটর- এ যেতে এই লিঙ্কে ক্লিক করুন
  2. 👉 আজ যেকোনো সময়ে অনুমোদনের জন্য অনুরোধ করা হলে, চালিয়ে যাওয়ার জন্য 'Authorize'-এ ক্লিক করুন। ক্লাউড শেল অনুমোদন করতে ক্লিক করুন
  3. 👉 যদি স্ক্রিনের নিচে টার্মিনালটি দেখা না যায়, তাহলে এটি খুলুন:
    • ভিউ ক্লিক করুন
    • টার্মিনালে ক্লিক করুন ক্লাউড শেল এডিটরে নতুন টার্মিনাল খুলুন
  4. 👉💻 টার্মিনালে, নিম্নলিখিত কমান্ডটি ব্যবহার করে যাচাই করুন যে আপনি ইতিমধ্যেই প্রমাণীকৃত এবং প্রজেক্টটি আপনার প্রজেক্ট আইডিতে সেট করা আছে:
    gcloud auth list
    
  5. 👉💻 গিটহাব থেকে বুটস্ট্র্যাপ প্রজেক্টটি ক্লোন করুন:
    git clone https://github.com/cuppibla/holiday_workshop
    
  6. 👉💻 প্রজেক্ট ডিরেক্টরি থেকে সেটআপ স্ক্রিপ্টটি চালান।
    cd ~/holiday_workshop
    ./init.sh
    
    স্ক্রিপ্টটি বাকি সেটআপ প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে সম্পন্ন করবে।
  7. 👉💻 প্রয়োজনীয় প্রজেক্ট আইডি সেট করুন:
    gcloud config set project $(cat ~/project_id.txt) --quiet
    

তৃতীয় পর্ব: অনুমতি স্থাপন

  1. 👉💻 নিচের কমান্ডটি ব্যবহার করে প্রয়োজনীয় API-গুলো সক্রিয় করুন। এতে কয়েক মিনিট সময় লাগতে পারে।
    gcloud services enable \
        cloudresourcemanager.googleapis.com \
        servicenetworking.googleapis.com \
        run.googleapis.com \
        aiplatform.googleapis.com \
        compute.googleapis.com
    
  2. 👉💻 টার্মিনালে নিম্নলিখিত কমান্ডগুলো চালিয়ে প্রয়োজনীয় অনুমতিগুলো প্রদান করুন:
    . ~/holiday_workshop/set_env.sh
    

লক্ষ্য করুন যে আপনার জন্য একটি .env ফাইল তৈরি হয়েছে। সেখানে আপনার প্রোজেক্টের তথ্য দেখানো হয়।

৩. এমসিপি দিয়ে শক্তি বৃদ্ধি

এআই-এর জন্য "ইউএসবি-সি" মুহূর্ত

ভাবুন তো, যদি প্রতিবার নতুন মাউস কেনার সময় আপনাকে সেটা মাদারবোর্ডে সোল্ডার করতে হতো। সম্প্রতি পর্যন্ত এআই টুলগুলোর অবস্থা এমনই ছিল। ডেভেলপারদের এলএলএম-কে ডেটাবেস, ফাইলসিস্টেম বা এপিআই-এর সাথে সংযোগ করার জন্য নিজস্ব 'গ্লু ​​কোড' লিখতে হতো।

এবার আসছে মডেল কনটেক্সট প্রোটোকল (MCP) । MCP-কে এআই অ্যাপ্লিকেশনের জন্য USB-C পোর্ট হিসেবে ভাবা যেতে পারে। এটি এআই মডেলগুলোকে ডেটা সোর্স এবং টুলের সাথে সংযুক্ত করার একটি প্রমিত উপায় প্রদান করে।

আপনি যদি আপনার টুলগুলোর জন্য একবার একটি MCP সার্ভার তৈরি করেন, তাহলে কোডের একটি লাইনও পরিবর্তন না করেই সেটিকে Gemini CLI, একটি IDE, বা অন্য যেকোনো MCP-সম্মত ক্লায়েন্টের সাথে যুক্ত করতে পারবেন।

আপনি যা তৈরি করবেন

mcp_server

এই কোডল্যাবে, আপনি এমন একটি হলিডে ডিজাইন অ্যাসিস্ট্যান্ট তৈরি করবেন যা:

  1. MCP ব্যবহার করে আপনার স্থানীয় পরিবেশের (স্টুডিও টুলস) সাথে সংযোগ স্থাপন করে
  2. এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে কথোপকথনের প্রেক্ষাপট নির্ভরযোগ্যভাবে পরিচালনা করে
  3. ভার্টেক্স এআই মেমোরি ব্যাংক ব্যবহার করে বিভিন্ন সেশনে আপনার পছন্দগুলো (যেমন, "আমি পাইথন কোড পছন্দ করি") মনে রাখে

সার্ভার লজিক তৈরি করা

আমরা পরিবেশ প্রস্তুত করেছি, কিন্তু সার্ভার লজিক অসম্পূর্ণ। আমাদের সেই চারটি নির্দিষ্ট টুল বাস্তবায়ন করতে হবে, যা আমাদের এজেন্ট অবশেষে হলিডে কার্ড তৈরি করতে ব্যবহার করবে।

প্রথম পর্ব: সার্ভার স্কেলেটন খুলুন

আমরা 01-MCP-Files-Testing/01-starter ডিরেক্টরিতে কাজ করব।

  1. আপনার ক্লাউড শেল টার্মিনালে, নিশ্চিত করুন যে আপনি সঠিক ডিরেক্টরিতে আছেন:
    cd ~/holiday_workshop/01-MCP-Files-Testing/01-starter/
    
  2. নিম্নলিখিত কমান্ডটি চালিয়ে ক্লাউড শেল এডিটর-এ ফাইলটি খুলুন:
    cloudshell edit ~/holiday_workshop/01-MCP-Files-Testing/01-starter/mcp_server.py
    

আপনি লক্ষ্য করবেন যে বয়লারপ্লেট কোড (এমসিপি সার্ভার সেট আপ করা, সংযোগ পরিচালনা করা এবং ভার্টেক্স এআই ক্লায়েন্ট ইনিশিয়ালাইজ করা) ইতিমধ্যেই করা আছে। তবে, চারটি মূল ফাংশন বর্তমানে খালি প্লেসহোল্ডার হিসেবে রয়েছে।

দ্বিতীয় পর্ব: ছুটির দৃশ্য জেনারেটর বাস্তবায়ন করুন

প্রথমত, আমাদের এমন একটি টুল প্রয়োজন যা ব্যবহারকারীর আগ্রহকে (যেমন, 'পাখি') ছবি তৈরির জন্য বিশেষভাবে উপযোগী একটি সমৃদ্ধ ও বিস্তারিত নির্দেশনায় রূপান্তরিত করবে।

generate_holiday_scene ফাংশনের ভিতরে #REPLACE_GENERATE_HOLIDAY_SCENE কমেন্টটি খুঁজুন।

এই সম্পূর্ণ লাইনটি নিচের কোড দিয়ে প্রতিস্থাপন করুন :

    prompt = (
        f"""
        Create a cozy, high-fidelity 3D render of a winter holiday scene.
        The scene should be warm and inviting with soft cinematic lighting.
        
        Seamlessly integrate the following specific theme/interest into the 
        holiday decor or landscape: {interest}.
        
        The style should be whimsical but detailed.
        Aspect Ratio: 16:9 Landscape.
        """
    )
    generate_image(prompt, "16:9", "static/generated_scene.png")
    return "Done! Saved at generated_scene.png"

তৃতীয় পর্ব: ছবির চূড়ান্ত ফলাফল বাস্তবায়ন

সবশেষে, আমরা নিশ্চিত করতে চাই যে আলোকসজ্জা ও সজ্জা যেন বাস্তবসম্মত এবং উৎসবমুখর দেখায়।

#REPLACE_GENERATE_FINAL_PHOTO কমেন্টটি খুঁজুন।

চূড়ান্ত স্টাইল স্থানান্তর এবং রেন্ডারিং সম্পন্ন করতে এই সম্পূর্ণ লাইনটি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন :

    prompt = (
        """
        Generate a photorealistic close-up shot of a rustic wooden fireplace mantle.
        
        Lighting: Warm, glowing ambient light from a fire below (out of frame).
        Background: Softly blurred (bokeh) pine garland and twinkling lights.
        
        Foreground Composition:
        1. A wooden picture frame containing the [attached selfie image]. 
           The face in the photo must be clearly visible.
        2. A folded holiday greeting card standing upright next to the frame. 
           The front of the card displays the [attached holiday scene image] as a print.
           
        Ensure the perspective is grounded and realistic, as if taken with a 50mm lens.
        """
    )
    generate_image(prompt, "16:9", "static/generated_final_photo.png", ["static/generated_selfie.png", "static/generated_scene.png"])
    return "Done! Saved at generated_final_photo.png"

পরিবেশ সেটআপ

কোডটি এখন তৈরি হয়ে গেছে, তাই আমাদের ডিপেন্ডেন্সিগুলো ইনস্টল করা নিশ্চিত করতে হবে। এর জন্য আমরা uv ব্যবহার করব, যা একটি দ্রুতগতির পাইথন প্যাকেজ ও প্রজেক্ট ম্যানেজার।

👉💻 আমাদের প্রোজেক্টের ডিপেন্ডেন্সি হিসেবে FastMCP যোগ করতে, আপনার টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

cd ~/holiday_workshop/01-MCP-Files-Testing/01-starter/
uv add fastmcp

আপনি দেখবেন যে আপনার ~/holiday_workshop/01-MCP-Files-Testing/01-starter/pyproject.toml ফাইলে fastmcp>=2.13.3 একটি নতুন ডিপেন্ডেন্সি যুক্ত হয়েছে।

৪. জেমিনি সিএলআই দিয়ে এমসিপি সার্ভার পরীক্ষা করা

এখন যেহেতু আমাদের সার্ভার কোড তৈরি হয়ে গেছে, আমরা এটি কীভাবে পরীক্ষা করব?

সাধারণত, একটি ব্যাকএন্ড সার্ভার পরীক্ষা করার জন্য ফ্রন্টএন্ড UI তৈরি করতে অথবা জটিল curl রিকোয়েস্ট লিখতে হয়। তবে, এখানে আমরা জেমিনি সিএলআই (Gemini CLI) ব্যবহার করতে পারি।

এটি ডেভেলপমেন্টের জন্য অত্যন্ত উপযোগী, কারণ এটি লজিককে আলাদা করে রাখে। একটি ওয়েব ইন্টারফেস বা এজেন্ট ফ্রেমওয়ার্ক তৈরির চিন্তা করার আগেই আপনি যাচাই করে নিতে পারেন যে, মডেলটি আপনার টুলগুলো বুঝতে পারছে এবং সেগুলোকে সঠিকভাবে কল করছে।

সংযোগ করুন এবং চালান

আমরা mcp add কমান্ড ব্যবহার করে Gemini CLI-কে আমাদের সার্ভার পরিচালনা করতে বলব।

আপনার টার্মিনালে, চালান:

gemini mcp add holidays uv run ~/holiday_workshop/01-MCP-Files-Testing/01-starter/mcp_server.py
  • add holidays : আমরা আমাদের সার্ভারের একটি ডাকনাম দিয়েছি ("holidays")।
  • uv run ... : আমরা এইমাত্র পরিবর্তন করা পাইথন সার্ভারটি শুরু করার জন্য সুস্পষ্ট কমান্ড দিয়েছি।

চলো জাদু তৈরি করি!

এখন, চ্যাট সেশনটি শুরু করুন:

gemini

জেমিনি আপনার নতুন টুলগুলো 'দেখতে' পাচ্ছে কিনা তা পরীক্ষা করতে নিম্নলিখিত প্রম্পটটি ব্যবহার করে দেখুন। মনে রাখবেন, আপনাকে জেমিনি সিএলআই-কে আমাদের হলিডেজ টুলটি ব্যবহারের অনুমতি দিতে হতে পারে।

  • 👉 ব্যবহারকারী:
    "I want to create a festive holiday photo. I like birds a lot."
    
  • মিথুন:
    *Thinking...*
    *Calling tool: generate_holiday_scene(interest='birds')*
    
    Done! Saved at generated_scene.png
    
  • 👉 ব্যবহারকারী:
    "Great! Now generate a knitting pattern for a sweater with reindeer on it."
    
  • মিথুন:
    *Thinking...*
    *Calling tool: generate_sweater_pattern(motif='reindeer')*
    
    Done! Saved at generated_pattern.png
    
    যেহেতু আপনি MCP ব্যবহার করেছেন, তাই AI সঠিকভাবে বুঝতে পেরেছে আপনার অনুরোধটি পূরণ করার জন্য কোন পাইথন ফাংশনটি কল করতে হবে!

ছবিটি পর্যালোচনা করুন

  • Control+C চেপে Gemini CLI বন্ধ করুন।
  • আপনার ফোল্ডারে তৈরি হওয়া ছবিটি দেখুন: ~/holiday_workshop/01-MCP-Files-Testing/01-starter/static

এখানে আপনার ছবিটি পর্যালোচনা করুন:

উপসংহার ও পরবর্তী পদক্ষেপ

অভিনন্দন! আপনি সফলভাবে একটি কার্যকরী এমসিপি সার্ভার তৈরি করেছেন। এখন আপনার কাছে একগুচ্ছ কার্যকরী "এআই টুলস" রয়েছে যা প্যাটার্ন তৈরি করতে, ছবি একত্রিত করতে এবং দৃশ্য পরিমার্জন করতে পারে।

তবে, উপরের পরীক্ষাটিতে আপনি কি কিছু লক্ষ্য করেছেন? প্রক্রিয়াটি আপনাকেই পরিচালনা করতে হয়েছে। আপনাকে প্রথমে দৃশ্যটি চাইতে হয়েছে, তারপর তার বিন্যাসটি চাইতে হয়েছে, এবং সবশেষে সেগুলোকে একত্রিত করতে বলতে হয়েছে।

জেমিনি স্মার্ট হলেও, একটি জটিল প্রোডাকশন ওয়ার্কফ্লোর জন্য—যেখানে একটি সোয়েটারে লাগানোর আগে আমাদের একটি প্যাটার্ন তৈরি করতে হয়, এবং ইমেজ তৈরিতে ব্যর্থ হলে তার ত্রুটি সামলাতে হয়—আমরা আরও বেশি নিয়ন্ত্রণ চাই। আমরা এমন একটি ডেডিকেটেড সিস্টেম চাই যা আমাদের প্রতিটি পদক্ষেপে হাত ধরে এগিয়ে দেওয়া ছাড়াই পরিকল্পনা করতে, নিজের কাজের সমালোচনা করতে এবং আমাদের হলিডে কার্ডের অবস্থা পরিচালনা করতে পারবে।

পরবর্তী অংশে, আমরা এই সৃজনশীল বিশৃঙ্খলায় শৃঙ্খলা আনব। আমরা এজেন্ট ডেভেলপমেন্ট কিট (ADK) প্রয়োগ করে একটি কাঠামোগত এজেন্ট তৈরি করতে যাচ্ছি, যা এই MCP টুলগুলোকে সমন্বয় করে একটি নিখুঁত প্রোডাকশন পাইপলাইন গঠন করবে।

৫. একটি ADK এজেন্টকে ভাইব-কোডিং করা

আমাদের কাছে কার্যকরী কিছু টুল (আমাদের এমসিপি সার্ভার) আছে, কিন্তু বর্তমানে সমস্ত কঠিন কাজগুলো আমরাই করছি—জেমিনিকে সুনির্দিষ্টভাবে বলে দিচ্ছি কখন কোন টুলকে কল করতে হবে।

এই অংশে, আমরা একটি এআই এজেন্ট তৈরি করব: এমন একটি সিস্টেম যা যুক্তি দিয়ে ভাবতে, পরিকল্পনা করতে এবং স্বয়ংক্রিয়ভাবে একাধিক ধাপের কাজ সম্পাদন করতে পারে। এটি করার জন্য, আমরা এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করব।

এজেন্ট_এমসিপি

এজেন্ট বলতে কী বোঝায়?

যদি এমসিপি টুলগুলো হয় 'হাত' (যা কাজটি করে), তবে এজেন্ট হলো 'মস্তিষ্ক'। একজন এজেন্ট ব্যবহারকারীর অভিপ্রায় ("আমাকে একটি ছুটির কার্ড তৈরি করে দিন") বোঝার জন্য একটি এলএলএম ব্যবহার করে, সেটিকে ধাপে ধাপে ভেঙে নেয় ("প্রথমে আমার একটি সিন, তারপর একটি প্যাটার্ন..."), এবং লক্ষ্য অর্জনের জন্য কোন টুলগুলো ব্যবহার করতে হবে তা স্থির করে।

ADK কী?

এজেন্ট ডেভেলপমেন্ট কিট (ADK) হলো গুগলের একটি ফ্রেমওয়ার্ক যা এই এজেন্টগুলো তৈরি করা সহজ করে তোলে। এটি চ্যাট হিস্ট্রি পরিচালনা, বিভিন্ন টুলের সাথে সংযোগ স্থাপন এবং বিভিন্ন মডেলের মধ্যে স্যুইচ করার মতো জটিল অভ্যন্তরীণ কাজগুলো সামলে নেয়—ফলে আপনি আপনার অ্যাপের বৈশিষ্ট্য এবং যুক্তির উপর মনোযোগ দিতে পারেন।

প্রসঙ্গ-ভিত্তিক ভাইব-কোডিং

কোড তৈরি করার জন্য একটিমাত্র বিশাল প্রম্পট ব্যবহার করা একটি প্রচলিত রীতি। তবে, জটিল অ্যাপ্লিকেশন তৈরির ক্ষেত্রে, এআই-কে এমন একজন অংশীদার হিসেবে বিবেচনা করা প্রায়শই শ্রেয়, যে সময়ের সাথে সাথে প্রাসঙ্গিকতা বজায় রাখে।

এক লাইন কোড লেখার আগে আমরা জেমিনি সিএলআই-এর মেমরি ফিচারগুলো ব্যবহার করে প্রাথমিক প্রস্তুতি সম্পন্ন করব।

১. পরিবেশ প্রস্তুত করুন

আপনার টার্মিনাল খুলুন এবং স্টার্টার ডিরেক্টরিতে যান:

cd ~/holiday_workshop/02-Vibe-Coding-ADK-Agent/01-starter

জেমিনি সিএলআই শুরু করুন:

gemini

২. প্রেক্ষাপট ও স্মৃতি ব্যবস্থাপনা

ভাইব-কোডিং করার সময়, এআই-কে জানতে হয় যে সে কে এবং সে কী জানে। জেমিনি সিএলআই আমাদের এই বিষয়টি সুস্পষ্টভাবে পরিচালনা করার সুযোগ দেয়।

  • /memory show : আপনার প্রজেক্ট এবং সেশন সম্পর্কে AI বর্তমানে কী জানে তা দেখতে এটি টাইপ করুন।
  • /memory add : কথোপকথন জুড়ে এআই-এর মনে রাখার মতো মৌলিক জ্ঞান যোগ করতে এটি ব্যবহার করুন।

চলুন আমাদের কোডিং পার্টনারের পার্সোনা নির্ধারণ করে শুরু করা যাক। Gemini CLI-এর ভিতরে নিম্নলিখিত কমান্ডটি চালান:

/memory add "You are an expert Python developer specialized in the Google Agent Development Kit (ADK). You write clean, modular code and prefer using the latest ADK patterns."

জেমিনি এখন তার ভূমিকা বুঝতে পেরেছে। এই প্রেক্ষাপট পরবর্তী প্রতিটি প্রতিক্রিয়াকে প্রভাবিত করবে, যা উচ্চ-মানের এবং ADK-সম্মত কোড নিশ্চিত করবে।

৩. ধাপ ১: বেসিক এজেন্টের ভাইব-কোডিং

একবারে পুরো সিস্টেমটি তৈরি করার চেষ্টা না করে, চলুন এর কাঠামো দিয়ে শুরু করা যাক। আমরা ফাইল কাঠামো এবং এজেন্টের প্রাথমিক বৈশিষ্ট্য প্রতিষ্ঠা করতে চাই।

Gemini CLI-তে নিম্নলিখিত প্রম্পটটি প্রবেশ করান:

Let's start by building the basic agent structure. 

Please create a file structure for a `root_agent`. 
1. Create `root_agent/__init__.py` that imports `agent`.
2. Create `root_agent/agent.py` by following exactly how this file is doing import and agent creation @~/holiday_workshop/02-Vibe-Coding-ADK-Agent/01-starter/agent_reference.py

In `agent.py`:
- Create an `Agent` named "root_agent" using the model "gemini-2.5-flash".
- The instruction string should define a "Holiday Magic Assistant". 
- The personality should be enthusiastic (`🎄✨`) and prefer "cute, kawaii, cartoon" styles for any visual tasks.

জেমিনি ফাইল কাঠামো এবং প্রাথমিক পাইথন কোড তৈরি করবে। এটি সঠিক দেখাচ্ছে কিনা তা নিশ্চিত করতে পর্যালোচনা করুন, তারপর পরিবর্তনগুলি প্রয়োগ/গ্রহণ করুন।

৪. ধাপ ২: এমসিপি সার্ভার যোগ করা (সরঞ্জামসমূহ)

এখন যেহেতু আমাদের একটি প্রাথমিক এজেন্ট আছে, আমাদের এটিকে সক্রিয় করতে হবে। আগের ল্যাবে আমরা যে MCP সার্ভারটি তৈরি করেছিলাম, তার সাথে এজেন্টটিকে সংযুক্ত করতে হবে।

Gemini CLI-তে নিম্নলিখিত প্রম্পটটি প্রবেশ করান:

Now, let's give the agent access to tools. Update `agent.py` to include our local MCP server. By following exactly how this agent is connecting to mcp tool @~/holiday_workshop/02-Vibe-Coding-ADK-Agent/01-starter/agent_reference.py

In `agent.py`:
- Import `McpToolset` to define our STDIO MCP server. as @~/holiday_workshop/02-Vibe-Coding-ADK-Agent/01-starter/agent_reference.py
- Connect to the python file located at `../mcp_server.py` relative to agent.py.

জেমিনি এখন আপনার বিদ্যমান agent.py রিফ্যাক্টর করে টুল ডেফিনিশন এবং কানেকশন লজিক অন্তর্ভুক্ত করবে।

দ্রষ্টব্য: আপনি যদি আপনার কাজটি পরীক্ষা করতে চান অথবা তৈরি হওয়া কোডটি প্রত্যাশা অনুযায়ী কাজ না করে, তাহলে আপনি আপনার ফাইলগুলোকে ~/holiday_workshop/02-Vibe-Coding-ADK-Agent/solution এ অবস্থিত রেফারেন্স সলিউশনের সাথে তুলনা করতে পারেন।

৬. এজেন্ট ওয়েব ইন্টারফেসটি চালান।

ADK-এর সাথে adk web নামে একটি বিল্ট-ইন টেস্টিং ইন্টারফেস রয়েছে। এটি একটি হালকা চ্যাট UI চালু করে, যার ফলে আমরা আমাদের এজেন্টের সাথে তাৎক্ষণিকভাবে কথা বলতে পারি।

  1. যদি আপনার GeminiCLI এখনও খোলা থাকে, starter এটি বন্ধ করতে control+C চাপুন। এখন আপনার টার্মিনালে (এটি solution ফোল্ডারে আছে, আপনি starter ফোল্ডারে গিয়ে uv run adk web চালিয়ে আপনার কোড পরীক্ষা করতে পারেন), চালান:
    cd ~/holiday_workshop/02-Vibe-Coding-ADK-Agent/02-solution
    uv run adk web --port 8000
    
  2. ক্লাউড শেল আপনাকে জানাবে যে পোর্ট ৮০০০-এ একটি পরিষেবা চলছে। "ওয়েব প্রিভিউ" -> "পোর্ট ৮০০০-এ প্রিভিউ" -এ ক্লিক করুন।

এজেন্টকে পরীক্ষা করুন

এখন আপনি একটি চ্যাট ইন্টারফেস দেখতে পাবেন। দেখা যাক, আমাদের এজেন্ট তার নতুন নির্দেশনাগুলো অনুসরণ করে এমসিপি টুলগুলো সঠিকভাবে অ্যাক্সেস করতে পারে কি না।

এই নির্দেশগুলো চেষ্টা করুন:

  • হ্যালো! আপনি কে?
    • (একটি উৎসবমুখর ও উৎসাহব্যঞ্জক সাড়া আশা করা যায়)।
  • আমার ছুটির কার্ডের জন্য একটি পটভূমি দরকার। একটি বরফাবৃত গ্রামের ছবি দিন।
    • এজেন্টকে generate_holiday_scene কল করতে হবে । লক্ষ্য করুন, এটি কীভাবে সিস্টেম নির্দেশাবলীতে সংজ্ঞায়িত "কিউট/কার্টুন" স্টাইলটি স্বয়ংক্রিয়ভাবে প্রয়োগ করে।
  • ছোট ছোট পিৎজার টুকরো দিয়ে একটি সোয়েটারের নকশা তৈরি করুন।
    • এজেন্টকে generate_sweater_pattern কল করতে হবে

আপনি এখানে তৈরি হওয়া ছবিটি দেখতে পারেন:

পরীক্ষা শেষ হলে বের হওয়ার জন্য Control+C চাপুন।

উপসংহার ও পরবর্তী পদক্ষেপ

আপনি এখন সফলভাবে একটি কনটেক্সট-অ্যাওয়ার পদ্ধতি ব্যবহার করে একটি গুগল এডিকে এজেন্টকে "ভাইব-কোড" করেছেন!

  • আমরা প্রেক্ষাপট স্থাপন করেছি: আমরা একজন বিশেষজ্ঞ ব্যক্তিত্ব নির্ধারণ করতে /memory add ব্যবহার করেছি।
  • আমরা পুনরাবৃত্তিমূলকভাবে নির্মাণ করেছি: প্রথমে কাঠামোটি তৈরি করেছি, তারপর টুলগুলোর সংযোগ যুক্ত করেছি।

বিল্ট-ইন ADK ওয়েব প্রিভিউ পরীক্ষার জন্য চমৎকার, কিন্তু আমাদের চূড়ান্ত পণ্যের জন্য আমরা একটি কাস্টম, ব্র্যান্ডেড অভিজ্ঞতা চাই। পরবর্তী অংশে, আমরা এই এজেন্টটিকে একটি কাস্টম ওয়েব ফ্রন্টএন্ডে ইন্টিগ্রেট করব।

৭. UI-এর সাথে ADK সংযোগ করা

ব্যাকএন্ড_আর্কিটেকচার

এখন যেহেতু আমাদের একটি এজেন্ট ডেফিনিশন আছে, আমাদের এটিকে রান করতে হবে। এখানেই রানার এবং সেশন সার্ভিসের ভূমিকা আসে।

বাস্তবায়ন

  1. 👉 আপনার কমান্ডে নিম্নলিখিতটি টাইপ করুন:
    cloudshell edit ~/holiday_workshop/03-Connect-ADK-MCP-UI/01-starter/backend/main.py
    
    এটি আপনার এডিটরে ~/holiday_workshop/03-Connect-ADK-MCP-UI/01-starter/backend/main.py খুলবে।
  2. # TODO: Create Session Service নিম্নলিখিত দিয়ে প্রতিস্থাপন করুন:
    from google.adk.sessions import InMemorySessionService
    from google.adk.memory import InMemoryMemoryService
    session_service = InMemorySessionService()
    memory_service = InMemoryMemoryService()
    
  3. # TODO: Initialize Runner নিম্নলিখিত দিয়ে প্রতিস্থাপন করুন:
    runner = Runner(
        app_name="agents",
        agent=christmas_agent,
        session_service=session_service,
        memory_service=memory_service,
    )
    
  1. এই ~/holiday_workshop/03-Connect-ADK-MCP-UI/01-starter/backend/main.py ফাইলের ১৫৮ নম্বর লাইনটি পর্যালোচনা করুন ( কোনো পদক্ষেপের প্রয়োজন নেই ): যদি আপনি জানতে চান অ্যাপ্লিকেশনটি কীভাবে চূড়ান্ত প্রতিক্রিয়া পায়? নিচে রানার দ্বারা চালিত ইভেন্ট লুপটি দেওয়া হলো:
    async for event in runner.run_async(
        user_id=user_id,
        session_id=session_id,
        new_message=content
    )
    

গভীর বিশ্লেষণ: স্থাপত্য ও স্থাপন

আমরা এই এজেন্টটিকে পরিষেবা দেওয়ার জন্য FastAPI ব্যবহার করছি।

  • কেন FastAPI? : এজেন্টরা প্রায়শই I/O বাউন্ড (LLM-এর জন্য অপেক্ষা করতে করতে) হয়ে পড়ে। FastAPI-এর অ্যাসিঙ্ক বৈশিষ্ট্য এটি নিখুঁতভাবে সামাল দেয়।
  • স্টেটলেসনেস : লক্ষ্য করুন, আমাদের এপিআই এন্ডপয়েন্টটি স্টেটলেস । আমরা গ্লোবাল স্কোপে কোনো ভ্যারিয়েবল সেভ করি না। প্রতিটি রিকোয়েস্টের স্টেট পুনর্গঠনের জন্য আমরা session_id এবং SessionService এর উপর নির্ভর করি। এর মানে হলো, আপনি এটি ক্লাউড রান (সার্ভারলেস)-এ ডেপ্লয় করতে এবং স্কেল টু জিরো করতে পারবেন!

৮. এজেন্ট ম্যাজিকের সাহায্যে অ্যাপ্লিকেশনটি ব্যবহার করে দেখুন

  1. 👉💻 আপনার কমান্ডে নিম্নলিখিতটি টাইপ করুন:
    cd ~/holiday_workshop/03-Connect-ADK-MCP-UI/01-starter
    ./start_app.sh
    
    এটি আপনার এডিটরে ~/holiday_workshop/03-Connect-ADK-MCP-UI/01-starter/backend/main.py খুলবে।
  2. আপনি নিচের মতো ফলাফল দেখতে পাবেন: পোর্টরেজাল্ট 👉👉 নিশ্চিত করুন যে আপনি http://localhost:5173/ -এ ক্লিক করেছেন, অথবা একটি নতুন উইন্ডো খুলে http://localhost:5173/ টাইপ করেছেন।
  3. তারপর আপনি চ্যাট ইন্টারফেস সহ ওয়েবসাইটটি দেখতে পাবেন: ওয়েবসাইট
  4. একটি ছবি আপলোড করে পরীক্ষা করুন (ছবিটি আপনার নিজের বা আপনার পোষা প্রাণীর হতে পারে)। আপলোড
  5. 👉 তারপর জিজ্ঞাসা করুন
    Can you generate a picture my cat wearing snowflake pattern sweater?
    
    আপনি তৈরি হওয়া ছবিটি এখানে দেখতে পাবেন: বিড়াল
  6. 👉💻 টেস্টিং শেষ হলে, প্রসেসটি বন্ধ করতে টার্মিনালে control+C চাপুন।

যদি দেখেন সবকিছু প্রত্যাশা অনুযায়ী কাজ করছে না, তাহলে আপনি ~/holiday_workshop/03-Connect-ADK-MCP-UI/02-solution -এ গিয়ে ./start_app.sh রান করুন, তারপর উপরের ধাপগুলোই অনুসরণ করুন।

৯. ভার্টেক্স এআই মেমরি ব্যাংক

এজেন্ট_মেমরি

স্বল্পমেয়াদী বনাম দীর্ঘমেয়াদী স্মৃতি

  • স্বল্পমেয়াদী প্রেক্ষাপট : "আমি এইমাত্র কী বললাম?" (সেশন হিস্ট্রি)। চ্যাট উইন্ডো বন্ধ হয়ে গেলে এটি হারিয়ে যায়।
  • দীর্ঘমেয়াদী স্মৃতি : "আমার প্রিয় প্রোগ্রামিং ভাষা কোনটি?" (ব্যবহারকারীর পছন্দ)। এটি চিরকাল স্থায়ী থাকা উচিত।

ভার্টেক্স এআই মেমোরি ব্যাংক এই দীর্ঘমেয়াদী সংরক্ষণ ব্যবস্থা প্রদান করে। এটি এজেন্টকে ব্যবহারকারীর ব্যক্তিগত তথ্য সংরক্ষণ ও পুনরুদ্ধার করতে সক্ষম করে।

সেশন বনাম মেমরি ব্যাংক

  • সেশন ( VertexAiSessionService ): এটি হলো লগ । এটি প্রতিটি মেসেজ, টুল কল এবং ইভেন্টের ( AppendEvent , ListEvents ) কাঁচা, কালানুক্রমিক ক্রম সংরক্ষণ করে। যা ঘটেছে তার প্রকৃত সত্য এটি প্রদান করে।
  • মেমোরি ব্যাংক ( VertexAiMemoryBankService ): এটিই হলো জ্ঞান । এটি সংশ্লেষিত, দীর্ঘমেয়াদী তথ্য ( GenerateMemories , RetrieveMemories ) সংরক্ষণ করে। এটি একটি নির্দিষ্ট user_id জন্য সীমাবদ্ধ, যা গোপনীয়তা এবং বিচ্ছিন্নতা নিশ্চিত করে।
  1. 👉💻 আপনার কমান্ডে নিম্নলিখিতটি টাইপ করুন:
    cloudshell edit ~/holiday_workshop/04-Adding-Memory-Bank/01-starter/backend/main.py
    
    এটি আপনার এডিটরে ~/holiday_workshop/04-Adding-Memory-Bank/01-starter/backend/main.py খুলবে।
  2. # TODO: Create Vertex AI Session Service & Memory Bank Service খুঁজুন এবং সম্পূর্ণ লাইনটি নিচের লেখা দিয়ে প্রতিস্থাপন করুন:
        session_service = VertexAiSessionService(
            project=PROJECT_ID, location=LOCATION, agent_engine_id=AGENT_ENGINE_ID
        )
        memory_service = VertexAiMemoryBankService(
            project=PROJECT_ID, location=LOCATION, agent_engine_id=AGENT_ENGINE_ID
        )
    
    

মেমরি_তুলনা

  1. 👉💻 আপনার কমান্ডে নিম্নলিখিতটি টাইপ করুন:
    cloudshell edit ~/holiday_workshop/04-Adding-Memory-Bank/01-starter/backend/deploy_agent.py
    
    এটি আপনার এডিটরে ~/holiday_workshop/04-Adding-Memory-Bank/01-starter/backend/deploy_agent.py খুলবে।
  2. # TODO: Set Up Configuration নিম্নলিখিত দ্বারা প্রতিস্থাপন করুন:
    # Basic configuration types
    MemoryBankConfig = types.ReasoningEngineContextSpecMemoryBankConfig
    SimilaritySearchConfig = (
        types.ReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfig
    )
    GenerationConfig = types.ReasoningEngineContextSpecMemoryBankConfigGenerationConfig
    
    # Advanced configuration types
    CustomizationConfig = types.MemoryBankCustomizationConfig
    MemoryTopic = types.MemoryBankCustomizationConfigMemoryTopic
    CustomMemoryTopic = types.MemoryBankCustomizationConfigMemoryTopicCustomMemoryTopic
    GenerateMemoriesExample = types.MemoryBankCustomizationConfigGenerateMemoriesExample
    ConversationSource = (
        types.MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSource
    )
    ConversationSourceEvent = (
        types.MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSourceEvent
    )
    ExampleGeneratedMemory = (
        types.MemoryBankCustomizationConfigGenerateMemoriesExampleGeneratedMemory
    )
    

মেমরি_প্রক্রিয়া

  1. 👉 একই ফাইলে: 04-Adding-Memory-Bank/01-starter/backend/deploy_agent.py# TODO: Set up topic খুঁজুন, এবং সম্পূর্ণ লাইনটি নিচের লেখা দিয়ে প্রতিস্থাপন করুন:
        custom_topics = [
            # Topic 1: Sweater Preference
            MemoryTopic(
                custom_memory_topic=CustomMemoryTopic(
                    label="sweater_preference",
                    description="""Extract the user's preferences for sweater styles, patterns, and designs. Include:
                    - Specific patterns (snowflake, reindeer, geometric, fair isle, solid, etc.)
                    - Style preferences (chunky knit, cardigan, pullover, turtleneck, oversized, fitted)
                    - Color preferences (red, green, navy, pastel, etc.)
                    - Material preferences if mentioned (wool, cotton, cashmere, itchy/soft)
                    - Themes (retro, modern, ugly christmas sweater, elegant)
    
                    Example: "User wants a retro style sweater with a pixelated reindeer pattern."
                    Example: "User prefers dark blue colors and hates itchy wool."
                    """,
                )
            ),
            # Topic 2: Personal Context
            MemoryTopic(
                custom_memory_topic=CustomMemoryTopic(
                    label="personal_context",
                    description="""Extract the user's personal context including hobbies, pets, interests, job, and preferred scenes. Include:
                    - Hobbies and activities (skiing, reading, gaming, cooking, etc.)
                    - Pets (type, breed, name, color)
                    - Job or profession if relevant to their style
                    - General interests (sci-fi, nature, vintage, tech)
                    - Preferred scenes or vibes (cozy fireplace, snowy mountain, cyberpunk city, beach)
    
                    Example: "User has a golden retriever named Max."
                    Example: "User loves skiing and wants a snowy mountain background."
                    Example: "User is a software engineer who likes cyberpunk aesthetics."
                    """,
                )
            )
        ]
    
  2. 👉 একই ফাইলে: 04-Adding-Memory-Bank/01-starter/backend/deploy_agent.py# TODO: Create Agent Engine লাইনটি খুঁজুন, এবং সম্পূর্ণ লাইনটি নিচের লেখা দিয়ে প্রতিস্থাপন করুন:
        agent_engine = client.agent_engines.create(
            config={
                "display_name": AGENT_DISPLAY_NAME,
                "context_spec": {
                    "memory_bank_config": {
                        "generation_config": {
                            "model": f"projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/gemini-2.5-flash"
                        },
                        "customization_configs": [customization_config]
                    }
                },
            }
        )
    

সরাসরি প্রম্পট ব্যবহার করছেন না কেন?

আপনি জিজ্ঞাসা করতে পারেন, "আমরা ব্যবহারকারীর হিস্ট্রিটা সরাসরি প্রম্পটে পেস্ট করে দিচ্ছি না কেন?"

  • আকারের সীমাবদ্ধতা : কনটেক্সট উইন্ডোগুলো বড়, কিন্তু অসীম নয়। আপনি ৫ বছরের ইতিহাস এতে রাখতে পারবেন না।
  • খরচ : প্রতিটি 'হ্যালো'-এর জন্য ১০ লক্ষ টোকেন প্রসেস করা অত্যন্ত ব্যয়বহুল।
  • ফোকাস : মেমোরি ব্যাংক আপনার এজেন্টের জন্য একটি সার্চ ইঞ্জিন হিসেবে কাজ করে। এটি শুধুমাত্র প্রাসঙ্গিক তথ্যগুলো সংগ্রহ করে।
  1. 👉💻 আপনার কমান্ডে নিম্নলিখিতটি টাইপ করুন:
    cloudshell edit ~/holiday_workshop/04-Adding-Memory-Bank/01-starter/backend/agent.py
    
    এটি আপনার এডিটরে ~/holiday_workshop/04-Adding-Memory-Bank/01-starter/backend/agent.py খুলবে।
  2. ~/holiday_workshop/04-Adding-Memory-Bank/01-starter/backend/agent.py ফাইলে # TODO: Add PreloadMemoryTool নিম্নলিখিত দিয়ে প্রতিস্থাপন করুন:
    if USE_MEMORY_BANK:
        agent_tools.append(PreloadMemoryTool())
    

PreloadMemoryTool & add_session_to_memory

agent.py ফাইলে আপনি দুটি মূল উপাদান দেখতে পাবেন:

  • PreloadMemoryTool : এটি এমন একটি টুল যা এজেন্টকে "নিজেকেই গুগল করতে" সাহায্য করে। যদি ব্যবহারকারী "আমার রোজকার কফিটা এনে দাও"-এর মতো কোনো অস্পষ্ট প্রশ্ন করে, তাহলে এজেন্ট উত্তর দেওয়ার আগে এই টুলটি ব্যবহার করে মেমোরি ব্যাংক থেকে তার "কফির পছন্দ" সম্পর্কে জেনে নিতে পারে।
  • add_session_to_memory : এটি একটি ব্যাকগ্রাউন্ড কলব্যাক।
    • অ্যাসিঙ্ক কেন? মেমরি বাঁচাতে সময় লাগে (চ্যাটের সারসংক্ষেপ করা, তথ্য বের করা)। আমরা চাই না ব্যবহারকারী এর জন্য অপেক্ষা করুক। আমরা after_agent_callback ব্যবহার করে এটিকে ব্যাকগ্রাউন্ডে ( add_session_to_memory ) চালাই।

১০. কার্যক্ষেত্রে মেমোরি ব্যাংক

  1. 👉💻 আপনার কমান্ডে নিম্নলিখিতটি টাইপ করুন:
    cd ~/holiday_workshop/04-Adding-Memory-Bank/01-starter
    ./use_memory_bank.sh
    
    আপনি ফলাফলটি নিচে দেখতে পাবেন: deploy_agent_result আপনার ~/holiday_workshop/.env ফাইলটি দেখুন, আপনি দেখতে পাবেন ( কোন পদক্ষেপের প্রয়োজন নেই )
    USE_MEMORY_BANK=TRUE
    AGENT_ENGINE_ID={agent_engine_id}
    
  2. 👉💻 অ্যাপ্লিকেশন UI ব্যবহার করে মেমরি পরীক্ষা করুন। আপনার কমান্ডে নিম্নলিখিতটি টাইপ করুন:
    cd ~/holiday_workshop/04-Adding-Memory-Bank/01-starter
    ./start_app.sh
    
    নিশ্চিত করুন যে আপনি http://localhost:5173/ -এ ক্লিক করেছেন, অথবা একটি নতুন উইন্ডো খুলে http://localhost:5173/ টাইপ করুন। মনে রাখবেন যে Uvicorn running on http://0.0.0.0:8000 শুধুমাত্র একটি ব্যাকএন্ড সার্ভার, এটি সেই আসল লিঙ্ক নয় যেখানে আমরা ক্লিক করতে চাই। এখন ওয়েবসাইটের চ্যাট ইন্টারফেসটি আপনার ব্যক্তিগত এজেন্টে পরিণত হয়েছে! ওয়েবসাইট
  3. 👉স্মৃতিশক্তি পরীক্ষা করুন। UI-তে টাইপ করলে:
    I want a sweater that matches my dog. He's a golden retriever.
    
    I'm a programmer, so I want something geeky. Maybe a matrix style?
    
    I like snowflake sweater pattern
    

এজেন্ট এটিকে একটি পছন্দ হিসেবে শনাক্ত করবে এবং মেমোরি ব্যাংকে সংরক্ষণ করবে।

আগামী সপ্তাহে (অথবা যেকোনো সময় আপনি Control+C এবং ./start_app.sh চেপে অ্যাপ্লিকেশনটি পুনরায় চালু করলে), যদি আপনি জিজ্ঞাসা করেন:

what is my preference on sweater pattern?

এজেন্টটি মেমোরি ব্যাংক থেকে আপনার পছন্দ জেনে নেবে এবং আপনাকে জিজ্ঞাসা না করেই সোয়েটারের প্যাটার্ন তৈরি করে দেবে। ১০-ফলাফল

  1. Vertex AI Agent Engine-এ যাচাই করতে, Google Cloud Console Agent Engine- এ যান।
    • নিশ্চিত করুন যে আপনি উপরের বাম দিকের প্রজেক্ট সিলেক্টর থেকে প্রজেক্টটি নির্বাচন করেছেন: প্রকল্প নির্বাচক
    • এবং পূর্ববর্তী কমান্ড use_memory_bank.sh থেকে আপনি এইমাত্র স্থাপন করা এজেন্ট ইঞ্জিনটি যাচাই করুন। এজেন্ট ইঞ্জিন আপনি এইমাত্র যে এজেন্ট ইঞ্জিনটি তৈরি করেছেন, সেটিতে ক্লিক করুন।
  2. এই ডেপ্লয় করা এজেন্টের Memories ট্যাবে ক্লিক করলে, আপনি এখানে সমস্ত মেমোরি দেখতে পাবেন। স্মৃতি দেখুন

অভিনন্দন! আপনি এইমাত্র আপনার এজেন্টের সাথে মেমোরি ব্যাংকটি সংযুক্ত করেছেন!

১১. উপসংহার

সারসংক্ষেপ

আপনি সফলভাবে একটি সম্পূর্ণ সক্রিয় সিস্টেমের নকশা ও নির্মাণ করেছেন।

  • সংযোগ : আপনার এজেন্ট কীভাবে স্থানীয় টুলগুলো অ্যাক্সেস করবে, তা প্রমিত করতে আপনি MCP ব্যবহার করেছেন।
  • অর্কেস্ট্রেশন : আপনি বহু-ধাপের কাজের জন্য প্রয়োজনীয় জটিল রিজনিং লুপটি পরিচালনা করতে ADK ব্যবহার করেছেন।
  • ব্যক্তিগতকরণ : আপনি মেমরি ব্যাংক ব্যবহার করে একটি স্থায়ী, শিক্ষণীয় স্তর তৈরি করেছেন যা ব্যবহারকারীর প্রেক্ষাপট মনে রাখে।

পরবর্তী পদক্ষেপ

  • আপনার নিজস্ব এমসিপি সার্ভার তৈরি করুন : আপনার অভ্যন্তরীণ এপিআই বা ডেটাবেসের জন্য একটি সার্ভার তৈরি করুন।
  • ADK প্যাটার্ন অন্বেষণ করুন : ADK ডকুমেন্টেশনে 'রিজনিং লুপ' এবং 'অর্কেস্ট্রেশন' সম্পর্কে জানুন।
  • স্থাপন করুন : আপনার এজেন্টকে একটি স্থানীয় স্ক্রিপ্ট থেকে ক্লাউড রান-এর প্রোডাকশন সার্ভিসে নিয়ে যান।