১. এই ল্যাবের উদ্দেশ্য
এই হ্যান্ডস-অন ল্যাবে আপনি ADK (এজেন্ট ডেভেলপমেন্ট কিট) ব্যবহার করে একটি মাল্টি এজেন্ট অ্যাপ্লিকেশন তৈরি করবেন যা আপনার প্রম্পটের উপর ভিত্তি করে একটি ছবি তৈরি করে এবং আপনার প্রম্পটের সাথে এটি মূল্যায়ন করে। যদি ছবিটি প্রম্পটে বর্ণিত প্রয়োজনীয়তাগুলি সন্তোষজনকভাবে পূরণ না করে, তাহলে এজেন্ট ক্রমাগত ছবি তৈরি করবে যতক্ষণ না আপনার প্রয়োজনীয়তাগুলি পূরণ করে এমন ছবিটি তৈরি হয়। এই হ্যান্ডস-অনে প্রতিটি এজেন্টের একটি একক উদ্দেশ্য রয়েছে, এজেন্টরা সামগ্রিক লক্ষ্য অর্জনের জন্য একে অপরের সাথে সহযোগিতা করে। আপনি স্থানীয়ভাবে অ্যাপ্লিকেশনটি পরীক্ষা করতে এবং Vertex AI Agent Engine- এ কীভাবে স্থাপন করতে হয় তা শিখবেন।
তুমি কি শিখবে
- ADK (এজেন্ট ডেভেলপমেন্ট কিট) এর মূল বিষয়গুলি বুঝুন এবং একটি মাল্টি-এজেন্ট সিস্টেম তৈরি করতে শিখুন।
- Vertex AI Agent Engine- এ এজেন্টগুলিকে সহজেই স্থাপন এবং ব্যবহার করতে শিখুন।
- A2A প্রোটোকলের মূল বিষয়গুলি বুঝুন
- ওপেন এজেন্ট তৈরি করতে A2A প্রোটোকল এবং ADK (এজেন্ট ডেভেলপমেন্ট কিট) একসাথে কীভাবে ব্যবহার করবেন তা শিখুন।
2. প্রকল্প সেটআপ
- যদি আপনার কাছে ইতিমধ্যেই এমন কোনও প্রকল্প না থাকে যা আপনি ব্যবহার করতে পারেন, তাহলে আপনাকে GCP কনসোলে একটি নতুন প্রকল্প তৈরি করতে হবে।
- এই ল্যাবে, আমরা আমাদের কাজগুলি সম্পাদনের জন্য GCP ক্লাউড শেল ব্যবহার করব। ক্লাউড শেলটি খুলুন এবং ক্লাউড শেল ব্যবহার করে প্রকল্পটি সেট করুন।
- এখানে ক্লিক করে GCP ক্লাউড শেল খুলুন, ক্লাউড শেল । যদি আপনি "অনুমোদন শেল" পপআপ দেখতে পান, তাহলে ক্লাউড শেল সম্পাদক অনুমোদন করতে ক্লিক করুন।
- ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ড ব্যবহার করে আপনি প্রকল্পটি ইতিমধ্যেই প্রমাণীকরণ করা হয়েছে কিনা তা পরীক্ষা করতে পারেন।
gcloud auth list
- আপনার প্রকল্পটি নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান
gcloud config list project
- প্রকল্প আইডিটি অনুলিপি করুন এবং এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন
gcloud config set project <YOUR_PROJECT_ID>
- এই ল্যাবটি চালানোর জন্য আমাদের কিছু পরিষেবা সক্রিয় করতে হবে। ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud services enable aiplatform.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
৩. এজেন্ট ডেভেলপমেন্ট কিটের ভূমিকা
এজেন্ট ডেভেলপমেন্ট কিট ডেভেলপারদের জন্য এজেন্টিক অ্যাপ্লিকেশন তৈরির জন্য বেশ কয়েকটি গুরুত্বপূর্ণ সুবিধা প্রদান করে:
- মাল্টি-এজেন্ট সিস্টেম : একাধিক বিশেষায়িত এজেন্টকে একটি শ্রেণিবিন্যাসে রচনা করে মডুলার এবং স্কেলেবল অ্যাপ্লিকেশন তৈরি করুন। জটিল সমন্বয় এবং প্রতিনিধিত্ব সক্ষম করুন।
- রিচ টুল ইকোসিস্টেম : এজেন্টদের বিভিন্ন ক্ষমতা দিয়ে সজ্জিত করুন: আগে থেকে তৈরি টুল (সার্চ, কোড এক্সিকিউশন, ইত্যাদি) ব্যবহার করুন, কাস্টম ফাংশন তৈরি করুন, থার্ড-পার্টি এজেন্ট ফ্রেমওয়ার্ক (ল্যাংচেইন, ক্রুএআই) থেকে টুল ইন্টিগ্রেট করুন, অথবা এমনকি টুল হিসেবে অন্যান্য এজেন্ট ব্যবহার করুন।
- নমনীয় অর্কেস্ট্রেশন : পূর্বাভাসযোগ্য পাইপলাইনের জন্য ওয়ার্কফ্লো এজেন্ট (
SequentialAgent,ParallelAgent, এবংLoopAgent) ব্যবহার করে ওয়ার্কফ্লো সংজ্ঞায়িত করুন, অথবা অভিযোজিত আচরণের জন্য LLM-চালিত গতিশীল রাউটিং (LlmAgentট্রান্সফার) ব্যবহার করুন। - ইন্টিগ্রেটেড ডেভেলপার অভিজ্ঞতা : একটি শক্তিশালী CLI এবং একটি ইন্টারেক্টিভ ডেভেলপার UI ব্যবহার করে স্থানীয়ভাবে ডেভেলপ, পরীক্ষা এবং ডিবাগ করুন। ধাপে ধাপে ইভেন্ট, অবস্থা এবং এজেন্ট এক্সিকিউশন পরিদর্শন করুন।
- অন্তর্নির্মিত মূল্যায়ন : পূর্বনির্ধারিত পরীক্ষার ক্ষেত্রে চূড়ান্ত প্রতিক্রিয়ার গুণমান এবং ধাপে ধাপে কার্যকরকরণের গতিপথ উভয়ই মূল্যায়ন করে এজেন্টের কর্মক্ষমতা পদ্ধতিগতভাবে মূল্যায়ন করুন।
- স্থাপনার জন্য প্রস্তুত : আপনার এজেন্টদের যেকোনো জায়গায় কনটেইনারাইজ করুন এবং স্থাপন করুন - স্থানীয়ভাবে চালান, ভার্টেক্স এআই এজেন্ট ইঞ্জিনের সাহায্যে স্কেল করুন, অথবা ক্লাউড রান বা ডকার ব্যবহার করে কাস্টম অবকাঠামোতে একীভূত করুন।
অন্যান্য জেনারেশন এআই এসডিকে বা এজেন্ট ফ্রেমওয়ার্কগুলি আপনাকে মডেলগুলি অনুসন্ধান করতে এবং এমনকি সরঞ্জামগুলির সাহায্যে তাদের ক্ষমতায়িত করার অনুমতি দেয়, একাধিক মডেলের মধ্যে গতিশীল সমন্বয়ের জন্য আপনার পক্ষ থেকে উল্লেখযোগ্য পরিমাণে কাজ প্রয়োজন।
এজেন্ট ডেভেলপমেন্ট কিট এই টুলগুলির তুলনায় একটি উচ্চ-স্তরের কাঠামো প্রদান করে, যা আপনাকে জটিল কিন্তু সহজে রক্ষণাবেক্ষণযোগ্য কর্মপ্রবাহের জন্য একাধিক এজেন্টকে একে অপরের সাথে সহজেই সংযুক্ত করতে দেয়।

