1. บทนำ
ใน Codelab นี้ คุณจะได้ใช้ MCP Toolbox สำหรับฐานข้อมูลเพื่อให้ชุดข้อมูล BigQuery พร้อมใช้งาน
ใน Codelab นี้ คุณจะได้ใช้แนวทางแบบทีละขั้นตอนดังนี้
- ระบุชุดข้อมูล BigQuery ที่เฉพาะเจาะจง ("หมายเหตุประจำรุ่นของ Google Cloud") จากโปรแกรมชุดข้อมูลสาธารณะ BigQuery
- ตั้งค่า MCP Toolbox สำหรับฐานข้อมูลที่เชื่อมต่อกับชุดข้อมูล BigQuery
- พัฒนา Agent โดยใช้ Agent Development Kit (ADK) ซึ่งจะใช้ MCP Toolbox เพื่อตอบคำถามจากผู้ใช้เกี่ยวกับหมายเหตุประจำรุ่นของ Google Cloud
สิ่งที่คุณต้องทำ
- ตั้งค่า MCP Toolbox สำหรับฐานข้อมูลเพื่อแสดงบันทึกประจำรุ่นของ Google Cloud ซึ่งเป็นชุดข้อมูล BigQuery สาธารณะเป็นอินเทอร์เฟซ MCP ให้กับไคลเอ็นต์ MCP อื่นๆ (IDE, เครื่องมือ ฯลฯ)
สิ่งที่คุณจะได้เรียนรู้
- สำรวจชุดข้อมูลสาธารณะของ BigQuery แล้วเลือกชุดข้อมูลที่ต้องการ
- ตั้งค่า MCP Toolbox สำหรับฐานข้อมูลสำหรับชุดข้อมูลสาธารณะ BigQuery ที่เราต้องการทำให้พร้อมใช้งานสำหรับลูกค้า MCP
- ออกแบบและพัฒนา Agent โดยใช้ Agent Development Kit (ADK) เพื่อตอบคำค้นหาของผู้ใช้
- ทดสอบ Agent และ MCP Toolbox สำหรับฐานข้อมูลในสภาพแวดล้อมในเครื่อง
สิ่งที่คุณต้องมี
- เว็บเบราว์เซอร์ Chrome
- สภาพแวดล้อมในการพัฒนา Python ในเครื่อง
2. ก่อนเริ่มต้น
สร้างโปรเจ็กต์
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าโปรเจ็กต์เปิดใช้การเรียกเก็บเงินหรือไม่
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud และโหลด bq ไว้ล่วงหน้า คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของคอนโซล Google Cloud

- เมื่อเชื่อมต่อกับ Cloud Shell แล้ว ให้ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและตั้งค่าโปรเจ็กต์เป็นรหัสโปรเจ็กต์โดยใช้คำสั่งต่อไปนี้
gcloud auth list
- เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
- หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
- เปิดใช้ API ที่จำเป็นผ่านคำสั่งที่แสดงด้านล่าง การดำเนินการนี้อาจใช้เวลาสักครู่ โปรดอดใจรอ
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
run.googleapis.com \
cloudbuild.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
sqladmin.googleapis.com \
compute.googleapis.com
เมื่อเรียกใช้คำสั่งสำเร็จ คุณควรเห็นข้อความที่คล้ายกับข้อความที่แสดงด้านล่าง
Operation "operations/..." finished successfully.
คุณสามารถใช้คอนโซลแทนคำสั่ง gcloud ได้โดยค้นหาแต่ละผลิตภัณฑ์หรือใช้ลิงก์นี้
หากพลาด API ใดไป คุณก็เปิดใช้ได้เสมอในระหว่างการติดตั้งใช้งาน
โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ
3. ชุดข้อมูลบันทึกประจำรุ่นของ Google และลูกค้า MCP
ก่อนอื่น เรามาดูหมายเหตุประจำรุ่นของ Google Cloud ที่มีการอัปเดตเป็นประจำในหน้าเว็บหมายเหตุประจำรุ่นอย่างเป็นทางการของ Google Cloud ซึ่งมีภาพหน้าจอแสดงอยู่ด้านล่าง

