แอปอัจฉริยะ

ขยายแอปของคุณไปยัง Gemini และ Search ด้วยแพลตฟอร์มแอปที่เชื่อมต่อ

ลำโพง

  • Kateryna Semenova

    วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์ระดับเจ้าหน้าที่

  • Mai Lowe

    ผู้จัดการกลุ่มผลิตภัณฑ์

เกี่ยวกับ

เกี่ยวกับการเสวนา

แพลตฟอร์มแอปที่เชื่อมต่อใหม่ช่วยให้คุณผสานรวมบริการของแอปเข้ากับ Gemini, โหมด AI ใน Search และระบบอัจฉริยะของ Android ได้โดยตรง เซสชันนี้จะให้คำแนะนำที่นำไปใช้ได้จริงสำหรับการเริ่มต้นใช้งาน เราจะอธิบายวงจรการพัฒนา ตั้งแต่การสร้าง การทดสอบ ไปจนถึงการเผยแพร่แอปที่เชื่อมต่อรายการแรกของคุณเพื่อเข้าถึงผู้ใช้ภายในเวิร์กโฟลว์ที่ทำงานด้วยระบบ AI โดยใช้ตัวอย่างโค้ดและเรียนรู้จากกรณีศึกษาในชีวิตจริง

เมื่อสิ้นสุดเซสชันนี้ คุณจะทำสิ่งต่อไปนี้ได้

  • ผสานรวมบริการของคุณกับแพลตฟอร์มแอปที่เชื่อมต่อ
  • ทดสอบการผสานรวมในแพลตฟอร์ม AI ต่างๆ
  • เผยแพร่ฟีเจอร์ของแอปไปยังเวิร์กโฟลว์ AI ของผู้ใช้

สรุป

  • แพลตฟอร์มแอปที่เชื่อมต่อเป็นจุดแรกเข้าเดียวในการเปิดใช้งานความสามารถของแอปใน Gemini และ Search โดยใช้สคีมาแบบประกาศ โดยจะเปิดตัวเป็นระยะๆ เริ่มจากเวอร์ชันตัวอย่างสำหรับนักพัฒนาแอปในสหรัฐอเมริกา
  • การผสานรวมใช้มาตรฐาน Model Context Protocol (MCP) ผ่านเซิร์ฟเวอร์ระยะไกลหรือเซิร์ฟเวอร์ในอุปกรณ์ผ่านไลบรารี AppFunctions Jetpack เซิร์ฟเวอร์ระยะไกลยังแสดงผล UI ที่กำหนดเองซึ่งแสดงผลภายใน iframe ได้ด้วย
  • การยืนยันจะปรับขนาดตามความเสี่ยงเพื่อปกป้องความไว้วางใจของผู้ใช้ นักพัฒนาแอปจะทำเครื่องหมายเครื่องมือเป็นแบบอ่านอย่างเดียวหรือมี destructiveHint เพื่อช่วยให้ Gemini ขอการยืนยันอย่างชัดเจนเมื่อการดำเนินการแก้ไขหรือลบข้อมูล
  • โหมดนักพัฒนาแอปใน Gemini ช่วยให้คุณตรวจสอบการเรียกใช้เครื่องมือและเวลาในการตอบสนองเทียบกับปลายทางสาธารณะได้ ขณะนี้พร้อมให้บริการแก่นักพัฒนาแอปในสหรัฐอเมริกาแล้ว
  • Google Connected Console จะจัดการการเปิดตัวเวอร์ชันที่ใช้งานจริงสำหรับนักพัฒนาแอปที่ได้รับอนุมัติ คุณกำหนดค่าปลายทาง จัดการผู้ทดสอบในแพลตฟอร์มที่เลือก และส่งแอปเพื่อรับการตรวจสอบ

แหล่งข้อมูล

Gemini Notebook

หัวข้อ

  • gemini
  • ค้นหา
  • connected-apps
  • mcp
  • appfunctions
  • android

ข้อความถอดเสียง

