{"id":23972,"date":"2025-10-22T09:48:33","date_gmt":"2025-10-22T02:48:33","guid":{"rendered":"https:\/\/gcloudvn.com\/?p=23972"},"modified":"2025-10-22T09:48:33","modified_gmt":"2025-10-22T02:48:33","slug":"bigquery-meets-adk-mcp-accelerate-agent-development-with-bigquerys-new-first-party-toolset","status":"publish","type":"post","link":"https:\/\/gcloudvn.com\/en\/kienthuc\/bigquery-meets-adk-mcp-accelerate-agent-development-with-bigquerys-new-first-party-toolset\/","title":{"rendered":"BigQuery meets ADK &amp; MCP: Accelerate agent development with BigQuery's new first-party toolset"},"content":{"rendered":"<p><span data-markdown-start-index=\"272\">Cu\u1ed9c c\u00e1ch m\u1ea1ng v\u1ec1 AI Agent (T\u00e1c t\u1eed AI) \u0111ang di\u1ec5n ra v\u1edbi t\u1ed1c \u0111\u1ed9 ch\u00f3ng m\u1eb7t, v\u00e0 m\u1ecdi doanh nghi\u1ec7p \u0111\u1ec1u mu\u1ed1n s\u1edf h\u1eefu nh\u1eefng &#8220;nh\u00e2n vi\u00ean s\u1ed1&#8221; t\u1ef1 tr\u1ecb c\u1ee7a ri\u00eang m\u00ecnh. Tuy nhi\u00ean, con \u0111\u01b0\u1eddng t\u1eeb \u00fd t\u01b0\u1edfng \u0111\u1ebfn m\u1ed9t AI Agent th\u1ef1c s\u1ef1 h\u1eefu \u00edch, c\u00f3 kh\u1ea3 n\u0103ng suy lu\u1eadn d\u1ef1a tr\u00ean d\u1eef li\u1ec7u n\u1ed9i b\u1ed9 v\u00e0 th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 ph\u1ee9c t\u1ea1p, l\u1ea1i \u0111\u1ea7y r\u1eaby th\u00e1ch th\u1ee9c: d\u1eef li\u1ec7u n\u1eb1m ph\u00e2n m\u1ea3nh, qu\u00e1 tr\u00ecnh t\u00f9y ch\u1ec9nh m\u00f4 h\u00ecnh t\u1ed1n k\u00e9m, v\u00e0 thi\u1ebfu m\u1ed9t b\u1ed9 c\u00f4ng c\u1ee5 ph\u00e1t tri\u1ec3n \u0111\u1ed3ng nh\u1ea5t.<\/span><\/p>\n<p>\u0110\u1ec3 ph\u00e1 v\u1ee1 r\u00e0o c\u1ea3n n\u00e0y v\u00e0 trao quy\u1ec1n cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n, Google \u0111\u00e3 th\u1ef1c hi\u1ec7n m\u1ed9t b\u01b0\u1edbc \u0111i mang t\u00ednh chi\u1ebfn l\u01b0\u1ee3c. Google BigQuery k\u1ebft h\u1ee3p ADK &amp; MCP gi\u1edd \u0111\u00e2y kh\u00f4ng ch\u1ec9 l\u00e0 kho d\u1eef li\u1ec7u, m\u00e0 c\u00f2n l\u00e0 trung t\u00e2m c\u1ee7a m\u1ed9t h\u1ec7 sinh th\u00e1i ph\u00e1t tri\u1ec3n Agent ho\u00e0n to\u00e0n m\u1edbi v\u1edbi s\u1ef1 ra m\u1eaft c\u1ee7a b\u1ed9 c\u00f4ng c\u1ee5 \u0111\u1ed9c quy\u1ec1n: Agent Development Kit (ADK) v\u00e0 Model Customization Platform (MCP).<\/p>\n<p><span data-markdown-start-index=\"1056\">\u0110\u00e2y kh\u00f4ng ch\u1ec9 l\u00e0 m\u1ed9t b\u1ea3n c\u1eadp nh\u1eadt; \u0111\u00f3 l\u00e0 m\u1ed9t tuy\u00ean b\u1ed1 v\u1ec1 m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn m\u1edbi, h\u1ee9a h\u1eb9n t\u0103ng t\u1ed1c \u0111\u00e1ng k\u1ec3 qu\u00e1 tr\u00ecnh \u0111\u01b0a c\u00e1c AI Agent th\u00f4ng minh, \u0111\u01b0\u1ee3c t\u00f9y ch\u1ec9nh s\u00e2u v\u00e0o th\u1ef1c ti\u1ec5n kinh doanh, tr\u1ef1c ti\u1ebfp t\u1eeb n\u01a1i d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n \u0111ang t\u1ed3n t\u1ea1i.<\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">M\u1ee5c L\u1ee5c<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/bigquery-meets-adk-mcp-accelerate-agent-development-with-bigquerys-new-first-party-toolset\/#Tai_sao_phai_ung_dung_Google_BigQuery_ket_hop_ADK_MCP\" >T\u1ea1i s\u1ea3o ph\u1ea3i \u1ee9ng d\u1ee5ng Google BigQuery k\u1ebft h\u1ee3p ADK &amp; MCP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/bigquery-meets-adk-mcp-accelerate-agent-development-with-bigquerys-new-first-party-toolset\/#Huong_dan_Xay_dung_mot_tac_nhan_phan_tich_hoi_thoai_bang_cach_su_dung_cac_cong_cu_cua_ben_thu_nhat_BigQuery\" >H\u01b0\u1edbng d\u1eabn: X\u00e2y d\u1ef1ng m\u1ed9t t\u00e1c nh\u00e2n ph\u00e2n t\u00edch h\u1ed9i tho\u1ea1i b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 c\u1ee7a b\u00ean th\u1ee9 nh\u1ea5t BigQuery<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/bigquery-meets-adk-mcp-accelerate-agent-development-with-bigquerys-new-first-party-toolset\/#Tuy_chon_1_Su_dung_bo_cong_cu_tich_hop_moi_cua_ADK_cho_BigQuery\" >T\u00f9y ch\u1ecdn 1: S\u1eed d\u1ee5ng b\u1ed9 c\u00f4ng c\u1ee5 t\u00edch h\u1ee3p m\u1edbi c\u1ee7a ADK cho BigQuery<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/bigquery-meets-adk-mcp-accelerate-agent-development-with-bigquerys-new-first-party-toolset\/#Tuy_chon_2_Su_dung_cac_cong_cu_duoc_xay_dung_san_cua_BigQuery_trong_MCP_Toolbox_for_Databases\" >T\u00f9y ch\u1ecdn 2: S\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng s\u1eb5n c\u1ee7a BigQuery trong MCP Toolbox for Databases<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/bigquery-meets-adk-mcp-accelerate-agent-development-with-bigquerys-new-first-party-toolset\/#Khoi_tao_Conversational_Analytics_Agent\" >Kh\u1edfi t\u1ea1o Conversational Analytics Agent<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/bigquery-meets-adk-mcp-accelerate-agent-development-with-bigquerys-new-first-party-toolset\/#Ket_luan_Bien_Kho_du_lieu_thanh_%E2%80%9CXuong_san_xuat%E2%80%9D_AI_Agent\" >K\u1ebft lu\u1eadn: Bi\u1ebfn Kho d\u1eef li\u1ec7u th\u00e0nh &#8220;X\u01b0\u1edfng s\u1ea3n xu\u1ea5t&#8221; AI Agent<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Tai_sao_phai_ung_dung_Google_BigQuery_ket_hop_ADK_MCP\"><\/span>T\u1ea1i s\u1ea3o ph\u1ea3i \u1ee9ng d\u1ee5ng Google BigQuery k\u1ebft h\u1ee3p ADK &amp; MCP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Khi s\u1ef1 ph\u1ea5n kh\u00edch xung quanh c\u00e1c t\u00e1c nh\u00e2n AI lan \u0111\u1ebfn kh\u00e1ch h\u00e0ng doanh nghi\u1ec7p, m\u1ed9t c\u00e2u h\u1ecfi quan tr\u1ecdng xu\u1ea5t hi\u1ec7n: L\u00e0m th\u1ebf n\u00e0o ch\u00fang ta c\u00f3 th\u1ec3 trao quy\u1ec1n cho c\u00e1c t\u00e1c nh\u00e2n n\u00e0y \u0111\u1ec3 t\u01b0\u01a1ng t\u00e1c an to\u00e0n v\u00e0 th\u00f4ng minh v\u1edbi c\u00e1c h\u1ec7 th\u1ed1ng d\u1eef li\u1ec7u doanh nghi\u1ec7p nh\u01b0 Google Cloud BigQuery?<\/span><\/p>\n<p>Hi\u1ec7n t\u1ea1i, c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng agentic bu\u1ed9c ph\u1ea3i t\u1ef1 x\u00e2y d\u1ef1ng v\u00e0 duy tr\u00ec c\u00e1c c\u00f4ng c\u1ee5 t\u00f9y ch\u1ec9nh c\u1ee7a ri\u00eang h\u1ecd, m\u1ed9t quy tr\u00ecnh ch\u1eadm ch\u1ea1p, r\u1ee7i ro v\u00e0 l\u00e0m sao nh\u00e3ng vi\u1ec7c x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng s\u00e1ng t\u1ea1o. \u0110i\u1ec1u n\u00e0y g\u00e2y ra chi ph\u00ed ph\u00e1t tri\u1ec3n v\u00e0 r\u1ee7i ro \u0111\u00e1ng k\u1ec3, v\u00ec h\u1ecd ph\u1ea3i ch\u1ecbu tr\u00e1ch nhi\u1ec7m cho m\u1ecdi th\u1ee9, t\u1eeb x\u00e1c th\u1ef1c v\u00e0 x\u1eed l\u00fd l\u1ed7i \u0111\u1ebfn vi\u1ec7c theo k\u1ecbp c\u00e1c kh\u1ea3 n\u0103ng \u0111ang ph\u00e1t tri\u1ec3n c\u1ee7a BigQuery.<\/p>\n<p>\u0110\u1ec3 gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1 n\u00e0y, Google \u0111ang gi\u1edbi thi\u1ec7u m\u1ed9t b\u1ed9 c\u00f4ng c\u1ee5 m\u1edbi c\u1ee7a b\u00ean th\u1ee9 nh\u1ea5t d\u00e0nh cho BigQuery bao g\u1ed3m tools \u0111\u1ec3 l\u1ea5y si\u00eau d\u1eef li\u1ec7u v\u00e0 th\u1ef1c hi\u1ec7n truy v\u1ea5n (v\u00e0 ch\u00fang t\u00f4i c\u00f2n nhi\u1ec1u t\u00ednh n\u0103ng kh\u00e1c n\u1eefa):<\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">list_dataset_ids: L\u1ea5y ID t\u1eadp d\u1eef li\u1ec7u BigQuery c\u00f3 trong d\u1ef1 \u00e1n GCP.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">get_dataset_info: Fetches metadata about a BigQuery dataset.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">list_table_ids: L\u1ea5y ID b\u1ea3ng c\u00f3 trong t\u1eadp d\u1eef li\u1ec7u BigQuery.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">get_table_info: L\u1ea5y si\u00eau d\u1eef li\u1ec7u v\u1ec1 b\u1ea3ng BigQuery.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">execute_sql: Ch\u1ea1y truy v\u1ea5n SQL trong BigQuery v\u00e0 l\u1ea5y k\u1ebft qu\u1ea3.<\/span><\/li>\n<\/ul>\n<p>C\u00e1c c\u00f4ng c\u1ee5 ch\u00ednh th\u1ee9c do Google duy tr\u00ec n\u00e0y cung c\u1ea5p m\u1ed9t c\u1ea7u n\u1ed1i an to\u00e0n v\u00e0 \u0111\u00e1ng tin c\u1eady t\u1edbi d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n v\u00e0 b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng ch\u00fang theo hai c\u00e1ch m\u1ea1nh m\u1ebd: built-in toolset in Google\u2019s Agent Development Kit (ADK) ho\u1eb7c th\u00f4ng qua ngu\u1ed3n m\u1edf linh ho\u1ea1t MCP Toolbox for Databases.\u0110i\u1ec1u n\u00e0y gi\u00fap b\u1ea1n c\u00f3 th\u1ec3 t\u1eadp trung v\u00e0o vi\u1ec7c t\u1ea1o ra gi\u00e1 tr\u1ecb, ch\u1ee9 kh\u00f4ng ph\u1ea3i v\u00e0o vi\u1ec7c x\u00e2y d\u1ef1ng n\u1ec1n m\u00f3ng.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Huong_dan_Xay_dung_mot_tac_nhan_phan_tich_hoi_thoai_bang_cach_su_dung_cac_cong_cu_cua_ben_thu_nhat_BigQuery\"><\/span><b>H\u01b0\u1edbng d\u1eabn: X\u00e2y d\u1ef1ng m\u1ed9t t\u00e1c nh\u00e2n ph\u00e2n t\u00edch h\u1ed9i tho\u1ea1i b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 c\u1ee7a b\u00ean th\u1ee9 nh\u1ea5t BigQuery<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">T\u00e1c nh\u00e2n c\u1ee7a Google s\u1ebd truy v\u1ea5n t\u1eadp d\u1eef li\u1ec7u c\u00f4ng khai c\u1ee7a BigQuery: thelook_ecommerce, m\u1ed9t t\u1eadp d\u1eef li\u1ec7u th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed t\u1ed5ng h\u1ee3p bao g\u1ed3m th\u00f4ng tin kh\u00e1ch h\u00e0ng, h\u00e0ng t\u1ed3n kho s\u1ea3n ph\u1ea9m v\u00e0 l\u1ecbch s\u1eed \u0111\u01a1n h\u00e0ng. Vai tr\u00f2 ch\u00ednh c\u1ee7a nh\u00e2n vi\u00ean l\u00e0 t\u1ea1o c\u00e1c truy v\u1ea5n SQL v\u00e0 cung c\u1ea5p ph\u1ea3n h\u1ed3i c\u00f3 \u00fd ngh\u0129a cho c\u00e1c c\u00e2u h\u1ecfi kinh doanh ph\u1ed5 bi\u1ebfn, ch\u1eb3ng h\u1ea1n nh\u01b0: S\u1ea3n ph\u1ea9m n\u00e0o b\u00e1n ch\u1ea1y nh\u1ea5t? Nh\u1eefng s\u1ea3n ph\u1ea9m n\u00e0o th\u01b0\u1eddng \u0111\u01b0\u1ee3c \u0111\u1eb7t h\u00e0ng c\u00f9ng nhau? V\u00e0 ch\u00fang t\u00f4i c\u00f3 bao nhi\u00eau kh\u00e1ch h\u00e0ng \u1edf Colombia?<\/span><\/p>\n<p>\u0110\u1ea7u ti\u00ean b\u1ea1n c\u1ea7n ph\u1ea3i\u00a0 t\u1ea1o m\u00f4i tr\u01b0\u1eddng python v\u00e0 c\u00e0i \u0111\u1eb7t ADK.Sau \u0111\u00f3, b\u1ea1n c\u00f3 th\u1ec3 g\u1ecdi ti\u1ec7n \u00edch adk \u0111\u1ec3 t\u1ea1o \u1ee9ng d\u1ee5ng ADK bq-agent-app m\u1edbi trong th\u01b0 m\u1ee5c hi\u1ec7n t\u1ea1i:<\/p>\n<p><b>adk create bq-agent-app<\/b><\/p>\n<p><a href=\"https:\/\/gcloudvn.com\/kienthuc\/cong-tac-voi-gemini-tren-google-drive-hien-co-san-tren-thiet-bi-di-dong\/attachment\/1_uprgich\/\" rel=\"attachment wp-att-23915\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-23915\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/1_uPRGICh.gif\" alt=\"\" width=\"976\" height=\"306\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/1_uPRGICh.gif 976w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/1_uPRGICh-768x241.gif 768w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/1_uPRGICh-18x6.gif 18w\" sizes=\"auto, (max-width: 976px) 100vw, 976px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Ch\u1ecdn m\u00f4 h\u00ecnh c\u1ee7a b\u1ea1n, ch\u1ecdn Vertex AI l\u00e0m ph\u1ea7n ph\u1ee5 tr\u1ee3 v\u00e0 x\u00e1c nh\u1eadn ID d\u1ef1 \u00e1n v\u00e0 khu v\u1ef1c c\u1ee7a b\u1ea1n:<\/span><\/p>\n<p>B\u00e2y gi\u1edd b\u1ea1n s\u1ebd c\u00f3 m\u1ed9t th\u01b0 m\u1ee5c m\u1edbi c\u00f3 t\u00ean bq-agent-app. \u0110i\u1ec1u h\u01b0\u1edbng \u0111\u1ebfn\u00a0 agent.py v\u00e0 c\u1eadp nh\u1eadt LLM-Agent g\u1ed1c \u0111\u1ec3 ph\u1ea3n \u00e1nh t\u00e1c nh\u00e2n ph\u00e2n t\u00edch h\u1ed9i tho\u1ea1i c\u1ee7a ch\u00fang t\u00f4i:<\/p>\n<p><b>lang-py<\/b><\/p>\n<p><b>root_agent = Agent(<\/b><\/p>\n<p><b>\u00a0\u00a0model=&#8221;gemini-2.0-flash&#8221;,<\/b><\/p>\n<p><b>\u00a0\u00a0name=&#8221;bigquery_agent&#8221;,<\/b><\/p>\n<p><b>\u00a0\u00a0description=(<\/b><\/p>\n<p><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;Agent that answers questions about BigQuery data by executing SQL queries&#8221;<\/b><\/p>\n<p><b>\u00a0\u00a0),<\/b><\/p>\n<p><b>\u00a0\u00a0instruction=&#8221;&#8221;&#8221; You are a data analysis agent with access to several BigQuery tools. Make use of those tools to answer the user&#8217;s questions.<\/b><\/p>\n<p><b>\u200b<\/b><\/p>\n<p><b>\u00a0\u00a0&#8220;&#8221;&#8221;,<\/b><\/p>\n<p><b>\u00a0\u00a0tools=[bigquery_toolset],<\/b><\/p>\n<p><b>)<\/b><\/p>\n<p>Khi \u0111\u1ecbnh ngh\u0129a t\u00e1c nh\u00e2n, b\u1ea1n ph\u1ea3i cung c\u1ea5p m\u1ed9t t\u00ean duy nh\u1ea5t, ch\u1ec9 \u0111\u1ecbnh m\u00f4 h\u00ecnh LLM c\u01a1 b\u1ea3n v\u00e0 c\u00f3 th\u1ec3 t\u00f9y ch\u1ecdn th\u00eam m\u00f4 t\u1ea3 \u0111\u1ec3 gi\u00fap c\u00e1c t\u00e1c nh\u00e2n kh\u00e1c hi\u1ec3u m\u1ee5c \u0111\u00edch c\u1ee7a n\u00f3. Nhi\u1ec7m v\u1ee5 ho\u1eb7c m\u1ee5c ti\u00eau c\u1ed1t l\u00f5i c\u1ee7a t\u00e1c nh\u00e2n \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a trong h\u01b0\u1edbng d\u1eabn.<\/p>\n<p><span style=\"font-weight: 400;\">Cu\u1ed1i c\u00f9ng, \u0111\u1ec3 cho ph\u00e9p t\u00e1c nh\u00e2n t\u01b0\u01a1ng t\u00e1c v\u1edbi d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n, t\u00e1c nh\u00e2n ph\u1ea3i \u0111\u01b0\u1ee3c trang b\u1ecb c\u00e1c c\u00f4ng c\u1ee5 cho ph\u00e9p t\u01b0\u01a1ng t\u00e1c v\u1edbi BigQuery \u0111\u1ec3 c\u00f3 th\u1ec3 hi\u1ec3u c\u00e1c t\u1eadp d\u1eef li\u1ec7u v\u00e0 b\u1ea3ng c\u00f3 s\u1eb5n, v\u00e0 t\u1ea5t nhi\u00ean, th\u1ef1c hi\u1ec7n c\u00e1c truy v\u1ea5n. H\u00e3y c\u00f9ng xem x\u00e9t c\u00e1c l\u1ef1a ch\u1ecdn c\u1ee7a ch\u00fang ta khi s\u1eed d\u1ee5ng b\u1ed9 c\u00f4ng c\u1ee5 c\u1ee7a BigQuery.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tuy_chon_1_Su_dung_bo_cong_cu_tich_hop_moi_cua_ADK_cho_BigQuery\"><\/span><b>T\u00f9y ch\u1ecdn 1: S\u1eed d\u1ee5ng b\u1ed9 c\u00f4ng c\u1ee5 t\u00edch h\u1ee3p m\u1edbi c\u1ee7a ADK cho BigQuery<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/gcloudvn.com\/kienthuc\/cong-tac-voi-gemini-tren-google-drive-hien-co-san-tren-thiet-bi-di-dong\/attachment\/2_k6pqymv-max-1900x1900\/\" rel=\"attachment wp-att-23914\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-23914\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/2_K6pQymV.max-1900x1900-1.png\" alt=\"\" width=\"1900\" height=\"985\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/2_K6pQymV.max-1900x1900-1.png 1900w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/2_K6pQymV.max-1900x1900-1-768x398.png 768w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/2_K6pQymV.max-1900x1900-1-1536x796.png 1536w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/2_K6pQymV.max-1900x1900-1-18x9.png 18w\" sizes=\"auto, (max-width: 1900px) 100vw, 1900px\" \/><\/a><\/p>\n<p>first-party toolset thu\u1ed9c s\u1edf h\u1eefu v\u00e0 \u0111\u01b0\u1ee3c Google b\u1ea3o tr\u00ec. \u0110\u1ec3 g\u00e1n c\u00e1c c\u00f4ng c\u1ee5 n\u00e0y cho t\u00e1c nh\u00e2n c\u1ee7a b\u1ea1n, b\u1ea1n c\u1ea7n nh\u1eadp BigQueryToolset t\u1eeb m\u00f4-\u0111un agents.tools v\u00e0 sau \u0111\u00f3 kh\u1edfi t\u1ea1o b\u1ed9 c\u00f4ng c\u1ee5:<\/p>\n<p><span style=\"font-weight: 400;\">lang-py<\/span><\/p>\n<p><span style=\"font-weight: 400;\">from google.adk.tools.bigquery import BigQueryCredentialsConfig<\/span><\/p>\n<p><span style=\"font-weight: 400;\">from google.adk.tools.bigquery import BigQueryToolset<\/span><\/p>\n<p><span style=\"font-weight: 400;\">import google.auth<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u200b<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># Define an appropriate credential type<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CREDENTIALS_TYPE = AuthCredentialTypes.OAUTH2<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u200b<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># Write modes define BigQuery access control of agent:<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># ALLOWED: Tools will have full write capabilites.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># BLOCKED: Default mode. Effectively makes the tool read-only.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># PROTECTED: Only allows writes on temporary data for a given BigQuery session.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u200b<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u200b<\/span><\/p>\n<p><span style=\"font-weight: 400;\">tool_config = BigQueryToolConfig(write_mode=WriteMode.ALLOWED)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u200b<\/span><\/p>\n<p><span style=\"font-weight: 400;\">if CREDENTIALS_TYPE == AuthCredentialTypes.OAUTH2:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0# Initiaze the tools to do interactive OAuth<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0credentials_config = BigQueryCredentialsConfig(<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0client_id=os.getenv(&#8220;OAUTH_CLIENT_ID&#8221;),<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0client_secret=os.getenv(&#8220;OAUTH_CLIENT_SECRET&#8221;),<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">elif CREDENTIALS_TYPE == AuthCredentialTypes.SERVICE_ACCOUNT:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0# Initialize the tools to use the credentials in the service account key.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0creds, _ = google.auth.load_credentials_from_file(&#8220;service_account_key.json&#8221;)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0credentials_config = BigQueryCredentialsConfig(credentials=creds)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">else:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0# Initialize the tools to use the application default credentials.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0application_default_credentials, _ = google.auth.default()<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0credentials_config = BigQueryCredentialsConfig(<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0credentials=application_default_credentials<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u200b<\/span><\/p>\n<p><span style=\"font-weight: 400;\">bigquery_toolset = BigQueryToolset(credentials_config=credentials_config, \u00a0 tool_filter=[<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8216;list_dataset_ids&#8217;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8216;get_dataset_info&#8217;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8216;list_table_ids&#8217;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8216;get_table_info&#8217;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8216;execute_sql&#8217;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0])<\/span><\/p>\n<p>B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng tham s\u1ed1 tool_filter \u0111\u1ec3 l\u1ecdc c\u00e1c c\u00f4ng c\u1ee5 m\u00e0 b\u1ea1n mu\u1ed1n cung c\u1ea5p cho t\u00e1c nh\u00e2n.<\/p>\n<p>A note on authentication\u2026<\/p>\n<p>Hi\u1ec7n t\u1ea1i b\u1ea1n c\u00f3 ba t\u00f9y ch\u1ecdn \u0111\u1ec3 x\u00e1c th\u1ef1c v\u1edbi BigQuery:<\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">S\u1eed d\u1ee5ng\u00a0 th\u00f4ng tin \u0111\u0103ng nh\u1eadp m\u1eb7c \u0111\u1ecbnh c\u1ee7a \u1ee9ng d\u1ee5ng c\u00f3 li\u00ean quan \u0111\u1ebfn m\u00f4i tr\u01b0\u1eddng n\u01a1i m\u00e3 \u0111ang ch\u1ea1y.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">S\u1eed d\u1ee5ng service account credentials b\u1eb1ng c\u00e1ch t\u1ea3i ch\u00fang t\u1eeb t\u1ec7p kh\u00f3a t\u00e0i kho\u1ea3n d\u1ecbch v\u1ee5.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Cung c\u1ea5p\u00a0 OAuth 2.0 client_id and secret. C\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng khi \u1ee9ng d\u1ee5ng c\u1ea7n ng\u01b0\u1eddi d\u00f9ng c\u1ea5p cho \u1ee9ng d\u1ee5ng quy\u1ec1n truy c\u1eadp d\u1eef li\u1ec7u BigQuery.<\/li>\n<\/ul>\n<p>\u0110\u1ec3 ki\u1ec3m so\u00e1t chi ti\u1ebft h\u01a1n t\u01b0\u01a1ng t\u00e1c c\u1ee7a b\u1ea1n v\u1edbi BigQuery, t\u1ea5t nhi\u00ean b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o ri\u00eang cho m\u00ecnh custom function tools, \u0111\u01b0\u1ee3c tri\u1ec3n khai d\u01b0\u1edbi d\u1ea1ng c\u00e1c h\u00e0m Python m\u00e0 b\u1ea1n cung c\u1ea5p cho t\u00e1c nh\u00e2n c\u1ee7a m\u00ecnh.<\/p>\n<p><span style=\"font-weight: 400;\">Khi c\u00e1c c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c tri\u1ec3n khai tr\u1ef1c ti\u1ebfp trong m\u1ed9t t\u00e1c nh\u00e2n, ngay c\u1ea3 v\u1edbi b\u1ed9 c\u00f4ng c\u1ee5 t\u00edch h\u1ee3p s\u1eb5n, t\u00e1c nh\u00e2n ho\u1eb7c \u1ee9ng d\u1ee5ng \u0111\u00f3 v\u1eabn ch\u1ecbu tr\u00e1ch nhi\u1ec7m qu\u1ea3n l\u00fd x\u00e1c th\u1ef1c v\u1edbi BigQuery, c\u0169ng nh\u01b0 logic v\u00e0 vi\u1ec7c tri\u1ec3n khai cho t\u1eebng c\u00f4ng c\u1ee5. S\u1ef1 k\u1ebft h\u1ee3p ch\u1eb7t ch\u1ebd n\u00e0y t\u1ea1o ra nh\u1eefng th\u00e1ch th\u1ee9c: vi\u1ec7c c\u1eadp nh\u1eadt m\u1ed9t c\u00f4ng c\u1ee5 ho\u1eb7c thay \u0111\u1ed5i ph\u01b0\u01a1ng th\u1ee9c k\u1ebft n\u1ed1i BigQuery s\u1ebd y\u00eau c\u1ea7u s\u1eeda \u0111\u1ed5i v\u00e0 tri\u1ec3n khai l\u1ea1i th\u1ee7 c\u00f4ng cho t\u1eebng t\u00e1c nh\u00e2n, \u0111i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn s\u1ef1 kh\u00f4ng nh\u1ea5t qu\u00e1n v\u00e0 chi ph\u00ed b\u1ea3o tr\u00ec.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tuy_chon_2_Su_dung_cac_cong_cu_duoc_xay_dung_san_cua_BigQuery_trong_MCP_Toolbox_for_Databases\"><\/span><b>T\u00f9y ch\u1ecdn 2: S\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng s\u1eb5n c\u1ee7a BigQuery trong MCP Toolbox for Databases<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/gcloudvn.com\/kienthuc\/cong-tac-voi-gemini-tren-google-drive-hien-co-san-tren-thiet-bi-di-dong\/attachment\/3_dqbgape-max-1800x1800\/\" rel=\"attachment wp-att-23913\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-23913\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/3_DqbGaPE.max-1800x1800-1.png\" alt=\"\" width=\"1800\" height=\"900\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/3_DqbGaPE.max-1800x1800-1.png 1800w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/3_DqbGaPE.max-1800x1800-1-768x384.png 768w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/3_DqbGaPE.max-1800x1800-1-1536x768.png 1536w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/3_DqbGaPE.max-1800x1800-1-18x9.png 18w\" sizes=\"auto, (max-width: 1800px) 100vw, 1800px\" \/><\/a>H\u1ed9p c\u00f4ng c\u1ee5 MCP (Giao th\u1ee9c B\u1ed1i c\u1ea3nh M\u00f4 h\u00ecnh) d\u00e0nh cho C\u01a1 s\u1edf d\u1eef li\u1ec7u l\u00e0 m\u1ed9t m\u00e1y ch\u1ee7 ngu\u1ed3n m\u1edf t\u1eadp trung h\u00f3a vi\u1ec7c l\u01b0u tr\u1eef v\u00e0 qu\u1ea3n l\u00fd c\u00e1c b\u1ed9 c\u00f4ng c\u1ee5, t\u00e1ch bi\u1ec7t c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u1ea1i l\u00fd kh\u1ecfi t\u01b0\u01a1ng t\u00e1c tr\u1ef1c ti\u1ebfp v\u1edbi BigQuery. Thay v\u00ec t\u1ef1 qu\u1ea3n l\u00fd logic c\u00f4ng c\u1ee5 v\u00e0 x\u00e1c th\u1ef1c, c\u00e1c \u0111\u1ea1i l\u00fd ho\u1ea1t \u0111\u1ed9ng nh\u01b0 m\u00e1y kh\u00e1ch MCP, y\u00eau c\u1ea7u c\u00e1c c\u00f4ng c\u1ee5 t\u1eeb H\u1ed9p c\u00f4ng c\u1ee5. H\u1ed9p c\u00f4ng c\u1ee5 MCP x\u1eed l\u00fd t\u1ea5t c\u1ea3 c\u00e1c v\u1ea5n \u0111\u1ec1 ph\u1ee9c t\u1ea1p c\u01a1 b\u1ea3n, bao g\u1ed3m k\u1ebft n\u1ed1i an to\u00e0n v\u1edbi BigQuery, x\u00e1c th\u1ef1c v\u00e0 th\u1ef1c thi truy v\u1ea5n.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ph\u01b0\u01a1ng ph\u00e1p t\u1eadp trung n\u00e0y \u0111\u01a1n gi\u1ea3n h\u00f3a vi\u1ec7c t\u00e1i s\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 tr\u00ean nhi\u1ec1u t\u00e1c nh\u00e2n, h\u1ee3p l\u00fd h\u00f3a c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt (logic c\u00f4ng c\u1ee5 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eeda \u0111\u1ed5i v\u00e0 tri\u1ec3n khai tr\u00ean H\u1ed9p c\u00f4ng c\u1ee5 m\u00e0 kh\u00f4ng c\u1ea7n thay \u0111\u1ed5i m\u1ecdi t\u00e1c nh\u00e2n) v\u00e0 cung c\u1ea5p m\u1ed9t \u0111i\u1ec3m duy nh\u1ea5t \u0111\u1ec3 th\u1ef1c thi c\u00e1c ch\u00ednh s\u00e1ch b\u1ea3o m\u1eadt.<\/span><\/p>\n<p>H\u1ed9p c\u00f4ng c\u1ee5 MCP d\u00e0nh cho c\u01a1 s\u1edf d\u1eef li\u1ec7u\u00a0 h\u1ed7 tr\u1ee3 b\u1ed9 c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng s\u1eb5n c\u1ee7a BigQuery.\u0110\u1ec3 truy c\u1eadp c\u00e1c c\u00f4ng c\u1ee5 n\u00e0y, tr\u01b0\u1edbc ti\u00ean b\u1ea1n c\u1ea7n t\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c mcp-toolbox m\u1edbi trong c\u00f9ng th\u01b0 m\u1ee5c v\u1edbi \u1ee9ng d\u1ee5ng ADK c\u1ee7a b\u1ea1n, sau \u0111\u00f3 install the MCP Toolbox:<\/p>\n<p><a href=\"https:\/\/gcloudvn.com\/kienthuc\/cong-tac-voi-gemini-tren-google-drive-hien-co-san-tren-thiet-bi-di-dong\/attachment\/4_uageslh\/\" rel=\"attachment wp-att-23912\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-23912\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/4_UageSLh.gif\" alt=\"\" width=\"1623\" height=\"458\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/4_UageSLh.gif 1623w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/4_UageSLh-768x217.gif 768w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/4_UageSLh-1536x433.gif 1536w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/4_UageSLh-18x5.gif 18w\" sizes=\"auto, (max-width: 1623px) 100vw, 1623px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Set the BIGQUERY_PROJECT environment variable, this represents the project where your BigQuery jobs will be created, executed and billed:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">export BIGQUERY_PROJECT=<\/span><span style=\"font-weight: 400;\">&lt;YOUR_PROJECT_NAME&gt;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ch\u1ea1y l\u1ec7nh n\u00e0y \u0111\u1ec3 kh\u1edfi \u0111\u1ed9ng h\u1ed9p c\u00f4ng c\u1ee5 v\u00e0 bao g\u1ed3m b\u1ed9 c\u00f4ng c\u1ee5 BigQuery:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">.\/toolbox &#8211;prebuilt bigquery<\/span><\/p>\n<p>Ta c\u0169ng c\u00f3 th\u1ec3\u00a0 c\u1ea5u h\u00ecnh MCP client b\u00ean trong IDE.<\/p>\n<p><b>B\u1ea1n c\u00f3 mu\u1ed1n l\u01b0u tr\u1eef c\u00e1c c\u00f4ng c\u1ee5 t\u00f9y ch\u1ec9nh c\u1ee7a ri\u00eang m\u00ecnh trong MCP Toolbox for Databases kh\u00f4ng?<\/b><\/p>\n<p>Ta c\u00f3 th\u1ec3 t\u1ef1 \u0111\u1ecbnh ngh\u0129a c\u00f4ng c\u1ee5 t\u00f9y ch\u1ec9nh trong SQLt\u00f9y ch\u1ec9nh c\u00f4ng c\u1ee5 trong SQL trong\u00a0 \u00a0tools.yaml configuration file v\u00e0 cung c\u1ea5p t\u00f9y ch\u1ecdn \u2013tools-file khi kh\u1edfi \u0111\u1ed9ng m\u00e1y ch\u1ee7. Tuy nhi\u00ean, b\u1ea1n kh\u00f4ng th\u1ec3 s\u1eed d\u1ee5ng t\u00f9y ch\u1ecdn &#8211;prebuilt v\u00e0 \u2013tools-file c\u00f9ng l\u00fac. N\u1ebfu b\u1ea1n mu\u1ed1n s\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 t\u00f9y ch\u1ec9nh c\u00f9ng v\u1edbi c\u00e1c c\u00f4ng c\u1ee5 d\u1ef1ng s\u1eb5n, b\u1ea1n ph\u1ea3i s\u1eed d\u1ee5ng t\u00f9y ch\u1ecdn \u2013tool-file v\u00e0 ch\u1ec9 \u0111\u1ecbnh th\u1ee7 c\u00f4ng c\u00e1c c\u00f4ng c\u1ee5 d\u1ef1ng s\u1eb5n m\u00e0 b\u1ea1n mu\u1ed1n \u0111\u01b0a v\u00e0o t\u1ec7p c\u1ea5u h\u00ecnh. Nh\u01b0 th\u1ebf n\u00e0y.<\/p>\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 k\u1ebft n\u1ed1i \u1ee9ng d\u1ee5ng ADK c\u1ee7a b\u1ea1n v\u1edbi MCP Toolbox for Databases, b\u1ea1n c\u1ea7n c\u00e0i \u0111\u1eb7t toolbox-core:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">pip install toolbox-core<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Khi m\u00e1y ch\u1ee7 c\u1ee7a b\u1ea1n \u0111\u00e3 ho\u1ea1t \u0111\u1ed9ng, b\u1ea1n c\u00f3 th\u1ec3 truy xu\u1ea5t b\u1ed9 c\u00f4ng c\u1ee5 c\u1ee7a m\u00ecnh b\u1eb1ng ToolboxSyncClient v\u00e0 h\u00e0m load_toolset():<\/span><\/p>\n<p><span style=\"font-weight: 400;\">lang-py<\/span><\/p>\n<p><span style=\"font-weight: 400;\">from toolbox_core import ToolboxSyncClient<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u200b<\/span><\/p>\n<p><span style=\"font-weight: 400;\">bigquery_toolbox = ToolboxSyncClient(&#8220;http:\/\/127.0.0.1:5000&#8221;)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">bigquery_toolset = bigquery_toolbox.load_toolset()<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Khoi_tao_Conversational_Analytics_Agent\"><\/span><b>Kh\u1edfi t\u1ea1o Conversational Analytics Agent<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Ch\u1ec9 c\u1ea7n g\u00e1n b\u1ed9 c\u00f4ng c\u1ee5 ADK t\u00edch h\u1ee3p ho\u1eb7c b\u1ed9 c\u00f4ng c\u1ee5 MCP cho t\u00e1c nh\u00e2n c\u1ee7a b\u1ea1n l\u00e0 b\u1ea1n \u0111\u00e3 s\u1eb5n s\u00e0ng!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">root_agent = Agent(<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0model=&#8221;gemini-2.0-flash&#8221;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0name=&#8221;bigquery_agent&#8221;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0description=(<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;Agent that answers questions about BigQuery data by executing SQL queries&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0),<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0instruction=&#8221;&#8221;&#8221; You are a data analysis agent with access to several BigQuery tools. Make use of those tools to answer the user&#8217;s questions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0&#8220;&#8221;&#8221;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0tools=[bigquery_toolset]<\/span><\/p>\n<p><span style=\"font-weight: 400;\">)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can now run your agent using the <\/span><span style=\"font-weight: 400;\">adk run<\/span><span style=\"font-weight: 400;\"> or <\/span><span style=\"font-weight: 400;\">adk web<\/span><span style=\"font-weight: 400;\"> command and start asking questions about your data!<\/span><\/p>\n<p>\u0110\u1ea1i l\u00fd c\u1ee7a b\u1ea1n s\u1ebd t\u1eadn d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng s\u1eb5n \u0111\u1ec3 tr\u00edch xu\u1ea5t\u00a0 dataset metadata, v\u00e0 sau \u0111\u00f3 t\u1ea1o v\u00e0 th\u1ef1c thi truy v\u1ea5n SQL trong BigQuery \u0111\u1ec3 l\u1ea5y k\u1ebft qu\u1ea3 c\u1ee7a b\u1ea1n:<\/p>\n<p><a href=\"https:\/\/gcloudvn.com\/kienthuc\/cong-tac-voi-gemini-tren-google-drive-hien-co-san-tren-thiet-bi-di-dong\/attachment\/6_fwsa1hu-max-1600x1600\/\" rel=\"attachment wp-att-23910\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-23910\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/6_FwSa1HU.max-1600x1600-1.png\" alt=\"\" width=\"1534\" height=\"1442\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/6_FwSa1HU.max-1600x1600-1.png 1534w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/6_FwSa1HU.max-1600x1600-1-768x722.png 768w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2025\/10\/6_FwSa1HU.max-1600x1600-1-13x12.png 13w\" sizes=\"auto, (max-width: 1534px) 100vw, 1534px\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Ket_luan_Bien_Kho_du_lieu_thanh_%E2%80%9CXuong_san_xuat%E2%80%9D_AI_Agent\"><\/span><strong><span data-markdown-start-index=\"187\">K\u1ebft lu\u1eadn: Bi\u1ebfn Kho d\u1eef li\u1ec7u th\u00e0nh &#8220;X\u01b0\u1edfng s\u1ea3n xu\u1ea5t&#8221; AI Agent<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-markdown-start-index=\"248\">S\u1ef1 k\u1ebft h\u1ee3p gi\u1eefa Google BigQuery v\u1edbi b\u1ed9 c\u00f4ng c\u1ee5 Agent Development Kit (ADK) v\u00e0 Model Customization Platform (MCP) kh\u00f4ng ch\u1ec9 l\u00e0 m\u1ed9t b\u1ea3n c\u1eadp nh\u1eadt t\u00ednh n\u0103ng, n\u00f3 \u0111\u00e1nh d\u1ea5u m\u1ed9t b\u01b0\u1edbc chuy\u1ec3n m\u00ecnh chi\u1ebfn l\u01b0\u1ee3c. BigQuery gi\u1edd \u0111\u00e2y \u0111\u00e3 v\u01b0\u1ee3t ra ngo\u00e0i vai tr\u00f2 c\u1ee7a m\u1ed9t kho d\u1eef li\u1ec7u th\u1ee5 \u0111\u1ed9ng, \u0111\u1ec3 tr\u1edf th\u00e0nh m\u1ed9t &#8220;x\u01b0\u1edfng s\u1ea3n xu\u1ea5t&#8221; AI Agent th\u1ef1c th\u1ee5 \u2013 n\u01a1i d\u1eef li\u1ec7u, c\u00f4ng c\u1ee5 ph\u00e1t tri\u1ec3n v\u00e0 m\u00f4 h\u00ecnh t\u00f9y ch\u1ec9nh h\u1ed9i t\u1ee5 l\u00e0m m\u1ed9t.<\/span><\/p>\n<p><span data-markdown-start-index=\"642\">B\u1eb1ng c\u00e1ch ph\u00e1 v\u1ee1 c\u00e1c r\u00e0o c\u1ea3n truy\u1ec1n th\u1ed1ng, Google \u0111ang d\u00e2n ch\u1ee7 h\u00f3a kh\u1ea3 n\u0103ng t\u1ea1o ra c\u00e1c AI Agent ph\u1ee9c t\u1ea1p, trao quy\u1ec1n cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n \u0111\u1ec3 h\u1ecd c\u00f3 th\u1ec3 ki\u1ebfn t\u1ea1o nh\u1eefng &#8220;nh\u00e2n vi\u00ean s\u1ed1&#8221; th\u00f4ng minh, \u0111\u01b0\u1ee3c t\u00f9y ch\u1ec9nh s\u00e2u v\u00e0 am hi\u1ec3u b\u1ed1i c\u1ea3nh doanh nghi\u1ec7p m\u1ed9t c\u00e1ch nhanh ch\u00f3ng v\u00e0 hi\u1ec7u qu\u1ea3 h\u01a1n bao gi\u1edd h\u1ebft. T\u01b0\u01a1ng lai c\u1ee7a vi\u1ec7c ph\u00e1t tri\u1ec3n AI doanh nghi\u1ec7p kh\u00f4ng c\u00f2n n\u1eb1m \u1edf vi\u1ec7c di chuy\u1ec3n d\u1eef li\u1ec7u \u0111\u1ebfn v\u1edbi m\u00f4 h\u00ecnh, m\u00e0 l\u00e0 mang m\u00f4 h\u00ecnh v\u00e0 c\u00f4ng c\u1ee5 \u0111\u1ebfn v\u1edbi d\u1eef li\u1ec7u.<\/span><\/p>\n<p><span data-markdown-start-index=\"1088\">Tuy nhi\u00ean, h\u00e0nh tr\u00ecnh bi\u1ebfn kho d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n th\u00e0nh m\u1ed9t &#8220;x\u01b0\u1edfng s\u1ea3n xu\u1ea5t&#8221; AI Agent th\u00f4ng minh \u0111\u00f2i h\u1ecfi chuy\u00ean m\u00f4n s\u00e2u c\u1ea3 v\u1ec1 c\u1ea5u tr\u00fac d\u1eef li\u1ec7u l\u1eabn ki\u1ebfn tr\u00fac AI.<\/span><\/p>\n<p><strong><span data-markdown-start-index=\"1248\">H\u00e3y li\u00ean h\u1ec7 v\u1edbi Gimasys \u2013 \u0110\u1ed1i t\u00e1c cao c\u1ea5p c\u1ee7a Google Cloud ngay h\u00f4m nay.<\/span><\/strong><\/p>\n<p><span data-markdown-start-index=\"1323\">V\u1edbi kinh nghi\u1ec7m d\u00e0y d\u1eb7n trong vi\u1ec7c tri\u1ec3n khai c\u00e1c gi\u1ea3i ph\u00e1p d\u1eef li\u1ec7u tr\u00ean BigQuery v\u00e0 n\u0103ng l\u1ef1c t\u01b0 v\u1ea5n chi\u1ebfn l\u01b0\u1ee3c AI, ch\u00fang t\u00f4i s\u1ebd gi\u00fap b\u1ea1n kh\u00f4ng ch\u1ec9 hi\u1ec3u, m\u00e0 c\u00f2n khai th\u00e1c t\u1ed1i \u0111a s\u1ee9c m\u1ea1nh c\u1ee7a b\u1ed9 c\u00f4ng c\u1ee5 ADK v\u00e0 MCP, x\u00e2y d\u1ef1ng m\u1ed9t l\u1ed9 tr\u00ecnh v\u1eefng ch\u1eafc \u0111\u1ec3 bi\u1ebfn d\u1eef li\u1ec7u th\u00e0nh l\u1ee3i th\u1ebf c\u1ea1nh tranh th\u00f4ng qua c\u00e1c AI Agent \u0111\u1ed9c quy\u1ec1n.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cu\u1ed9c c\u00e1ch m\u1ea1ng v\u1ec1 AI Agent (T\u00e1c t\u1eed AI) \u0111ang di\u1ec5n ra v\u1edbi t\u1ed1c \u0111\u1ed9 ch\u00f3ng m\u1eb7t, v\u00e0 m\u1ecdi doanh nghi\u1ec7p \u0111\u1ec1u mu\u1ed1n s\u1edf h\u1eefu nh\u1eefng &#8220;nh\u00e2n vi\u00ean s\u1ed1&#8221; t\u1ef1 tr\u1ecb c\u1ee7a ri\u00eang m\u00ecnh. Tuy nhi\u00ean, con \u0111\u01b0\u1eddng t\u1eeb \u00fd&hellip;<\/p>","protected":false},"author":2,"featured_media":23909,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1,135],"tags":[],"class_list":["post-23972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kienthuc","category-google-cloud-platform","entry","has-media"],"_links":{"self":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts\/23972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/comments?post=23972"}],"version-history":[{"count":0,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts\/23972\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/media\/23909"}],"wp:attachment":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/media?parent=23972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/categories?post=23972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/tags?post=23972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}