คุณอาจติดตาม URL ฟีด แต่จะเกิดอะไรขึ้นหากเราเพียงแค่ถามใน Agent Chat เกี่ยวกับหมายเหตุประจำรุ่นเหล่านี้ เช่น "อัปเดตบันทึกประจำรุ่นของ Google Cloud ให้ฉันหน่อย"
4. MCP Toolbox สำหรับฐานข้อมูล
MCP Toolbox สำหรับฐานข้อมูลคือเซิร์ฟเวอร์ MCP แบบโอเพนซอร์สสำหรับฐานข้อมูล ซึ่งออกแบบมาโดยคำนึงถึงระดับองค์กรและคุณภาพระดับการผลิต ซึ่งช่วยให้คุณพัฒนาเครื่องมือได้ง่ายขึ้น เร็วขึ้น และปลอดภัยยิ่งขึ้นด้วยการจัดการความซับซ้อนต่างๆ เช่น การจัดกลุ่มการเชื่อมต่อ การตรวจสอบสิทธิ์ และอื่นๆ
กล่องเครื่องมือช่วยคุณสร้างเครื่องมือ Gen AI ที่ช่วยให้เอเจนต์เข้าถึงข้อมูลในฐานข้อมูลได้ กล่องเครื่องมือมีฟีเจอร์ต่อไปนี้
- การพัฒนาที่ง่ายขึ้น: ผสานรวมเครื่องมือกับเอเจนต์ของคุณด้วยโค้ดไม่ถึง 10 บรรทัด นำเครื่องมือไปใช้ซ้ำระหว่างเอเจนต์หรือเฟรมเวิร์กหลายรายการ และติดตั้งใช้งานเครื่องมือเวอร์ชันใหม่ได้ง่ายขึ้น
- ประสิทธิภาพที่ดียิ่งขึ้น: แนวทางปฏิบัติแนะนำ เช่น การรวมการเชื่อมต่อ การตรวจสอบสิทธิ์ และอื่นๆ
- การรักษาความปลอดภัยที่ดียิ่งขึ้น: การตรวจสอบสิทธิ์แบบผสานรวมเพื่อการเข้าถึงข้อมูลที่ปลอดภัยยิ่งขึ้น
- ความสามารถในการสังเกตแบบครบวงจร: เมตริกและการติดตามที่พร้อมใช้งานพร้อมการรองรับ OpenTelemetry ในตัว
- Toolbox ช่วยให้คุณเชื่อมต่อฐานข้อมูลกับผู้ช่วย AI ที่ใช้ MCP ได้อย่างง่ายดาย แม้ว่าผู้ช่วย AI นั้นจะอยู่ใน IDE ก็ตาม
Toolbox อยู่ระหว่างเฟรมเวิร์กการจัดระเบียบของแอปพลิเคชันกับฐานข้อมูล โดยมี Control Plane ที่ใช้ในการแก้ไข แจกจ่าย หรือเรียกใช้เครื่องมือ ซึ่งจะช่วยให้การจัดการเครื่องมือของคุณง่ายขึ้นด้วยการจัดหาตำแหน่งส่วนกลางสำหรับจัดเก็บและอัปเดตเครื่องมือ ทำให้คุณแชร์เครื่องมือระหว่างตัวแทนและแอปพลิเคชัน รวมถึงอัปเดตเครื่องมือเหล่านั้นได้โดยไม่ต้องติดตั้งแอปพลิเคชันใหม่

สรุปได้ง่ายๆ ดังนี้
- MCP Toolbox พร้อมใช้งานเป็นไบนารี อิมเมจคอนเทนเนอร์ หรือคุณจะสร้างจากแหล่งที่มาก็ได้
- โดยจะแสดงชุดเครื่องมือที่คุณกำหนดค่าผ่านไฟล์ tools.yaml เครื่องมือนี้สามารถใช้เชื่อมต่อกับแหล่งข้อมูลได้ คุณดูแหล่งข้อมูลต่างๆ ที่รองรับได้ เช่น AlloyDB, BigQuery เป็นต้น
- เนื่องจากตอนนี้กล่องเครื่องมือนี้รองรับ MCP แล้ว คุณจึงมีปลายทางเซิร์ฟเวอร์ MCP โดยอัตโนมัติซึ่ง Agent (IDE) สามารถใช้ได้ หรือคุณจะใช้ปลายทางดังกล่าวขณะพัฒนาแอปพลิเคชัน Agent โดยใช้เฟรมเวิร์กต่างๆ เช่น Agent Development Kit (ADK) ก็ได้
ในบล็อกโพสต์นี้ เราจะมุ่งเน้นที่ส่วนที่ไฮไลต์ไว้ด้านล่าง

