1. ভূমিকা
এই কোডল্যাবে, আপনি ADK দিয়ে একটি এজেন্ট তৈরি করবেন যা Gemini 3.0 Pro দ্বারা চালিত। এজেন্টটি দুটি রিমোট (গুগল-হোস্টেড) MCP সার্ভার থেকে সরঞ্জাম দিয়ে সজ্জিত থাকবে যা জনসংখ্যাতাত্ত্বিক, মূল্য নির্ধারণ এবং বিক্রয় ডেটার জন্য BigQuery এবং বাস্তব-বিশ্বের অবস্থান বিশ্লেষণ এবং যাচাইকরণের জন্য Google Maps নিরাপদে অ্যাক্সেস করবে।
এজেন্টটি কাল্পনিক বেকারি ডেটাসেট সম্পর্কিত ব্যবসায়িক সমস্যা সমাধানের জন্য ব্যবহারকারী এবং গুগল ক্লাউড পরিষেবাগুলির মধ্যে অনুরোধগুলি পরিচালনা করে।

তুমি কি করবে
- ডেটা সেট আপ করুন: BigQuery-তে বেসিক বেকারি ডেটাসেট তৈরি করুন।
- এজেন্ট তৈরি করুন: এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে একটি বুদ্ধিমান এজেন্ট তৈরি করুন।
- টুলস ইন্টিগ্রেট করুন: MCP সার্ভারের মাধ্যমে এজেন্টকে BigQuery এবং Maps কার্যকারিতা দিয়ে সজ্জিত করুন।
- বাজার বিশ্লেষণ করুন: বাজারের প্রবণতা এবং স্যাচুরেশন মূল্যায়ন করতে এজেন্টের সাথে যোগাযোগ করুন।
তোমার যা লাগবে
- ক্রোমের মতো একটি ওয়েব ব্রাউজার
- বিলিং সক্ষম করা একটি Google ক্লাউড প্রকল্প অথবা একটি Gmail অ্যাকাউন্ট।
এই কোডল্যাবটি সকল স্তরের ডেভেলপারদের জন্য, এমনকি নতুনদের জন্যও। আপনি গুগল ক্লাউড শেলের কমান্ড-লাইন ইন্টারফেস এবং ADK ডেভেলপমেন্টের জন্য পাইথন কোড ব্যবহার করবেন। আপনাকে পাইথন বিশেষজ্ঞ হতে হবে না, তবে কোড কীভাবে পড়তে হয় তার একটি প্রাথমিক ধারণা আপনাকে ধারণাগুলি বুঝতে সাহায্য করবে।
2. শুরু করার আগে
একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন
- গুগল ক্লাউড কনসোলে , প্রজেক্ট সিলেক্টর পৃষ্ঠায়, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন ।

- আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং সক্ষম আছে কিনা তা নিশ্চিত করুন। কোনও প্রোজেক্টে বিলিং সক্ষম আছে কিনা তা কীভাবে পরীক্ষা করবেন তা শিখুন।
ক্লাউড শেল শুরু করুন
ক্লাউড শেল হল গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা প্রয়োজনীয় সরঞ্জামগুলির সাথে প্রিলোডেড থাকে।
- গুগল ক্লাউড কনসোলের উপরে "অ্যাক্টিভেট ক্লাউড শেল" এ ক্লিক করুন:

- ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, ক্লাউড শেলে আপনার প্রমাণীকরণ যাচাই করতে এই কমান্ডটি চালান:
gcloud auth list
- আপনার প্রকল্পটি gcloud এর সাথে ব্যবহারের জন্য কনফিগার করা হয়েছে তা নিশ্চিত করতে নিম্নলিখিত কমান্ডটি চালান:
gcloud config get project
- প্রকল্পটি প্রত্যাশা অনুযায়ী নিশ্চিত করুন, এবং তারপর আপনার প্রকল্প আইডি সেট করতে নীচের কমান্ডটি চালান:
export PROJECT_ID=$(gcloud config get project)
৩. কোডটি পান
রিপোজিটরি ক্লোন করুন
- আপনার ক্লাউড শেল পরিবেশে রিপোজিটরিটি ক্লোন করুন:
git clone https://github.com/google/mcp.git
- ডেমো ডিরেক্টরিতে নেভিগেট করুন:
cd mcp/examples/launchmybakery
প্রমাণীকরণ করুন
আপনার গুগল ক্লাউড অ্যাকাউন্টের সাথে প্রমাণীকরণ করতে নিম্নলিখিত কমান্ডটি চালান। ADK-এর BigQuery অ্যাক্সেস করার জন্য এটি প্রয়োজন।
gcloud auth application-default login
প্রমাণীকরণ প্রক্রিয়াটি সম্পূর্ণ করতে প্রম্পটগুলি অনুসরণ করুন।
৪. পরিবেশ এবং BigQuery কনফিগার করুন
সেটআপ স্ক্রিপ্ট চালান
- পরিবেশ সেটআপ স্ক্রিপ্টটি চালান। এই স্ক্রিপ্টটি BigQuery এবং Google Maps API গুলিকে সক্ষম করে এবং আপনার Project ID এবং Maps API কী দিয়ে একটি
.envফাইল তৈরি করে।
chmod +x setup/setup_env.sh
./setup/setup_env.sh
- BigQuery সেটআপ স্ক্রিপ্টটি চালান। এই স্ক্রিপ্টটি ক্লাউড স্টোরেজ বাকেট তৈরি, ডেটা আপলোড এবং BigQuery ডেটাসেট এবং টেবিলের প্রভিশনিং স্বয়ংক্রিয় করে।
chmod +x ./setup/setup_bigquery.sh
./setup/setup_bigquery.sh
স্ক্রিপ্টটি সম্পূর্ণ হয়ে গেলে, mcp_bakery ডেটাসেট তৈরি করা উচিত এবং নিম্নলিখিত টেবিলগুলি দিয়ে পূর্ণ করা উচিত:
- জনসংখ্যা - জিপ কোড অনুসারে আদমশুমারির তথ্য এবং জনসংখ্যার বৈশিষ্ট্য।
- বেকারি_প্রাইস - বিভিন্ন বেকড পণ্যের প্রতিযোগীদের মূল্য নির্ধারণ এবং পণ্যের বিবরণ।
- sales_history_weekly - দোকান এবং পণ্য অনুসারে সাপ্তাহিক বিক্রয় কর্মক্ষমতা (পরিমাণ এবং রাজস্ব)।
- foot_traffic - জিপ কোড এবং দিনের সময় অনুসারে আনুমানিক পায়ে চলাচলের স্কোর।
- আপনার Google Cloud Project-এর BigQuery কনসোলে গিয়ে ডেটাসেট এবং টেবিল তৈরি হয়েছে কিনা তা যাচাই করুন:

৫. ADK ইনস্টল করুন
এখন যেহেতু পরিকাঠামো প্রস্তুত, আসুন একটি ভার্চুয়াল পাইথন পরিবেশ তৈরি করি এবং ADK-এর জন্য প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করি।
- একটি ভার্চুয়াল পরিবেশ তৈরি করুন:
python3 -m venv .venv
- ভার্চুয়াল পরিবেশ সক্রিয় করুন:
source .venv/bin/activate
- ADK ইনস্টল করুন:
pip install google-adk
- এজেন্ট ডিরেক্টরিতে নেভিগেট করুন:
cd adk_agent/
৬. ADK আবেদনটি পরিদর্শন করুন
ক্লাউড শেলের ওপেন এডিটর বোতামে ক্লিক করে ক্লাউড শেল এডিটর খুলুন এবং mcp/examples/launchmybakery ডিরেক্টরির অধীনে ক্লোন করা রিপোজিটরিটি দেখুন।

