Ứng dụng thông minh

Mở rộng ứng dụng của bạn sang Gemini và Tìm kiếm bằng Connected Apps Platform

Loa

  • Kateryna Semenova

    Kỹ sư phụ trách quan hệ với nhà phát triển

  • Mai Lowe

    Nhà quản lý nhóm sản phẩm

Giới thiệu

Giới thiệu về bài thuyết trình

Nền tảng Ứng dụng đã kết nối mới cho phép bạn tích hợp trực tiếp các dịch vụ của ứng dụng vào Gemini, Chế độ AI trong Tìm kiếm và hệ thống thông minh của Android. Phiên này cung cấp hướng dẫn thực tế để bắt đầu. Thông qua các ví dụ về mã và bài học từ các nghiên cứu điển hình thực tế, chúng ta sẽ tìm hiểu vòng đời phát triển: xây dựng, thử nghiệm và phát hành ứng dụng kết nối đầu tiên để tiếp cận người dùng trong quy trình làm việc dựa trên AI của họ.

Khi kết thúc phiên đào tạo này, bạn sẽ có thể:

  • Tích hợp dịch vụ của bạn với Connected Apps Platform.
  • Kiểm thử quá trình tích hợp trên nhiều nền tảng AI.
  • Đưa các tính năng của ứng dụng vào quy trình làm việc bằng AI của người dùng.

Tóm tắt

  • Nền tảng ứng dụng có thể kết nối cung cấp một điểm truy cập duy nhất để khởi chạy các tính năng của ứng dụng trên Gemini và Tìm kiếm bằng cách sử dụng giản đồ khai báo. Chương trình này sẽ được triển khai theo từng giai đoạn, bắt đầu bằng bản xem trước cho các nhà phát triển ở Hoa Kỳ.
  • Các công cụ tích hợp sử dụng tiêu chuẩn Giao thức ngữ cảnh mô hình (MCP) thông qua máy chủ từ xa hoặc máy chủ cục bộ trên thiết bị thông qua thư viện AppFunctions Jetpack. Máy chủ từ xa cũng có thể trả về giao diện người dùng tuỳ chỉnh được kết xuất bên trong một iframe.
  • Các bước xác nhận sẽ tăng lên theo mức độ rủi ro để bảo vệ niềm tin của người dùng. Nhà phát triển đánh dấu các công cụ là chỉ đọc hoặc bằng destructiveHint, giúp Gemini yêu cầu xác nhận rõ ràng khi các hành động sửa đổi hoặc xoá dữ liệu.
  • Chế độ nhà phát triển của Gemini cho phép bạn kiểm tra các lệnh gọi công cụ và độ trễ đối với các điểm cuối công khai. Tính năng này hiện được cung cấp cho các nhà phát triển ở Hoa Kỳ.
  • Google Connected Console xử lý việc phát hành công khai cho những nhà phát triển được phê duyệt. Bạn định cấu hình các điểm cuối, quản lý người thử nghiệm trên các nền tảng đã chọn và gửi ứng dụng để xem xét.

Tài nguyên

Gemini Notebook

Chủ đề

  • gemini
  • tìm kiếm
  • connected-apps
  • mcp
  • appfunctions
  • android

Bản chép lời