চিত্র ১: ADK (এজেন্ট ডেভেলপমেন্ট কিট) এর অবস্থান নির্ধারণ
৪. ভার্টেক্স এআই এজেন্ট ইঞ্জিনের পরিচিতি
Vertex AI Agent Engine হল Google Cloud-এ এজেন্ট স্থাপনের জন্য একটি সম্পূর্ণরূপে পরিচালিত পরিষেবা। Vertex AI Agent Engine-এর সাহায্যে, ডেভেলপাররা Vertex AI- তে OSS AI এজেন্ট ( ADK (Agent Development Kit) , LangChain, LangGraph, CrewAI, AutoGen, এবং আরও অনেক কিছু!) তৈরি, কাস্টমাইজ, স্থাপন, পরিবেশন, পরিচালনা করতে পারে।
এজেন্ট ইঞ্জিন ব্যবহারকারীর ডেটা পরিচালনা করার জন্য পরিষেবাও প্রদান করে যা এজেন্ট মেমোরি নামেও পরিচিত। বর্তমানে দুই ধরণের মেমোরি পরিষেবা উপলব্ধ।
- স্বল্পমেয়াদী স্মৃতি : এজেন্ট ইঞ্জিন সেশনের সাহায্যে আপনি একটি একক সেশনের মধ্যে চলমান কথোপকথনের ইতিহাস (অবস্থা) স্বল্পমেয়াদী স্মৃতি হিসেবে সংরক্ষণ, পরিচালনা এবং পুনরুদ্ধার করতে পারেন।
- দীর্ঘমেয়াদী স্মৃতি : এজেন্ট ইঞ্জিন মেমোরি ব্যাংকের সাহায্যে, স্মৃতি (অবস্থা) সংরক্ষণ, রূপান্তর এবং পুনরুদ্ধার করা যায়, বিশেষ করে একাধিক সেশন জুড়ে দীর্ঘমেয়াদী স্মৃতি হিসেবে।
আপনি ক্লাউড রান বা GKE এর মতো অন্যান্য গুগল ক্লাউড পরিষেবাগুলিতেও এজেন্ট স্থাপন করতে পারেন, নিম্নলিখিত ব্যবহারের ক্ষেত্রে আপনার Vertex AI এজেন্ট ইঞ্জিন ব্যবহার করার কথা বিবেচনা করা উচিত।
- স্টেটফুল ম্যানেজড রানটাইম : আপনার এজেন্ট স্থাপনের জন্য যদি স্টেটফুল, সম্পূর্ণরূপে ম্যানেজড রানটাইমের প্রয়োজন হয়, তাহলে Vertex AI Agent Engine একটি ভালো পছন্দ কারণ এটি সেশন ম্যানেজমেন্ট, AI এজেন্টদের জন্য স্থায়িত্বের মতো সাধারণ কাজগুলিকে বিমূর্ত করে।
- কোড এক্সিকিউশন : যদি আপনার এজেন্টকে ব্যবহারকারীর সেশনের সময় গতিশীলভাবে তৈরি হওয়া কোড এক্সিকিউট করতে হয়, তাহলে এজেন্ট ইঞ্জিন একটি নিরাপদ স্যান্ডবক্স প্রদান করে যেখানে আপনি কোড এক্সিকিউট করতে পারেন।
- নমনীয় দীর্ঘমেয়াদী স্মৃতি : যদি আপনার এজেন্টদের জন্য নমনীয় দীর্ঘমেয়াদী স্মৃতির প্রয়োজন হয়, তাহলে ভার্টেক্স এআই এজেন্ট ইঞ্জিনের সাথে ব্যবহার করা যেতে পারে এমন ভার্টেক্স এআই মেমোরি ব্যাংক আপনার ব্যবহারকারী সম্পর্কে তথ্য মনে রাখার একটি নমনীয় উপায় প্রদান করতে পারে যা সেশন জুড়ে ব্যবহার করা যেতে পারে।
আপনি ভার্টেক্স এআই এজেন্ট ইঞ্জিনকে ক্লাউড রানের মতো অন্যান্য রানটাইমের সাথে একত্রিত করে একটি নমনীয় অ্যাপ্লিকেশন আর্কিটেকচার তৈরি করতে পারেন। নীচে একটি এজেন্ট তৈরি করতে বিভিন্ন পরিষেবা ব্যবহার করে একটি রেফারেন্স আর্কিটেকচারের একটি উদাহরণ দেওয়া হল।

