1. บทนำ
ใน Codelab นี้ คุณจะได้ใช้ MCP Toolbox for Databases เพื่อทำให้ชุดข้อมูล BigQuery พร้อมใช้งาน
ใน Codelab นี้ คุณจะได้ใช้แนวทางแบบทีละขั้นตอนดังนี้
- ระบุชุดข้อมูล BigQuery ที่เฉพาะเจาะจง ("หมายเหตุประจำรุ่นของ Google Cloud") จากโปรแกรมชุดข้อมูลสาธารณะ BigQuery
- ตั้งค่ากล่องเครื่องมือ MCP สำหรับฐานข้อมูลที่เชื่อมต่อกับชุดข้อมูล BigQuery
- พัฒนา Agent โดยใช้ Agent Development Kit (ADK) ที่จะใช้ MCP Toolbox เพื่อตอบคำค้นหาจากผู้ใช้เกี่ยวกับหมายเหตุประจำรุ่นของ Google Cloud
สิ่งที่คุณต้องทำ
- ตั้งค่ากล่องเครื่องมือ MCP สำหรับฐานข้อมูลเพื่อแสดงหมายเหตุประจำรุ่นของ Google Cloud ซึ่งเป็นชุดข้อมูล BigQuery สาธารณะเป็นอินเทอร์เฟซ MCP ให้กับไคลเอ็นต์ MCP อื่นๆ (IDE, เครื่องมือ ฯลฯ)
สิ่งที่คุณจะได้เรียนรู้
- สำรวจชุดข้อมูลสาธารณะของ BigQuery แล้วเลือกชุดข้อมูลที่ต้องการ
- ตั้งค่ากล่องเครื่องมือ MCP สำหรับฐานข้อมูลสำหรับชุดข้อมูลสาธารณะ BigQuery ที่เราต้องการทำให้พร้อมใช้งานสำหรับลูกค้า MCP
- ออกแบบและพัฒนา Agent โดยใช้ Agent Development Kit (ADK) เพื่อตอบคำค้นหาของผู้ใช้
- ทดสอบกล่องเครื่องมือ Agent และ MCP สำหรับฐานข้อมูลในสภาพแวดล้อมในเครื่อง
สิ่งที่คุณต้องมี
- เว็บเบราว์เซอร์ Chrome
- สภาพแวดล้อมในการพัฒนา Python ในเครื่อง
2. ก่อนเริ่มต้น
สร้างโปรเจ็กต์
- ใน Google Cloud Console ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ 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>
โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ
3. ชุดข้อมูลบันทึกประจำรุ่นของ Google และไคลเอ็นต์ MCP
ก่อนอื่น เรามาดูหมายเหตุประจำรุ่นของ Google Cloud ที่มีการอัปเดตเป็นประจำในหน้าเว็บหมายเหตุประจำรุ่นอย่างเป็นทางการของ Google Cloud ซึ่งมีภาพหน้าจอแสดงอยู่ด้านล่าง
คุณอาจสมัครรับข้อมูล URL ฟีด แต่จะเกิดอะไรขึ้นหากเราเพียงแค่ถามใน Agent Chat เกี่ยวกับหมายเหตุประจำรุ่นเหล่านี้ เช่น "อัปเดตบันทึกประจำรุ่นของ Google Cloud ให้ฉันหน่อย"
4. กล่องเครื่องมือ MCP สำหรับฐานข้อมูล
MCP Toolbox for Databases เป็นเซิร์ฟเวอร์ MCP แบบโอเพนซอร์สสำหรับฐานข้อมูล โดยได้รับการออกแบบมาเพื่อคุณภาพระดับองค์กรและระดับการผลิต ซึ่งช่วยให้คุณพัฒนาเครื่องมือได้ง่ายขึ้น เร็วขึ้น และปลอดภัยยิ่งขึ้นด้วยการจัดการความซับซ้อนต่างๆ เช่น การจัดกลุ่มการเชื่อมต่อ การตรวจสอบสิทธิ์ และอื่นๆ
กล่องเครื่องมือช่วยคุณสร้างเครื่องมือ Gen AI ที่ช่วยให้ตัวแทนเข้าถึงข้อมูลในฐานข้อมูลได้ กล่องเครื่องมือมีฟีเจอร์ต่อไปนี้
- การพัฒนาที่ง่ายขึ้น: ผสานรวมเครื่องมือกับเอเจนต์ของคุณด้วยโค้ดไม่ถึง 10 บรรทัด นำเครื่องมือกลับมาใช้ซ้ำระหว่างเอเจนต์หรือเฟรมเวิร์กหลายรายการ และติดตั้งใช้งานเครื่องมือเวอร์ชันใหม่ได้ง่ายขึ้น
- ประสิทธิภาพที่ดียิ่งขึ้น: แนวทางปฏิบัติแนะนำ เช่น การรวมการเชื่อมต่อ การตรวจสอบสิทธิ์ และอื่นๆ
- การรักษาความปลอดภัยที่ดียิ่งขึ้น: การตรวจสอบสิทธิ์แบบผสานรวมเพื่อการเข้าถึงข้อมูลที่ปลอดภัยยิ่งขึ้น
- การสังเกตการณ์แบบครบวงจร: เมตริกและการติดตามพร้อมใช้งานที่รองรับ OpenTelemetry ในตัว
- Toolbox ช่วยให้คุณเชื่อมต่อฐานข้อมูลกับผู้ช่วย AI ที่รองรับ MCP ได้อย่างง่ายดาย แม้ว่าผู้ช่วย AI นั้นจะอยู่ใน IDE ก็ตาม
Toolbox อยู่ระหว่างเฟรมเวิร์กการจัดระเบียบของแอปพลิเคชันกับฐานข้อมูล โดยมี Control Plane ที่ใช้ในการแก้ไข แจกจ่าย หรือเรียกใช้เครื่องมือ ซึ่งจะช่วยให้การจัดการเครื่องมือของคุณง่ายขึ้นด้วยการจัดหาตำแหน่งส่วนกลางสำหรับจัดเก็บและอัปเดตเครื่องมือ ทำให้คุณแชร์เครื่องมือระหว่างตัวแทนและแอปพลิเคชัน รวมถึงอัปเดตเครื่องมือเหล่านั้นได้โดยไม่ต้องติดตั้งแอปพลิเคชันใหม่
สรุปได้ง่ายๆ ดังนี้
- MCP Toolbox พร้อมใช้งานเป็นไบนารี อิมเมจคอนเทนเนอร์ หรือคุณจะสร้างจากแหล่งที่มาก็ได้
- โดยจะแสดงชุดเครื่องมือที่คุณกำหนดค่าผ่านไฟล์ tools.yaml เครื่องมือนี้สามารถใช้เชื่อมต่อกับแหล่งข้อมูลได้ คุณดูแหล่งข้อมูลต่างๆ ที่รองรับได้ เช่น AlloyDB, BigQuery เป็นต้น
- เนื่องจากตอนนี้กล่องเครื่องมือนี้รองรับ MCP แล้ว คุณจึงมีปลายทางเซิร์ฟเวอร์ MCP โดยอัตโนมัติซึ่งเอเจนต์ (IDE) สามารถใช้ได้ หรือคุณจะใช้ปลายทางดังกล่าวขณะพัฒนาแอปพลิเคชันเอเจนต์โดยใช้เฟรมเวิร์กต่างๆ เช่น Agent Development Kit (ADK) ก็ได้
ในบล็อกโพสต์นี้ เราจะมุ่งเน้นไปที่ส่วนที่ไฮไลต์ไว้ด้านล่าง
โดยสรุป เราจะสร้างการกำหนดค่าในกล่องเครื่องมือ MCP สำหรับฐานข้อมูลที่รู้วิธีเชื่อมต่อกับชุดข้อมูล 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 สำหรับฐานข้อมูล มาดูวิธีกัน
6. การติดตั้ง MCP Toolbox สำหรับฐานข้อมูล
เปิดเทอร์มินัลในเครื่องของคุณและสร้างโฟลเดอร์ชื่อ mcp-toolbox
mkdir mcp-toolbox
ไปที่โฟลเดอร์ mcp-toolbox
ผ่านคำสั่งที่แสดงด้านล่าง
cd mcp-toolbox
ติดตั้ง MCP Toolbox for Databases เวอร์ชันไบนารีผ่านสคริปต์ที่ระบุไว้ด้านล่าง คำสั่งด้านล่างนี้ใช้สำหรับ Linux แต่หากคุณใช้ Mac หรือ Windows โปรดตรวจสอบว่าคุณดาวน์โหลดไบนารีที่ถูกต้อง ดูหน้าเผยแพร่สำหรับระบบปฏิบัติการและสถาปัตยกรรมของคุณ แล้วดาวน์โหลดไบนารีที่ถูกต้อง
export VERSION=0.13.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
ตอนนี้เรามีเวอร์ชันไบนารีของกล่องเครื่องมือพร้อมใช้งานแล้ว ขั้นตอนถัดไปคือการกำหนดค่ากล่องเครื่องมือด้วยแหล่งข้อมูลและการกำหนดค่าอื่นๆ
7. การกำหนดค่ากล่องเครื่องมือ MCP สำหรับฐานข้อมูล
ตอนนี้เราต้องกําหนดชุดข้อมูลและเครื่องมือ BigQuery ในไฟล์ tools.yaml
ที่ MCP Toolbox for Database ต้องการ ไฟล์ tools.yaml
เป็นวิธีหลักในการกำหนดค่า Toolbox
สร้างไฟล์ชื่อ tools.yaml
ในโฟลเดอร์เดียวกัน เช่น mcp-toolbox
โดยมีเนื้อหาดังที่แสดงด้านล่าง
คุณสามารถใช้โปรแกรมแก้ไข nano ที่มีอยู่ใน Cloud Shell คำสั่ง nano มีดังนี้ "nano tools.yaml
"
อย่าลืมแทนที่ค่า YOUR_PROJECT_ID
ด้วยรหัสโปรเจ็กต์ Google Cloud ของคุณ
sources:
my-bq-source:
kind: bigquery
project: YOUR_PROJECT_ID
tools:
search_release_notes_bq:
kind: bigquery-sql
source: my-bq-source
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
description: |
Use this tool to get information on Google Cloud Release Notes.
toolsets:
my_bq_toolset:
- 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 สำหรับฐานข้อมูล
8. การทดสอบกล่องเครื่องมือ MCP สำหรับฐานข้อมูล
เราได้ดาวน์โหลดและกำหนดค่ากล่องเครื่องมือด้วยไฟล์ tools.yaml
ในโฟลเดอร์ mcp-toolbox
มาเรียกใช้ในเครื่องก่อน
เรียกใช้คำสั่งต่อไปนี้
./toolbox --tools-file="tools.yaml"
เมื่อดำเนินการสำเร็จ คุณควรเห็นการเริ่มต้นเซิร์ฟเวอร์พร้อมเอาต์พุตตัวอย่างที่คล้ายกับเอาต์พุตด้านล่าง
2025-09-08T03:56:45.772489914Z INFO "Initialized 1 sources."
2025-09-08T03:56:45.772682659Z INFO "Initialized 0 authServices."
2025-09-08T03:56:45.772735103Z INFO "Initialized 1 tools."
2025-09-08T03:56:45.772774639Z INFO "Initialized 2 toolsets."
2025-09-08T03:56:45.777711644Z INFO "Server ready to serve!"
เซิร์ฟเวอร์ MCP Toolbox จะทำงานในพอร์ต 5000
โดยค่าเริ่มต้น หากพบว่ามีการใช้พอร์ต 5000
อยู่แล้ว คุณสามารถใช้พอร์ตอื่น (เช่น 7000
) ตามคำสั่งที่แสดงด้านล่าง โปรดใช้ 7000
แทนพอร์ต 5000
ในคำสั่งถัดไป
./toolbox --tools-file "tools.yaml" --port 7000
มาใช้ Cloud Shell เพื่อทดสอบกัน
คลิกตัวอย่างเว็บใน Cloud Shell ดังที่แสดงด้านล่าง
คลิกเปลี่ยนพอร์ตและตั้งค่าพอร์ตเป็น 5000 ตามที่แสดงด้านล่าง แล้วคลิกเปลี่ยนและแสดงตัวอย่าง
ซึ่งควรให้ผลลัพธ์ต่อไปนี้
ใน URL ของเบราว์เซอร์ ให้เพิ่มข้อความต่อไปนี้ต่อท้าย URL
/api/toolset
ซึ่งจะแสดงเครื่องมือที่กำหนดค่าไว้ในปัจจุบัน ตัวอย่างเอาต์พุตแสดงอยู่ด้านล่าง
{
"serverVersion": "0.13.0+binary.linux.amd64.1a6dfe8d37d0f42fb3fd3f75c50988534dbc1b85",
"tools": {
"search_release_notes_bq": {
"description": "Use this tool to get information on Google Cloud Release Notes.\n",
"parameters": [],
"authRequired": []
}
}
}
ทดสอบเครื่องมือผ่าน UI ของกล่องเครื่องมือ MCP สำหรับฐานข้อมูล
กล่องเครื่องมือมีอินเทอร์เฟซแบบภาพ (UI ของกล่องเครื่องมือ) เพื่อโต้ตอบกับเครื่องมือโดยตรงด้วยการแก้ไขพารามิเตอร์ จัดการส่วนหัว และเรียกใช้ ทั้งหมดนี้อยู่ใน UI เว็บที่เรียบง่าย
หากต้องการทดสอบ ให้เรียกใช้คำสั่งก่อนหน้าที่เราใช้เพื่อเปิดใช้เซิร์ฟเวอร์กล่องเครื่องมือด้วยตัวเลือก --ui
โดยให้ปิดอินสแตนซ์ก่อนหน้าของเซิร์ฟเวอร์ MCP Toolbox for Databases ที่คุณอาจเรียกใช้อยู่ แล้วป้อนคำสั่งต่อไปนี้
./toolbox --tools-file "tools.yaml" --ui
คุณควรเห็นเอาต์พุตที่ระบุว่าเซิร์ฟเวอร์เชื่อมต่อกับแหล่งข้อมูลของเราได้ และโหลดชุดเครื่องมือและเครื่องมือแล้ว ตัวอย่างเอาต์พุตแสดงอยู่ด้านล่าง และคุณจะเห็นว่าเอาต์พุตจะระบุว่า UI ของกล่องเครื่องมือพร้อมใช้งานแล้ว
2025-09-08T03:59:34.856476253Z INFO "Initialized 1 sources."
2025-09-08T03:59:34.856546526Z INFO "Initialized 0 authServices."
2025-09-08T03:59:34.856577586Z INFO "Initialized 1 tools."
2025-09-08T03:59:34.856641568Z INFO "Initialized 2 toolsets."
2025-09-08T03:59:34.86133344Z INFO "Server ready to serve!"
2025-09-08T03:59:34.861366205Z INFO "Toolbox UI is up and running at: http://localhost:5000/ui"
คลิก URL ของ UI และตรวจสอบว่าคุณมี /ui
ที่ส่วนท้ายของ URL ซึ่งจะแสดง UI ดังที่แสดงด้านล่าง
คลิกตัวเลือกเครื่องมือทางด้านซ้ายเพื่อดูเครื่องมือที่กำหนดค่าไว้ ในกรณีของเราควรมีเพียงเครื่องมือเดียวคือ search_release_notes_bq
ดังที่แสดงด้านล่าง
เพียงคลิกเครื่องมือ (search_release_notes_bq
) ระบบจะแสดงหน้าเว็บให้คุณทดสอบเครื่องมือ เนื่องจากไม่มีพารามิเตอร์ที่ต้องระบุ คุณจึงคลิกเรียกใช้เครื่องมือเพื่อดูผลลัพธ์ได้เลย ตัวอย่างการเรียกใช้แสดงอยู่ด้านล่าง
นอกจากนี้ ชุดเครื่องมือ MCP สำหรับฐานข้อมูลยังอธิบายวิธีแบบ Pythonic ในการตรวจสอบและทดสอบเครื่องมือ ซึ่งมีการบันทึกไว้ที่นี่ เราจะข้ามส่วนนั้นไปและไปที่ Agent Development Kit (ADK) โดยตรงในส่วนถัดไปที่จะใช้เครื่องมือเหล่านี้
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 for Databases พร้อมกับการอ้างอิง 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 สำหรับเลือกโมเดลสำหรับเอเจนต์รูท
- เลือก Vertex AI สำหรับแบ็กเอนด์
- ระบบจะแสดงรหัสโปรเจ็กต์ Google และภูมิภาคเริ่มต้น เลือกค่าเริ่มต้น
Choose a model for the root agent:
1. gemini-2.0-flash-001
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.0-flash-001',
name='root_agent',
description='A helpful assistant for user questions.',
instruction='Answer user questions to the best of your knowledge',
)
นี่คือเอเจนต์ที่ง่ายที่สุดที่คุณเขียนได้ด้วย ADK จากหน้าเอกสารประกอบ ADK นั้น Agent คือหน่วยการดำเนินการแบบสแตนด์อโลนที่ออกแบบมาให้ทำงานได้โดยอัตโนมัติเพื่อให้บรรลุเป้าหมายที่เฉพาะเจาะจง Agent สามารถทำงาน โต้ตอบกับผู้ใช้ ใช้เครื่องมือภายนอก และประสานงานกับ Agent อื่นๆ ได้
โดยเฉพาะอย่างยิ่ง LLMAgent ซึ่งมักจะเรียกกันว่า Agent จะใช้โมเดลภาษาขนาดใหญ่ (LLM) เป็นเครื่องมือหลักในการทำความเข้าใจภาษาที่เป็นธรรมชาติ เหตุผล แผน สร้างคำตอบ และตัดสินใจแบบไดนามิกว่าจะดำเนินการต่ออย่างไรหรือจะใช้เครื่องมือใด ทำให้เหมาะสำหรับงานที่ยืดหยุ่นและเน้นภาษา ดูข้อมูลเพิ่มเติมเกี่ยวกับเอเจนต์ LLM ที่นี่
ซึ่งจะทำให้การจัดโครงสร้างของเราเสร็จสมบูรณ์เพื่อสร้าง Agent พื้นฐานโดยใช้ Agent Development Kit (ADK) ตอนนี้เราจะเชื่อมต่อเอเจนต์กับกล่องเครื่องมือ MCP เพื่อให้เอเจนต์ใช้เครื่องมือดังกล่าวตอบคำค้นหาจากผู้ใช้ (ในกรณีนี้คือหมายเหตุประจำรุ่นของ Google Cloud)
10. การเชื่อมต่อตัวแทนกับเครื่องมือ
เราจะเชื่อมต่อเอเจนต์นี้กับเครื่องมือตอนนี้ ในบริบทของ ADK เครื่องมือแสดงถึงความสามารถเฉพาะที่มอบให้แก่เอเจนต์ AI ซึ่งช่วยให้เอเจนต์ดำเนินการและโต้ตอบกับโลกภายนอกความสามารถหลักในการสร้างข้อความและการให้เหตุผล
ในกรณีนี้ เราจะติดตั้งเครื่องมือที่กำหนดค่าไว้ในกล่องเครื่องมือ MCP สำหรับฐานข้อมูลให้กับเอเจนต์
แก้ไขไฟล์ 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.0-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,
)
ตอนนี้เราสามารถทดสอบเอเจนต์ที่จะดึงข้อมูลจริงจากชุดข้อมูล BigQuery ที่กำหนดค่าด้วยกล่องเครื่องมือ MCP สำหรับฐานข้อมูลได้แล้ว
โดยทำตามลำดับต่อไปนี้
ในเทอร์มินัลหนึ่งของ Cloud Shell ให้เปิดใช้กล่องเครื่องมือ MCP สำหรับฐานข้อมูล คุณอาจเรียกใช้ในเครื่องที่พอร์ต 5000 อยู่แล้วเนื่องจากเราได้ทดสอบไปก่อนหน้านี้ หากไม่ได้ใช้ ให้เรียกใช้คำสั่งต่อไปนี้ (จากโฟลเดอร์ mcp-toolbox
) เพื่อเริ่มเซิร์ฟเวอร์
./toolbox --tools_file "tools.yaml"
คุณควรเห็นเอาต์พุตที่ระบุว่าเซิร์ฟเวอร์เชื่อมต่อกับแหล่งข้อมูลของเราได้ และโหลดชุดเครื่องมือและเครื่องมือแล้ว ตัวอย่างเอาต์พุตมีดังนี้
./toolbox --tools-file "tools.yaml"
2025-06-17T07:48:52.989710733Z INFO "Initialized 1 sources."
2025-06-17T07:48:52.989805642Z INFO "Initialized 0 authServices."
2025-06-17T07:48:52.989847035Z INFO "Initialized 1 tools."
2025-06-17T07:48:52.989889742Z INFO "Initialized 2 toolsets."
2025-06-17T07:48:52.990357879Z INFO "Server ready to serve!"
เมื่อเซิร์ฟเวอร์ MCP เริ่มทำงานเรียบร้อยแล้ว ให้เปิดตัว Agent ในเทอร์มินัลอื่นผ่านคำสั่ง adk run
(จากโฟลเดอร์ my-agents
) ที่แสดงด้านล่าง คุณยังใช้คำสั่ง adk web
ได้ด้วยหากต้องการ
$ adk run gcp-releasenotes-agent-app/
Log setup complete: /tmp/agents_log/agent.20250423_170001.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
Running agent gcp_releasenotes_agent, type exit to exit.
[user]: get me the google cloud release notes
[gcp_releasenotes_agent]: Here are the Google Cloud Release Notes.
Google SecOps SOAR: Release 6.3.49 is being rolled out to the first phase of regions. This release contains internal and customer bug fixes. Published: 2025-06-14
Compute Engine: Dynamic NICs let you add or remove network interfaces to or from an instance without having to restart or recreate the instance. You can also use Dynamic NICs when you need more network interfaces. The maximum number of vNICs for most machine types in Google Cloud is 10; however, you can configure up to 16 total interfaces by using Dynamic NICs. Published: 2025-06-13
Compute Engine: General purpose C4D machine types, powered by the fifth generation AMD EPYC processors (Turin) and Google Titanium, are generally available. Published: 2025-06-13
Google Agentspace: Google Agentspace Enterprise: App-level feature management. As an Agentspace administrator, you can choose to turn the following features on or off for your end users in the web app: Agents gallery, Prompt gallery, No-code agent, NotebookLM Enterprise. Published: 2025-06-13
Cloud Load Balancing: Cloud Load Balancing supports load balancing to multi-NIC instances that use Dynamic NICs. This capability is in Preview. Published: 2025-06-13
Virtual Private Cloud: Dynamic Network Interfaces (NICs) are available in Preview. Dynamic NICs let you update an instance to add or remove network interfaces without having to restart or recreate the instance. Published: 2025-06-13
Security Command Center: The following Event Threat Detection detectors for Vertex AI have been released to Preview:
- `Persistence: New Geography for AI Service`
- `Privilege Escalation: Anomalous Multistep Service Account Delegation for AI Admin Activity`
- `Privilege Escalation: Anomalous Multistep Service Account Delegation for AI Data Access`
- `Privilege Escalation: Anomalous Service Account Impersonator for AI Admin Activity`
- `Privilege Escalation: Anomalous Service Account Impersonator for AI Data Access`
- `Privilege Escalation: Anomalous Impersonation of Service Account for AI Admin Activity`
- `Persistence: New AI API Method`
......
......
โปรดทราบว่าเอเจนต์ใช้เครื่องมือที่เรากำหนดค่าไว้ในกล่องเครื่องมือ MCP สำหรับฐานข้อมูล (search_release_notes_bq
) และดึงข้อมูลจากชุดข้อมูล BigQuery แล้วจัดรูปแบบการตอบกลับตามนั้น
11. ขอแสดงความยินดี
ขอแสดงความยินดี คุณกำหนดค่ากล่องเครื่องมือ MCP สำหรับฐานข้อมูลและกำหนดค่าชุดข้อมูล BigQuery เพื่อให้เข้าถึงได้ภายในไคลเอ็นต์ MCP เรียบร้อยแล้ว