Giới thiệu

  • Xin chào mọi người!

  • Tôi là Mai, trưởng nhóm sản phẩm cho Connected Apps Platform của Gemini.

  • Sau đó, bạn cũng sẽ được nghe chia sẻ từ Kate, kỹ sư Quan hệ nhà phát triển của chúng tôi.

  • Cô ấy sẽ xuất hiện.

  • Vì vậy, hôm nay, chúng tôi rất vui được chia sẻ với bạn về cách bạn có thể mở rộng ứng dụng của mình sang một số sản phẩm dựa trên tác nhân phổ biến nhất của Google, đó là Gemini và Tìm kiếm.

  • Chúng tôi sẽ cho bạn biết cách thức và lý do khiến các ứng dụng có thể kết nối trở nên hữu ích và tuyệt vời đối với người dùng.

  • Và tuyệt vời hơn nữa, chúng tôi sẽ hướng dẫn bạn cách xây dựng một ứng dụng như vậy.

  • Hãy cùng tìm hiểu nào!

  • Tôi biết nhiều người trong chúng ta đã thấy một sự thay đổi thực sự lớn đang diễn ra trong hệ sinh thái ứng dụng.

  • Cách mọi người sử dụng thiết bị, tìm kiếm câu trả lời và hoàn thành công việc không chỉ đang phát triển.

  • đã thay đổi về cơ bản.

  • Mọi người không còn mở trình duyệt và nhấn vào các trang web nữa.

  • Họ trò chuyện trực tiếp với các trợ lý như Gemini.

  • Họ đang hỏi Gemini những câu hỏi phức tạp, tìm kiếm câu trả lời bằng nhiều phương thức trên Tìm kiếm.

  • Và họ mong đợi các thiết bị Android không chỉ hiểu những gì họ đang nói mà còn biết họ muốn làm gì.

  • Hãy nghĩ về một số quy trình công việc mà bạn có thể thực hiện vào bất kỳ ngày nào.

  • Giả sử bạn yêu cầu Gemini giúp bạn lên ý tưởng cho một ngày cuối tuần vui vẻ với bạn bè ở một địa điểm cụ thể vào một thời điểm cụ thể.

  • Các mô hình ngày nay có thể xử lý kế hoạch đó trong vài giây.

  • Thật tuyệt vời.

  • Nó được sắp xếp gọn gàng.

  • Sau đó thì sao?

  • Kết thúc.

  • Người dùng gặp trở ngại và không thể tiếp tục, chỉ có một kế hoạch mà không có gì được xác nhận.

  • Mô hình biết phải làm gì, nhưng không có tay để làm.

  • Vì vậy, bạn phải sao chép và dán thông tin từ cuộc trò chuyện với Gemini vào một ứng dụng nào đó.

  • Đôi khi, nếu bạn dùng thiết bị di động, thì việc này sẽ rất rườm rà.

  • Sau đó, bạn phải nhớ tất cả thông tin và nhập vào sau.

  • Sự gián đoạn và trở ngại về mặt nhận thức đó hoàn toàn phá vỡ trải nghiệm kỳ diệu.

  • Và điều này có ý nghĩa gì đối với tất cả các bạn?

  • Điều này có nghĩa là bạn có nhu cầu của người dùng có ý định cao nhưng lại bị mắc kẹt trong bong bóng trò chuyện thay vì thu hút người dùng phong phú và hấp dẫn vào ứng dụng của bạn.

  • Và đây là lý do các ứng dụng được kết nối có thể thay đổi cục diện, vì chúng giúp chúng tôi tiếp cận người dùng ở đúng nơi họ đang có mặt.

  • Và hiện tại, họ đang dành rất nhiều thời gian để trò chuyện với các trợ lý như Gemini.

  • Khi người dùng thể hiện ý định thực sự muốn hành động, đó là một khoảnh khắc cực kỳ có giá trị trong hành trình của họ.

  • Họ không chỉ duyệt xem một cách thụ động.

  • Họ có một việc cụ thể mà họ muốn hoàn thành ngay bây giờ.

  • Bằng cách cho phép tích hợp giữa các ứng dụng và những mô hình tạo sinh này, các trợ lý như Gemini không chỉ trả lời câu hỏi mà còn giúp bạn hoàn thành công việc.

  • Khi người dùng yêu cầu danh sách việc cần làm theo thứ tự ưu tiên, hoặc muốn thuê xe cho chuyến đi sắp tới, hoặc muốn mua nguyên liệu cho một công thức nấu ăn mà họ vừa tìm thấy, ứng dụng của bạn sẽ không nằm ở cuối trang dưới dạng một đường liên kết tĩnh.

  • Bạn có thể giúp mang đến trải nghiệm kỳ diệu và thực hiện hành động đó ngay tại chỗ.

  • Và tôi muốn làm rõ một điều, vì tôi biết mọi nhà phát triển và nhà lãnh đạo sản phẩm đều đang nghĩ đến điều này, đó là ứng dụng được kết nối không phải là việc trừu tượng hoá ứng dụng của bạn.

  • Thương hiệu, logic kinh doanh, mối quan hệ đã xác thực và trải nghiệm giao diện người dùng tuỳ chỉnh đều thuộc về bạn.

  • Ứng dụng được kết nối là việc tích hợp các dịch vụ của bạn vào một nền tảng API tác nhân, nhờ đó, các sản phẩm tác nhân của Google có thể đưa người dùng có ý định cao trực tiếp đến sản phẩm của bạn một cách liền mạch.