บทนำ

  • สวัสดีครับทุกคน

  • ฉันชื่อ Mai เป็นหัวหน้าฝ่ายผลิตภัณฑ์ของแพลตฟอร์มแอปที่เชื่อมต่อกับ Gemini

  • และในภายหลัง คุณจะได้รับฟังข้อมูลจาก Kate ซึ่งเป็นวิศวกร DevRel ของเราด้วย

  • เธอจะขึ้นมา

  • วันนี้เราจึงตื่นเต้นมากที่จะได้พูดคุยกับคุณเกี่ยวกับวิธีขยายแอปไปยังผลิตภัณฑ์ที่ใช้ Agent ยอดนิยมของ Google อย่าง Gemini และ Search

  • เราจะบอกคุณว่าแอปที่เชื่อมต่อมีประโยชน์และน่าทึ่งสำหรับผู้ใช้อย่างไรและเพราะเหตุใด

  • และที่ดียิ่งกว่านั้นคือเราจะแสดงให้คุณเห็นว่าต้องทำอย่างไรจึงจะสร้างช่องได้

  • มาเริ่มกันเลย

  • เราทราบดีว่าหลายคนได้เห็นการเปลี่ยนแปลงครั้งใหญ่ที่เกิดขึ้นในระบบนิเวศของแอป

  • วิธีที่ผู้คนใช้อุปกรณ์ ค้นหาคำตอบ และทำสิ่งต่างๆ ไม่ได้แค่พัฒนาขึ้นเท่านั้น

  • ซึ่งเปลี่ยนไปอย่างสิ้นเชิง

  • ผู้คนไม่ได้เปิดเบราว์เซอร์และแตะไปมาอีกต่อไป

  • ผู้ใช้กำลังสนทนากับผู้ช่วยอย่าง Gemini โดยตรง

  • ผู้ใช้ขอความช่วยเหลือจาก Gemini ในการตอบคำถามที่ซับซ้อน และค้นหาคำตอบแบบหลายโมดัลใน Search

  • และผู้ใช้ก็คาดหวังให้อุปกรณ์ Android ไม่เพียงแต่เข้าใจสิ่งที่พูด แต่ยังรู้ว่าผู้ใช้ต้องการทำอะไรด้วย

  • ลองนึกถึงเวิร์กโฟลว์บางอย่างที่คุณทำได้ในแต่ละวัน

  • สมมติว่าคุณขอความช่วยเหลือจาก Gemini เพื่อช่วยระดมความคิดเกี่ยวกับตัวเลือกสำหรับกิจกรรมสนุกๆ ในช่วงสุดสัปดาห์กับเพื่อนๆ ในสถานที่และเวลาที่เจาะจง

  • โมเดลในปัจจุบันสามารถประมวลผลแผนดังกล่าวได้ในไม่กี่วินาที

  • เยี่ยมมาก

  • เป็นระเบียบ

  • แล้วจะเกิดอะไรขึ้นต่อ

  • สิ้นสุด

  • ผู้ใช้จะพบกับทางตันและต้องรอค้างอยู่อย่างนั้นโดยมีเพียงแผนแต่ไม่มีการยืนยันใดๆ

  • โมเดลรู้ว่าต้องทำอะไร แต่ไม่มีมือที่จะทำ

  • ดังนั้น คุณจึงต้องคัดลอกและวางข้อมูลจากแชทกับ Gemini ลงในแอปใดแอปหนึ่ง

  • บางครั้งถ้าคุณใช้อุปกรณ์เคลื่อนที่ ก็อาจจะดูเทอะทะมาก

  • จากนั้นคุณต้องจำข้อมูลทั้งหมดและพิมพ์ลงไปในภายหลัง

  • การต้องคิดเยอะและอุปสรรคดังกล่าวทำให้ความมหัศจรรย์หายไปโดยสิ้นเชิง

  • และสิ่งนี้มีความหมายต่อคุณอย่างไร

  • ซึ่งหมายความว่าคุณมีความต้องการของผู้ใช้ที่มีความตั้งใจซื้อสูงซึ่งติดอยู่ในบับเบิลแชท แทนที่จะดึงดูดผู้ใช้ที่มีส่วนร่วมและมีคุณค่าสูงเข้ามาในแอป

  • และนี่คือเหตุผลที่แอปที่เชื่อมต่อจะเปลี่ยนเกม เพราะแอปเหล่านี้ช่วยให้เราเข้าถึงผู้ใช้ได้ตรงจุด

  • และตอนนี้ผู้คนก็ใช้เวลาส่วนใหญ่ไปกับการพูดคุยกับผู้ช่วยอย่าง Gemini

  • เมื่อผู้ใช้แสดงความตั้งใจจริงที่จะดำเนินการ นั่นคือช่วงเวลาที่มีคุณค่าอย่างยิ่งในเส้นทางของผู้ใช้

  • ผู้ใช้ไม่ได้เข้ามาเพื่อดูข้อมูลเฉยๆ

  • ผู้ใช้มีสิ่งที่ต้องการทำให้เสร็จอย่างชัดเจนในขณะนั้น

  • การเปิดใช้การผสานรวมระหว่างแอปและโมเดล Generative เหล่านี้ทำให้ผู้ช่วยอย่าง Gemini เปลี่ยนจากการตอบคำถามไปเป็นการทำสิ่งต่างๆ ให้เสร็จสิ้น

  • เมื่อผู้ใช้ขอรายการสิ่งที่ต้องทำที่จัดลำดับความสำคัญแล้ว หรือต้องการเช่ารถสำหรับการเดินทางที่กำลังจะมาถึง หรือต้องการซื้อของเข้าบ้านเพื่อทำสูตรอาหารที่เพิ่งพบ แอปของคุณจะไม่แสดงเป็นลิงก์แบบคงที่ที่ด้านล่างของหน้า

  • คุณสามารถช่วยสร้างความมหัศจรรย์และดำเนินการดังกล่าวได้ทันที

  • และขอพูดให้ชัดเจนเลยว่าแอปที่เชื่อมต่อไม่ได้มีไว้เพื่อซ่อนแอปของคุณ เพราะเรารู้ว่านักพัฒนาแอปและผู้นำผลิตภัณฑ์ทุกคนกำลังคิดเรื่องนี้อยู่

  • แบรนด์ ตรรกะทางธุรกิจ ความสัมพันธ์ที่ผ่านการตรวจสอบสิทธิ์ และประสบการณ์การใช้งาน UI ที่กำหนดเอง ทั้งหมดนี้เป็นของคุณ

  • แอปที่เชื่อมต่อคือการผสานรวมบริการของคุณเข้ากับแพลตฟอร์ม API ของ Agent เพื่อให้ผลิตภัณฑ์ Agent ของ Google นำผู้ใช้ที่มีความตั้งใจสูงเข้าสู่ผลิตภัณฑ์ของคุณได้โดยตรงอย่างราบรื่น