চিত্র ২: একাধিক পরিষেবা ব্যবহার করে এজেন্ট তৈরির জন্য একটি নমুনা রেফারেন্স আর্কিটেকচার।
৫. A2A এর ভূমিকা
Agent2Agent (A2A) প্রোটোকল হল একটি উন্মুক্ত মান যা বিভিন্ন ফ্রেমওয়ার্ক, বিক্রেতা এবং ডোমেনের স্বায়ত্তশাসিত AI এজেন্টদের মধ্যে নিরবচ্ছিন্ন এবং নিরাপদ যোগাযোগ এবং সহযোগিতা সক্ষম করার জন্য ডিজাইন করা হয়েছে।
- সার্বজনীন আন্তঃকার্যক্ষমতা: A2A এজেন্টদের তাদের অন্তর্নিহিত প্রযুক্তি নির্বিশেষে একসাথে কাজ করার সুযোগ দেয়, যা সত্যিকার অর্থে একটি বহু-এজেন্ট ইকোসিস্টেম তৈরি করে। এর অর্থ হল বিভিন্ন প্ল্যাটফর্মে বিভিন্ন কোম্পানি দ্বারা নির্মিত এজেন্টরা যোগাযোগ এবং সমন্বয় করতে পারে।
- সক্ষমতা আবিষ্কার: এজেন্টরা "এজেন্ট কার্ড" (JSON ডকুমেন্ট) ব্যবহার করে তাদের সক্ষমতা বিজ্ঞাপন দিতে পারে, যা তাদের পরিচয়, সমর্থিত A2A বৈশিষ্ট্য, দক্ষতা এবং প্রমাণীকরণের প্রয়োজনীয়তা বর্ণনা করে। এটি অন্যান্য এজেন্টদের একটি নির্দিষ্ট কাজের জন্য সবচেয়ে উপযুক্ত এজেন্ট আবিষ্কার এবং নির্বাচন করার সুযোগ দেয়।
- ডিফল্টভাবে সুরক্ষিত: নিরাপত্তা একটি মূল নীতি। A2A এন্টারপ্রাইজ-গ্রেড প্রমাণীকরণ এবং অনুমোদন প্রক্রিয়া অন্তর্ভুক্ত করে, নিরাপদ ইন্টারঅ্যাকশন নিশ্চিত করতে এবং সংবেদনশীল ডেটা সুরক্ষিত করতে HTTPS/TLS, JWT, OIDC এবং API কীগুলির মতো মান ব্যবহার করে।
- মোডালিটি অ্যাগনস্টিক: প্রোটোকলটি বিভিন্ন যোগাযোগ পদ্ধতি সমর্থন করে, যার মধ্যে রয়েছে টেক্সট, অডিও এবং ভিডিও স্ট্রিমিং, সেইসাথে ইন্টারেক্টিভ ফর্ম এবং এমবেডেড আইফ্রেম। এই নমনীয়তা এজেন্টদের কাজ এবং ব্যবহারকারীর জন্য সবচেয়ে উপযুক্ত বিন্যাসে তথ্য বিনিময় করতে দেয়।
- স্ট্রাকচার্ড টাস্ক ম্যানেজমেন্ট: A2A টাস্ক ডেলিগেশন, মনিটরিং এবং সমাপ্তির জন্য স্পষ্ট প্রোটোকল সংজ্ঞায়িত করে। এটি সম্পর্কিত কাজগুলিকে গোষ্ঠীবদ্ধ করা এবং অনন্য টাস্ক আইডি ব্যবহার করে বিভিন্ন এজেন্টের মধ্যে সেগুলি পরিচালনা করা সমর্থন করে। টাস্কগুলি সংজ্ঞায়িত জীবনচক্রের মাধ্যমে রূপান্তরিত হতে পারে (যেমন, জমা দেওয়া, কাজ করা, সম্পন্ন)।
- অস্বচ্ছ সম্পাদন: একটি উল্লেখযোগ্য বৈশিষ্ট্য হল এজেন্টদের তাদের অভ্যন্তরীণ যুক্তি প্রক্রিয়া, স্মৃতি, বা নির্দিষ্ট সরঞ্জামগুলি অন্য এজেন্টদের কাছে প্রকাশ করার প্রয়োজন হয় না। তারা কেবল তাদের কলযোগ্য পরিষেবাগুলি প্রকাশ করে, মডুলারালিটি এবং গোপনীয়তা প্রচার করে।
- বিদ্যমান মানদণ্ডের উপর ভিত্তি করে তৈরি: A2A রিয়েল-টাইম স্ট্রিমিংয়ের জন্য HTTP, সার্ভার-সেন্ট ইভেন্টস (SSE) এবং স্ট্রাকচার্ড ডেটা এক্সচেঞ্জের জন্য JSON-RPC-এর মতো প্রতিষ্ঠিত ওয়েব প্রযুক্তি ব্যবহার করে, যা বিদ্যমান আইটি পরিকাঠামোর সাথে একীভূত করা সহজ করে তোলে।
- অ্যাসিঙ্ক্রোনাস কমিউনিকেশন: প্রোটোকলটি অ্যাসিঙ্ক্রোনাস কমিউনিকেশনকে প্রাথমিক বিবেচনা হিসেবে রেখে ডিজাইন করা হয়েছে, যা নমনীয় কাজের অগ্রগতি সহজতর করে এবং সংযোগ স্থায়ীভাবে রক্ষণাবেক্ষণ না করা হলেও আপডেটের জন্য পুশ বিজ্ঞপ্তি সক্ষম করে।
৬. এজেন্ট আর্কিটেকচার
এই ল্যাবে, আপনি একটি মাল্টি-এজেন্ট অ্যাপ্লিকেশন তৈরি করবেন যা আপনার স্পেসিফিকেশন অনুসারে একটি চিত্র তৈরি করে এবং আপনার কাছে উপস্থাপন করার আগে চিত্রটি মূল্যায়ন করে।
সিস্টেমটি image_scoring নামক একটি প্রধান এজেন্ট দিয়ে গঠিত যা পুরো প্রক্রিয়াটি পরিচালনা করে। এই প্রধান এজেন্টের image_generation_scoring_agent নামক একটি উপ-এজেন্ট থাকে যার আরও নির্দিষ্ট কাজের জন্য নিজস্ব উপ-এজেন্ট থাকে। এটি একটি শ্রেণিবদ্ধ সম্পর্ক তৈরি করে যেখানে প্রধান এজেন্ট তার উপ-এজেন্টদের উপর কাজ অর্পণ করে। 
চিত্র ৩: সামগ্রিক এজেন্ট প্রবাহ।
সকল এজেন্টের তালিকা
এজেন্ট | উদ্দেশ্য | সাব-এজেন্ট |
image_scoring (প্রধান এজেন্ট) | এটি হল রুট এজেন্ট যা সামগ্রিক কর্মপ্রবাহ পরিচালনা করে। এটি বারবার image_generation_scoring_agent এবং checker_agent কে একটি লুপে চালায় যতক্ষণ না একটি টার্মিনেশন শর্ত পূরণ হয়। | ইমেজ_জেনারেশন_স্কোরিং_এজেন্ট |
image_generation_scoring_agent (image_scoring এর সাব-এজেন্ট) | এই এজেন্টটি চিত্র তৈরি এবং স্কোর করার মূল যুক্তির জন্য দায়ী। এটি অর্জনের জন্য এটি তিনটি সাব-এজেন্টের একটি ক্রম কার্যকর করে। | ইমেজ_জেনারেশন_প্রম্পট_এজেন্ট |
checker_agent_instance (image_scoring এর সাব-এজেন্ট) | এই এজেন্টটি পরীক্ষা করে যে ইমেজ স্কোরিং প্রক্রিয়াটি চালিয়ে যাওয়া উচিত নাকি বন্ধ করা উচিত। এটি সমাপ্তির অবস্থা মূল্যায়ন করতে check_tool_condition টুল ব্যবহার করে। | - |
checker_agent_instance (image_scoring এর সাব-এজেন্ট) | এই এজেন্ট ইমেজ জেনারেশনের জন্য প্রম্পট তৈরিতে বিশেষজ্ঞ। এটি একটি ইনপুট টেক্সট নেয় এবং ইমেজ জেনারেশন মডেলের জন্য উপযুক্ত একটি বিস্তারিত প্রম্পট তৈরি করে। | - |
image_generation_prompt_agent (image_generation_scoring_agent এর সাব-এজেন্ট) | এই এজেন্ট ইমেজ জেনারেশনের জন্য প্রম্পট তৈরিতে বিশেষজ্ঞ। এটি একটি ইনপুট টেক্সট নেয় এবং ইমেজ জেনারেশন মডেলের জন্য উপযুক্ত একটি বিস্তারিত প্রম্পট তৈরি করে। | - |
স্কোরিং_ইমেজ_প্রম্পট (image_generation_scoring_agent এর সাব-এজেন্ট): | এই এজেন্ট বিভিন্ন মানদণ্ডের উপর ভিত্তি করে ছবি মূল্যায়ন এবং স্কোর করার ক্ষেত্রে বিশেষজ্ঞ। এটি তৈরি করা ছবি নেয় এবং এতে একটি স্কোর নির্ধারণ করে। | - |
ব্যবহৃত সকল সরঞ্জামের তালিকা
টুল | বিবরণ | ব্যবহারকারী এজেন্ট |
টুল_কন্ডিশন_চেক করুন | এই টুলটি লুপ সমাপ্তির শর্ত পূরণ হয়েছে কিনা বা সর্বোচ্চ সংখ্যক পুনরাবৃত্তিতে পৌঁছেছে কিনা তা পরীক্ষা করে। যদি এই দুটির যেকোনো একটি সত্য হয়, তাহলে এটি লুপটি বন্ধ করে দেয়। | চেকার_এজেন্ট_ইনস্ট্যান্স |
ছবি তৈরি করুন | এই টুলটি ইমেজেন ৩ মডেল ব্যবহার করে ছবি তৈরি করে। এটি তৈরি করা ছবিগুলিকে গুগল ক্লাউড স্টোরেজ বাকেটে সংরক্ষণ করতে পারে। | ইমেজ_জেনারেশন_এজেন্ট |
get_policy সম্পর্কে | এই টুলটি একটি JSON ফাইল থেকে একটি নীতি আনে। নীতিটি image_generation_prompt_agent দ্বারা চিত্র জেনারেশন প্রম্পট তৈরি করতে এবং scoring_images_prompt দ্বারা চিত্রগুলি স্কোর করতে ব্যবহৃত হয়। | ইমেজ_জেনারেশন_এজেন্ট |
ছবি পান | এই টুলটি জেনারেট করা ইমেজ আর্টিফ্যাক্ট লোড করে যাতে এটি স্কোর করা যায়। | স্কোরিং_ইমেজ_প্রম্পট |
সেট_স্কোর | এই টুলটি সেশন অবস্থায় জেনারেট করা ছবির মোট স্কোর সেট করে। | স্কোরিং_ইমেজ_প্রম্পট |
৭. ADK ইনস্টল করুন এবং আপনার পরিবেশ সেট আপ করুন
এই হ্যান্ডস অন-এ আমরা কাজগুলি সম্পাদনের জন্য ক্লাউড শেল ব্যবহার করব।
একটি ক্লাউড শেল এডিটর ট্যাব প্রস্তুত করুন
- সরাসরি ক্লাউড শেল এডিটরে যেতে এই লিঙ্কে ক্লিক করুন।
- চালিয়ে যান ক্লিক করুন।
- ক্লাউড শেল অনুমোদন করার অনুরোধ জানানো হলে, অনুমোদন করুন এ ক্লিক করুন।
- এই ল্যাবের বাকি অংশ জুড়ে, আপনি ক্লাউড শেল এডিটর এবং ক্লাউড শেল টার্মিনালের সাথে আপনার IDE হিসেবে এই উইন্ডোতে কাজ করতে পারেন।
- ক্লাউড শেল এডিটরে Terminal>New Terminal ব্যবহার করে একটি নতুন টার্মিনাল খুলুন। নীচের সমস্ত কমান্ড এই টার্মিনালে চালানো হবে।
এই ল্যাবের জন্য ADK এবং কোড নমুনা ডাউনলোড এবং ইনস্টল করুন।
- গিটহাব থেকে প্রয়োজনীয় উৎস ক্লোন করতে এবং প্রয়োজনীয় লাইব্রেরি ইনস্টল করতে নিম্নলিখিত কমান্ডগুলি কার্যকর করুন। ক্লাউড শেল এডিটরে খোলা টার্মিনালে কমান্ডগুলি চালান।
#create the project directory
mkdir ~/imagescoring
cd ~/imagescoring
#clone the code in the local directory
git clone https://github.com/haren-bh/multiagenthandson.git
- আমরা পাইথন পরিবেশ তৈরি করতে uv ব্যবহার করব (ক্লাউড শেল এডিটর টার্মিনালে চালান):
#Install uv if you do not have installed yet
pip install uv
#Create the virtual environment
uv venv .adkvenv
source .adkvenv/bin/activate
#go to the project directory
cd ~/imagescoring/multiagenthandson
#install dependencies
uv pip install -r pyproject.toml
- যদি আপনার ক্লাউড স্টোরেজ বাকেট না থাকে, তাহলে Google Cloud Storage এ একটি নতুন বাকেট তৈরি করুন। আপনি gsutil কমান্ড ব্যবহার করেও বাকেট তৈরি করতে পারেন। এজেন্ট ইঞ্জিনকে Google Cloud Storage (Cloud Shell Editor Terminal এ রান করুন) অ্যাক্সেস দিন।
# First, make sure your PROJECT_ID variable is set
PROJECT_ID=$(gcloud config get-value project)
# Now, create the bucket with a unique name
# We'll use the project ID to help ensure uniqueness
gsutil mb gs://${PROJECT_ID}-imagescoring-bucket
#Now lets give Agent Engine the permission to access Cloud Storage
# 1. Get the current Project ID (text) and Project Number (numeric)
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
# 2. Construct the Reasoning Engine Service Account email
SA_EMAIL="service-${PROJECT_NUMBER}@gcp-sa-aiplatform-re.iam.gserviceaccount.com"
# 3. Create Agent Engine Service account if not already created
gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_NUMBER}
# 3. Grant GCS Access
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/storage.objectUser" --condition=None
- এডিটরে View->Toggle hidden files এ যান। এবং image_scoring ফোল্ডারে নিম্নলিখিত বিষয়বস্তু সহ একটি .env ফাইল তৈরি করুন। আপনার প্রকল্পের নাম এবং ক্লাউড স্টোরেজ বাকেটের মতো প্রয়োজনীয় বিবরণ যোগ করুন (Cloud Shell Editor Terminal এ চালান)।
#go to image_scoring folder
cd ~/imagescoring/multiagenthandson/image_scoring
cat <<EOF>> .env
GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=$(gcloud config get-value project)
GOOGLE_CLOUD_LOCATION=us-central1
GOOGLE_CLOUD_STORAGE_BUCKET=$(gcloud config get-value project)-imagescoring-bucket
GCS_BUCKET_NAME=$(gcloud config get-value project)-imagescoring-bucket
SCORE_THRESHOLD=40
IMAGEN_MODEL="imagen-3.0-generate-002"
GENAI_MODEL="gemini-2.5-flash"
EOF
- সোর্স কোডে এজেন্টের কাঠামোটি দেখুন, agent.py থেকে শুরু করুন। এই এজেন্টটিতে রুট এজেন্ট রয়েছে যা অন্যান্য এজেন্টের সাথে সংযুক্ত হবে।
- টার্মিনালে উপরের ডিরেক্টরি multiagenthandson- এ ফিরে যান এবং স্থানীয়ভাবে এজেন্ট চালানোর জন্য নিম্নলিখিত কমান্ডটি কার্যকর করুন (ক্লাউড শেল এডিটর টার্মিনালে চালান)।
#go to the directory multiagenthandson
cd ~/imagescoring/multiagenthandson
# Run the following command to run agents locally
adk web