Connected Apps Platform

  • Vì vậy, hôm nay, ngay lúc này, tôi rất vui mừng được chính thức thông báo về việc ra mắt Nền tảng ứng dụng có thể kết nối.

  • Trước đây, để tiếp cận người dùng trên các sản phẩm của Google, bạn phải tích hợp riêng cho từng sản phẩm.

  • Nếu muốn có một hành động hoặc lối tắt trong ứng dụng Android, bạn phải tự tạo.

  • Một dịch vụ tích hợp tìm kiếm, một dịch vụ khác.

  • Tuy nhiên, chúng tôi muốn giúp bạn thực hiện mọi việc một cách dễ dàng và hiệu quả nhất có thể.

  • Vì vậy, chúng tôi đã chuẩn hoá quy trình làm quen để cung cấp cho bạn một điểm truy cập duy nhất để ra mắt ứng dụng trên nhiều sản phẩm dựa trên tác nhân của Google.

  • Giờ đây, bạn chỉ cần xây dựng chức năng của ứng dụng một lần bằng cách sử dụng giản đồ khai báo chuẩn, và chỉ cần như vậy, chức năng đó sẽ xuất hiện trên hai sản phẩm chính của chúng tôi là Gemini và Tìm kiếm.

  • Và chúng tôi sẽ sớm ra mắt thêm nhiều sản phẩm khác.

  • Vậy hãy cùng tìm hiểu về phạm vi tiếp cận này và ý nghĩa của nó đối với bạn.

  • Bạn không cần phải tạo nhiều trình bổ trợ tuỳ chỉnh, quản lý 4 bảng điều khiển dành cho nhà phát triển, duy trì nhiều quy trình xác thực chỉ để tiếp cận người dùng Google trên Android, Gemini và Tìm kiếm.

  • Với nền tảng hợp nhất của chúng tôi, bạn chỉ cần tạo và đăng ký định nghĩa công cụ một lần.

  • Bạn chọn các sản phẩm của Google mà bạn muốn, còn chúng tôi cung cấp cho bạn một nút khởi chạy duy nhất trong Google Connected Console mới.

  • Khi bạn phát hành, mọi người đều có thể khám phá các chức năng của bạn khi họ sử dụng Gemini hoặc Tìm kiếm.

  • Dù người dùng nhập câu hỏi vào Gemini trên máy tính xách tay, đặt một loạt câu hỏi trên Google Tìm kiếm trên web hay sử dụng các tính năng của trợ lý trên Android, họ đều có thể chọn sử dụng ứng dụng của bạn ngay khi cần thiết nhất, ngay tại nơi họ đang ở.

  • Vì vậy, chúng tôi sẽ mở nền tảng theo từng giai đoạn, bắt đầu bằng bản xem trước.

  • Tôi cam đoan rằng cả nhóm đang nỗ lực hết sức để cung cấp tất cả tính năng cho nhiều người dùng nhất có thể trong thời gian sớm nhất.

  • Trong giai đoạn này của chương trình xem trước, chúng tôi chỉ mở nền tảng này cho các nhà phát triển ở Hoa Kỳ.

  • Bạn có thể đăng ký quyền truy cập thông qua một biểu mẫu. Bạn có thể tìm thấy biểu mẫu đó trong hướng dẫn dành cho nhà phát triển tại developers.google.com/connected-apps. Nếu là nhà phát triển trên Play, bạn cũng có thể tìm thấy biểu mẫu đó trên trang chủ của Google Play Console.

  • Vậy câu hỏi tiếp theo là, việc xây dựng một mô hình như vậy thực sự khó đến mức nào?

  • Nếu bạn có API REST hoặc ý định Android, thì bạn đang có một điểm khởi đầu khá tốt.

  • Chúng tôi đang xây dựng dựa trên các khái niệm quen thuộc của nhà phát triển.

  • Nền tảng của chúng tôi tích hợp với Giao thức ngữ cảnh mô hình (MCP) hoặc tiêu chuẩn MCP thông qua cả MCP dựa trên máy chủ và MCP gốc trên Android.

  • Để giúp bạn làm việc hiệu quả và dễ dàng hơn, hôm nay chúng tôi sẽ ra mắt một tính năng hoàn toàn mới trong Gemini có tên là Chế độ nhà phát triển. Tất cả các bạn ở Hoa Kỳ hiện đều có thể sử dụng tính năng này.

  • Nhờ đó, bạn có thể dùng thử ứng dụng của mình ngay trong Gemini, nhận ý kiến phản hồi theo thời gian thực về trạng thái lỗi, độ trễ và câu trả lời của mô hình.

  • Sắp tới, bạn sẽ có thể tạo các tập dữ liệu đánh giá của riêng mình, nhận thẻ điểm và điểm chuẩn cho chỉ số chất lượng.

  • Sẽ rất thú vị đấy.

  • Bất kể quyền truy cập của bạn trên nền tảng này là gì, bạn luôn có thể dùng thử ứng dụng của mình ở Chế độ nhà phát triển.

  • Tôi chắc rằng bạn đang rất muốn biết thêm thông tin chi tiết. Kate sẽ lên sân khấu ngay sau tôi và chia sẻ với các bạn về điều đó chỉ trong vài phút nữa.