এজেন্ট কোডটি ইতিমধ্যেই adk_agent/ ডিরেক্টরিতে দেওয়া আছে। আসুন সমাধানের কাঠামোটি অন্বেষণ করি:
launchmybakery/
├── data/ # Pre-generated CSV files for BigQuery
├── adk_agent/ # AI Agent Application (ADK)
│ └── mcp_bakery_app/ # App directory
│ ├── agent.py # Agent definition
│ ├── tools.py # Custom tools for the agent
│ └── .env # Project configuration (created by setup script)
├── setup/ # Infrastructure setup scripts
└── cleanup/ # Infrastructure cleanup scripts
mcp_bakery_app এ থাকা মূল ফাইলগুলি:
-
agent.py: এজেন্ট, এর সরঞ্জাম এবং মডেলকে সংজ্ঞায়িত করে এমন মূল যুক্তি (জেমিনি 3.0 প্রো প্রিভিউ)। -
tools.py: যেকোনো কাস্টম টুলের সংজ্ঞা ধারণ করে। -
.env: সেটআপ স্ক্রিপ্ট দ্বারা তৈরি আপনার প্রোজেক্ট কনফিগারেশন এবং গোপনীয়তা (যেমন API কী) ধারণ করে।
১. এমসিপি টুলসেট আরম্ভকরণ:
এখন, MCP টুলসেটগুলি কীভাবে শুরু করা হয় তা বুঝতে এডিটরে adk_agent/mcp_bakery_app/tools.py খুলুন।
আমাদের এজেন্টকে BigQuery এবং Google Maps-এর সাথে যোগাযোগ করতে সক্ষম করার জন্য, আমাদের মডেল কনটেক্সট প্রোটোকল (MCP) ক্লায়েন্ট কনফিগার করতে হবে।
কোডটি StreamableHTTPConnectionParams ব্যবহার করে Google এর দূরবর্তী MCP সার্ভারের সাথে নিরাপদ সংযোগ স্থাপন করে।
def get_maps_mcp_toolset():
dotenv.load_dotenv()
maps_api_key = os.getenv('MAPS_API_KEY', 'no_api_found')
tools = MCPToolset(
connection_params=StreamableHTTPConnectionParams(
url=MAPS_MCP_URL,
headers={
"X-Goog-Api-Key": maps_api_key
}
)
)
print("MCP Toolset configured for Streamable HTTP connection.")
return tools
def get_bigquery_mcp_toolset():
credentials, project_id = google.auth.default(
scopes=["https://www.googleapis.com/auth/bigquery"]
)
credentials.refresh(google.auth.transport.requests.Request())
oauth_token = credentials.token
HEADERS_WITH_OAUTH = {
"Authorization": f"Bearer {oauth_token}",
"x-goog-user-project": project_id
}
tools = MCPToolset(
connection_params=StreamableHTTPConnectionParams(
url=BIGQUERY_MCP_URL,
headers=HEADERS_WITH_OAUTH
)
)
print("MCP Toolset configured for Streamable HTTP connection.")
return tools
- ম্যাপস টুলসেট: আপনার API কী ব্যবহার করে ম্যাপস এমসিপি সার্ভারের সাথে সংযোগ কনফিগার করে।
- BigQuery Toolset: এই ফাংশনটি BigQuery MCP সার্ভারের সাথে সংযোগ কনফিগার করে। এটি google.auth ব্যবহার করে আপনার ক্লাউড শংসাপত্রগুলি স্বয়ংক্রিয়ভাবে পুনরুদ্ধার করে, একটি OAuth Bearer টোকেন তৈরি করে এবং এটি Authorization হেডারে ইনজেক্ট করে।
2. এজেন্টের সংজ্ঞা:
এখন, এজেন্ট কীভাবে সংজ্ঞায়িত করা হয়েছে তা দেখতে এডিটরে adk_agent/mcp_bakery_app/agent.py খুলুন।
LlmAgent gemini-3-pro-preview মডেল দিয়ে শুরু করা হয়েছে।
maps_toolset = tools.get_maps_mcp_toolset()
bigquery_toolset = tools.get_bigquery_mcp_toolset()
root_agent = LlmAgent(
model='gemini-3-pro-preview',
name='root_agent',
instruction=f"""
Help the user answer questions by strategically combining insights from two sources:
1. **BigQuery toolset:** Access demographic (inc. foot traffic index), product pricing, and historical sales data in the mcp_bakery dataset. Do not use any other dataset.
Run all query jobs from project id: {project_id}.
2. **Maps Toolset:** Use this for real-world location analysis, finding competition/places and calculating necessary travel routes.
Include a hyperlink to an interactive map in your response where appropriate.
""",
tools=[maps_toolset, bigquery_toolset]
)
- সিস্টেম নির্দেশাবলী: এজেন্টকে BigQuery (ডেটার জন্য) এবং Maps (অবস্থান বিশ্লেষণের জন্য) উভয় থেকে অন্তর্দৃষ্টি একত্রিত করার জন্য নির্দিষ্ট নির্দেশাবলী দেওয়া হয়।
- টুলস:
maps_toolsetএবংbigquery_toolsetউভয়ই এজেন্টকে বরাদ্দ করা হয়, যা তাকে উভয় পরিষেবার ক্ষমতাগুলিতে অ্যাক্সেস দেয়।
এজেন্ট রেপোতে সংজ্ঞায়িত নির্দেশাবলী এবং সরঞ্জামগুলি মেনে চলে। এজেন্টের আচরণকে কীভাবে প্রভাবিত করে তা দেখার জন্য নির্দেশাবলীতে পরিবর্তন করতে দ্বিধা করবেন না।
৭. আপনার এজেন্টের সাথে চ্যাট করুন!
ক্লাউড শেলের টার্মিনালে ফিরে যান এবং adk_agent ডিরেক্টরিতে নেভিগেট করতে এই কমান্ডটি চালান:
cd adk_agent
ADK ওয়েব ইন্টারফেস শুরু করতে নিম্নলিখিত কমান্ডটি চালান। এই কমান্ডটি চ্যাট অ্যাপ্লিকেশন হোস্ট করার জন্য একটি হালকা ওয়েব সার্ভারকে স্পিন করে:
adk web
সার্ভারটি শুরু হয়ে গেলে, আপনি ADK ওয়েব ইন্টারফেস চালু করতে প্রদত্ত URL-এ ক্লিক করে আপনার এজেন্টের সাথে চ্যাট করতে পারেন।
নিম্নলিখিত প্রশ্নগুলি জিজ্ঞাসা করে এজেন্টের সাথে যোগাযোগ করুন । আপনি প্রাসঙ্গিক সরঞ্জামগুলি কল করা দেখতে পাবেন।
- পাড়া খুঁজুন (ম্যাক্রো): "আমি লস অ্যাঞ্জেলেসে একটি বেকারি খুলতে চাই। সকালের সবচেয়ে বেশি ট্র্যাফিক স্কোর সহ জিপ কোডটি খুঁজুন।"

