กล่องเครื่องมือ MCP สําหรับฐานข้อมูล: ให้บริการชุดข้อมูล BigQuery แก่ลูกค้า MCP
เกี่ยวกับ Codelab นี้
1 บทนำ
ในโค้ดแล็บนี้ คุณจะใช้ MCP Toolbox สําหรับฐานข้อมูลเพื่อทําให้ชุดข้อมูล BigQuery พร้อมใช้งาน
คุณจะใช้แนวทางแบบทีละขั้นตอนต่อไปนี้ผ่าน Codelab
- ระบุชุดข้อมูล BigQuery ที่เฉพาะเจาะจง ("บันทึกประจำรุ่นของ Google Cloud") จากโปรแกรมชุดข้อมูล BigQuery สาธารณะ
- ตั้งค่ากล่องเครื่องมือ MCP สําหรับฐานข้อมูลที่เชื่อมต่อกับชุดข้อมูล BigQuery
- พัฒนาตัวแทนโดยใช้ชุดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ (ADK) ที่จะใช้กล่องเครื่องมือ MCP เพื่อตอบคำถามจากผู้ใช้เกี่ยวกับบันทึกประจำรุ่นของ Google Cloud
สิ่งที่ต้องทำ
- ตั้งค่ากล่องเครื่องมือ MCP สําหรับฐานข้อมูลเพื่อแสดงหมายเหตุเกี่ยวกับรุ่นของ Google Cloud ซึ่งเป็นชุดข้อมูล BigQuery สาธารณะ เป็นอินเทอร์เฟซ MCP สําหรับไคลเอ็นต์ MCP อื่นๆ (IDE, เครื่องมือ ฯลฯ)
สิ่งที่คุณจะได้เรียนรู้
- สำรวจชุดข้อมูลสาธารณะของ BigQuery และเลือกชุดข้อมูลที่ต้องการ
- ตั้งค่ากล่องเครื่องมือ MCP สําหรับฐานข้อมูลสําหรับชุดข้อมูลสาธารณะ BigQuery ที่เราต้องการให้ลูกค้า MCP เข้าถึงได้
- ออกแบบและพัฒนาตัวแทนโดยใช้ชุดพัฒนาตัวแทน (ADK) เพื่อตอบคําค้นหาของผู้ใช้
- ทดสอบ Agent และกล่องเครื่องมือ MCP สําหรับฐานข้อมูลในสภาพแวดล้อมในเครื่อง
สิ่งที่ต้องมี
- เว็บเบราว์เซอร์ Chrome
- สภาพแวดล้อมการพัฒนา Python ในพื้นที่
2 ก่อนเริ่มต้น
สร้างโปรเจ็กต์
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ 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 ฟีด แต่เราขอถามข้อมูลเกี่ยวกับหมายเหตุประจำรุ่นเหล่านี้ในแชทกับตัวแทนได้ไหม อาจเป็นคําค้นหาง่ายๆ เช่น "อัปเดตฉันเกี่ยวกับบันทึกประจำรุ่นของ Google Cloud"
4 กล่องเครื่องมือ MCP สําหรับฐานข้อมูล
MCP Toolbox สําหรับฐานข้อมูลคือเซิร์ฟเวอร์ MCP แบบโอเพนซอร์สสําหรับฐานข้อมูล ซึ่งออกแบบมาเพื่อการใช้งานระดับองค์กรและคุณภาพระดับเวอร์ชันที่ใช้งานจริง ซึ่งจะช่วยให้คุณพัฒนาเครื่องมือได้ง่ายขึ้น รวดเร็วขึ้น และปลอดภัยยิ่งขึ้นด้วยการจัดการกับความซับซ้อนต่างๆ เช่น การรวมการเชื่อมต่อ การตรวจสอบสิทธิ์ และอื่นๆ
กล่องเครื่องมือจะช่วยคุณสร้างเครื่องมือ Gen AI ที่ช่วยให้ตัวแทนเข้าถึงข้อมูลในฐานข้อมูลได้ กล่องเครื่องมือมีบริการต่อไปนี้
- การพัฒนาที่ง่ายขึ้น: ผสานรวมเครื่องมือกับตัวแทนได้โดยใช้โค้ดไม่ถึง 10 บรรทัด ใช้เครื่องมือซ้ำระหว่างตัวแทนหรือเฟรมเวิร์กหลายรายการ และทำให้ใช้งานเครื่องมือเวอร์ชันใหม่ได้ง่ายขึ้น
- ประสิทธิภาพที่ดีขึ้น: แนวทางปฏิบัติแนะนำ เช่น การรวมการเชื่อมต่อ การตรวจสอบสิทธิ์ และอื่นๆ
- การรักษาความปลอดภัยที่ดีขึ้น: การรับรองแบบรวมเพื่อการเข้าถึงข้อมูลที่ปลอดภัยยิ่งขึ้น
- การสังเกตการณ์จากต้นทางถึงปลายทาง: เมตริกและการติดตามที่พร้อมใช้งานทันทีพร้อมการรองรับ OpenTelemetry ในตัว
- กล่องเครื่องมือช่วยให้เชื่อมต่อฐานข้อมูลกับผู้ช่วย AI ที่รองรับ MCP ได้อย่างง่ายดาย แม้กระทั่งผู้ช่วย AI ใน IDE ของคุณ
กล่องเครื่องมือจะอยู่ระหว่างเฟรมเวิร์กการประสานงานของแอปพลิเคชันและฐานข้อมูล โดยเป็นแพลตฟอร์มควบคุมที่ใช้แก้ไข เผยแพร่ หรือเรียกใช้เครื่องมือ ซึ่งจะลดความซับซ้อนในการจัดการเครื่องมือด้วยการจัดเตรียมพื้นที่ส่วนกลางสำหรับจัดเก็บและอัปเดตเครื่องมือ ซึ่งจะช่วยให้คุณแชร์เครื่องมือระหว่างตัวแทนและแอปพลิเคชัน รวมถึงอัปเดตเครื่องมือเหล่านั้นได้โดยไม่ต้องทำให้แอปพลิเคชันใช้งานได้อีกครั้ง
สรุปเป็นภาษาง่ายๆ ดังนี้
- กล่องเครื่องมือ MCP มีให้บริการในรูปแบบไบนารี อิมเมจคอนเทนเนอร์ หรือคุณจะสร้างจากซอร์สโค้ดก็ได้
- ซึ่งจะแสดงชุดเครื่องมือที่คุณกําหนดค่าผ่านไฟล์ tools.yaml เครื่องมือนี้เปรียบเสมือนการเชื่อมต่อกับแหล่งข้อมูล คุณจะเห็นแหล่งข้อมูลต่างๆ ที่รองรับ เช่น AlloyDB, BigQuery เป็นต้น
- เนื่องจากตอนนี้กล่องเครื่องมือนี้รองรับ MCP คุณจึงมีปลายทางเซิร์ฟเวอร์ MCP โดยอัตโนมัติ ซึ่งตัวแทน (IDE) จะใช้ได้ หรือจะใช้ขณะพัฒนาแอปพลิเคชันตัวแทนโดยใช้เฟรมเวิร์กต่างๆ เช่น ชุดเครื่องมือพัฒนาตัวแทน (ADK) ก็ได้
ประเด็นที่เรามุ่งเน้นในบล็อกโพสต์นี้จะเน้นที่หัวข้อที่ไฮไลต์ไว้ด้านล่าง
โดยสรุปแล้ว เราจะสร้างการกําหนดค่าในกล่องเครื่องมือ MCP สําหรับฐานข้อมูลที่ทราบวิธีเชื่อมต่อกับชุดข้อมูล BigQuery จากนั้นเราจะพัฒนาตัวแทนโดยใช้ 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 สำหรับฐานข้อมูลเวอร์ชันไบนารีผ่านสคริปต์ที่ระบุไว้ด้านล่าง คำสั่งด้านล่างนี้ใช้สำหรับ Linux แต่หากคุณใช้ Mac หรือ Windows โปรดตรวจสอบว่าคุณกำลังดาวน์โหลดไบนารีที่ถูกต้อง โปรดไปที่หน้ารุ่นสำหรับระบบปฏิบัติการและสถาปัตยกรรมของคุณ แล้วดาวน์โหลดไบนารีที่ถูกต้อง
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
ตอนนี้เรามีกล่องเครื่องมือเวอร์ชันไบนารีพร้อมใช้งานแล้ว ขั้นตอนถัดไปคือการกำหนดค่ากล่องเครื่องมือด้วยแหล่งข้อมูลและการกําหนดค่าอื่นๆ
7 การกำหนดค่ากล่องเครื่องมือ MCP สำหรับฐานข้อมูล
ตอนนี้เราต้องกําหนดชุดข้อมูล BigQuery และเครื่องมือในไฟล์ tools.yaml
ซึ่ง MCP Toolbox สําหรับฐานข้อมูลจําเป็นต้องใช้ ไฟล์ tools.yaml
เป็นวิธีหลักในการกําหนดค่ากล่องเครื่องมือ
สร้างไฟล์ชื่อ 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
เราขออธิบายข้อมูลโดยย่อของไฟล์
- แหล่งที่มาแสดงแหล่งข้อมูลต่างๆ ที่เครื่องมือโต้ตอบได้ แหล่งที่มาแสดงถึงแหล่งข้อมูลซึ่งเครื่องมือโต้ตอบได้ คุณสามารถกําหนดแหล่งที่มาเป็นแผนที่ได้ในส่วน sources ของไฟล์ tools.yaml โดยปกติแล้ว การกําหนดค่าแหล่งที่มาจะมีข้อมูลที่จําเป็นในการเชื่อมต่อและโต้ตอบกับฐานข้อมูล ในกรณีของเรา เราได้กําหนดแหล่งที่มา BigQuery
my-bq-source
และคุณต้องระบุรหัสโปรเจ็กต์ Google Cloud ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิงแหล่งที่มา - เครื่องมือจะกำหนดการดำเนินการที่ตัวแทนทำได้ เช่น การอ่านและเขียนไปยังแหล่งที่มา เครื่องมือแสดงการดำเนินการที่ตัวแทนสามารถทำได้ เช่น เรียกใช้คำสั่ง 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-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 Toolbox จะทำงานบนพอร์ต 5000
โดยค่าเริ่มต้น หากพบว่าพอร์ต 5000
มีการใช้งานอยู่แล้ว คุณก็ใช้พอร์ตอื่น (เช่น 7000
) ได้ตามคำสั่งที่แสดงด้านล่าง โปรดใช้ 7000
แทนพอร์ต 5000
ในคำสั่งต่อๆ ไป
./toolbox --tools-file "tools.yaml" --port 7000
เรามาลองใช้ Cloud Shell เพื่อทดสอบกัน
คลิกตัวอย่างเว็บใน Cloud Shell ดังที่แสดงด้านล่าง
คลิกเปลี่ยนพอร์ต แล้วตั้งค่าพอร์ตเป็น 5000 ดังที่แสดงด้านล่าง แล้วคลิก "เปลี่ยนและแสดงตัวอย่าง"
ซึ่งจะแสดงผลลัพธ์ต่อไปนี้
ใน URL ของเบราว์เซอร์ ให้เพิ่มข้อความต่อไปนี้ต่อท้าย URL
/api/toolset
ซึ่งจะแสดงเครื่องมือที่กำหนดค่าไว้ในปัจจุบัน ตัวอย่างเอาต์พุตแสดงอยู่ด้านล่าง
{
"serverVersion": "0.7.0+binary.linux.amd64.714d990c34ee990e268fac1aa6b89c4883ae5023",
"tools": {
"search_release_notes_bq": {
"description": "Use this tool to get information on Google Cloud Release Notes.\n",
"parameters": [],
"authRequired": []
}
}
}
เครื่องมือ MCP สำหรับฐานข้อมูลจะอธิบายวิธีในภาษาไพธอนสำหรับตรวจสอบและทดสอบเครื่องมือ ซึ่งมีการบันทึกไว้ที่นี่ เราจะข้ามส่วนนั้นและข้ามไปยัง 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 สำหรับฐานข้อมูลพร้อมกับการพึ่งพา 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',
)
นี่คือ Agent ที่เขียนได้ง่ายๆ ด้วย ADK จากหน้าเอกสารประกอบของ ADK ตัวแทนคือหน่วยการดําเนินการแบบสําเร็จรูปที่ออกแบบมาเพื่อดําเนินการอย่างอิสระเพื่อให้บรรลุเป้าหมายที่เฉพาะเจาะจง ตัวแทนสามารถทํางาน โต้ตอบกับผู้ใช้ ใช้เครื่องมือภายนอก และประสานงานกับตัวแทนคนอื่นๆ
โดยเฉพาะอย่างยิ่ง 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 สำหรับฐานข้อมูลได้แล้ว
โดยทำตามลำดับต่อไปนี้
เปิดกล่องเครื่องมือ MCP สำหรับฐานข้อมูลในเทอร์มินัลของ Cloud Shell 1 เครื่อง คุณอาจเรียกใช้แอปนี้ในเครื่องแล้วบนพอร์ต 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 เรียบร้อยแล้ว