Sự tin tưởng, quyền riêng tư và quyền kiểm soát của người dùng

  • Vì vậy, trước tiên, tôi cần nói với bạn về một điều ngày càng quan trọng: niềm tin của người dùng.

  • Bất cứ khi nào chúng ta nói về việc tác nhân hành động thay mặt cho ai đó, câu hỏi đầu tiên thường là: "Làm thế nào để người dùng nắm quyền kiểm soát?"

  • Sau đây là một vài khái niệm đơn giản giúp bạn hiểu rõ hơn về vấn đề này.

  • Thứ nhất, quy trình xác nhận của chúng tôi được điều chỉnh theo mức độ rủi ro.

  • Chúng tôi sẽ không hiển thị cửa sổ bật lên trước mỗi lệnh gọi công cụ.

  • Việc tra cứu thông tin, kiểm tra thực đơn, theo dõi đơn đặt hàng phải diễn ra suôn sẻ.

  • Tuy nhiên, khi một hành động có hậu quả thực tế, chẳng hạn như chỉnh sửa nội dung được chia sẻ, hoàn tất đặt chỗ hoặc xoá nội dung mà người dùng không thể dễ dàng lấy lại, thì mô hình sẽ hỏi người dùng để xác nhận rõ ràng trước khi thực hiện.

  • Thứ hai, dữ liệu nhạy cảm được hiển thị chứ không bị ẩn.

  • Vì vậy, các sản phẩm của chúng tôi được thiết kế để kiểm tra xem thông tin cá nhân nào có thể được chia sẻ với ứng dụng của bạn.

  • Nếu phát hiện thấy thông tin nhạy cảm, chúng tôi sẽ cho người dùng biết chính xác thông tin nào đang được chia sẻ, để người dùng quyết định xem có tiếp tục sử dụng ứng dụng của bạn hay không ngay tại thời điểm đó.

  • Thứ ba, khi yêu cầu, chúng tôi nêu rõ lý do.

  • Chúng tôi không đưa ra câu hỏi mơ hồ "Bạn có chắc không?", mà cho biết rõ ứng dụng nào và nội dung nào thực sự được gửi hoặc thay đổi.

  • Bằng cách đó, thông báo xác nhận sẽ giúp người dùng thực sự đưa ra quyết định thay vì chỉ là một thông báo mà họ nhấp vào một cách ngẫu nhiên.

  • Và vì không ai muốn một hành trình đầy rẫy những yêu cầu xác nhận, nên người dùng sẽ có nhiều quyền kiểm soát hơn đối với tần suất họ được hỏi.

  • Ví dụ: trong ứng dụng Gemini, người dùng có thể chọn cho phép hành động mọi lúc hay không theo từng ứng dụng và thậm chí theo từng hành động.

  • Đối với bạn, điều đó có nghĩa là chúng tôi yêu cầu bạn đánh dấu công cụ của mình một cách trung thực.

  • Đánh dấu nội dung chỉ có thể đọc, nội dung thay đổi, nội dung xoá dữ liệu.

  • Những tín hiệu đó giúp các sản phẩm của chúng tôi quyết định thời điểm đưa người dùng vào.

  • Kate sẽ hướng dẫn bạn cách thực hiện việc này chỉ trong vài phút nữa.