BigQuery-তে foot_traffic টেবিলটি কোয়েরি করার জন্য এজেন্টের get_table_info এবং execute_sql এর মতো টুল ব্যবহার করা উচিত।
- অবস্থানটি যাচাই করুন (মাইক্রো): "আপনি কি সেই জিপ কোডে 'বেকারি' অনুসন্ধান করে দেখতে পারেন যে এটি স্যাচুরেটেড কিনা?"

এই প্রশ্নের উত্তর দেওয়ার জন্য এজেন্টের উচিত ম্যাপস টুলসেটে থাকা search places টুলগুলি ব্যবহার করা।
একবার চেষ্টা করে দেখুন! আপনার ADK এজেন্টকে কীভাবে কাজ করতে হবে তা দেখতে এই নমুনা প্রশ্নগুলি দেখুন:
- "আমি লস অ্যাঞ্জেলেসে আমার চতুর্থ বেকারির অবস্থান খুলতে চাইছি। আমার এমন একটি এলাকা দরকার যেখানে সকালের দিকে কাজকর্ম থাকে। 'সকালের' সর্বোচ্চ পথচারী ট্র্যাফিক স্কোর সহ জিপ কোডটি খুঁজুন।"
- "আপনি কি ওই জিপ কোডে 'বেকারি' লিখে সার্চ করে দেখতে পারেন যে এটি স্যাচুরেটেড কিনা? যদি খুব বেশি থাকে, তাহলে 'স্পেশালিটি কফি' শপগুলো খুঁজে দেখুন, যাতে আমি তাদের কাছে নিজেকে অবস্থান করতে পারি যাতে পায়ে হেঁটে আসা লোকজনের সংখ্যা ধরা যায়।"
- "ঠিক আছে, আমি এটিকে একটি প্রিমিয়াম ব্র্যান্ড হিসেবে প্রতিষ্ঠিত করতে চাই। লস অ্যাঞ্জেলেস মেট্রো এলাকায় 'সর্ডো লোফ'-এর জন্য সর্বোচ্চ কত দাম নেওয়া হচ্ছে?"
- "এখন আমি ২০২৫ সালের ডিসেম্বরের জন্য একটি রাজস্ব প্রক্ষেপণ চাই। আমার বিক্রয় ইতিহাস দেখুন এবং 'সর্ডো লোফ'-এর জন্য আমার সেরা পারফর্মিং স্টোর থেকে তথ্য নিন। আমি কত পরিমাণ বিক্রি করব তা অনুমান করার জন্য ডিসেম্বর ২০২৫-এর জন্য একটি পূর্বাভাস চালান। তারপর, আমরা যে প্রিমিয়াম মূল্য পেয়েছি তার ঠিক নীচে ব্যবহার করে মোট রাজস্বের অনুমান গণনা করুন (আসুন $১৮ ব্যবহার করি)"
- "এতে আমার ভাড়া মিটবে। সবশেষে, আসুন রসদ যাচাই করি। প্রস্তাবিত এলাকার সবচেয়ে কাছের "রেস্তোরাঁ ডিপো" খুঁজে বের করি এবং নিশ্চিত করি যে প্রতিদিনের রিস্টকিংয়ের জন্য গাড়ি চালানোর সময় ৩০ মিনিটের কম।"
৮. পরিষ্কার করা
আপনার Google Cloud অ্যাকাউন্টে ক্রমাগত চার্জ এড়াতে, এই কোডল্যাবের সময় তৈরি করা রিসোর্সগুলি মুছে ফেলুন।
ক্লিনআপ স্ক্রিপ্টটি চালান। এই স্ক্রিপ্টটি BigQuery ডেটাসেট, ক্লাউড স্টোরেজ বাকেট এবং সেটআপের সময় তৈরি API কীগুলি মুছে ফেলবে।
chmod +x ../cleanup/cleanup_env.sh
./../cleanup/cleanup_env.sh
৯. অভিনন্দন
মিশন সম্পূর্ণ! আপনি এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে সফলভাবে একটি লোকেশন ইন্টেলিজেন্স এজেন্ট তৈরি করেছেন।
BigQuery- তে আপনার "এন্টারপ্রাইজ" ডেটা এবং Google Maps- এর বাস্তব-বিশ্বের অবস্থান প্রসঙ্গের মধ্যে ব্যবধান পূরণ করে, আপনি একটি শক্তিশালী টুল তৈরি করেছেন যা জটিল ব্যবসায়িক যুক্তি তৈরি করতে সক্ষম - সবকিছুই মডেল কনটেক্সট প্রোটোকল (MCP) এবং জেমিনি দ্বারা চালিত।
তুমি যা অর্জন করেছো:
- কোড হিসেবে অবকাঠামো: আপনি গুগল ক্লাউড সিএলআই টুল ব্যবহার করে একটি ডেটা স্ট্যাক তৈরি করেছেন।
- MCP ইন্টিগ্রেশন: আপনি জটিল API র্যাপার না লিখেই একটি AI এজেন্টকে দুটি স্বতন্ত্র দূরবর্তী MCP সার্ভারের (BigQuery & Maps) সাথে সংযুক্ত করেছেন।
- ইউনিফাইড রিজনিং: আপনি এমন একটি একক এজেন্ট তৈরি করেছেন যা দুটি ভিন্ন ক্ষেত্র থেকে অন্তর্দৃষ্টি কৌশলগতভাবে একত্রিত করে একটি ব্যবসায়িক সমস্যা সমাধান করতে সক্ষম।