গ্রুপ প্রোডাক্ট ম্যানেজার
নতুন Connected Apps Platform-এর মাধ্যমে আপনি সরাসরি Gemini, Search-এ AI মোড এবং Android ইন্টেলিজেন্স সিস্টেমে আপনার অ্যাপের পরিষেবা ইন্টিগ্রেট করতে পারবেন। এই সেশনটি শুরু করার জন্য একটি ব্যবহারিক নির্দেশিকা প্রদান করে। কোডের উদাহরণ ব্যবহার করে এবং বাস্তব জীবনের কেস স্টাডি থেকে শিখে, আমরা ডেভেলপমেন্ট লাইফসাইকেল সম্পর্কে জানব: AI-পরিচালিত ওয়ার্কফ্লোর মধ্যে ব্যবহারকারীদের কাছে পৌঁছানোর জন্য আপনার প্রথম কানেক্ট করা অ্যাপ তৈরি, পরীক্ষা এবং প্রকাশ করা।
এই সেশনের শেষে, আপনি যা করতে পারবেন:
destructiveHint হিসেবে চিহ্নিত করেন, যা Gemini-কে অ্যাকশন ডেটা পরিবর্তন বা মুছে ফেলার সময় স্পষ্ট কনফার্মেশন চাইতে সাহায্য করে।ট্রান্সস্ক্রিপ্ট করা
হ্যালো, সবাইকে।
আমি মাই এবং আমি Gemini Connected Apps Platform-এর প্রোডাক্ট লিড।
এবং পরে, আপনি আমাদের DevRel ইঞ্জিনিয়ার কেটের কাছ থেকেও শুনবেন।
সে উপরে উঠে আসবে।
তাই, আজ আমরা আপনার সাথে এই বিষয়ে কথা বলতে পেরে খুবই আনন্দিত যে, কীভাবে আপনি Google-এর সবচেয়ে জনপ্রিয় কিছু এজেন্ট প্রোডাক্ট, Gemini এবং Search-এ আপনার অ্যাপের সুবিধা আরও বাড়াতে পারবেন।
কানেক্ট করা অ্যাপ কীভাবে এবং কেন আমাদের ব্যবহারকারীদের জন্য সহায়ক এবং ম্যাজিকের মতো কাজ করে তা আমরা আপনাকে জানাতে চলেছি।
আর আরও ভাল খবর হল, আমরা আপনাকে দেখাব যে এটি তৈরি করতে কী কী লাগে।
তাহলে, আসুন শুরু করা যাক।
আমি জানি যে আমাদের মধ্যে অনেকেই দেখেছেন যে অ্যাপ ইকোসিস্টেম জুড়ে সত্যিই বিশাল কিছু ঘটছে।
লোকজন যেভাবে তাদের ডিভাইস ব্যবহার করেন, উত্তর খোঁজেন এবং কাজ করেন তা শুধু উন্নতই হচ্ছে না।
এটি মৌলিকভাবে পরিবর্তিত হয়েছে।
লোকজন আর ব্রাউজার খুলে বিভিন্ন জায়গায় ট্যাপ করেন না।
তারা Gemini-র মতো অ্যাসিস্ট্যান্টের সাথে সরাসরি কথোপকথন চালাচ্ছে।
তারা Gemini-কে জটিল প্রশ্ন জিজ্ঞাসা করছে, Search-এ মাল্টি-মোডালি উত্তর খুঁজছে।
তারা আশা করেন যে Android ডিভাইস শুধু তাদের কথা বুঝবে না, তারা কী করতে চান তাও জানবে।
আপনার নিজের কিছু ওয়ার্কফ্লো সম্পর্কে চিন্তা করুন যা আপনি যেকোনও দিনে করতে পারেন।
ধরুন, আপনি Gemini-কে কোনও নির্দিষ্ট জায়গায় নির্দিষ্ট সময়ে বন্ধুদের সাথে একটি মজাদার উইকেন্ড কাটানোর জন্য কিছু বিকল্প ব্রেনস্টর্ম করতে সাহায্য করতে বলেছেন।
আজকের মডেল সেই প্ল্যান কয়েক সেকেন্ডের মধ্যে প্রসেস করতে পারে।
এটি দারুণ।
এটি সাজানো হয়েছে।
তারপর কী?
এটি শেষ হয়।
ব্যবহারকারী কোনও উপায় খুঁজে পান না এবং শুধু একটি প্ল্যান নিয়ে অপেক্ষা করতে থাকেন, কিছুই কনফার্ম হয় না।
মডেলটি জানে কী করতে হবে, কিন্তু এটি করার জন্য তার হাত নেই।
তাই, আপনাকে Gemini-র সাথে চ্যাট থেকে তথ্য কপি করে অন্য কোনও অ্যাপে পেস্ট করতে হবে।
কখনও কখনও আপনি মোবাইলে থাকলে, এটি খুব বিশ্রী হয়ে যায়।
আপনাকে তখন সব তথ্য মনে রাখতে হবে এবং পরে তা টাইপ করতে হবে।
এই কগনিটিভ লিপ ও ঘর্ষণ ম্যাজিককে সম্পূর্ণভাবে ভেঙে দেয়।
আর এর অর্থ আপনাদের সকলের জন্য কী?
এর অর্থ হল, আপনার কাছে হাই-ইনটেন্ট ব্যবহারকারীর চাহিদা আছে যা আপনার অ্যাপে সমৃদ্ধ এবং আকর্ষক ব্যবহারকারীদের নিয়ে আসার পরিবর্তে চ্যাট বাবলে আটকে আছে।
আর এই কারণেই কানেক্ট করা অ্যাপগুলি গেম-চেঞ্জার, কারণ তারা আমাদের ব্যবহারকারীদের ঠিক যেখানে তারা আছে সেখানে তাদের সাথে দেখা করতে সাহায্য করে।
আর এখন, তারা Gemini-র মতো অ্যাসিস্ট্যান্টের সাথে কথোপকথন করতে অনেক সময় ব্যয় করছে।
ব্যবহারকারী যখন কোনও অ্যাকশন নেওয়ার জন্য আসল ইচ্ছা প্রকাশ করেন, তখন সেটি তার জার্নির অত্যন্ত গুরুত্বপূর্ণ মুহূর্ত।
তারা প্যাসিভভাবে ব্রাউজ করছেন না।
তারা এমন কিছু করতে চান যা এখনই করা প্রয়োজন।
অ্যাপ এবং এইসব জেনারেটিভ মডেলের মধ্যে ইন্টিগ্রেশন চালু করার মাধ্যমে, Gemini-র মতো অ্যাসিস্ট্যান্ট শুধু প্রশ্নের উত্তর দেওয়ার পরিবর্তে কাজ সম্পূর্ণ করতে সাহায্য করে।
ব্যবহারকারী যখন অগ্রাধিকারের ভিত্তিতে করণীয় কাজের তালিকা চান, বা আসন্ন ট্রিপের জন্য গাড়ি ভাড়া করতে চান, বা এইমাত্র খুঁজে পাওয়া রেসিপির জন্য মুদিখানার জিনিস কিনতে চান, তখন আপনার অ্যাপ কোনও পৃষ্ঠার নিচে স্ট্যাটিক লিঙ্ক হিসেবে থাকে না।
আপনি ম্যাজিক নিয়ে আসতে এবং সেই অ্যাকশনটি তখনই এবং সেখানে কার্যকর করতে সাহায্য করতে পারেন।
এবং আমি একটি বিষয়ে খুব স্পষ্ট করে বলতে চাই, কারণ আমি জানি যে প্রত্যেক ডেভেলপার এবং প্রোডাক্ট লিডার এটি ভাবছেন, কানেক্ট করা অ্যাপের অর্থ আপনার অ্যাপকে দূরে সরিয়ে দেওয়া নয়।
আপনার ব্র্যান্ড, আপনার ব্যবসার লজিক, আপনার যাচাই করা সম্পর্ক এবং আপনার কাস্টম UI অভিজ্ঞতা, এগুলি সবই আপনার।
কানেক্ট করা অ্যাপের মাধ্যমে আপনার পরিষেবাগুলি একটি এজেন্টিক API সারফেসে ইন্টিগ্রেট করা হয়, যাতে Google-এর এজেন্টিক প্রোডাক্টগুলি হাই-ইনটেন্ট ব্যবহারকারীদের সরাসরি আপনার প্রোডাক্টে নিয়ে আসতে পারে।
তাই, আজ, এই মুহূর্তে, আমাদের Connected Apps Platform-এর লঞ্চের কথা আনুষ্ঠানিকভাবে ঘোষণা করতে পেরে আমি অত্যন্ত আনন্দিত।
অতীতে, Google প্রোডাক্ট জুড়ে ব্যবহারকারীদের কাছে পৌঁছানোর অর্থ ছিল প্রত্যেকের জন্য আলাদা ইন্টিগ্রেশন।
আপনি যদি Android অ্যাপ অ্যাকশন বা শর্টকাট চান, তাহলে আপনাকে একটি তৈরি করতে হবে।
সার্চ ইন্টিগ্রেশন, আরও একটি।
তবে আমরা আপনার জন্য সবকিছু যতটা সম্ভব সহজ এবং দুর্দান্ত করতে চাই।
তাই, একাধিক Google এজেন্টিক প্রোডাক্ট জুড়ে আপনার অ্যাপ লঞ্চ করার জন্য আপনাকে একটি এন্ট্রি পয়েন্ট দিতে আমরা অনবোর্ডিং স্ট্যান্ডার্ডাইজ করেছি।
এখন, আপনি স্ট্যান্ডার্ড ডিক্লেরেটিভ স্কিমা ব্যবহার করে একবার আপনার অ্যাপের কার্যকারিতা তৈরি করেন এবং ঠিক সেভাবেই, এটি আমাদের দুটি প্রধান প্রোডাক্ট, Gemini এবং Search জুড়ে কাজ করে।
এছাড়াও, শীঘ্রই আরও প্রোডাক্ট আসতে চলেছে।
তাই, আসুন এই রিচ এবং আপনার জন্য এর অর্থ কী তা নিয়ে আলোচনা করা যাক।
Android, Gemini ও Search জুড়ে Google ব্যবহারকারীদের কাছে পৌঁছানোর জন্য আপনাকে একাধিক কাস্টম প্লাগ-ইন তৈরি, চারটি আলাদা ডেভেলপার কনসোল ম্যানেজ ও বিভিন্ন যাচাইকৃত হ্যান্ডশেক বজায় রাখতে হবে না।
আমাদের ইউনিফায়েড প্ল্যাটফর্মের মাধ্যমে, আপনি একবারই আপনার টুলের সংজ্ঞা তৈরি ও রেজিস্টার করেন।
আপনি নিজের পছন্দের Google প্রোডাক্ট বেছে নেন এবং আমরা আমাদের নতুন Google Connected Console-এ আপনাকে একটি লঞ্চ বোতাম দিই।
আপনি শিপ করলে, আপনার ক্ষমতা যে কেউ Gemini বা Search ব্যবহার করার সময় খুঁজে নিতে পারবে।
ব্যবহারকারীরা তাদের ল্যাপটপে Gemini-তে টাইপ করছেন, ওয়েবে Search-এ একাধিক প্রশ্ন জিজ্ঞাসা করছেন বা Android-এ অ্যাসিস্ট্যান্ট ফিচার ব্যবহার করছেন কিনা তা নির্বিশেষে, তাদের কাছে আপনার অ্যাপটি ব্যবহার করার বিকল্প থাকবে যখন এটি তাদের জন্য সবচেয়ে গুরুত্বপূর্ণ, ঠিক যেখানে তারা আছেন।
তাই, আমরা প্রিভিউ দিয়ে শুরু করে ধাপে ধাপে আমাদের প্ল্যাটফর্ম খুলতে চলেছি।
আমি আপনাকে প্রতিশ্রুতি দিচ্ছি যে, আমাদের পুরো টিম যত দ্রুত সম্ভব আপনাদের সকলের কাছে সব ফিচার পৌঁছে দেওয়ার জন্য কঠোর পরিশ্রম করছে।
প্রিভিউয়ের এই পর্যায়ের জন্য, আমরা শুধু মার্কিন যুক্তরাষ্ট্রের ডেভেলপারদের জন্য প্ল্যাটফর্মটি খুলছি।
আপনি অ্যাক্সেসের জন্য একটি ফর্মের মাধ্যমে সাইন-আপ করতে পারেন এবং আপনি এটি developers.google.com/connected-apps-এ আমাদের ডেভ গাইডে খুঁজে পেতে পারেন অথবা আপনি যদি একজন Play ডেভেলপার হন, তাহলে আপনি এটি আপনার Google Play Console-এর হোম পেজেও খুঁজে পেতে পারেন।
তাহলে, পরবর্তী প্রশ্ন হল, এগুলির মধ্যে একটি তৈরি করা আসলে কতটা কঠিন?
আপনার কাছে REST API বা Android ইনটেন্ট থাকলে, আপনি খুব ভালভাবে শুরু করতে পারবেন।
আমরা পরিচিত ডেভেলপার কনসেপ্টের উপর ভিত্তি করে তৈরি করছি।
আমাদের প্ল্যাটফর্ম, সার্ভার-ভিত্তিক এবং Android-নেটিভ MCP, দুটির মাধ্যমেই মডেল কনটেক্সট প্রোটোকল বা MCP স্ট্যান্ডার্ডের সাথে ইন্টিগ্রেট করে।
এবং এটিকে আপনার জন্য আরও ভালো এবং সহজ করতে, আমরা আজ Gemini-তে ডেভেলপার মোড নামে একটি ব্র্যান্ড নিউ ফিচার লঞ্চ করছি, যা এখন মার্কিন যুক্তরাষ্ট্রের সকলের জন্য অ্যাক্সেসযোগ্য।
এটি আপনাকে Gemini-র মধ্যে আপনার অ্যাপ নিয়ে কাজ করতে, সমস্যা সংক্রান্ত স্ট্যাটাস, লেটেন্সি, মডেলের উত্তর সম্পর্কে রিয়েল-টাইম ফিডব্যাক পেতে দেয়।
এবং শীঘ্রই, আপনি নিজের মূল্যায়ন সেট তৈরি করতে, কোয়ালিটি মেট্রিক স্কোর কার্ড এবং বেঞ্চমার্ক পেতে পারবেন।
এটি দারুণ হবে।
প্ল্যাটফর্মে আপনার অ্যাক্সেস যাই হোক না কেন, আপনি সবসময় ডেভেলপার মোডে আপনার অ্যাপ ব্যবহার করে দেখতে পারবেন।
আমি নিশ্চিত যে আপনি আরও বিস্তারিত জানার জন্য আগ্রহী এবং কেট আমার ঠিক পরেই স্টেজে আসবেন এবং মাত্র কয়েক মিনিটের মধ্যে আপনাকে এই বিষয়ে সবকিছু জানাবেন।
তাই, প্রথমে, আমাকে আপনার সাথে এমন একটি বিষয় নিয়ে কথা বলতে হবে যা সব সময় সবচেয়ে বেশি গুরুত্বপূর্ণ: ব্যবহারকারীর বিশ্বাস।
যখনই আমরা কারও হয়ে এজেন্টের অ্যাকশন নেওয়ার কথা বলি, তখন প্রথম প্রশ্নটি প্রায়ই হয়, "আমরা কীভাবে ব্যবহারকারীকে নিয়ন্ত্রণে রাখব?"
তাই, কয়েকটি সহজ ধারণার মাধ্যমে আমরা কীভাবে এটি দেখি তা এখানে দেওয়া হল।
প্রথমত, আমাদের কনফার্মেশন ঝুঁকির সাথে স্কেল করে।
আমরা প্রতিটি টুল কলের সামনে পপ-আপ দেখাব না।
কিছু খোঁজা, মেনু উপলভ্য আছে কিনা তা চেক করা, অর্ডার ট্র্যাক করা, এগুলি যেন কোনও বাধা ছাড়াই করা যায়।
কিন্তু যখন কোনও অ্যাকশনের বাস্তব ফলাফল থাকে, যেমন শেয়ার করা কিছু এডিট করা, বুকিং সম্পূর্ণ করা বা এমন কিছু মুছে ফেলা যা ব্যবহারকারী সহজে ফেরত পাবেন না, তখন মডেলটি সেই অ্যাকশনটি করার আগে ব্যবহারকারীকে স্পষ্টভাবে হ্যাঁ বলার জন্য জিজ্ঞাসা করার লক্ষ্য রাখে।
দ্বিতীয়ত, সংবেদনশীল ডেটা দেখানো হয়, লুকানো হয় না।
তাই, আপনার অ্যাপের সাথে কোন কোন ব্যক্তিগত তথ্য শেয়ার করা হতে পারে তা চেক করার জন্য আমাদের প্রোডাক্ট ডিজাইন করা হয়েছে।
কোনও সংবেদনশীল তথ্য শনাক্ত করা হলে, আমরা ব্যবহারকারীকে ঠিক কী শেয়ার করা হচ্ছে তা দেখাই, যাতে ব্যবহারকারী সেই মুহূর্তে আপনার অ্যাপ ব্যবহার করা চালিয়ে যাবেন কিনা তা সিদ্ধান্ত নিতে পারেন।
তৃতীয়ত, আমরা যখন জিজ্ঞাসা করি, তখন নির্দিষ্ট করে বলি।
আমরা "আপনি কি নিশ্চিত?" এই ধরনের অস্পষ্ট প্রশ্ন করি না, বরং কোন অ্যাপ এবং আসলে কী পাঠানো বা পরিবর্তন করা হচ্ছে তা জিজ্ঞাসা করি।
এইভাবে, কনফার্মেশন ব্যবহারকারীকে শুধু এলোমেলোভাবে ক্লিক করার পরিবর্তে সত্যিই সিদ্ধান্ত নিতে সাহায্য করে।
এবং যেহেতু কেউ বারবার কনফার্মেশন দিতে চায় না, তাই ব্যবহারকারীরা কত ঘন ঘন তাদের জিজ্ঞাসা করা হচ্ছে তার উপর আরও নিয়ন্ত্রণ পাচ্ছেন।
যেমন, Gemini অ্যাপে, ব্যবহারকারীরা প্রতিটি অ্যাপ এবং এমনকি প্রতিটি অ্যাকশনের জন্য বেছে নিতে পারেন যে সব সময় অ্যাকশনের অনুমতি দেওয়া হবে কিনা।
এর অর্থ হল, আমরা আপনাকে টুলগুলি সততার সাথে চিহ্নিত করতে বলছি।
কোনটি শুধু পড়ার জন্য, কোনটি পরিবর্তন করে, কোনটি ডেটা মুছে দেয় তা চিহ্নিত করুন।
এইসব সিগন্যাল আমাদের প্রোডাক্টকে সিদ্ধান্ত নিতে সাহায্য করে যে কখন ব্যবহারকারীকে নিয়ে আসতে হবে।
আর, কেট আপনাকে কয়েক মিনিটের মধ্যে ঠিক কীভাবে তা করতে হবে তা দেখাবে।
ঠিক আছে, তাহলে আমরা যে উইকেন্ড ট্রিপের কথা বলছিলাম, সেই প্ল্যানিংয়ের বিষয়ে ফিরে যাওয়া যাক।
তাহলে, মনে আছে যে সেটি কতটা কঠিন ও ফ্র্যাগমেন্টেড ছিল?
বন্ধুদের গ্রুপের জন্য আপনার কাছে দারুণ প্ল্যান ছিল, কিন্তু তারপরে আপনি সমস্যায় পড়েছিলেন, আপনাকে কপি-পেস্ট করতে হয়েছিল, বিভিন্ন অ্যাপে যেতে হয়েছিল।
তাই, Viator এবং Ticketmaster হল আমাদের প্রথম দিকের দুটি দুর্দান্ত পার্টনার এবং ব্যবহারকারী যেখানে আছেন সেখানে তাদের সাথে দেখা করার একটি বাস্তব সুযোগ দেখেছেন।
তারা আমাদের সাথে পার্টনারশিপ করার এবং সেই বাধা সরিয়ে দেওয়ার সিদ্ধান্ত নিয়েছেন, যাতে এই হাই-ইনটেন্ট ব্যবহারকারী Gemini-র ভিতর থেকেই সরাসরি তাদের অ্যাপে যেতে পারেন।
এইসব পার্টনারের তৈরি করা কানেক্ট করা অ্যাপের কারণে, পুরো সফরটি অনেক বেশি বাধাহীন ও মসৃণ হয়।
তাহলে, একবার দেখে নেওয়া যাক।
ব্যবহারকারী অ্যাপ কানেক্ট করেন এবং Gemini-কে Viator-এ দিনের বেলার ফুড ট্যুর এবং Ticketmaster-এ ৪ জনের গ্রুপের জন্য কনসার্টের টিকিট খুঁজতে বলেন।
Gemini এই ক্ষমতা শনাক্ত করতে পারে, Viator-এ কল করে এবং Ticketmaster টুলে সরাসরি সঠিক গ্রুপ সাইজ, তারিখ এবং পছন্দগুলি আগে থেকেই পূরণ করে দেয়।
কথোপকথন থেকে না বেরিয়েই, দুটি অ্যাপই রিয়েল-টাইম উপলভ্যতা ফিরিয়ে আনে এবং ব্যবহারকারীর জন্য চ্যাটের ঠিক ভিতরেই সমৃদ্ধ, ইন্টার্যাক্টিভ অভিজ্ঞতা প্রদান করে।
সেই ডেড এন্ডে পৌঁছে যাওয়া এবং একগুচ্ছ ট্যাব নিয়ে জাগলিং করার পরিবর্তে, Viator এবং Ticketmaster হল এমন পার্টনারদের উদাহরণ যারা ব্যবহারকারীদের ঠিক যা প্রয়োজন তা করতে দেয়, যেমন ফুড ট্যুর স্টপ এক্সপ্লোর করা, কনসার্টের সিট বেছে নেওয়া এবং আবিষ্কার থেকে অ্যাকশনে সম্পূর্ণ নির্বিঘ্নে চলে যাওয়া।
তাই, স্ট্যাটিক অ্যাপ লঞ্চারের যুগ শেষ হতে চলেছে, বন্ধুরা, যা বুদ্ধিমান, প্রোঅ্যাক্টিভ এবং এজেন্টিক অভিজ্ঞতার পথ তৈরি করছে।
আপনার ব্যবহারকারীরা আগে থেকেই Search ও Gemini-র সাথে এনগেজ করছেন, সাহায্য চাইছেন।
একসাথে, আমরা তাদের উত্তরের বাইরে যেতে এবং সত্যিই শক্তিশালী এবং জাদুকরী অভিজ্ঞতা প্রদান করতে সাহায্য করতে পারি।
আমার জন্য এই পর্যন্তই।
আমি এখন কেটকে দায়িত্ব দেব, যিনি আপনাকে কানেক্ট করা অ্যাপ কীভাবে তৈরি করতে হয় তা বিস্তারিতভাবে জানাবেন।
উপরে আসুন।
হ্যালো, সবাইকে।
আমি কেট, একজন ডেভেলপার রিলেশনস ইঞ্জিনিয়ার, আপনার মতো ডেভেলপারদের Connected Apps Platform-এর সাথে ইন্টিগ্রেট করতে সাহায্য করছি।
তাই, আমি আপনাকে ধাপে ধাপে দেখাব যে কীভাবে আপনার কানেক্ট করা অ্যাপ টেস্ট, বিল্ড ও ডিপ্লয় করতে হয়।
এবং মাই যেমন আগে উল্লেখ করেছেন, Connected Apps Platform-এর সাথে ইন্টিগ্রেট করার দুটি প্রাথমিক পদ্ধতি রয়েছে: হয় MCP প্রোটোকল ব্যবহার করে রিমোট MCP সার্ভারের মাধ্যমে অথবা Android MCP-এর মাধ্যমে, যখন আপনি AppFunctions লাইব্রেরি ব্যবহার করে ডিভাইসে আপনার রিমোট MCP সার্ভার তৈরি করতে পারেন।
Android, iOS এবং Web-এর মতো প্ল্যাটফর্ম জুড়ে ইন্টিগ্রেট করতে চাইলে, আমরা রিমোট MCP সার্ভার ব্যবহার করার সাজেশন দিই।
এছাড়াও, আমরা কিছু ডেভেলপারের থেকে মতামত পেয়েছি যে, কখনও কখনও আপনি লোকাল এক্সিকিউশন পছন্দ করেন, যখন আপনার অ্যাপ ডেটা শুধুমাত্র ডিভাইসে উপলভ্য থাকে।
এই ব্যবহারের ক্ষেত্রে, আমরা AppFunctions Jetpack লাইব্রেরি ব্যবহার করে Android MCP ব্যবহার করার সাজেশন দিই।
এবং এই বিষয়ে ডেডিকেটেড টক দেখুন যেখানে ড্যান এবং সারা AppFunctions এবং Android MCP-এর মাধ্যমে Connected Apps Platform-এর সাথে কীভাবে ইন্টিগ্রেট করা যায় সেই বিষয়ে বিস্তারিত আলোচনা করেছেন।
এখন, রিমোট MCP সার্ভার কীভাবে তৈরি করতে হয় তা এক্সপ্লোর করা যাক।
আর এটি বাস্তবে কীভাবে কাজ করে তা আপনাকে দেখানোর জন্য, আমরা অফিসিয়াল AndroidDevSummit কানেক্ট করা অ্যাপ তৈরি করেছি।
তাহলে, এটি কীভাবে কাজ করে তা আমি আপনাকে দেখাই।
লাইভ ডেমোতে ফিরে যাওয়া যাক।
তাই, "AndroidDevSummit, আমাকে XR সেশন সম্পর্কে আরও বলো" বলে জিজ্ঞাসা করার কথা ভাবুন।
বর্তমানে, Gemini আমাদের MCP সার্ভারের সাথে কানেক্ট করে যা আমরা এই কানেক্ট করা অ্যাপের জন্য তৈরি করেছি।
এটি কল করার জন্য সঠিক টুল খুঁজে বের করে এবং ব্যবহারকারীর জন্য সুবিধাজনক উত্তর তৈরি করতে এর ডেটা ব্যবহার করে।
তাই, এটি এখানে প্রথম ও দ্বিতীয় দিনের XR-সম্পর্কিত সেশনের তথ্য খুঁজে পায় এবং শেষে Android বট সহ AndroidDevSummit-এর জন্য আমাদের কাস্টম ব্র্যান্ডেড উইজেট রেন্ডার করে।
তাই, Gemini-র মধ্যেই আপনি এই উইজেটের সাথে ইন্টার্যাক্ট করতে পারবেন।
আপনি শিডিউল দেখতে পারেন, যেমন, আপনি লোকেশন পরিবর্তন করতে পারেন অথবা দিন অনুযায়ী ফিল্টার করতে পারেন।
এছাড়াও, আপনি বিভিন্ন বিষয় অনুসারে ফিল্টার করতে পারেন, যেমন আমি যদি XR-সম্পর্কিত সেশন সার্চ করতে চাই এবং আপনি বিবরণ ও স্পিকারদেরও দেখতে পারেন।
তাই, দারুণ!
Gemini-র মধ্যে সবকিছু, আপনার কাস্টম ব্র্যান্ডেড অভিজ্ঞতা এবং ব্যবহারকারীদের পাল্টাতে হবে না, ব্যবহারকারীদের অন্য কোনও অ্যাপে গিয়ে অন্য কোনও তথ্য খুঁজতে হবে না, সবকিছু এক জায়গায় ইন্টারঅ্যাক্ট না করে-- কোনও সুইচ বা অ্যাপ থেকে না বেরিয়ে।
তাহলে, স্লাইডে ফিরে যাওয়া যাক।
এবং আসুন এই কানেক্ট করা অ্যাপ কীভাবে তৈরি করতে হয় তা এক্সপ্লোর করি।
তাই, FastMCP লাইব্রেরির মাধ্যমে আপনার MCP সার্ভার শুরু করা খুবই সহজ, তবে চারটি অত্যন্ত গুরুত্বপূর্ণ পেশাদার পদ্ধতি অনুসরণ করতে হবে।
প্রথমে, আপনাকে সার্ভার সংক্রান্ত স্পষ্ট নির্দেশাবলী প্রদান করতে হবে।
from mcp.server.fastmcp import FastMCP
mcp = FastMCP(
name="ADS-MCP",
instructions=(
"A Model Context Protocol server providing event "
"overview, schedules, sessions, speakers, and "
"sandbox demos for the Android Developer Summit "
),
)আপনার MCP সার্ভার শুরু করার সময়, সবসময় স্পষ্ট নির্দেশাবলী নির্ধারণ করুন, আপনার কানেক্ট করা অ্যাপের ডোমেন এবং ক্ষমতা বর্ণনা করুন।
কখন আপনার সার্ভারে ডেলিগেট করতে হবে তা জানতে Connected Apps Platform এইসব নির্দেশাবলীর উপর নির্ভর করে।
এছাড়াও, Google Connected Console, যা আমি আপনাকে পরে দেখাব, সেটিও স্পষ্টভাবে যাচাই করে যে এই নির্দেশাবলী উপস্থিত আছে।
দ্বিতীয়ত, নিরাপত্তা ও নিয়ন্ত্রণের জন্য টুল অ্যানোটেশন যোগ করুন।
@mcp.tool(
title="List Sessions",
annotations=ToolAnnotations(
readOnlyHint=True,
destructiveHint=False,
),
meta={ … },
)
def list_sessions( … )
…আমাদের ADS সার্ভারের জন্য, আমাদের কাছে এই দুটি অ্যানোটেশন আছে।
আপনার টুল কখন শুধু পড়ার জন্য বা ডেটা পরিবর্তন করে তা মডেলের জানা গুরুত্বপূর্ণ।
তাই, আপনার কাছে যদি এমন কোনও টুল থাকে যা ব্যবহারকারীর তথ্য এডিট বা মুছে দেয়, তাহলে সেগুলিকে এডিট বা মুছে দেওয়ার অপারেশন হিসেবে চিহ্নিত করতে সবসময় এই destructiveHint ব্যবহার করুন।
এবং এইভাবে, Connected Apps Platform জানতে পারবে যে এটি কোনও ব্যবহারকারীকে একটি কনফার্মেশন মেসেজ দেখাতে হবে, যে তারা এই অ্যাকশনটি সম্পূর্ণ করতে ঠিক আছে।
এছাড়াও, আপনি কানেক্ট করা Google Connected Console-এ আপনার টুল কনফিগার করতে পারেন, যা আমি আপনাকে পরে দেখাব।
এবং তিন নম্বর, স্ট্রংলি টাইপড স্কিমা ও সিম্যান্টিক ডকস্ট্রিং।
def list_sessions(
track: Optional[str] = None,
location: Optional[str] = None,
) -> List[Dict[str, Any]]:
"""Lists all sessions, optionally filtered by track
(e.g. 'Tools and performance', 'Apps Foundation',
'AI experiences', 'Android XR') or location
(e.g. 'MTV', 'Mountain View', 'London', 'LON').
"""
…আপনার প্যারামিটার ডকস্ট্রিংগুলিকে আপনার প্রম্পটের অংশ হিসাবে বিবেচনা করুন।
এই list_sessions টুলে, আমরা স্পষ্টভাবে প্রত্যাশিত মানগুলি ডকুমেন্ট করি, যেমন টুল এবং পারফর্ম্যান্স, বা লোকেশনের জন্য MTV বনাম লন্ডন।
সঠিক টুল কলিংয়ের ক্ষেত্রে সবচেয়ে গুরুত্বপূর্ণ বিষয় হল স্পষ্ট ও বর্ণনামূলক স্কিমা।
এবং শেষটি, UI রিসোর্স মেটাডেটা বাইন্ডিং।
@mcp.tool(
…
meta={
"ui": {
"resourceUri": "ui://ads-mcp/summit-app",
},
…
},
)
def list_sessions(…)
…মেটাতে আমাদের UI সংজ্ঞা দেখুন।
এই মেটাডেটা হল সেই ব্রিজ যা Gemini-কে টুল আউটপুট সরাসরি আমাদের কাস্টম UI রিসোর্সের সাথে এখানে বাইন্ড করার নির্দেশ দেয়।
এর ফলে আমরা UI রেন্ডার করতে পারি।
@mcp.resource(
"ui://ads-mcp/summit-app",
name="summit-app",
mime_type="text/html",
)
def get_summit_ui() -> ResourceResult:
"""Renders the interactive ADS 2026 dashboard."""
return ResourceResult([
ResourceContent(
_build_summit_ui_html(),
mime_type="text/html",
)
])Connected Apps Platform আপনাকে MCP অ্যাপ UI-এর মাধ্যমে আপনার MCP সার্ভার থেকে একটি সমৃদ্ধ ইউজার ইন্টারফেস রেন্ডার করার একটি উপায় দেয়।
এবং আপনি যখন আমাদের Android Dev Summit-এর মতো কাস্টম, ব্র্যান্ড-এক্সপ্রেসিভ ইন্টারফেসের জন্য সম্পূর্ণ নমনীয়তা চান, তখন আপনি MCP UI রিসোর্স এক্সপোজ করতে পারেন।
এবং Gemini একটি সুরক্ষিত, স্যান্ডবক্স করা iframe-এ রেন্ডার করতে পারে।
এরপর, আমি আপনাকে আপনার লোকাল মেশিন থেকে সরাসরি প্রোডাকশনে আপনার কানেক্ট করা অ্যাপের টেস্টিং এবং ডিপ্লয়মেন্টের মাধ্যমে গাইড করব।
হ্যাঁ।
তাই, আপনি কীভাবে লোকাল ডেভেলপ ও টেস্ট করতে পারবেন তা দেখে নেওয়া যাক।
অ্যাপ তৈরির সময়, প্রথম কমান্ড ব্যবহার করে আপনি সহজেই স্থানীয়ভাবে আপনার সার্ভার স্পিন আপ করতে পারবেন।
./venv/bin/python server.py
npx @modelcontextprotocol/inspectorতারপর, আপনার সার্ভার ডিবাগ করতে, উপলভ্য টুল দেখতে এবং UI-এর সাথে ইন্টার্যাক্ট করতে MCP Inspector ব্যবহার করতে পারবেন।
আমাদের Android ডেভ সামিটের জন্য MCP Inspector কেমন দেখতে হয়, এটি হল তার উদাহরণ।
তাই, আপনি টুল ও UI দেখতে এবং স্থানীয়ভাবে এটি পরীক্ষা করতে পারবেন।
দ্বিতীয়ত, অ্যাক্সেস পেতে এবং Gemini ডেভেলপার মোডে যাচাই করতে, আপনাকে কোনও রিমোট এন্ডপয়েন্টে MCP সার্ভার ডিপ্লয় করতে হবে।
আপনি যেকোনও ইনফ্রাস্ট্রাকচার বা ক্লাউড পরিষেবা প্রদানকারীর মাধ্যমে আপনার MCP এন্ডপয়েন্ট হোস্ট করতে পারবেন।
তবে আপনি Google Cloud পছন্দ করলে, Google Cloud CLI-এর সাথে এটি ব্যবহার করা খুবই সহজ।
ডিপ্লয় করার জন্য শুধু এই সহজ কমান্ড ব্যবহার করুন এবং আপনার অ্যাপ রিমোটলি উপলভ্য হয়ে যাবে।
gcloud run deploy ads-mcp-serverপরবর্তী ধাপ হল Gemini ডেভেলপার মোডে আপনার পাবলিক এন্ডপয়েন্ট যাচাই করা।
তাহলে, চলুন লাইভ ডেমোতে ফিরে যাই এবং আমি আপনাকে দেখাব যে কীভাবে প্র্যাকটিসে ডেভ মোড ব্যবহার করতে হয়।
তাই, আপনি যদি সেটিংসে গিয়ে ডেভেলপার মোডে ক্লিক করেন, তাহলে সহজেই ডেভেলপার মোড খুঁজে পাবেন।
তারপর, আপনি কোন কানেক্ট করা অ্যাপ পরীক্ষা করতে চান তা বেছে নিতে হবে।
যেমন, আপনি এখানে শুধু MCP সার্ভার URL দিয়ে নতুন একটি তৈরি করতে পারেন।
আমি আগেই টেস্টিংয়ের জন্য একটি তৈরি করেছি, যার নাম ADS MCP এবং এতে আমার টেস্ট এন্ডপয়েন্ট আছে।
এবং আমি শুধু এটি পরীক্ষা করতে চাই যে এটি Gemini-এর সাথে এন্ড-টু-এন্ড কীভাবে কাজ করে।
তাহলে, কিছু জিজ্ঞাসা করা যাক।
"ADS MCP, ইভেন্ট সম্পর্কে আমাকে আরও বলো।"
তাই, বর্তমানে, Gemini আমাদের MCP সার্ভারকে কল করে এবং ডেভেলপার মোডে কোন টুল কল করা হচ্ছে তাও আপনি দেখতে পাবেন।
তাই, উদাহরণস্বরূপ, এই নির্দিষ্ট প্রম্পটের জন্য, "আমাকে ইভেন্ট সম্পর্কে আরও বলুন," get_summit_info কল করা হয়েছিল।
এছাড়াও, আপনি সেই উত্তর দেখতে পাবেন যা সঠিক ছিল।
এবং আপনি লেটেন্সি দেখতে পাবেন।
এছাড়াও, আপনি সব অনুরোধ ও উত্তরের বিবরণ দেখতে পাবেন।
যেমন, আমাদের উত্তরের জন্য আমাদের কাছে অনেক তথ্য আছে।
এছাড়াও, আপনি এটি একটু জুম করে দেখতে পারেন, যেমন, আপনার কী তথ্য প্রয়োজন তা ডিবাগ করা এবং সবকিছু সঠিক আছে কিনা তা এক্সপ্লোর করা।
আপনি এটি কপিও করতে পারেন, যা আপনার টিমমেটের সাথে শেয়ার করতে চাইলে খুব সুবিধাজনক।
এছাড়াও, আপনি সম্পূর্ণ ইভেন্ট লগ এক্সপোর্ট করতে এবং প্রয়োজন হলে শেয়ার করতে পারবেন।
আমার আরও একটি জিনিস ভালো লেগেছে যে আপনি উপলভ্য অন্যান্য টুলও এক্সপ্লোর করতে পারবেন, তাই এখানে ডেভেলপার মোডে আপনি সামিট সংক্রান্ত তথ্য, সেশনের তালিকা এবং অন্যান্য টুল দেখতে পাবেন।
এছাড়াও, আপনি বিভিন্ন ব্যবহারকারীর প্রসঙ্গ সিমুলেট করতে এনভায়রনমেন্ট পরিবর্তন করতে পারবেন।
যেমন, আপনি দিনের সময় বা ভাষা সংক্রান্ত পছন্দের মতো বিষয় পরিবর্তন করতে পারবেন এবং যাচাইকরণ সেট-আপ করতে পারবেন।
তাহলে, এটিই ছিল Dev Mode.
আর হ্যাঁ, আপনি আজ থেকেই আপনার MCP সার্ভার তৈরি করা শুরু করতে পারেন এবং আজ থেকেই Dev মোডের মাধ্যমে এটি পরীক্ষা করতে পারেন।
এটি এখন সবার জন্য উপলভ্য।
এবং স্লাইডে ফিরে যাওয়া যাক।
ঠিক আছে।
সুতরাং, ধরা যাক আপনি ইতিমধ্যেই Dev মোড দিয়ে পরীক্ষা করেছেন, সবকিছু দুর্দান্ত দেখাচ্ছে, আপনি পরবর্তীতে কী করবেন?
আমাদের প্ল্যাটফর্মে অ্যাক্সেস পেতে আপনাকে অ্যাক্সেসের জন্য সাইন-আপ করতে হবে এবং প্রথমে আপনাকে এই আগ্রহসূচক ফর্মটি পূরণ করতে হবে।
এটি আমাদের ডকুমেন্টেশন এবং Google Connected Console-এও উপলভ্য।
আপনার জমা দেওয়া তথ্য অনুমোদিত হয়ে গেলে, আপনি Google Connected Console-এ অ্যাক্সেস পাবেন, যেখানে আপনি প্রোডাকশন রোল আউটের জন্য আপনার অ্যাপ্লিকেশন প্রস্তুত করতে পারবেন।
কনসোলের মধ্যে, আপনার অ্যাপ প্রস্তুত করতে মাত্র কয়েকটি ধাপ লাগে।
প্রথমে, আপনাকে সেখানে একটি নতুন কানেক্ট করা অ্যাপ তৈরি করতে হবে এবং একটি নাম দিতে হবে।
তারপর আপনাকে শুধু ক্ষমতা ও পছন্দের বিভাগ বেছে নিতে হবে।
যেমন, এই উদাহরণের জন্য আমরা প্রোডাক্টিভিটি বেছে নিয়েছি এবং 'তৈরি করুন' বিকল্পে ক্লিক করেছি।
এরপর, অ্যাপের বিবরণের মধ্যে, আপনাকে ডিসপ্লে নাম, আইকনের মতো পাবলিক ডেটা প্রদান করতে হবে এবং ব্যবহারকারী নিজে ইন্টার্যাক্ট করতে পারেন এমন বিবরণ, আপনার অ্যাপের ক্ষমতা, সীমাবদ্ধতা, উদাহরণ প্রম্পট এবং অন্যান্য ডেটাও প্রদান করতে হবে।
তারপর, আপনার MCP সার্ভার কনফিগার করার সময়, আপনাকে এন্ডপয়েন্ট দিতে হবে।
এই ডোমেনটি যে আপনারই তা আপনাকে যাচাই করতে হবে এবং আপনি সিঙ্ক টুলের জন্য ক্রেডেনশিয়াল কনফিগার করতে পারবেন।
মনে রাখবেন যে Google Console আপনার MCP স্কিমার একটি স্ন্যাপশট নেয়, তাই আপনি যখনই আপনার স্কিমাতে পরিবর্তন করবেন, আপনাকে ফিরে যেতে হবে এবং আবার ডিপ্লয় করতে হবে।
এবং তারপরে, আপনি শুধু আপনার অ্যাপের উপলভ্যতা কনফিগার করতে পারবেন।
আপনার অ্যাপ কোন কোন অঞ্চল, ভাষা, সারফেস এবং অন্যান্য স্বতন্ত্র টুল কনফিগারেশনে উপলভ্য হবে তা বেছে নিতে পারবেন।
সেখান থেকে আপনি শুধু 'পরিবর্তন পুশ করুন' বিকল্পে প্রেস করতে এবং Gemini স্টেজ পর্যালোচনার জন্য জমা দিতে পারবেন।
এবং তারপরে আপনি 'টেস্টার ম্যানেজ করুন' বিকল্পের অধীনে টেস্ট অ্যাকাউন্ট যোগ করতে পারবেন।
এবং অবিলম্বে ওয়েব, মোবাইল বা আপনার আগে বেছে নেওয়া যেকোনও সারফেসে যেমন Gemini বা Search-এ এই টেস্ট অ্যাকাউন্টের মাধ্যমে এটি লাইভ টেস্ট করুন এবং তারপরে চূড়ান্ত প্রিভিউয়ের জন্য এটি জমা দিন।
এবং আপনার অ্যাপ রেডি হয়ে গেলে, আপনি শুধু সেই বোতামটি জমা দিয়ে বিশ্বব্যাপী আপনার ব্যবহারকারীদের কাছে বা নির্বাচিত অঞ্চলের মতো প্রোডাকশনে এটি রোল আউট করতে পারেন।
আর কিছু করতে হবে না!
আপনি রিমোট MCP সার্ভার বা Android MCP-এর মাধ্যমে আপনার অ্যাপের ক্ষমতা প্রকাশ করছেন কিনা তা নির্বিশেষে, Connected Apps Platform-এর মাধ্যমে আপনি কী তৈরি করতে পারেন তা দেখার জন্য আমরা উৎসুক।
এই অসাধারণ ইন্টিগ্রেশন তৈরি করার জন্য আপনাকে সাহায্য করতে পারলে আমরা খুশি হব।
এই বারকোড ব্যবহার করে উপলভ্য আমাদের স্যাম্পেল ও ডকুমেন্টেশন অনুসরণ করুন।
আজ আমাদের সাথে যোগ দেওয়ার জন্য আপনাকে অনেক ধন্যবাদ!
কোডিং উপভোগ করুন!
from mcp.server.fastmcp import FastMCP
mcp = FastMCP(
name="ADS-MCP",
instructions=(
"A Model Context Protocol server providing event "
"overview, schedules, sessions, speakers, and "
"sandbox demos for the Android Developer Summit "
),
)@mcp.tool(
title="List Sessions",
annotations=ToolAnnotations(
readOnlyHint=True,
destructiveHint=False,
),
meta={ … },
)
def list_sessions( … )
…def list_sessions(
track: Optional[str] = None,
location: Optional[str] = None,
) -> List[Dict[str, Any]]:
"""Lists all sessions, optionally filtered by track
(e.g. 'Tools and performance', 'Apps Foundation',
'AI experiences', 'Android XR') or location
(e.g. 'MTV', 'Mountain View', 'London', 'LON').
"""
…@mcp.tool(
…
meta={
"ui": {
"resourceUri": "ui://ads-mcp/summit-app",
},
…
},
)
def list_sessions(…)
…@mcp.resource(
"ui://ads-mcp/summit-app",
name="summit-app",
mime_type="text/html",
)
def get_summit_ui() -> ResourceResult:
"""Renders the interactive ADS 2026 dashboard."""
return ResourceResult([
ResourceContent(
_build_summit_ui_html(),
mime_type="text/html",
)
])./venv/bin/python server.py
npx @modelcontextprotocol/inspectorgcloud run deploy ads-mcp-server