แพลตฟอร์มแอปที่เชื่อมต่อ

  • วันนี้ ตอนนี้เลย ฉันตื่นเต้นมากที่จะได้ประกาศเปิดตัวแพลตฟอร์มแอปที่เชื่อมต่ออย่างเป็นทางการ

  • ในอดีต การเข้าถึงผู้ใช้ในผลิตภัณฑ์ต่างๆ ของ Google หมายถึงการผสานรวมที่แตกต่างกันสำหรับแต่ละผลิตภัณฑ์

  • หากต้องการการดำเนินการของแอป Android หรือทางลัด คุณต้องสร้างขึ้นมาเอง

  • การผสานรวมการค้นหาอีกรายการหนึ่ง

  • แต่เราต้องการทำให้ทุกอย่างง่ายและยอดเยี่ยมที่สุดสำหรับคุณ

  • เราจึงได้ปรับมาตรฐานการเตรียมความพร้อมผู้ใช้งานใหม่เพื่อให้คุณมีจุดแรกเข้าในการเปิดตัวแอปในผลิตภัณฑ์ที่ใช้ Agent ของ Google หลายรายการ

  • ตอนนี้คุณสามารถสร้างฟังก์ชันการทำงานของแอปได้ในครั้งเดียวโดยใช้สคีมาแบบประกาศมาตรฐาน และฟังก์ชันดังกล่าวจะปรากฏในผลิตภัณฑ์หลัก 2 รายการของเรา ได้แก่ Gemini และ Search

  • และจะมีผลิตภัณฑ์อื่นๆ เพิ่มเติมในเร็วๆ นี้ด้วย

  • เรามาพูดถึงการเข้าถึงนี้และผลกระทบที่มีต่อคุณกัน

  • คุณไม่จำเป็นต้องสร้างปลั๊กอินที่กำหนดเองหลายรายการ จัดการคอนโซลนักพัฒนาซอฟต์แวร์ 4 รายการ และรักษาการแฮนด์เชคที่ตรวจสอบสิทธิ์แล้วหลายรายการเพียงเพื่อเข้าถึงผู้ใช้ Google ใน Android, Gemini และ Search

  • แพลตฟอร์มแบบรวมของเราช่วยให้คุณสร้างและลงทะเบียนคำจำกัดความของเครื่องมือได้ในครั้งเดียว

  • คุณเลือกผลิตภัณฑ์ Google ที่ต้องการ แล้วเราจะแสดงปุ่มเปิดตัวปุ่มเดียวใน Google Connected Console ใหม่

  • เมื่อเผยแพร่แล้ว ทุกคนจะค้นพบความสามารถของคุณได้เมื่อใช้ Gemini หรือ Search

  • ไม่ว่าผู้ใช้จะพิมพ์ใน Gemini บนแล็ปท็อป ถามคำถามชุดหนึ่งใน Search บนเว็บ หรือใช้ฟีเจอร์ผู้ช่วยใน Android ผู้ใช้ก็จะมีตัวเลือกในการใช้แอปของคุณในเวลาที่สำคัญที่สุดสำหรับตนเองและในที่ที่ตนเองอยู่

  • เราจึงจะเปิดตัวแพลตฟอร์มเป็นระยะๆ โดยเริ่มจากเวอร์ชันตัวอย่าง

  • เราขอรับรองว่าทั้งทีมกำลังทำงานอย่างหนักเพื่อนำฟีเจอร์ทั้งหมดมาให้คุณใช้งานได้มากที่สุดและเร็วที่สุดเท่าที่จะเป็นไปได้

  • สำหรับเวอร์ชันตัวอย่างในระยะนี้ เราจะเปิดแพลตฟอร์มให้นักพัฒนาแอปในสหรัฐอเมริกาเท่านั้น

  • คุณสามารถลงชื่อสมัครใช้ผ่านแบบฟอร์มเพื่อรับสิทธิ์เข้าถึง ซึ่งดูได้ในคู่มือนักพัฒนาแอปที่ developers.google.com/connected-apps หรือหากเป็นนักพัฒนาแอป Play คุณจะดูได้ในหน้าแรกของ Google Play Console ด้วย

  • คำถามถัดไปคือ การสร้างโมเดลเหล่านี้ยากแค่ไหน

  • หากคุณมี REST API หรือ Android Intent คุณก็มีจุดเริ่มต้นที่ดีทีเดียว

  • เรากำลังต่อยอดจากแนวคิดของนักพัฒนาซอฟต์แวร์ที่คุ้นเคย

  • แพลตฟอร์มของเราผสานรวมกับมาตรฐาน Model Context Protocol หรือ MCP ผ่านทั้ง MCP บนเซิร์ฟเวอร์และ MCP แบบเนทีฟของ Android

  • และเพื่อทำให้ Gemini ดียิ่งขึ้นและใช้งานง่ายขึ้นสำหรับคุณ วันนี้เราจึงเปิดตัวฟีเจอร์ใหม่ล่าสุดใน Gemini ที่เรียกว่าโหมดนักพัฒนาซอฟต์แวร์ ซึ่งทุกคนในสหรัฐอเมริกาสามารถเข้าถึงได้แล้วตอนนี้

  • ซึ่งจะช่วยให้คุณทดลองใช้แอปภายใน Gemini, รับความคิดเห็นแบบเรียลไทม์เกี่ยวกับสถานะข้อผิดพลาด, เวลาในการตอบสนอง และคำตอบของโมเดล

  • และในเร็วๆ นี้ คุณจะสามารถสร้างชุดการประเมินของคุณเอง รับตารางสรุปสถิติเมตริกคุณภาพ และการเปรียบเทียบได้

  • มันจะต้องสุดยอดแน่ๆ

  • ไม่ว่าคุณจะมีสิทธิ์เข้าถึงแพลตฟอร์มในระดับใด คุณก็ลองใช้แอปในโหมดนักพัฒนาซอฟต์แวร์ได้เสมอ

  • เรามั่นใจว่าคุณอยากทราบรายละเอียดเพิ่มเติม และ Kate จะขึ้นมาบนเวทีต่อจากเราเพื่อพูดคุยกับทุกคนเกี่ยวกับเรื่องนี้ในอีกไม่กี่นาที