โดยสรุป เราจะสร้างการกำหนดค่าใน MCP Toolbox สำหรับฐานข้อมูลที่รู้วิธีเชื่อมต่อกับชุดข้อมูล BigQuery จากนั้นเราจะพัฒนา Agent โดยใช้ Agent Development Kit (ADK) ซึ่งจะผสานรวมกับปลายทาง MCP Toolbox และช่วยให้เราส่งคำค้นหาที่เป็นธรรมชาติเพื่อถามเกี่ยวกับชุดข้อมูลได้ ลองนึกถึงแอปพลิเคชันเอเจนต์ที่คุณกำลังพัฒนาซึ่งรู้วิธีสื่อสารกับชุดข้อมูล BigQuery และเรียกใช้การค้นหาบางอย่าง
5. ชุดข้อมูล BigQuery สำหรับหมายเหตุประจำรุ่นของ Google Cloud
โปรแกรมชุดข้อมูลสาธารณะของ Google Cloud เป็นโปรแกรมที่จัดหาชุดข้อมูลต่างๆ สำหรับแอปพลิเคชันของคุณ ชุดข้อมูลดังกล่าวชุดหนึ่งคือฐานข้อมูลหมายเหตุประจำรุ่นของ Google Cloud ชุดข้อมูลนี้จะให้ข้อมูลเดียวกันกับหน้าเว็บหมายเหตุประจำรุ่นอย่างเป็นทางการของ Google Cloud และพร้อมใช้งานเป็นชุดข้อมูลที่ค้นหาได้แบบสาธารณะ