চিত্র ৪
ADK এর ব্রাউজার ভিত্তিক GUI ক্লায়েন্ট খুলতে টার্মিনালে প্রদর্শিত http:// url-এ Ctrl+Click (CMD+Click for MacOS) চাপুন। এটি চিত্র 2 এর মতো দেখাবে।
- উপরের বাম দিকের ড্রপডাউন মেনুতে image_scoring নির্বাচন করুন (চিত্র ৫ দেখুন)। এবার কিছু ছবি তৈরি করা যাক! আপনার ছবিগুলি Google Cloud Storage বাকেটেও পাওয়া উচিত। নিম্নলিখিত প্রম্পটগুলি অথবা আপনার নিজস্ব প্রম্পটগুলি চেষ্টা করে দেখুন।
- সূর্যাস্তের সময় একটি শান্ত পাহাড়ি ভূদৃশ্য
- একটি বিড়াল সাইকেল চালাচ্ছে

চিত্র ৫: নমুনা আউটপুট
8. এজেন্ট ইঞ্জিনে স্থাপন করুন
এখন আমরা এজেন্ট ইঞ্জিনে এজেন্ট স্থাপন করব। এজেন্ট ইঞ্জিন হল GCP-তে এজেন্ট স্থাপনের জন্য একটি সম্পূর্ণরূপে পরিচালিত পরিষেবা। এজেন্ট ইঞ্জিন ADK (এজেন্ট ডেভেলপমেন্ট কিট) এর সাথে সামঞ্জস্যপূর্ণ, তাই ADK (এজেন্ট ডেভেলপমেন্ট কিট) দিয়ে তৈরি এজেন্টগুলি এজেন্ট ইঞ্জিনে স্থাপন করা যেতে পারে।
- poetry ব্যবহার করে requirements.txt ফাইল তৈরি করুন। Poetry requirements.txt ফাইল তৈরি করতে pyproject.toml ব্যবহার করবে। কমান্ডটি চালানোর পর পরীক্ষা করুন যে requirements.txt ফাইল তৈরি হয়েছে কিনা (Cloud Shell Editor Terminal এ চালান)।
# Go to the parent folder containing pyproject.toml file
cd ~/imagescoring/multiagenthandson
# install poetry-plugin-export
uv pip install poetry-plugin-export
#Create requirements.txt file
python3 -m poetry export -f requirements.txt --output requirements.txt --without-hashes
- প্যাকেজটি তৈরি করুন। আমাদের অ্যাপটিকে একটি .whl পাইথন প্যাকেজের সাথে বান্ডেল করতে হবে। আমরা এটি করার জন্য poetry ব্যবহার করব। কমান্ডটি কার্যকর করার পরে নিশ্চিত করুন যে একটি dist ফোল্ডার তৈরি হয়েছে এবং এতে .whl ফাইল রয়েছে (ক্লাউড শেল এডিটর টার্মিনালে চালান)।
# Go to the parent folder containing pyproject.toml file
cd ~/imagescoring/multiagenthandson
#Create python package, to create whl file
python3 -m poetry build
- এখন আমরা ডিপ্লয় স্ক্রিপ্ট প্রস্তুত করব। ডিপ্লয় স্ক্রিপ্টটি আমাদের ইমেজ-স্কোরিং এজেন্ট বা এজেন্ট ইঞ্জিন পরিষেবা ডিপ্লয় করবে। অনুগ্রহ করে নীচের মত ডিপ্লয় ফোল্ডারের ভিতরে deploy.py এর কন্টেন্ট নিশ্চিত করুন (ফাইলটি খুঁজে পেতে ক্লাউড শেল এডিটর সাইড প্যান ব্যবহার করুন)।
import vertexai
from image_scoring.agent import root_agent
import os
import glob # To easily find the wheel file
from dotenv import load_dotenv
# Load environment variables from image_scoring/.env
env_path = os.path.join(os.path.dirname(__file__), "..", "image_scoring", ".env")
load_dotenv(env_path)
PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
LOCATION = os.getenv("GOOGLE_CLOUD_LOCATION", "us-central1")
STAGING_BUCKET = f"gs://{os.getenv('GOOGLE_CLOUD_STORAGE_BUCKET')}"
from vertexai import agent_engines
client=vertexai.Client(
project=PROJECT_ID,
location=LOCATION,
)
remote_app = client.agent_engines.create(
agent=root_agent,
config={
"display_name": "image-scoring",
"staging_bucket": STAGING_BUCKET,
"requirements": open(os.path.join(os.getcwd(), "requirements.txt")).readlines() + ["./dist/image_scoring-0.1.0-py3-none-any.whl"],
"extra_packages": [
"./dist/image_scoring-0.1.0-py3-none-any.whl",
], "env_vars":{"GCS_BUCKET_NAME":os.getenv('GOOGLE_CLOUD_STORAGE_BUCKET')}
}
)
print(f"DEBUG: AgentEngine attributes: {dir(remote_app)}")
try:
print(remote_app.api_resource.name)
except AttributeError:
print("Could not find resource_name, check DEBUG output above.")
- আমরা এখন ডিপ্লয় স্ক্রিপ্টটি চালাতে পারি। প্রথমে উপরের ফোল্ডার multiagenthandson (Cloud Shell Editor Terminal এ রান করুন) এ যান।
#go to multiagenthandson folder
cd ~/imagescoring/multiagenthandson
#run deploy script from the parent folder containing deploy.py
python3 -m deploy.deploy
স্থাপনের পরে আপনি নীচের মতো কিছু দেখতে পাবেন, 
চিত্র ৬: নমুনা আউটপুট
- এবার ডিপ্লয়েড এজেন্ট পরীক্ষা করা যাক। রিমোটলি ডিপ্লয়েড এজেন্ট ইঞ্জিন পরীক্ষা করার জন্য প্রথমে টার্মিনালে ডিপ্লয়েড আউটপুট থেকে এজেন্টের অবস্থান কপি করুন। এটি দেখতে এরকম কিছু হওয়া উচিত, projects/85469421903/locations/us-central1/reasoningEngines/7369674597261639680 ।
testclient ফোল্ডারে যান, ক্লাউড শেল এডিটরে remote_test.py ফাইলটি খুলুন এবং নিম্নলিখিত লাইনগুলি সম্পাদনা করুন।
REASONING_ENGINE_ID = "projects/xxx/locations/us-central1/reasoningEngines/xxx" # TODO: Change this
- উপরের ফোল্ডার multiagenthandson থেকে, নিম্নলিখিত কমান্ডটি চালান। আপনি চিত্র 4 এর মতো আউটপুট পাবেন। একবার এক্সিকিউশন সম্পন্ন হলে, আপনি (Cloud Shell Editor Terminal এ রান করুন) দেখতে সক্ষম হবেন।
#go to multiagenthandson folder
cd ~/imagescoring/multiagenthandson
#execute remote_test.py
python3 -m testclient.remote_test