ความน่าเชื่อถือ ความเป็นส่วนตัว และการควบคุมของผู้ใช้

  • ก่อนอื่น เราต้องพูดถึงสิ่งที่มีความสำคัญมากขึ้นเรื่อยๆ นั่นคือความไว้วางใจของผู้ใช้

  • เมื่อใดก็ตามที่เราพูดถึง Agent ที่ดำเนินการในนามของผู้อื่น คำถามแรกมักจะเป็น "เราจะให้ผู้ใช้ควบคุมได้อย่างไร"

  • เรามาดูแนวคิดง่ายๆ 2-3 ข้อเกี่ยวกับเรื่องนี้กัน

  • ประการแรก การยืนยันของเราจะปรับขนาดตามความเสี่ยง

  • เราจะไม่แสดงป๊อปอัปก่อนการเรียกใช้เครื่องมือทุกครั้ง

  • การค้นหาข้อมูล การตรวจสอบความพร้อมให้บริการของเมนู การติดตามคำสั่งซื้อ ควรเป็นไปอย่างราบรื่น

  • แต่เมื่อการดำเนินการมีผลลัพธ์ที่เกิดขึ้นจริง เช่น การแก้ไขสิ่งที่แชร์ การจองให้เสร็จสมบูรณ์ หรือการลบสิ่งที่ผู้ใช้ไม่สามารถกู้คืนได้ง่ายๆ โมเดลจะพยายามถามผู้ใช้เพื่อขอคำยืนยันที่ชัดเจนก่อนที่จะดำเนินการ

  • ประการที่ 2 ระบบจะแสดงข้อมูลที่ละเอียดอ่อนโดยไม่ซ่อนไว้

  • ดังนั้น ผลิตภัณฑ์ของเราจึงออกแบบมาเพื่อตรวจสอบข้อมูลส่วนบุคคลที่อาจแชร์กับแอปของคุณ

  • หากตรวจพบข้อมูลที่ละเอียดอ่อน เราจะแสดงให้ผู้ใช้เห็นอย่างชัดเจนว่ามีการแชร์ข้อมูลใดบ้าง เพื่อให้ผู้ใช้ตัดสินใจว่าจะดำเนินการต่อกับแอปของคุณหรือไม่ในขณะนั้น

  • ประการที่ 3 เมื่อเราขอ เราจะระบุอย่างเจาะจง

  • เราจะไม่ถามแบบคลุมเครือว่า "คุณแน่ใจไหม" แต่จะระบุว่าแอปใดและข้อมูลใดที่กำลังส่งหรือเปลี่ยนแปลง

  • ด้วยวิธีนี้ การยืนยันจะช่วยให้ผู้ใช้ตัดสินใจได้อย่างแท้จริง แทนที่จะเป็นเพียงสิ่งที่ผู้ใช้คลิกผ่านไปแบบสุ่ม

  • และเนื่องจากไม่มีใครอยากให้การเดินทางเต็มไปด้วยการยืนยัน ผู้ใช้จึงควบคุมความถี่ในการขอได้มากขึ้น

  • ตัวอย่างเช่น ในแอป Gemini ผู้ใช้สามารถเลือกได้ว่าจะอนุญาตการดำเนินการตลอดเวลาหรือไม่ โดยเลือกได้ตามแอปและแม้แต่ตามการดำเนินการ

  • สำหรับคุณแล้ว ทั้งหมดนี้หมายความว่าเราขอให้คุณระบุเครื่องมืออย่างตรงไปตรงมา

  • ทำเครื่องหมายว่าสิ่งใดเป็นแบบอ่านอย่างเดียว สิ่งใดเปลี่ยนแปลง และสิ่งใดลบข้อมูล

  • สัญญาณเหล่านั้นจะช่วยให้ผลิตภัณฑ์ของเราตัดสินใจได้ว่าจะนำผู้ใช้เข้ามาเมื่อใด

  • และขอย้ำอีกครั้งว่า Kate จะแสดงให้คุณเห็นวิธีการอย่างละเอียดในอีกไม่กี่นาที