ในการทดสอบ ฉันเพียงแค่ตรวจสอบชุดข้อมูลโดยการเรียกใช้การค้นหาอย่างง่ายที่แสดงด้านล่าง
SELECT
product_name,description,published_at
FROM
`bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
WHERE
DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
GROUP BY product_name,description,published_at
ORDER BY published_at DESC
ซึ่งจะแสดงรายการระเบียนจากชุดข้อมูลหมายเหตุประจำรุ่นที่เผยแพร่ในช่วง 7 วันที่ผ่านมา
แทนที่ด้วยชุดข้อมูลอื่นๆ ที่คุณเลือก รวมถึงการค้นหาและพารามิเตอร์ที่เกี่ยวข้องที่คุณต้องการ ตอนนี้เราเพียงแค่ต้องตั้งค่านี้เป็นแหล่งข้อมูลและเครื่องมือใน MCP Toolbox สำหรับฐานข้อมูล มาดูวิธีกัน
6. การติดตั้ง MCP Toolbox สำหรับฐานข้อมูล
เปิดเทอร์มินัลในเครื่องของคุณและสร้างโฟลเดอร์ชื่อ mcp-toolbox
mkdir mcp-toolbox
ไปที่โฟลเดอร์ mcp-toolbox ผ่านคำสั่งที่แสดงด้านล่าง
cd mcp-toolbox
ติดตั้ง MCP Toolbox สำหรับฐานข้อมูลเวอร์ชันไบนารีผ่านสคริปต์ที่ระบุไว้ด้านล่าง คำสั่งด้านล่างนี้ใช้สำหรับ Linux แต่หากคุณใช้ Mac หรือ Windows โปรดตรวจสอบว่าคุณดาวน์โหลดไบนารีที่ถูกต้อง ดูหน้าเผยแพร่สำหรับระบบปฏิบัติการและสถาปัตยกรรมของคุณ แล้วดาวน์โหลดไบนารีที่ถูกต้อง
export VERSION=1.1.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
ตอนนี้เรามีกล่องเครื่องมือเวอร์ชันไบนารีพร้อมใช้งานแล้ว ขั้นตอนถัดไปคือการกำหนดค่ากล่องเครื่องมือด้วยแหล่งข้อมูลและการกำหนดค่าอื่นๆ
7. การกำหนดค่า MCP Toolbox สำหรับฐานข้อมูล
ตอนนี้เราต้องกำหนดชุดข้อมูลและเครื่องมือ BigQuery ในไฟล์ tools.yaml ที่จำเป็นสำหรับ MCP Toolbox สำหรับฐานข้อมูล ไฟล์ tools.yaml เป็นวิธีหลักในการกำหนดค่า Toolbox
สร้างไฟล์ชื่อ tools.yaml ในโฟลเดอร์เดียวกัน เช่น mcp-toolbox โดยมีเนื้อหาดังที่แสดงด้านล่าง
คุณสามารถใช้โปรแกรมแก้ไข nano ที่มีอยู่ใน Cloud Shell คำสั่ง nano มีดังนี้ "nano tools.yaml"
อย่าลืมแทนที่ค่า YOUR_PROJECT_ID ด้วยรหัสโปรเจ็กต์ Google Cloud ของคุณ
kind: source
name: my-bq-source
type: bigquery
project: gcp-experiments-349209
---
kind: tool
name: search_release_notes_bq
type: bigquery-sql
source: my-bq-source
description: Use this tool to get information on Google Cloud Release Notes.
statement: |
SELECT
product_name,description,published_at
FROM
`bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
WHERE
DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
GROUP BY product_name,description,published_at
ORDER BY published_at DESC;
---
kind: toolset
name: my_bq_toolset
tools:
- search_release_notes_bq
มาทำความเข้าใจไฟล์โดยย่อกัน
- แหล่งที่มาแสดงถึงแหล่งข้อมูลต่างๆ ที่เครื่องมือสามารถโต้ตอบด้วย แหล่งที่มาแสดงถึงแหล่งข้อมูลที่เครื่องมือโต้ตอบด้วยได้ คุณกำหนดแหล่งข้อมูลเป็นแผนที่ได้ในส่วนแหล่งข้อมูลของไฟล์ tools.yaml โดยปกติแล้ว การกำหนดค่าแหล่งที่มาจะมีข้อมูลที่จำเป็นต่อการเชื่อมต่อและโต้ตอบกับฐานข้อมูล ในกรณีของเรา เราได้กำหนดแหล่งที่มาของ BigQuery
my-bq-sourceและคุณต้องระบุรหัสโปรเจ็กต์ Google Cloud ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิงแหล่งข้อมูล - เครื่องมือจะกำหนดการดำเนินการที่ Agent สามารถทำได้ เช่น การอ่านและเขียนไปยังแหล่งข้อมูล เครื่องมือแสดงถึงการดำเนินการที่เอเจนต์ทำได้ เช่น การเรียกใช้คำสั่ง SQL คุณกำหนดเครื่องมือเป็นแผนที่ได้ในส่วนเครื่องมือของไฟล์ tools.yaml โดยปกติแล้ว เครื่องมือจะต้องมีแหล่งที่มาเพื่อดำเนินการ ในกรณีนี้ เราจะกำหนดเครื่องมือเดียวคือ
search_release_notes_bqซึ่งอ้างอิงถึงแหล่งที่มาของ BigQuerymy-bq-sourceที่เรากําหนดไว้ในขั้นตอนแรก นอกจากนี้ยังมีข้อความและคำสั่งที่ไคลเอ็นต์เอเจนต์ AI จะใช้ด้วย ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิงเครื่องมือ - สุดท้ายคือชุดเครื่องมือที่ช่วยให้คุณกำหนดกลุ่มเครื่องมือที่ต้องการโหลดพร้อมกันได้ ซึ่งอาจมีประโยชน์ในการกำหนดกลุ่มต่างๆ ตามตัวแทนหรือแอปพลิเคชัน ในกรณีของเรา เรามีคำจำกัดความชุดเครื่องมือซึ่งปัจจุบันเราได้กำหนดเครื่องมือที่มีอยู่เพียงรายการเดียว
search_release_notes_bqที่เรากำหนด คุณมีชุดเครื่องมือได้มากกว่า 1 ชุด ซึ่งมีเครื่องมือต่างๆ ผสมกัน
ดังนั้นในตอนนี้ เราจึงกำหนดเครื่องมือเพียงตัวเดียวที่รับบันทึกประจำรุ่นในช่วง 7 วันที่ผ่านมาตามคำค้นหา แต่คุณก็ใช้ชุดค่าผสมต่างๆ กับพารามิเตอร์ได้เช่นกัน
ดูรายละเอียดการกำหนดค่าเพิ่มเติมได้ในการกำหนดค่าแหล่งข้อมูล BigQuery ใน MCP Toolbox สำหรับฐานข้อมูล
8. การทดสอบ MCP Toolbox สำหรับฐานข้อมูล
เราได้ดาวน์โหลดและกำหนดค่ากล่องเครื่องมือด้วยไฟล์ tools.yaml ในโฟลเดอร์ mcp-toolbox มาเรียกใช้ในเครื่องกันก่อน
เรียกใช้คำสั่งต่อไปนี้
./toolbox --config "tools.yaml"
เมื่อดำเนินการสำเร็จ คุณควรเห็นการเริ่มต้นเซิร์ฟเวอร์พร้อมเอาต์พุตตัวอย่างที่คล้ายกับเอาต์พุตด้านล่าง
2026-04-29T10:26:15.435384+05:30 INFO "Initialized 1 sources: my-bq-source"
2026-04-29T10:26:15.435424+05:30 INFO "Initialized 0 authServices: "
2026-04-29T10:26:15.435428+05:30 INFO "Initialized 0 embeddingModels: "
2026-04-29T10:26:15.435446+05:30 INFO "Initialized 1 tools: search_release_notes_bq"
2026-04-29T10:26:15.435456+05:30 INFO "Initialized 2 toolsets: my_bq_toolset, default"
2026-04-29T10:26:15.435461+05:30 INFO "Initialized 0 prompts: "
2026-04-29T10:26:15.435467+05:30 INFO "Initialized 1 promptsets: default"
2026-04-29T10:26:15.435487+05:30 WARN "wildcard (`*`) allows all origin to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-origins` flag"
2026-04-29T10:26:15.435508+05:30 WARN "wildcard (`*`) allows all hosts to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-hosts` flag to prevent DNS rebinding attacks"
2026-04-29T10:26:15.435728+05:30 INFO "Server ready to serve!"
เซิร์ฟเวอร์ MCP Toolbox จะทำงานในพอร์ต 5000 โดยค่าเริ่มต้น หากพบว่ามีการใช้พอร์ต 5000 อยู่แล้ว คุณสามารถใช้พอร์ตอื่น (เช่น 7000) ตามคำสั่งที่แสดงด้านล่าง โปรดใช้ 7000 แทนพอร์ต 5000 ในคำสั่งถัดไป
./toolbox --config "tools.yaml" --port 7000
มาใช้ Cloud Shell เพื่อทดสอบกัน
คลิกตัวอย่างเว็บใน Cloud Shell ดังที่แสดงด้านล่าง