চিত্র ৭: নমুনা আউটপুট
৯. একটি A2A এজেন্ট তৈরি করুন
এই ধাপে আমরা পূর্ববর্তী ধাপে তৈরি করা এজেন্টের উপর ভিত্তি করে একটি সাধারণ A2A এজেন্ট তৈরি করতে যাচ্ছি। বিদ্যমান ADK (এজেন্ট ডেভেলপমেন্ট কিট) এজেন্টগুলি A2A প্রোটোকলের অধীনে প্রকাশ করা যেতে পারে। এই ধাপে আপনি এই গুরুত্বপূর্ণ বিষয়গুলি শিখবেন।
- A2A প্রোটোকলের মূল বিষয়গুলি শিখুন।
- ADK এবং A2A প্রোটোকল একে অপরের সাথে কীভাবে কাজ করে তা জানুন।
- A2A প্রোটোকলের সাথে কীভাবে ইন্টারঅ্যাক্ট করতে হয় তা শিখুন।
এই হাতে কলমে আমরা image_scoring_adk_a2a_server ফোল্ডারের কোডটি ব্যবহার করব। কাজটি শুরু করার আগে অনুগ্রহ করে আপনার ডিরেক্টরিটি এই ফোল্ডারে পরিবর্তন করুন (ক্লাউড শেল এডিটর টার্মিনালে চালান)।
#change directory to image_scoring_adk_a2a_server
cd ~/imagescoring/multiagenthandson/image_scoring_adk_a2a_server
#copy the env file
cp ~/imagescoring/multiagenthandson/image_scoring/.env remote_a2a/image_scoring
1. A2A এজেন্ট কার্ড তৈরি করুন
A2A প্রোটোকলের জন্য একটি এজেন্ট কার্ড প্রয়োজন যাতে এজেন্ট সম্পর্কে সমস্ত তথ্য থাকে যেমন এজেন্টের ক্ষমতা, এজেন্ট ব্যবহারের নির্দেশিকা ইত্যাদি। একবার A2A এজেন্ট স্থাপন করা হলে এজেন্ট কার্ডটি " .well-known/agent-card.json " লিঙ্ক ব্যবহার করে দেখা যায়। ক্লায়েন্টরা এজেন্টদের কাছে অনুরোধ পাঠাতে এই তথ্যটি উল্লেখ করতে পারেন।
remote_a2a/image_scoring ফোল্ডারে নিশ্চিত করুন যে নিম্নলিখিত বিষয়বস্তু সহ ক্লাউড শেল এডিটর ব্যবহার করে agents.json আছে।
{
"name": "image_scoring",
"description": "Agent that generates images based on user prompts and scores their adherence to the prompt.",
"url": "http://localhost:8001/a2a/image_scoring",
"version": "1.0.0",
"defaultInputModes": ["text/plain"],
"defaultOutputModes": ["image/png", "text/plain"],
"capabilities": {
"streaming": true,
"functions": true
},
"skills": [
{
"id": "generate_and_score_image",
"name": "Generate and Score Image",
"description": "Generates an image from a given text prompt and then evaluates how well the generated image adheres to the original prompt, providing a score.",
"tags": ["image generation", "image scoring", "evaluation", "AI art"],
"examples": [
"Generate an image of a futuristic city at sunset",
"Create an image of a cat playing a piano",
"Show me an image of a serene forest with a hidden waterfall"
]
}
]
}
2. A2A এজেন্ট তৈরি করুন
রুট ফোল্ডারের image_scoring_adk_a2a_server এর মধ্যে, Cloud Shell Editor সাইড প্যান ব্যবহার করে নিশ্চিত করুন যে একটি a2a_agent.py ফাইল আছে, যা A2A এজেন্টের এন্ট্রি পয়েন্ট। এতে নিম্নলিখিত বিষয়বস্তু থাকা উচিত,
from google.adk.agents.remote_a2a_agent import RemoteA2aAgent
root_agent = RemoteA2aAgent(
name="image_scoring",
description="Agent to give interesting facts.",
agent_card="http://localhost:8001/a2a/image_scoring/.well-known/agent.json",
# Optional configurations
timeout=300.0, # HTTP timeout (seconds)
httpx_client=None, # Custom HTTP client
)
৩. A2A এজেন্ট চালান
এখন আমরা এজেন্ট চালানোর জন্য প্রস্তুত! এজেন্ট চালানোর জন্য উপরের image_scoring_adk_a2a_server ফোল্ডারের ভিতর থেকে নিম্নলিখিত কমান্ডটি কার্যকর করুন (ক্লাউড শেল এডিটর টার্মিনালে চালান)।
#following command runs the ADK agent as a2a agent
adk api_server --a2a --port 8001 remote_a2a
৪. A2A এজেন্ট পরীক্ষা করুন
এজেন্ট চালু হয়ে গেলে আমরা এখন এজেন্টটি পরীক্ষা করতে পারি। প্রথমে, এজেন্ট কার্ডটি পরীক্ষা করে দেখি। টার্মিনাল>নতুন টার্মিনাল ব্যবহার করে একটি নতুন টার্মিনাল খুলুন এবং নিম্নলিখিত কমান্ডটি চালান (নতুন খোলা ক্লাউড শেল এডিটর টার্মিনালে চালান)।
#Execute the following
curl http://localhost:8001/a2a/image_scoring/.well-known/agent.json
উপরের কাজগুলো করলে আমাদের A2A এজেন্টের এজেন্ট কার্ডটি দেখাবে, যা মূলত agent.json এর কন্টেন্ট যা আমরা আগের ধাপে তৈরি করেছি।
এবার এজেন্টের কাছে একটি অনুরোধ পাঠাই। আমরা এজেন্টের কাছে অনুরোধ পাঠাতে curl ব্যবহার করতে পারি (নতুন খোলা ক্লাউড শেল এডিটর টার্মিনালে চালান),
curl -X POST http://localhost:8001/a2a/image_scoring -H 'Content-Type: application/json' -d '{
"id": "uuid-123",
"params": {
"message": {
"messageId": "msg-456",
"parts": [{"text": "Create an image of a cat"}],
"role": "user"
}
}
}'
উপরের অনুরোধে, আপনি " Create an image of a cat " লাইনটি পরিবর্তন করে প্রম্পটটি পরিবর্তন করতে পারেন। কমান্ডটি চালানোর পরে, আপনি নির্দিষ্ট গুগল ক্লাউড স্টোরেজে আউটপুট চিত্রটি পরীক্ষা করতে পারেন।
১০. পরিষ্কার করা
এবার আমরা যা তৈরি করেছি তা পরিষ্কার করা যাক।
- আমাদের তৈরি করা Vertex AI Agent Engine সার্ভারটি মুছে ফেলুন। Google Cloud Console এর সার্চ বারে Vertex AI লিখে Vertex AI তে যান। বাম দিকে Agent Engine এ ক্লিক করুন। আপনি delete এ ক্লিক করে Agent টি মুছে ফেলতে পারেন।