ประสบการณ์ของพาร์ทเนอร์และเส้นทางสู่การผลิต

  • เอาล่ะ เรากลับไปที่การเดินทางช่วงสุดสัปดาห์ที่เราพูดถึงกันก่อนหน้านี้ ซึ่งก็คือส่วนของการวางแผน

  • คุณยังจำได้ไหมว่าการทำเช่นนั้นยากและกระจัดกระจายเพียงใด

  • คุณมีแผนที่ยอดเยี่ยมสำหรับกลุ่มเพื่อน แต่แล้วก็พบอุปสรรค คุณต้องคัดลอกและวางสิ่งต่างๆ สลับไปมาระหว่างแอป

  • Viator และ Ticketmaster เป็นพาร์ทเนอร์ที่ยอดเยี่ยม 2 รายแรกของเราที่มองเห็นโอกาสที่แท้จริงในการตอบสนองความต้องการของผู้ใช้ในทุกที่ที่ผู้ใช้อยู่

  • จึงตัดสินใจร่วมมือกับเราและยกเลิกกำแพงนั้น เพื่อให้ผู้ใช้ที่มีความตั้งใจซื้อสูงเข้าถึงแอปได้โดยตรงจากภายใน Gemini

  • แอปที่เชื่อมต่อซึ่งพาร์ทเนอร์เหล่านี้สร้างขึ้นช่วยให้เส้นทางทั้งหมดราบรื่นและไร้อุปสรรคมากขึ้น

  • เรามาดูกันเลย

  • ผู้ใช้เชื่อมต่อแอปและขอความช่วยเหลือจาก Gemini ให้ค้นหาทัวร์ชิมอาหารช่วงกลางวันใน Viator และตั๋วคอนเสิร์ตสำหรับกลุ่ม 4 คนใน Ticketmaster

  • Gemini สามารถจดจำความสามารถดังกล่าว และเรียกใช้เครื่องมือ Viator และ Ticketmaster โดยตรงพร้อมกับระบุขนาดกลุ่ม วันที่ และค่ากำหนดที่ถูกต้องไว้ให้เรียบร้อยแล้ว

  • โดยที่ผู้ใช้ไม่ต้องออกจากการสนทนา แอปทั้งสองจะดึงข้อมูลความพร้อมแบบเรียลไทม์และแสดงผลประสบการณ์แบบอินเทอร์แอกทีฟที่สมบูรณ์ภายในแชทให้ผู้ใช้โดยตรง

  • Viator และ Ticketmaster เป็นตัวอย่างของพาร์ทเนอร์ที่ช่วยให้ผู้ใช้ทำสิ่งที่ต้องการได้ทันทีที่นึกออก ไม่ว่าจะเป็นการสำรวจจุดแวะพักของทัวร์ชิมอาหาร การเลือกที่นั่งในคอนเสิร์ต และการเปลี่ยนจากการค้นพบไปสู่การดำเนินการได้อย่างราบรื่น แทนที่จะต้องเจอกับทางตันและสลับแท็บไปมา

  • ยุคของตัวเปิดแอปแบบคงที่กำลังจะหมดไปแล้ว และจะถูกแทนที่ด้วยประสบการณ์ที่ชาญฉลาด เชิงรุก และทำงานได้ด้วยตัวเอง

  • ผู้ใช้ของคุณมีส่วนร่วมกับ Search และ Gemini อยู่แล้ว โดยขอความช่วยเหลือ

  • เราสามารถช่วยให้ผู้ใช้ได้รับมากกว่าคำตอบ และมอบประสบการณ์ที่ทรงพลังและน่ามหัศจรรย์อย่างแท้จริง

  • และนี่คือทั้งหมดที่เราจะพูดถึงในวันนี้

  • ตอนนี้เราจะส่งต่อให้ Kate ซึ่งจะแนะนำวิธีสร้างแอปที่เชื่อมต่ออย่างละเอียด

  • ขึ้นมาเลย

  • สวัสดีครับทุกคน

  • ฉันชื่อ Kate เป็นวิศวกรนักพัฒนาสัมพันธ์ที่ช่วยนักพัฒนาแอปอย่างคุณผสานรวมกับแพลตฟอร์มแอปที่เชื่อมต่อ

  • ดังนั้นฉันจะแนะนำวิธีทดสอบ สร้าง และทำให้แอปที่เชื่อมต่อใช้งานได้

  • และตามที่ Mai ได้กล่าวไว้ก่อนหน้านี้ การผสานรวมกับแพลตฟอร์มแอปที่เชื่อมต่อมี 2 วิธีหลักๆ ได้แก่ ผ่านเซิร์ฟเวอร์ MCP ระยะไกลโดยใช้โปรโตคอล MCP หรือผ่าน Android MCP เมื่อคุณสร้างเซิร์ฟเวอร์ MCP ระยะไกลในอุปกรณ์ได้โดยใช้ไลบรารี AppFunctions

  • เราขอแนะนำให้ใช้เซิร์ฟเวอร์ MCP ระยะไกลเมื่อต้องการผสานรวมข้ามแพลตฟอร์ม เช่น Android, iOS และเว็บ

  • นอกจากนี้ เรายังได้รับความคิดเห็นจากนักพัฒนาแอปบางรายว่าบางครั้งคุณต้องการการดำเนินการในเครื่องเมื่อข้อมูลแอปพร้อมใช้งานในอุปกรณ์เท่านั้น

  • สำหรับ Use Case นี้ เราขอแนะนำให้ใช้ Android MCP โดยใช้ไลบรารี AppFunctions Jetpack

  • และโปรดดูการพูดคุยเฉพาะที่ Dan และ Sarah จะเจาะลึกวิธีผสานรวมกับแพลตฟอร์มแอปที่เชื่อมต่อผ่าน AppFunctions และ Android MCP

การผสานรวมและการสาธิตเซิร์ฟเวอร์ MCP ระยะไกล

  • คราวนี้มาดูวิธีสร้างเซิร์ฟเวอร์ MCP ระยะไกลกัน

  • และเพื่อแสดงให้เห็นว่าฟีเจอร์นี้ทำงานอย่างไรในทางปฏิบัติ เราจึงสร้างแอปที่เชื่อมต่ออย่างเป็นทางการของ AndroidDevSummit ขึ้นมา

  • เราจะแสดงให้คุณเห็นว่าฟีเจอร์นี้ทำงานอย่างไร

  • เรามากลับไปที่การสาธิตแบบสดกัน

  • ลองนึกภาพว่าคุณถามว่า "AndroidDevSummit ขอข้อมูลเพิ่มเติมเกี่ยวกับเซสชัน XR หน่อย"

  • ตอนนี้ Gemini เชื่อมต่อกับเซิร์ฟเวอร์ MCP ที่เราสร้างขึ้นสำหรับแอปที่เชื่อมต่อนี้

  • โดยจะค้นหาเครื่องมือที่เหมาะสมเพื่อเรียกใช้และใช้ข้อมูลของเครื่องมือนั้นเพื่อสร้างคำตอบที่เข้าใจง่ายสำหรับผู้ใช้

  • ดังนั้นจึงค้นหาข้อมูลเกี่ยวกับเซสชันที่เกี่ยวข้องกับ XR ที่นี่สำหรับวันที่ 1 และวันที่ 2 และในตอนท้ายจะแสดงผลวิดเจ็ตที่มีแบรนด์ที่กำหนดเองสำหรับ AndroidDevSummit ด้วยบ็อต Android

  • คุณจึงโต้ตอบกับวิดเจ็ตนี้ได้จากใน Gemini โดยตรง

  • คุณสามารถดูกำหนดการได้ เช่น สลับสถานที่ หรือกรองตามวัน

  • นอกจากนี้ คุณยังกรองตามหัวข้อต่างๆ ได้ด้วย เช่น หากต้องการค้นหาเซสชันที่เกี่ยวข้องกับ XR และยังดูรายละเอียดและดูวิทยากรได้ด้วย

  • เย้!

  • ทุกอย่างอยู่ใน Gemini ซึ่งเป็นประสบการณ์การใช้งานที่ปรับแต่งตามแบรนด์ของคุณ และผู้ใช้ไม่จำเป็นต้องสลับไปมา ไม่จำเป็นต้องไปค้นหาข้อมูลอื่นๆ ในแอปอื่น ทุกอย่างอยู่ในที่เดียวโดยไม่ต้องโต้ตอบ ไม่ต้องสลับไปมาหรือออกจากแอปเลย

  • เรามาเปลี่ยนกลับไปที่สไลด์กัน