คลิกเปลี่ยนพอร์ตและตั้งค่าพอร์ตเป็น 5000 ตามที่แสดงด้านล่าง แล้วคลิกเปลี่ยนและแสดงตัวอย่าง

ซึ่งควรให้ผลลัพธ์ต่อไปนี้

ทดสอบเครื่องมือผ่าน UI ของ MCP Toolbox สำหรับฐานข้อมูล
กล่องเครื่องมือมีอินเทอร์เฟซแบบภาพ (UI ของกล่องเครื่องมือ) เพื่อโต้ตอบกับเครื่องมือโดยตรงด้วยการแก้ไขพารามิเตอร์ จัดการส่วนหัว และเรียกใช้ ทั้งหมดนี้อยู่ใน UI เว็บที่เรียบง่าย
หากต้องการทดสอบ ให้เรียกใช้คำสั่งก่อนหน้าที่เราใช้เพื่อเปิดใช้เซิร์ฟเวอร์กล่องเครื่องมือด้วยตัวเลือก --ui
โดยปิดอินสแตนซ์ก่อนหน้าของเซิร์ฟเวอร์ MCP Toolbox สำหรับฐานข้อมูลที่คุณอาจเรียกใช้ แล้วป้อนคำสั่งต่อไปนี้
./toolbox --tools-file "tools.yaml" --ui
คุณควรเห็นเอาต์พุตที่เซิร์ฟเวอร์เชื่อมต่อกับแหล่งข้อมูลของเราได้ และโหลดชุดเครื่องมือและเครื่องมือต่างๆ ตัวอย่างเอาต์พุตแสดงอยู่ด้านล่าง และคุณจะเห็นว่าเอาต์พุตจะระบุว่า UI ของกล่องเครื่องมือพร้อมใช้งานแล้ว
2026-04-29T10:29:44.750446+05:30 INFO "Initialized 1 sources: my-bq-source"
2026-04-29T10:29:44.750463+05:30 INFO "Initialized 0 authServices: "
2026-04-29T10:29:44.750467+05:30 INFO "Initialized 0 embeddingModels: "
2026-04-29T10:29:44.750474+05:30 INFO "Initialized 1 tools: search_release_notes_bq"
2026-04-29T10:29:44.750482+05:30 INFO "Initialized 2 toolsets: my_bq_toolset, default"
2026-04-29T10:29:44.750487+05:30 INFO "Initialized 0 prompts: "
2026-04-29T10:29:44.750493+05:30 INFO "Initialized 1 promptsets: default"
2026-04-29T10:29:44.7505+05:30 WARN "wildcard (`*`) allows all origin to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-origins` flag"
2026-04-29T10:29:44.750512+05:30 WARN "wildcard (`*`) allows all hosts to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-hosts` flag to prevent DNS rebinding attacks"
2026-04-29T10:29:44.750601+05:30 INFO "Server ready to serve!"
2026-04-29T10:29:44.750605+05:30 INFO "Toolbox UI is up and running at: http://127.0.0.1:5000/ui"
คลิก URL ของ UI และตรวจสอบว่าคุณมี /ui ที่ส่วนท้ายของ URL ซึ่งจะแสดง UI ดังที่แสดงด้านล่าง