চিত্র ৮
- ক্লাউড শেলের ফাইলগুলি মুছুন
#Execute the following to delete the files
cd ~
rm -R ~/imagescoring
- বাকেটটি মুছে ফেলুন। আপনি GCP কনসোল->ক্লাউড স্টোরেজ এ যেতে পারেন, আপনার বাকেটটি নির্বাচন করে মুছে ফেলতে পারেন।

চিত্র ৯: বালতি মুছে ফেলা
১১. উপসংহার
অভিনন্দন! আপনি Vertex AI Agent Engine- এ একটি মাল্টি-এজেন্ট ADK (এজেন্ট ডেভেলপমেন্ট কিট) অ্যাপ্লিকেশন সফলভাবে স্থাপন করেছেন। এটি একটি উল্লেখযোগ্য অর্জন যা একটি আধুনিক ক্লাউড-নেটিভ অ্যাপ্লিকেশনের মূল জীবনচক্রকে অন্তর্ভুক্ত করে, যা আপনাকে আপনার নিজস্ব জটিল এজেন্টিক সিস্টেম স্থাপনের জন্য একটি শক্ত ভিত্তি প্রদান করে।
সংক্ষিপ্তসার
এই ল্যাবে আপনি শিখেছেন:
- ADK (এজেন্ট ডেভেলপমেন্ট কিট) ব্যবহার করে মাল্টি এজেন্ট অ্যাপ্লিকেশন তৈরি করুন
- ভার্টেক্স এআই এজেন্ট ইঞ্জিনে অ্যাপ্লিকেশনটি স্থাপন করুন
- A2A প্রোটোকল ব্যবহার করে যোগাযোগ করতে পারে এমন একটি এজেন্ট তৈরি করুন।
দরকারী সম্পদ