การพัฒนาเซิร์ฟเวอร์ MCP และ UI ที่กำหนดเอง

  • มาดูวิธีสร้างแอปที่เชื่อมต่อกัน

  • ดังนั้น การเริ่มต้นเซิร์ฟเวอร์ MCP ด้วยไลบรารี FastMCP จึงเป็นเรื่องง่ายมาก แต่มีแนวทางปฏิบัติแนะนำที่สำคัญมาก 4 ข้อที่ควรปฏิบัติตาม

  • ก่อนอื่น คุณต้องระบุวิธีการที่ชัดเจนสำหรับเซิร์ฟเวอร์

    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 ให้กำหนดวิธีการที่ชัดเจนเสมอ โดยอธิบายโดเมนและความสามารถของแอปที่เชื่อมต่อ

  • แพลตฟอร์มแอปที่เชื่อมต่อจะอาศัยคำสั่งเหล่านี้เพื่อให้ทราบว่าเมื่อใดควรมอบสิทธิ์ให้เซิร์ฟเวอร์ของคุณ

  • นอกจากนี้ Google Connected Console ซึ่งเราจะแสดงให้คุณดูในภายหลังยังตรวจสอบอย่างชัดเจนด้วยว่ามีวิธีการเหล่านี้อยู่

  • และ 2 เพิ่มคำอธิบายประกอบเครื่องมือเพื่อความปลอดภัยและการควบคุม

    @mcp.tool(
        title="List Sessions",
    
        annotations=ToolAnnotations(
            readOnlyHint=True,
            destructiveHint=False,
        ),
    
        meta={ … },
    )
    def list_sessions( … )
    …
  • สำหรับเซิร์ฟเวอร์ ADS เรามีคำอธิบายประกอบ 2 รายการนี้

  • โมเดลจำเป็นต้องทราบว่าเครื่องมือของคุณเป็นแบบอ่านอย่างเดียวหรือแก้ไขข้อมูลได้

  • ดังนั้น หากคุณมีเครื่องมือที่แก้ไขหรือลบข้อมูลผู้ใช้ ให้ใช้ destructiveHint นี้เพื่อทำเครื่องหมายว่าเครื่องมือดังกล่าวสามารถแก้ไขหรือลบการดำเนินการได้เสมอ

  • และด้วยวิธีนี้ แพลตฟอร์มแอปที่เชื่อมต่อจะทราบว่าต้องแสดงข้อความยืนยันแก่ผู้ใช้ว่าผู้ใช้ตกลงที่จะดำเนินการนี้ให้เสร็จสมบูรณ์

  • นอกจากนี้ คุณยังกำหนดค่าเครื่องมือใน Google Connected Console ที่เชื่อมต่อได้ด้วย ซึ่งเราจะแสดงให้ดูในภายหลัง

  • และประการที่สาม สคีมาที่พิมพ์อย่างชัดเจนและ Docstring เชิงความหมาย

    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').
        """
        …
  • ถือว่า Docstring ของพารามิเตอร์เป็นส่วนหนึ่งของพรอมต์

  • ในเครื่องมือ 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",
            )
        ])
  • แพลตฟอร์มแอปที่เชื่อมต่อช่วยให้คุณแสดงผลอินเทอร์เฟซผู้ใช้แบบริชมีเดียจากเซิร์ฟเวอร์ MCP ผ่าน UI ของแอป MCP ได้

  • และเมื่อต้องการความยืดหยุ่นอย่างเต็มที่สำหรับอินเทอร์เฟซที่กำหนดเองและแสดงออกถึงแบรนด์ เช่น Android Dev Summit คุณก็แสดงทรัพยากร UI ของ MCP ได้

  • และ Gemini สามารถแสดงผลใน iframe ที่ใช้แซนด์บ็อกซ์ที่ปลอดภัยได้

เวิร์กโฟลว์การทดสอบและการตรวจสอบความถูกต้อง

  • และต่อไป ฉันจะแนะนำคุณเกี่ยวกับการทดสอบและการติดตั้งใช้งานแอปที่เชื่อมต่อจากเครื่องของคุณไปยังเวอร์ชันที่ใช้งานจริงโดยตรง

  • ใช่

  • มาดูวิธีพัฒนาและทดสอบในเครื่องกัน

  • ในระหว่างการพัฒนา คุณสามารถสร้างเซิร์ฟเวอร์ในเครื่องได้อย่างง่ายดายโดยใช้คำสั่งแรก

    ./venv/bin/python server.py
    npx @modelcontextprotocol/inspector
  • จากนั้นคุณสามารถใช้ MCP Inspector เพื่อแก้ไขข้อบกพร่องของเซิร์ฟเวอร์ ดูเครื่องมือที่พร้อมใช้งาน และโต้ตอบกับ UI ได้ด้วย

  • นี่เป็นเพียงตัวอย่างลักษณะของ MCP Inspector สำหรับ Android Dev Summit

  • คุณจึงดูเครื่องมือ ดู UI และทดสอบในเครื่องได้

  • ประการที่ 2 คุณจะต้องติดตั้งใช้งานเซิร์ฟเวอร์ MCP ไปยังปลายทางระยะไกลบางแห่ง เพื่อรับสิทธิ์เข้าถึงและตรวจสอบความถูกต้องในโหมดนักพัฒนาซอฟต์แวร์ Gemini

  • คุณสามารถโฮสต์ปลายทาง MCP บนโครงสร้างพื้นฐานใดก็ได้ หรือผู้ให้บริการคลาวด์รายใดก็ได้

  • แต่หากคุณต้องการใช้ Google Cloud ก็สามารถใช้กับ Google Cloud CLI ได้อย่างง่ายดาย

  • เพียงใช้คำสั่งง่ายๆ นี้เพื่อทำให้แอปใช้งานได้จากระยะไกล

    gcloud run deploy ads-mcp-server
  • ขั้นตอนถัดไปคือการตรวจสอบปลายทางสาธารณะในโหมดนักพัฒนาซอฟต์แวร์ Gemini

  • เรามากลับไปที่การสาธิตแบบสดกัน แล้วผมจะแสดงวิธีใช้โหมดนักพัฒนาซอฟต์แวร์ในทางปฏิบัติให้ดู

  • ดังนั้น คุณจะค้นหาโหมดนักพัฒนาซอฟต์แวร์ได้ง่ายๆ เพียงไปที่การตั้งค่าแล้วคลิกโหมดนักพัฒนาซอฟต์แวร์

  • จากนั้นคุณจะต้องเลือกแอปที่เชื่อมต่อซึ่งต้องการทดสอบ

  • เช่น คุณสามารถสร้างเซิร์ฟเวอร์ใหม่ได้โดยระบุ URL ของเซิร์ฟเวอร์ MCP ที่นี่

  • ฉันได้สร้างไว้แล้ว 1 รายการเพื่อทดสอบ โดยใช้ชื่อว่า ADS MCP พร้อมปลายทางการทดสอบ

  • และฉันแค่อยากทดสอบว่าการทำงานร่วมกับ Gemini ตั้งแต่ต้นจนจบเป็นอย่างไร

  • งั้นมาลองถามอะไรกันหน่อย

  • "ADS MCP ขอข้อมูลเพิ่มเติมเกี่ยวกับกิจกรรมนี้หน่อย"

  • ตอนนี้ Gemini จะเรียกใช้เซิร์ฟเวอร์ MCP ของเรา และคุณยังดูได้ว่ามีการเรียกใช้เครื่องมือใดในโหมดนักพัฒนาซอฟต์แวร์

  • ตัวอย่างเช่น สำหรับพรอมต์ที่เจาะจงนี้ "บอกฉันเพิ่มเติมเกี่ยวกับกิจกรรม" ระบบจะเรียกใช้ get_summit_info

  • และคุณยังดูการตอบกลับที่สำเร็จได้ด้วย

  • และคุณจะเห็นเวลาในการตอบสนอง

  • นอกจากนี้ คุณยังดูรายละเอียดคำขอและการตอบกลับทั้งหมดได้ด้วย

  • ตัวอย่างเช่น เรามีข้อมูลมากมายสำหรับการตอบกลับ

  • นอกจากนี้ คุณยังซูมเข้าเล็กน้อยเพื่อดูวิธีแก้ไขข้อบกพร่องของข้อมูลที่ต้องการ และตรวจสอบว่าทุกอย่างถูกต้อง

  • นอกจากนี้ คุณยังคัดลอกลิงก์ได้ด้วย ซึ่งสะดวกมากหากต้องการแชร์กับเพื่อนร่วมทีม

  • นอกจากนี้ คุณยังส่งออกบันทึกเหตุการณ์ทั้งหมดและแชร์ได้หากต้องการ

  • สิ่งที่ฉันชอบอีกอย่างคือคุณสามารถสำรวจเครื่องมืออื่นๆ ที่มีได้ด้วย ดังนั้นในโหมดนักพัฒนาซอฟต์แวร์นี้ คุณจะเห็นข้อมูลการประชุมสุดยอด รายการเซสชัน และเครื่องมืออื่นๆ

  • นอกจากนี้ คุณยังเปลี่ยนสภาพแวดล้อมเพื่อจำลองบริบทของผู้ใช้ที่แตกต่างกันได้ด้วย

  • เช่น คุณสามารถเปลี่ยนเวลากลางวันหรือค่ากำหนดต่างๆ เช่น ภาษา และยังตั้งค่าการตรวจสอบสิทธิ์ได้ด้วย

  • นี่คือโหมดนักพัฒนาซอฟต์แวร์

  • และใช่ คุณสามารถเริ่มสร้างเซิร์ฟเวอร์ MCP ได้ตั้งแต่วันนี้ และทดสอบด้วยโหมดนักพัฒนาซอฟต์แวร์ได้ตั้งแต่วันนี้เป็นต้นไป

  • ตอนนี้ฟีเจอร์นี้พร้อมให้บริการแก่ทุกคนแล้ว

  • และมาเปลี่ยนกลับไปที่สไลด์กัน

  • ตกลง

  • สมมติว่าคุณทดสอบด้วยโหมดนักพัฒนาซอฟต์แวร์แล้ว ทุกอย่างดูดี คุณจะทำอะไรต่อ

  • คุณต้องลงชื่อสมัครใช้เพื่อรับสิทธิ์เข้าถึงแพลตฟอร์มของเรา และต้องกรอกแบบฟอร์มแสดงความสนใจนี้ก่อน

  • นอกจากนี้ คุณยังดูข้อมูลนี้ได้ในเอกสารประกอบและใน Google Connected Console

การเตรียมพร้อมสำหรับการผลิตและทรัพยากร

  • และเมื่อข้อมูลที่ส่งได้รับการอนุมัติแล้ว คุณจะได้รับสิทธิ์เข้าถึง Google Connected Console ซึ่งคุณสามารถเตรียมแอปพลิเคชันสำหรับการเปิดตัวเวอร์ชันที่ใช้งานจริงได้

  • ภายในคอนโซล คุณสามารถเตรียมแอปให้พร้อมได้ในไม่กี่ขั้นตอน

  • ก่อนอื่น คุณต้องสร้างแอปที่เชื่อมต่อใหม่ใน Salesforce และตั้งชื่อ

  • จากนั้นคุณเพียงแค่ต้องเลือกความสามารถและหมวดหมู่ที่ต้องการ

  • เช่น ในตัวอย่างนี้ เราเลือกประสิทธิภาพการทำงาน แล้วคลิกสร้าง

  • ถัดไป ในส่วนรายละเอียดแอป คุณต้องระบุข้อมูลสาธารณะ เช่น ชื่อที่แสดง ไอคอน และคำอธิบายที่แสดงต่อผู้ใช้ รวมถึงความสามารถ ข้อจำกัด พรอมต์ตัวอย่าง และข้อมูลอื่นๆ ของแอป

  • จากนั้นเมื่อกำหนดค่าเซิร์ฟเวอร์ MCP คุณจะต้องระบุปลายทาง

  • คุณต้องยืนยันว่าโดเมนนี้เป็นของคุณ และยังสามารถกำหนดค่าข้อมูลเข้าสู่ระบบเพื่อซิงค์เครื่องมือได้ด้วย

  • โปรดทราบว่า Google Console จะถ่ายสแนปชอตของสคีมา MCP ดังนั้นเมื่อใดก็ตามที่คุณทำการเปลี่ยนแปลงสคีมา คุณจะต้องกลับไปทำให้ใช้งานได้อีกครั้ง

  • หลังจากนั้น คุณก็กำหนดค่าความพร้อมให้บริการของแอปได้เลย

  • คุณเลือกภูมิภาคที่แอปควรพร้อมให้บริการ ภาษา แพลตฟอร์ม และการกำหนดค่าเครื่องมืออื่นๆ แต่ละรายการได้

  • จากนั้นคุณก็สามารถกดพุชการเปลี่ยนแปลงและส่งให้ Gemini Stage ตรวจสอบได้

  • นอกจากนี้ คุณยังเพิ่มบัญชีทดสอบในส่วนจัดการผู้ทดสอบได้ด้วย

  • และทดสอบแบบเรียลไทม์ทันทีด้วยบัญชีทดสอบนี้บนเว็บ อุปกรณ์เคลื่อนที่ หรือแพลตฟอร์มใดก็ได้ที่คุณเลือกไว้ก่อนหน้านี้ เช่น Gemini หรือ Search จากนั้นส่งเพื่อดูตัวอย่างขั้นสุดท้าย

  • และเมื่อแอปพร้อมแล้ว คุณก็สามารถเปิดตัวแอปเป็นเวอร์ชันที่ใช้งานจริงทั่วโลกให้แก่ผู้ใช้หรือภูมิภาคที่เลือกได้โดยการส่งปุ่มนั้น

  • เท่านี้ก็เรียบร้อย!

  • เราตื่นเต้นที่จะได้เห็นสิ่งที่คุณสร้างด้วยแพลตฟอร์มแอปที่เชื่อมต่อ ไม่ว่าคุณจะแสดงความสามารถของแอปผ่านเซิร์ฟเวอร์ MCP ระยะไกลหรือผ่าน Android MCP ก็ตาม

  • เรายินดีที่จะสนับสนุนคุณในการสร้างการผสานรวมที่ยอดเยี่ยมนี้

  • เพียงทำตามเอกสารประกอบนี้และตัวอย่างของเราที่พร้อมใช้งานโดยใช้บาร์โค้ดนี้

  • และขอขอบคุณที่มาร่วมเซสชันของเราในวันนี้

  • ขอให้สนุกกับการเขียนโค้ด

รหัส

ข้อมูลโค้ด

ข้อมูลโค้ด Python ที่ 14:56 ใน "การพัฒนาเซิร์ฟเวอร์ MCP และ UI ที่กำหนดเอง"
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 "
    ),
)
ข้อมูลโค้ด Python ที่ 15:22 ใน "การพัฒนาเซิร์ฟเวอร์ MCP และ UI ที่กำหนดเอง"
@mcp.tool(
    title="List Sessions",

    annotations=ToolAnnotations(
        readOnlyHint=True,
        destructiveHint=False,
    ),

    meta={ … },
)
def list_sessions( … )
…
ข้อมูลโค้ด Python ที่นาที 16:08 ใน "การพัฒนาเซิร์ฟเวอร์ MCP และ UI ที่กำหนดเอง"
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').
    """
    …
ข้อมูลโค้ด Python ที่ 16:32 ใน "การพัฒนาเซิร์ฟเวอร์ MCP และ UI ที่กำหนดเอง"
@mcp.tool(
    …
    meta={
        "ui": {
            "resourceUri": "ui://ads-mcp/summit-app",
        },
        …
    },
)
def list_sessions(…)
…
ข้อมูลโค้ด Python ที่ 16:49 ใน "การพัฒนาเซิร์ฟเวอร์ MCP และ 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",
        )
    ])
Shell snippet ที่ 17:29 ใน "เวิร์กโฟลว์การทดสอบและการตรวจสอบ"
./venv/bin/python server.py
npx @modelcontextprotocol/inspector
Shell snippet at 18:16 in "Testing and validation workflow"
gcloud run deploy ads-mcp-server