คลิกตัวเลือกเครื่องมือทางด้านซ้ายเพื่อดูเครื่องมือที่กำหนดค่าไว้ ในกรณีของเราควรมีเพียงเครื่องมือเดียวคือ search_release_notes_bq ดังที่แสดงด้านล่าง

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

9. การเขียน Agent ด้วย Agent Development Kit (ADK)
ติดตั้ง Agent Development Kit (ADK)
เปิดแท็บเทอร์มินัลใหม่ใน Cloud Shell แล้วสร้างโฟลเดอร์ชื่อ my-agents ดังนี้ ไปที่โฟลเดอร์ my-agents ด้วย
mkdir my-agents
cd my-agents
ตอนนี้มาสร้างสภาพแวดล้อมเสมือนของ Python โดยใช้ venv ดังนี้
python -m venv .venv
เปิดใช้งานสภาพแวดล้อมเสมือนดังนี้
source .venv/bin/activate
ติดตั้งแพ็กเกจ ADK และ MCP Toolbox สำหรับฐานข้อมูลพร้อมกับทรัพยากร Dependency ของ Langchain ดังนี้
pip install google-adk toolbox-core
ตอนนี้คุณจะเรียกใช้ยูทิลิตี adk ได้ดังนี้
adk
โดยจะแสดงรายการคำสั่งให้คุณ
$ adk
Usage: adk [OPTIONS] COMMAND [ARGS]...
Agent Development Kit CLI tools.
Options:
--help Show this message and exit.
Commands:
api_server Starts a FastAPI server for agents.
create Creates a new app in the current folder with prepopulated agent template.
deploy Deploys agent to hosted environments.
eval Evaluates an agent given the eval sets.
run Runs an interactive CLI for a certain agent.
web Starts a FastAPI server with Web UI for agents.
การสร้างแอปพลิเคชันตัวแทนแรก
ตอนนี้เราจะใช้ adk เพื่อสร้างโครงร่างสำหรับแอปพลิเคชันตัวแทนบันทึกประจำรุ่นของ Google Cloud ผ่านคำสั่ง adk create โดยมีชื่อแอปเป็น **(gcp_releasenotes_agent_app)**ดังที่ระบุไว้ด้านล่าง
adk create gcp_releasenotes_agent_app
ทำตามขั้นตอนและเลือกตัวเลือกต่อไปนี้
- โมเดล Gemini สำหรับการเลือกโมเดลสำหรับ Agent รูท
- เลือก Vertex AI สำหรับแบ็กเอนด์
- ระบบจะแสดงรหัสโปรเจ็กต์และภูมิภาค Google เริ่มต้น เลือกค่าเริ่มต้น
Choose a model for the root agent:
1. gemini-2.5-flash
2. Other models (fill later)
Choose model (1, 2): 1
1. Google AI
2. Vertex AI
Choose a backend (1, 2): 2
You need an existing Google Cloud account and project, check out this link for details:
https://google.github.io/adk-docs/get-started/quickstart/#gemini---google-cloud-vertex-ai
Enter Google Cloud project ID [YOUR_GOOGLE_PROJECT_ID]:
Enter Google Cloud region [us-central1]:
Agent created in ../my-agents/gcp_releasenotes_agent_app:
- .env
- __init__.py
- agent.py
สังเกตโฟลเดอร์ที่สร้างเทมเพลตเริ่มต้นและไฟล์ที่จำเป็นสำหรับเอเจนต์
เริ่มจากไฟล์ .env โดยมีเนื้อหาดังนี้
GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION=YOUR_GOOGLE_PROJECT_REGION
ค่าเหล่านี้บ่งบอกว่าเราจะใช้ Gemini ผ่าน Vertex AI พร้อมกับค่าที่เกี่ยวข้องสำหรับรหัสโปรเจ็กต์และตำแหน่ง Google Cloud
จากนั้นเราก็มีไฟล์ __init__.py ซึ่งทำเครื่องหมายโฟลเดอร์เป็นโมดูลและมีคำสั่งเดียวที่นำเข้าเอเจนต์จากไฟล์ agent.py
from . import agent
สุดท้าย มาดูไฟล์ agent.py กัน เนื้อหาจะแสดงด้านล่าง
from google.adk.agents import Agent
root_agent = Agent(
model='gemini-2.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
instruction='Answer user questions to the best of your knowledge',
)
นี่คือ Agent ที่ง่ายที่สุดที่คุณเขียนได้ด้วย ADK จากหน้าเอกสารประกอบ ADK, Agent คือหน่วยการดำเนินการแบบสแตนด์อโลนที่ออกแบบมาให้ทำงานได้โดยอัตโนมัติเพื่อให้บรรลุเป้าหมายที่เฉพาะเจาะจง Agent สามารถทำงาน โต้ตอบกับผู้ใช้ ใช้เครื่องมือภายนอก และประสานงานกับ Agent อื่นๆ ได้
โดยเฉพาะอย่างยิ่ง LLMAgent ซึ่งมักจะใช้ชื่อแทนว่า Agent จะใช้โมเดลภาษาขนาดใหญ่ (LLM) เป็นเครื่องมือหลักในการทำความเข้าใจภาษาธรรมชาติ การให้เหตุผล การวางแผน การสร้างคำตอบ และการตัดสินใจแบบไดนามิกว่าจะดำเนินการอย่างไรหรือจะใช้เครื่องมือใด ทำให้เหมาะสำหรับงานที่ยืดหยุ่นและเน้นภาษา ดูข้อมูลเพิ่มเติมเกี่ยวกับเอเจนต์ LLM ที่นี่
เท่านี้ก็เสร็จสิ้นการจัดโครงสร้างเพื่อสร้าง Agent พื้นฐานโดยใช้ Agent Development Kit (ADK) ตอนนี้เราจะเชื่อมต่อเอเจนต์กับกล่องเครื่องมือ MCP เพื่อให้เอเจนต์ใช้เครื่องมือดังกล่าวตอบคำค้นหาจากผู้ใช้ (ในกรณีนี้คือหมายเหตุประจำรุ่นของ Google Cloud)
10. การเชื่อมต่อเอเจนต์กับเครื่องมือ
เราจะเชื่อมต่อเอเจนต์นี้กับเครื่องมือตอนนี้ ในบริบทของ ADK เครื่องมือแสดงถึงความสามารถเฉพาะที่มอบให้แก่ AI Agent ซึ่งช่วยให้ AI Agent ดำเนินการและโต้ตอบกับโลกภายนอกความสามารถหลักในการสร้างข้อความและการให้เหตุผล
ในกรณีนี้ เราจะติดตั้งเครื่องมือที่กำหนดค่าไว้ใน MCP Toolbox สำหรับฐานข้อมูลให้กับ Agent ของเรา
แก้ไขไฟล์ agent.py ด้วยโค้ดต่อไปนี้ โปรดทราบว่าเราใช้พอร์ตเริ่มต้น 5000 ในโค้ด แต่หากคุณใช้หมายเลขพอร์ตอื่น โปรดใช้หมายเลขนั้น
from google.adk.agents import Agent
from toolbox_core import ToolboxSyncClient
toolbox = ToolboxSyncClient("http://127.0.0.1:5000")
# Load all the tools
tools = toolbox.load_toolset('my_bq_toolset')
root_agent = Agent(
name="gcp_releasenotes_agent",
model="gemini-2.5-flash",
description=(
"Agent to answer questions about Google Cloud Release notes."
),
instruction=(
"You are a helpful agent who can answer user questions about the Google Cloud Release notes. Use the tools to answer the question"
),
tools=tools,
)
ตอนนี้เราสามารถทดสอบ Agent ที่จะดึงข้อมูลจริงจากชุดข้อมูล BigQuery ที่กำหนดค่าด้วย MCP Toolbox สำหรับฐานข้อมูลได้แล้ว
โดยทำตามลำดับต่อไปนี้
เปิดใช้ MCP Toolbox สำหรับฐานข้อมูลในเทอร์มินัลหนึ่งของ Cloud Shell คุณอาจเรียกใช้ในเครื่องที่พอร์ต 5000 อยู่แล้วเนื่องจากเราได้ทดสอบไปก่อนหน้านี้ หากไม่ได้ใช้ ให้เรียกใช้คำสั่งต่อไปนี้ (จากโฟลเดอร์ mcp-toolbox) เพื่อเริ่มเซิร์ฟเวอร์
./toolbox --config "tools.yaml"
คุณควรเห็นเอาต์พุตที่เซิร์ฟเวอร์เชื่อมต่อกับแหล่งข้อมูลของเราได้ และโหลดชุดเครื่องมือและเครื่องมือต่างๆ
เมื่อเซิร์ฟเวอร์ MCP เริ่มทำงานเรียบร้อยแล้ว ให้เปิดใช้เอเจนต์ในเทอร์มินัลอื่นผ่านคำสั่ง adk run (จากโฟลเดอร์ my-agents) ที่แสดงด้านล่าง คุณยังใช้คำสั่ง adk web ได้ด้วยหากต้องการ
$ adk run gcp_releasenotes_agent_app/
Running agent gcp_releasenotes_agent, type exit to exit.
[user]: Hello
[gcp_releasenotes_agent]: Hello! I'm here to help you with Google Cloud Release Notes. What would you like to know today?
[user]: get me the google cloud release notes
[gcp_releasenotes_agent]: Here are the Google Cloud Release Notes:
* **Cloud Asset Inventory** (Published: 2026-04-28)
The following resource types are publicly available through the ExportAssets, ListAssets, BatchGetAssetsHistory, QueryAssets, Feed, SearchAllResources, and SearchAllIamPolicies APIs.
* App Lifecycle Manager
* `saasservicemgmt.googleapis.com/Saas`
* `saasservicemgmt.googleapis.com/Tenant`
* `saasservicemgmt.googleapis.com/UnitKind`
* `saasservicemgmt.googleapis.com/Unit`
* `saasservicemgmt.googleapis.com/Release`
* Backup and DR
* `backupdr.googleapis.com/BackupPlanRevision`
* Parallelstore
* `parallelstore.googleapis.com/Instance`
* Vertex AI
* `aiplatform.googleapis.com/DeploymentResourcePool`
* **Google Cloud Contact Center as a Service** (Published: 2026-04-27)
**Call scheduling improvements**
We've made the following improvements to call scheduling for web SDK v3 and the headless web SDK:
* **Configurable time slots**. You can configure the length of call-scheduling time slots.
* **Day-based time slot selection**. End-users can browse available time slots organized by day.
* **Rescheduling**. If an end-user reopens the web SDK and has an existing scheduled call, they're prompted to manage that appointment (reschedule or cancel) before starting a new flow.
* **Cancellation**. End-users can cancel a previously scheduled call.
* **Queue-level configuration**. You can configure call scheduling at the queue level.
**Note:** Headless web SDK users must specify `useAdvancedCallScheduling: true` with calls to the `getTimeSlots` method to access these call scheduling improvements.
Administrators:
* There's a new **Scheduled Calls** pane on the **Settings > Calls** page.
* There's a new **Scheduled Calls** section in the **Settings > Queue > Web > SELECT_QUEUE** pane.
* We moved **Scheduled Call Countdown** and **Scheduled Call Expiration** from **Settings > Calls > Call Details** to **Settings > Calls > Scheduled Calls**.
* We've added the following settings to the **Settings > Calls > Scheduled Calls** pane:
* **Consumers can schedule calls up to SELECT_INTEGER day(s) in the future**
* **Static > Maximum calls per time slot**
User experience changes:
* For **Scheduled Calls**, if you select **Consumers can schedule calls up to SELECT_INTEGER day(s) in the future**, a new **Select a day** screen appears to end-users who reschedule a call.
* **Compute Engine** (Published: 2026-04-27)
**Generally available**: Compute Engine now offers support for AI zones. To learn more, see AI zones.
* **Cloud Storage** (Published: 2026-04-27)
Cloud Storage now offers support for AI zones. To learn more, see AI zones.
* **Apigee hybrid** (Published: 2026-04-27)
**Sidecar authentication for Workload Identity Federation on non-GKE platforms**
Starting in version v1.14.4, you can now use a sidecar along with Workload Identity Federation on non-GKE platforms to mount security tokens from your preferred identity provider (IDP) for service account authentication. See Use sidecar authentication for Workload Identity Federation on non-GKE platforms.
* **Cloud Workstations** (Published: 2026-04-27)
The preconfigured base images include a notification when the `running_timeout` for the workstation is close to being reached.
* **Cloud Trace** (Published: 2026-04-27)
Cloud Trace is a service covered by the Cloud Obse
......
......
โปรดทราบว่า Agent ใช้เครื่องมือที่เรากำหนดค่าไว้ใน MCP Toolbox สำหรับฐานข้อมูล (search_release_notes_bq) และดึงข้อมูลจากชุดข้อมูล BigQuery แล้วจัดรูปแบบการตอบกลับตามนั้น
11. ขอแสดงความยินดี
ขอแสดงความยินดี คุณกำหนดค่า MCP Toolbox สำหรับฐานข้อมูลและกำหนดค่าชุดข้อมูล BigQuery เพื่อให้เข้าถึงได้ภายในไคลเอ็นต์ MCP เรียบร้อยแล้ว