Trải nghiệm của đối tác và lộ trình phát hành chính thức

  • Được rồi, hãy quay lại hành trình cuối tuần mà chúng ta đang nói đến, phần lập kế hoạch.

  • Bạn có nhớ việc đó khó khăn và rời rạc như thế nào không?

  • Bạn có một kế hoạch tuyệt vời cho một nhóm bạn, nhưng sau đó bạn gặp trở ngại, bạn phải sao chép và dán nội dung, chuyển đổi qua lại giữa các ứng dụng.

  • Vì vậy, Viator và Ticketmaster là hai trong số những đối tác tuyệt vời đầu tiên của chúng tôi và họ nhận thấy cơ hội thực sự trong việc đáp ứng nhu cầu của người dùng ngay tại nơi họ đang ở.

  • Họ quyết định hợp tác với chúng tôi và dỡ bỏ rào cản đó, cho phép người dùng có ý định cao này truy cập vào ứng dụng của họ ngay từ bên trong Gemini.

  • Nhờ các ứng dụng được kết nối mà những đối tác này xây dựng, toàn bộ hành trình trở nên suôn sẻ và mượt mà hơn rất nhiều.

  • Vậy hãy cùng khám phá công cụ này nhé!

  • Người dùng kết nối các ứng dụng và yêu cầu Gemini tìm một chuyến tham quan ẩm thực ban ngày trên Viator và một số vé xem buổi hoà nhạc trên Ticketmaster cho một nhóm 4 người.

  • Gemini có thể nhận ra khả năng này, gọi trực tiếp cho Viator và các công cụ của Ticketmaster với quy mô nhóm, ngày và lựa chọn ưu tiên phù hợp đã được điền sẵn.

  • Mà không cần rời khỏi cuộc trò chuyện, cả hai ứng dụng đều lấy thông tin về tình trạng còn phòng theo thời gian thực và hiển thị trải nghiệm phong phú, mang tính tương tác ngay trong cuộc trò chuyện cho người dùng.

  • Thay vì gặp phải ngõ cụt và phải mở nhiều thẻ, Viator và Ticketmaster là những ví dụ về đối tác cho phép người dùng làm những việc họ cần ngay khi họ tìm thấy, khám phá các điểm dừng trong chuyến tham quan ẩm thực, chọn chỗ ngồi trong buổi hoà nhạc và chuyển đổi hoàn toàn liền mạch từ khám phá sang hành động.

  • Vậy nên, thời của trình chạy ứng dụng tĩnh sắp qua rồi, nhường chỗ cho những trải nghiệm thông minh, chủ động và có tính tác nhân.

  • Người dùng của bạn đã và đang sử dụng Tìm kiếm và Gemini để yêu cầu trợ giúp.

  • Cùng nhau, chúng ta có thể giúp họ không chỉ tìm được câu trả lời mà còn có được những trải nghiệm thực sự mạnh mẽ và kỳ diệu.

  • Đó là tất cả những gì tôi muốn chia sẻ.

  • Bây giờ, tôi xin nhường lời cho Kate. Kate sẽ hướng dẫn bạn chính xác cách xây dựng một ứng dụng được kết nối.

  • Mời bạn lên.

  • Xin chào mọi người!

  • Tôi là Kate, Kỹ sư quan hệ với nhà phát triển, chuyên hỗ trợ các nhà phát triển như bạn tích hợp với Connected Apps Platform.

  • Vì vậy, tôi sẽ hướng dẫn bạn cách kiểm thử, xây dựng và triển khai ứng dụng có thể kết nối.

  • Như Mai đã đề cập trước đó, có hai phương thức chính để tích hợp với Connected Apps Platform: thông qua Máy chủ MCP từ xa bằng cách sử dụng giao thức MCP hoặc thông qua Android MCP, khi bạn có thể xây dựng Máy chủ MCP từ xa trên thiết bị bằng cách sử dụng thư viện AppFunctions.

  • Bạn nên sử dụng máy chủ MCP từ xa khi muốn tích hợp trên nhiều nền tảng như Android, iOS và Web.

  • Chúng tôi cũng nhận được ý kiến phản hồi của một số nhà phát triển rằng đôi khi bạn muốn thực thi cục bộ khi dữ liệu ứng dụng chỉ có trên thiết bị.

  • Đối với trường hợp sử dụng này, bạn nên dùng Android MCP bằng cách sử dụng thư viện AppFunctions Jetpack.

  • Ngoài ra, hãy xem bài nói chuyện chuyên sâu của Dan và Sarah về cách tích hợp với Connected Apps Platform thông qua AppFunctions và Android MCP.

Tích hợp và minh hoạ máy chủ MCP từ xa

  • Bây giờ, hãy cùng tìm hiểu cách xây dựng một Máy chủ MCP từ xa.

  • Để cho bạn thấy cách hoạt động của tính năng này trong thực tế, chúng tôi đã xây dựng ứng dụng chính thức được kết nối với AndroidDevSummit.

  • Hãy để tôi hướng dẫn bạn cách sử dụng.

  • Hãy quay lại bản minh hoạ trực tiếp.

  • Hãy tưởng tượng bạn hỏi: "AndroidDevSummit, hãy cho tôi biết thêm về các phiên XR".

  • Ngay bây giờ, Gemini sẽ kết nối với Máy chủ MCP mà chúng tôi đã xây dựng cho ứng dụng được kết nối này.

  • Mô hình này tìm công cụ phù hợp để gọi và sử dụng dữ liệu của công cụ đó để tạo câu trả lời thân thiện với người dùng.

  • Vì vậy, ứng dụng sẽ tìm thông tin về các phiên liên quan đến XR tại đây cho ngày 1 và ngày 2, đồng thời hiển thị tiện ích mang thương hiệu tuỳ chỉnh của chúng tôi cho AndroidDevSummit bằng bot Android.

  • Vì vậy, ngay trong Gemini, bạn có thể tương tác với tiện ích này.

  • Bạn có thể xem lịch biểu, chẳng hạn như bạn có thể chuyển đổi vị trí hoặc lọc theo ngày.

  • Bạn cũng có thể lọc theo nhiều chủ đề, chẳng hạn như nếu tôi muốn tìm các phiên liên quan đến XR, đồng thời bạn cũng có thể xem thông tin chi tiết và xem diễn giả.

  • Vậy nên, tuyệt vời!

  • Mọi thứ đều có trong Gemini, trải nghiệm mang thương hiệu riêng của bạn, và người dùng không cần phải chuyển đổi, không cần phải tìm thông tin khác trong một ứng dụng khác, mọi thứ đều ở một nơi mà không cần tương tác, không cần chuyển đổi hay rời khỏi ứng dụng.

  • Giờ thì hãy quay lại trang trình bày.

Phát triển máy chủ MCP và giao diện người dùng tuỳ chỉnh

  • Hãy cùng khám phá cách xây dựng ứng dụng kết nối này.

  • Vì vậy, bạn có thể dễ dàng khởi động Máy chủ MCP bằng thư viện FastMCP, nhưng có 4 phương pháp hay nhất rất quan trọng cần tuân theo.

  • Trước tiên, bạn cần cung cấp hướng dẫn rõ ràng cho máy chủ.

    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 "
        ),
    )
  • Khi khởi chạy Máy chủ MCP, hãy luôn xác định hướng dẫn rõ ràng, mô tả miền và chức năng của ứng dụng được kết nối.

  • Connected Apps Platform dựa vào những chỉ dẫn này để biết khi nào cần uỷ quyền cho máy chủ của bạn.

  • Ngoài ra, Google Connected Console (tôi sẽ giới thiệu sau) cũng xác thực rõ ràng rằng các hướng dẫn này có tồn tại.

  • Thứ hai, thêm chú thích công cụ để đảm bảo an toàn và kiểm soát.

    @mcp.tool(
        title="List Sessions",
    
        annotations=ToolAnnotations(
            readOnlyHint=True,
            destructiveHint=False,
        ),
    
        meta={ … },
    )
    def list_sessions( … )
    …
  • Đối với máy chủ ADS, chúng ta có hai chú thích này.

  • Điều quan trọng đối với mô hình là biết khi nào công cụ của bạn ở chế độ chỉ đọc hoặc sửa đổi dữ liệu.

  • Vì vậy, nếu bạn có bất kỳ công cụ nào chỉnh sửa hoặc xoá thông tin người dùng, hãy luôn sử dụng destructiveHint này để đánh dấu các công cụ đó, chẳng hạn như các công cụ có thể chỉnh sửa hoặc xoá thao tác.

  • Bằng cách này, Connected Apps Platform sẽ biết rằng cần hiển thị thông báo xác nhận cho người dùng để họ đồng ý hoàn tất hành động này.

  • Bạn cũng có thể định cấu hình các công cụ trong Google Connected Console. Tôi sẽ giới thiệu về công cụ này sau.

  • Thứ ba là giản đồ được nhập mạnh và chuỗi tài liệu ngữ nghĩa.

    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').
        """
        …
  • Hãy coi chuỗi tài liệu tham số là một phần của câu lệnh.

  • Trong công cụ list_sessions này, chúng tôi ghi lại rõ ràng các giá trị dự kiến, chẳng hạn như công cụ và hiệu suất, hoặc MTV so với London cho vị trí.

  • Yếu tố quan trọng nhất để gọi công cụ chính xác là giản đồ rõ ràng và mang tính mô tả.

  • Và cuối cùng là liên kết siêu dữ liệu tài nguyên giao diện người dùng.

    @mcp.tool(
        …
        meta={
            "ui": {
                "resourceUri": "ui://ads-mcp/summit-app",
            },
            …
        },
    )
    def list_sessions(…)
    …
  • Hãy xem định nghĩa về giao diện người dùng trong meta.

  • Siêu dữ liệu này là cầu nối hướng dẫn Gemini liên kết trực tiếp kết quả của công cụ với tài nguyên giao diện người dùng tuỳ chỉnh của chúng ta tại đây.

  • Giờ chúng ta sẽ chuyển sang phần kết xuất giao diện người dùng.

    @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 cung cấp cho bạn một cách để hiển thị giao diện người dùng đa dạng từ máy chủ MCP thông qua Giao diện người dùng của ứng dụng MCP.

  • Và khi muốn có sự linh hoạt hoàn toàn cho một giao diện tuỳ chỉnh, thể hiện thương hiệu, chẳng hạn như Hội nghị Nhà phát triển Android, bạn có thể hiển thị tài nguyên giao diện người dùng MCP.

  • Gemini có thể kết xuất trong một iframe hộp cát an toàn.

Quy trình kiểm thử và xác thực

  • Tiếp theo, tôi sẽ hướng dẫn bạn cách thử nghiệm và triển khai Ứng dụng kết nối, ngay từ máy cục bộ của bạn, trực tiếp đến môi trường phát hành công khai.

  • Vâng.

  • Vì vậy, hãy cùng tìm hiểu cách bạn có thể phát triển và kiểm thử cục bộ.

  • Trong quá trình phát triển, bạn có thể dễ dàng khởi động máy chủ cục bộ bằng cách sử dụng lệnh đầu tiên.

    ./venv/bin/python server.py
    npx @modelcontextprotocol/inspector
  • Sau đó, bạn có thể sử dụng MCP Inspector để gỡ lỗi máy chủ, xem các công cụ có sẵn và tương tác với giao diện người dùng.

  • Đây chỉ là ví dụ về giao diện của MCP Inspector cho Hội nghị Nhà phát triển Android.

  • Vì vậy, bạn có thể xem các công cụ, giao diện người dùng và kiểm thử cục bộ.

  • Thứ hai, bạn cần triển khai máy chủ MCP cho một số điểm cuối từ xa để có quyền truy cập và xác thực máy chủ đó trong Chế độ nhà phát triển Gemini.

  • Bạn có thể lưu trữ điểm cuối MCP trên bất kỳ cơ sở hạ tầng nào hoặc bất kỳ nhà cung cấp dịch vụ đám mây nào.

  • Nhưng nếu bạn thích Google Cloud, thì bạn có thể dễ dàng sử dụng Google Cloud CLI.

  • Chỉ cần sử dụng lệnh đơn giản này để triển khai và ứng dụng của bạn sẽ có thể truy cập từ xa.

    gcloud run deploy ads-mcp-server
  • Bước tiếp theo là xác thực điểm cuối công khai của bạn trong Chế độ nhà phát triển Gemini.

  • Giờ thì hãy quay lại bản minh hoạ trực tiếp để tôi hướng dẫn bạn cách sử dụng chế độ nhà phát triển trong thực tế.

  • Vì vậy, bạn có thể dễ dàng tìm thấy chế độ nhà phát triển nếu chỉ cần chuyển đến phần cài đặt rồi nhấp vào Chế độ nhà phát triển.

  • Sau đó, bạn cần chọn ứng dụng đã kết nối mà bạn muốn thử nghiệm.

  • Ví dụ: bạn có thể tạo một máy chủ mới bằng cách cung cấp URL máy chủ MCP tại đây.

  • Tôi đã tạo một điểm cuối để thử nghiệm, có tên là ADS MCP, cùng với điểm cuối thử nghiệm của tôi.

  • Và tôi chỉ muốn thử nghiệm xem Gemini hoạt động như thế nào từ đầu đến cuối.

  • Vậy hãy thử hỏi một câu.

  • "ADS MCP, cho tôi biết thêm về sự kiện này."

  • Vì vậy, ngay bây giờ, Gemini sẽ gọi máy chủ MCP của chúng ta và bạn cũng có thể xem công cụ nào đang được gọi trong Chế độ nhà phát triển.

  • Ví dụ: đối với câu lệnh cụ thể này, "Hãy cho tôi biết thêm về sự kiện", get_summit_info đã được gọi.

  • Và bạn cũng có thể thấy phản hồi thành công.

  • Bạn cũng có thể xem độ trễ.

  • Bạn cũng có thể xem tất cả thông tin chi tiết về yêu cầu và phản hồi.

  • Ví dụ: đối với phản hồi, chúng ta có rất nhiều thông tin.

  • Bạn cũng có thể phóng to một chút và xem cách gỡ lỗi, có thể là thông tin bạn cần và khám phá xem mọi thứ có chính xác hay không.

  • Bạn cũng có thể sao chép đường liên kết này, rất tiện lợi nếu bạn muốn chia sẻ với đồng đội.

  • Bạn cũng có thể xuất toàn bộ nhật ký sự kiện và chia sẻ nếu cần.

  • Tôi cũng thích việc bạn có thể khám phá các công cụ khác có sẵn, vì vậy, tại đây, trong Chế độ nhà phát triển, bạn có thể xem thông tin về hội nghị thượng đỉnh, danh sách phiên và các công cụ khác.

  • Bạn cũng có thể thay đổi môi trường để mô phỏng các bối cảnh khác nhau của người dùng.

  • Ví dụ: bạn có thể thay đổi thời gian ban ngày hoặc các lựa chọn ưu tiên như ngôn ngữ, đồng thời bạn cũng có thể thiết lập chế độ xác thực.

  • Đó là Chế độ cho nhà phát triển.

  • Và đúng vậy, bạn có thể bắt đầu xây dựng Máy chủ MCP ngay hôm nay và thử nghiệm bằng Chế độ nhà phát triển, bắt đầu từ hôm nay.

  • Tính năng này hiện được cung cấp cho tất cả mọi người.

  • Giờ hãy chuyển về trang trình bày.

  • Được rồi.

  • Giả sử bạn đã thử nghiệm bằng Chế độ cho nhà phát triển và mọi thứ đều ổn, thì bạn sẽ làm gì tiếp theo?

  • Bạn cần đăng ký để có quyền truy cập vào nền tảng của chúng tôi và trước tiên, bạn cần điền thông tin vào biểu mẫu bày tỏ sự quan tâm này.

  • Bạn cũng có thể xem thông tin này trong tài liệu của chúng tôi và trong Google Connected Console.

Chuẩn bị cho quá trình sản xuất và tài nguyên

  • Sau khi đơn đăng ký của bạn được phê duyệt, bạn sẽ có quyền truy cập vào Google Connected Console để chuẩn bị phát hành ứng dụng lên kênh phát hành công khai.

  • Trong bảng điều khiển, bạn chỉ cần thực hiện vài bước để chuẩn bị ứng dụng.

  • Trước tiên, bạn cần tạo một Ứng dụng đã kết nối mới tại đó và đặt tên cho ứng dụng.

  • Sau đó, bạn chỉ cần chọn các chức năng và danh mục tương tự.

  • Ví dụ: trong trường hợp này, chúng ta chọn năng suất rồi nhấp vào tạo.

  • Tiếp theo, trong phần chi tiết ứng dụng, bạn cần cung cấp dữ liệu công khai như tên hiển thị, biểu tượng, đồng thời cung cấp nội dung mô tả dành cho người dùng cũng như các chức năng, giới hạn, câu lệnh mẫu và dữ liệu khác của ứng dụng.

  • Sau đó, khi định cấu hình Máy chủ MCP, bạn cần cung cấp điểm cuối.

  • Bạn cần xác minh rằng miền này thuộc về bạn, đồng thời bạn có thể định cấu hình thông tin đăng nhập để đồng bộ hoá các công cụ.

  • Xin lưu ý rằng Google Console sẽ chụp nhanh giản đồ MCP của bạn, vì vậy, mỗi khi thay đổi giản đồ, bạn cần quay lại và triển khai lại.

  • Sau đó, bạn chỉ cần định cấu hình phạm vi cung cấp ứng dụng.

  • Bạn có thể chọn khu vực, ngôn ngữ, nền tảng và các cấu hình công cụ riêng lẻ khác cho ứng dụng của mình.

  • Tại đó, bạn chỉ cần nhấn vào nút áp dụng thay đổi rồi gửi cho Gemini Stage xem xét.

  • Sau đó, bạn cũng có thể thêm tài khoản thử nghiệm trong phần quản lý người kiểm thử.

  • Và ngay lập tức thử nghiệm trực tiếp bằng tài khoản thử nghiệm này trên web, thiết bị di động hoặc bất kỳ nền tảng nào mà bạn đã chọn trước đó, chẳng hạn như Gemini hoặc Tìm kiếm, rồi gửi để xem trước lần cuối.

  • Và khi ứng dụng đã sẵn sàng, bạn có thể phát hành công khai ứng dụng đó trên toàn cầu cho người dùng hoặc cho các khu vực đã chọn bằng cách gửi nút đó.

  • Chỉ vậy thôi!

  • Chúng tôi rất mong được thấy những gì bạn có thể xây dựng bằng Connected Apps Platform, cho dù bạn đang cung cấp các khả năng của ứng dụng thông qua Máy chủ MCP từ xa hay thông qua Android MCP.

  • Chúng tôi rất sẵn lòng hỗ trợ bạn xây dựng các tính năng tích hợp tuyệt vời này.

  • Bạn chỉ cần làm theo tài liệu này và các mẫu của chúng tôi có sẵn bằng cách sử dụng mã vạch này.

  • Cảm ơn các bạn đã tham gia cùng chúng tôi hôm nay!

  • Chúc bạn lập trình vui vẻ!

Mã

Đoạn mã

Đoạn mã Python ở phút 14:56 trong video "Phát triển máy chủ MCP và giao diện người dùng tuỳ chỉnh"
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 "
    ),
)
Đoạn mã Python ở phút 15:22 trong video "Phát triển máy chủ MCP và giao diện người dùng tuỳ chỉnh"
@mcp.tool(
    title="List Sessions",

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

    meta={ … },
)
def list_sessions( … )
…
Đoạn mã Python ở phút 16:08 trong video "Phát triển máy chủ MCP và giao diện người dùng tuỳ chỉnh"
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').
    """
    …
Đoạn mã Python ở phút 16:32 trong video "Phát triển máy chủ MCP và giao diện người dùng tuỳ chỉnh"
@mcp.tool(
    …
    meta={
        "ui": {
            "resourceUri": "ui://ads-mcp/summit-app",
        },
        …
    },
)
def list_sessions(…)
…
Đoạn mã Python ở phút 16:49 trong video "Phát triển máy chủ MCP và giao diện người dùng tuỳ chỉnh"
@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",
        )
    ])
Đoạn mã shell ở phút 17:29 trong phần "Quy trình kiểm thử và xác thực"
./venv/bin/python server.py
npx @modelcontextprotocol/inspector
Đoạn mã Shell ở phút 18:16 trong phần "Quy trình kiểm thử và xác thực"
gcloud run deploy ads-mcp-server