1. บทนำ

อัปเดตล่าสุด: 22-06-2026
การสร้างตัวแทนท่องเที่ยวแบบง่ายด้วย ADK
ยินดีต้อนรับสู่เวิร์กช็อป Python(*) ของ ADK ซึ่งมาพร้อมกับเครื่องมือที่จำเป็นทั้งหมดด้วย Gemini CLI
Codelab นี้แบ่งออกเป็น 2 🏅 เป้าหมาย ดังนี้
- เส้นทางการเรียนรู้ที่พบบ่อยและเรียบง่ายคือ การตั้งค่า + ความพึงพอใจทันที
- เส้นทางการเรียนรู้ที่ปรับเปลี่ยนในแบบของคุณซึ่งคุณสามารถเลือกภารกิจที่จะแก้ปัญหาด้วยความช่วยเหลือของ Gemini CLI
ส่วนที่ 2 ทำให้ Codelab นี้เหมาะสำหรับแฮ็กกาธอน (และรางวัลสำหรับโซลูชันที่สร้างสรรค์ที่สุด)
เป้าหมายที่ 1: Agent แรกของคุณด้วย ADK และ Gemini CLI
เป้าหมายของเหตุการณ์สำคัญนี้คือการสร้างตัวแทนท่องเที่ยวแบบง่ายด้วย ADK ทีละขั้นตอน ในการดำเนินการดังกล่าว ก่อนอื่นเราต้องการตั้งค่า Gemini CLI เพื่อให้ช่วยเราเขียนโค้ดด้วย ADK ซึ่งจะทำให้ Shell ในเครื่องของคุณเลือก Python ADK เวอร์ชันล่าสุด, นำโค้ดและเอกสารมาใช้ และให้โค้ดล่าสุด/ดีที่สุดเพื่อทำงานร่วมกับ ADK เพื่อให้บรรลุเป้าหมายของคุณ
ส่วนนี้เป็นส่วนที่แนะนำโดยละเอียด ซึ่งเราจะสร้างแอปที่ทำงานได้อย่างสมบูรณ์ผ่านขั้นตอนเล็กๆ ที่เรียบง่าย โดยปกติแล้วขั้นตอนนี้จะใช้เวลาประมาณ 1 ชั่วโมง (บวกเวลาติดตั้ง)
เป้าหมายที่ 2: การขยาย Agent
หลังจากนั้น เราจะให้ตัวเลือก 12 รายการ (ที่มีความยากแตกต่างกัน) เพื่อขยายแอปตามที่คุณต้องการ ซึ่งจะช่วยให้คุณสำรวจแง่มุมต่างๆ (UI, การดำเนินการ, การโต้ตอบที่ซับซ้อนของ Agent ฯลฯ)
สิ่งที่คุณจะสร้าง
ใน Codelab นี้ คุณจะสร้างแอปตัวแทนท่องเที่ยวโดยใช้ ADK และ Gemini CLI แอปของคุณจะดำเนินการต่อไปนี้
- เชื่อมต่อกับ API ของ Airbnb ผ่าน Airbnb MCP
- ค้นหาข้อมูลล่าสุดทางออนไลน์ (สภาพอากาศ วันที่ ฯลฯ)
- เรียกใช้เครื่องมือที่กำหนดเอง
- สร้างภาพอพาร์ตเมนต์/ห้องพักโดยใช้ Nano Banana
Gemini CLI จะแนะนำคุณตลอดกระบวนการทั้งหมดนี้ ไม่ว่าจะเป็นการเขียน/ตรวจสอบโค้ด และค้นหาเอกสารล่าสุดในมิเรอร์ในเครื่องของที่เก็บ ADK (ใน Python หรือภาษาที่คุณชื่นชอบ)
สิ่งที่คุณจะได้เรียนรู้
- วิธีสร้างและสร้างแอปด้วย ADK
- วิธีใช้ Gemini CLI เพื่อเขียนโค้ดแอปโดยอิงตามเอกสารในเครื่อง
- วิธีโต้ตอบกับเซิร์ฟเวอร์ MCP เพื่อเชื่อมต่อกับแหล่งข้อมูลภายนอกแบบเรียลไทม์ เช่น
สิ่งที่ต้องมี
- คอมพิวเตอร์ที่อนุญาตให้คุณติดตั้งแพ็กเกจ (เช่น
npm install ..) - ความสามารถในการเขียนโค้ดพื้นฐานใน Python, TypeScript, Go หรือ Java
- เราขอแนะนำอย่างยิ่งให้ใช้ IDE บางประเภท (Antigravity, vscode, IntelliJ, vim)
ทำไมต้องใช้ ADK + Gemini CLI
บางคนอาจสงสัยว่าทำไมฉันจึงต้องใช้ ADK (SDK สำหรับเครื่องมือสร้าง Agent) ร่วมกับผู้ช่วยเขียนโค้ดแบบ Agent ในเครื่อง (เช่น Gemini CLI) เหตุผลก็คือเครื่องมือทั้ง 2 อย่างมีประสิทธิภาพอย่างมาก แต่การโต้ตอบของเครื่องมือทั้ง 2 อย่างนั้นไม่ใช่เรื่องง่าย หลายคนพยายามทำงานร่วมกับทั้ง 2 อย่างและล้มเหลว (ส่วนใหญ่เกิดจากปัญหา "ลูปในลูป") Codelab นี้พยายามแชร์เคล็ดลับบางประการเกี่ยวกับวิธีทำให้การอยู่ร่วมกันนี้เป็นไปได้
2. การเริ่มตั้งค่า
เลือกตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้ การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเองหากต้องการเรียกใช้ Codelab นี้ในเครื่องของคุณเอง หรือเริ่ม Cloud Shell หากต้องการเรียกใช้ Codelab นี้ในระบบคลาวด์ทั้งหมด
การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเอง
- ลงชื่อเข้าใช้คอนโซล Google Cloud แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี



- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมของโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณอัปเดตข้อมูลได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (ไม่สามารถเปลี่ยนแปลงได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณจะไม่สนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยปกติจะระบุเป็น
PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่ง หรือจะลองใช้ชื่อของคุณเองและดูว่าพร้อมใช้งานหรือไม่ก็ได้ คุณจะเปลี่ยนแปลงไม่ได้หลังจากขั้นตอนนี้ และจะยังคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ายังมีค่าที่ 3 คือหมายเลขโปรเจ็กต์ ซึ่ง API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 ค่านี้ได้ในเอกสารประกอบ
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินในคอนโซล Cloud เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะมีค่าใช้จ่ายไม่มากนัก (หากมี) หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมทดลองใช้ฟรีมูลค่า $300 USD
เริ่ม Cloud Shell
แม้ว่า Google Cloud จะทำงานจากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้ คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จากคอนโซล Google Cloud ให้คลิกไอคอน Cloud Shell บนแถบเครื่องมือด้านขวาบน

การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมจะใช้เวลาเพียงไม่นาน เมื่อดำเนินการเสร็จแล้ว คุณควรจะเห็นข้อความในลักษณะนี้

เครื่องเสมือนนี้โหลดมาพร้อมกับเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักขนาด 5 GB แบบถาวร และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก งานทั้งหมดของคุณใน Codelab นี้สามารถทำได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไรเลย
3. สิ่งที่ต้องมีก่อน (การติดตั้ง)
สำหรับบทแนะนำนี้ คุณต้องติดตั้งสิ่งต่อไปนี้
1. Python และ uv
python และ uv (เครื่องมือจัดการแพ็กเกจสำหรับ Python) ซึ่งจำเป็นสำหรับ ADK ตรวจสอบว่าคุณได้ติดตั้ง uv แล้ว โดยทำดังนี้
$ curl -LsSf https://astral.sh/uv/install.sh | sh
ทำไมต้องใช้ UV แม้ว่าคุณจะใช้ Python Manager ใดก็ได้ตามต้องการ แต่การใช้ uv จะช่วยให้มั่นใจได้ว่าการตั้งค่า ENV/PATH สำหรับ Python จะเหมือนกันสำหรับคุณและ Gemini CLI ดังนั้นประสบการณ์การใช้งาน Shell ของคุณจะเหมือนกับของ Gemini CLI เป็นส่วนใหญ่ ตัวอย่างเช่น หากคุณใช้ virtualenv ระบบจะบังคับให้ Gemini CLI ทำสิ่งต่างๆ เช่น "source .env/venv/bin/activate && my-original-command" เพื่อเลียนแบบสภาพแวดล้อมของคุณ
2. Gemini CLI
สำหรับ gemini CLI ดูวิธีการติดตั้งได้ที่ https://github.com/google-gemini/gemini-cli
# Note: This requires having npm or npx installed. npm install -g @google/gemini-cli
- ใน Mac คุณสามารถใช้
brewตามเอกสารอย่างเป็นทางการได้ - ใน Windows คุณสามารถใช้
chocolateyหรือเพียงดาวน์โหลดไฟล์ปฏิบัติการจาก https://nodejs.org/en/download
สำหรับขั้นตอนที่ 4 (ในภายหลัง) คุณจะต้องติดตั้ง npx ด้วย ทั้ง npm และ npx ควรเป็นส่วนหนึ่งของ Gemini CLI โดยอัตโนมัติ หากยังไม่มี ให้ขอความช่วยเหลือจาก Gemini CLI ที่นี่

การตรวจสอบสิทธิ์
คุณต้องมีโปรเจ็กต์ Google Cloud ที่เปิดใช้ Vertex AI หรือคีย์ Google AI Studio API
ตัวเลือก ก (แนะนำสำหรับเวิร์กช็อป): ส่งออกคีย์ API
export GOOGLE_API_KEY="your-api-key"
ตัวเลือก ข (Vertex AI): ตรวจสอบสิทธิ์ด้วย gcloud โดยทำดังนี้
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID" export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION" export GOOGLE_GENAI_USE_VERTEXAI=true gcloud auth application-default login
ตั้งค่าสภาพแวดล้อมการทำงาน
คุณกำลังจะสร้างโซลูชันของคุณเองใน mysolution/ ดังนั้นมาสร้างโฟลเดอร์และไฟล์ 2 ไฟล์ที่เราต้องการกัน
ตอนนี้คุณสามารถเปิด IDE (Visual Studio Code, IntelliJ, RubyMine, ..) และเปิดโฟลเดอร์ได้แล้ว
# 1. Find an empty directory, and download this repo. git clone https://github.com/palladius/adk-gemini-cli-workshop cd adk-gemini-cli-workshop/ # 2. Create your solution empty skeleton mkdir -p mysolution/ touch mysolution/__init__.py mysolution/agent.py # 3. This installs ADK and MCP via `uv` by reading pyproject.toml uv init uv sync # 4. Call Gemini CLI gemini # This runs Gemini CLI under the adk-gemini-cli-workshop/ folder. # Login with your GMail account.
ไม่จำเป็นต้องใช้ uv sync แต่หากดำเนินการไม่สำเร็จ คุณจะทราบว่าต้องแก้ไขการติดตั้ง Python หรือ uv การดำเนินการนี้ควรติดตั้ง adk และสคริปต์อื่นๆ ที่เป็นประโยชน์ลงในโฟลเดอร์ ./.venv/bin/
หากต้องการทดสอบการตั้งค่า คุณเพียงแค่เรียกใช้ make test-step1 และตรวจสอบว่าคุณไม่ได้รับ 403 PERMISSION DENIED.
โซลูชันที่พร้อมใช้งาน
โค้ดทั้งหมดจะอยู่ใน 📂 steps/ คุณสามารถคัดลอกโค้ดจากที่นั่นได้
Codelab นี้ไม่ได้เกี่ยวกับการเรียนรู้วิธีเขียนโค้ด ADK ที่ดี แต่เกี่ยวกับการตั้งค่าสภาพแวดล้อมเพื่อให้เขียนโค้ดที่ดีโดยอัตโนมัติภายใต้คำสั่งของคุณ
- การติดตั้งซอฟต์แวร์
- การกำหนดค่า/การทำให้ใช้งานได้ และ
- เข้าสู่รายงานความคิดเห็นที่ถูกต้อง
นี่คือสิ่งที่เราอยากให้คุณเรียนรู้จากที่นี่จริงๆ นอกจากนี้ คุณยังทดสอบทั้งหมดพร้อมกันได้ผ่าน $ make web-4steps
4. ขั้นตอนที่ 1: Agent พื้นฐาน

มาเริ่มด้วยการสร้าง Agent พื้นฐานที่สามารถสนทนาได้
แก้ไขไฟล์ชื่อ mysolution/__init__.py โดยเพิ่มเนื้อหาต่อไปนี้
from .agent import root_agent
ง่ายๆ เพียงเท่านี้ ซึ่งจะช่วยให้ ADK ทราบว่าโค้ดของคุณอยู่ที่ใดใน agent.py
แก้ไขไฟล์ชื่อ mysolution/agent.py โดยเพิ่มเนื้อหาต่อไปนี้
from google.adk.agents import Agent
root_agent = Agent(
name="travel_basic",
model="gemini-2.5-flash",
instruction="You are a helpful travel assistant." +
"You can help with general travel advice based on your knowledge.",
)
การทดสอบ Agent
ซึ่งเป็นความจริงสำหรับทุกขั้นตอน ADK ช่วยให้คุณทดสอบ Agent ได้ 2 วิธี ได้แก่ CLI และเว็บ
- CLI เหมาะที่สุดสำหรับการทดสอบแบบรวดเร็วและอัตโนมัติ
- เว็บเป็นช่องทางที่ดีที่สุดในการดูสิ่งที่เกิดขึ้นด้วยภาพ ใช้ไมโครโฟน (!) และแก้ปัญหา
เคล็ดลับ: สำหรับวัตถุประสงค์ของแบบฝึกหัดนี้ หากต้องการทำสิ่งใดให้สำเร็จ (ยกเว้นการทำ Unit Test) ให้ใช้เว็บ น่าทึ่งมากจริงๆ ใช้ CLI สำหรับการทดสอบอัตโนมัติเท่านั้น
พรอมต์ที่ดีซึ่งทดสอบขั้นตอนที่ 1-2-3-4 ได้อย่างเหมาะสมอาจเป็นพรอมต์ต่อไปนี้ (พรอมต์ "ทดสอบ" อัจฉริยะ)
สวัสดี ฉันต้องการจองโรงแรมในปารีสสำหรับคืนพรุ่งนี้ พักคนเดียว 1 คืนในใจกลางเมืองปารีส ถ้าจะให้ดีควรอยู่ใกล้กับสถานีรถไฟ Gare de Lyon งบประมาณ: ต่ำกว่า 200 ยูโรต่อคืน
- บอกฉันหน่อยว่าวันพรุ่งนี้คือวันอะไรในสัปดาห์และมีรูปแบบ YYYYMMDD อย่างไร
- บอกหน่อยว่าคุณเห็นโรงแรมใดบ้างสำหรับวันพรุ่งนี้ (อย่างน้อย 3 แห่ง) ฉันต้องการดูราคา ที่อยู่ คะแนนบางส่วน (ในรูปแบบ XX/YY เช่น "4.7/5" จากโรงแรมใน Google, Booking หรือ Airbnb) และจำนวนรีวิว แสดงข้อมูลในรูปแบบตาราง ชื่อโรงแรมควรลิงก์กับ URL บางประเภทของโรงแรม (ไม่ต้องเพิ่มคอลัมน์ URL) ตรวจสอบว่าลิงก์ถูกต้อง (ใช้งานได้และหน้าเว็บชี้ไปยังข้อมูลเกี่ยวกับโรงแรม)
นี่คือพรอมต์อัจฉริยะเนื่องจากจะทดสอบเวลาและโรงแรม และจะล้มเหลวแตกต่างกันในขั้นตอนที่ 1,2,3 และควรจะสำเร็จอย่างสมบูรณ์ในขั้นตอนที่ 4 เท่านั้น แน่นอนว่าคุณสามารถใช้พรอมต์ใดก็ได้ที่คุณต้องการ
เรียกใช้จาก Bash (CLI) โดยทำดังนี้
# 1. If ADK was installed: adk run mysolution/ # ... but if you get: -bash: adk: command not found" # 2. Call ADK cli script through UV to avoid python install nightmares. uv run adk run mysolution/
ลองใช้ "พรอมต์ทดสอบ" ด้านบน
แต่อาจไม่ทราบวันที่ที่เจาะจง เราต้องสอนให้มันรู้จักวันที่
สำหรับเว็บ คุณสามารถทำได้ดังนี้
uv run adk web .: ตัวเลือกนี้จะเรียกใช้ตัวแทนทั้งหมดในโฟลเดอร์นี้ คุณต้องการชี้ไปยังโฟลเดอร์ย่อย "mysolution/"- เลือก
mysolution/ที่ด้านขวาบน (ดูรูปภาพด้านข้าง) - ถามคำถามเป็นข้อความหรือผ่านไมโครโฟนในลักษณะเดียวกับ "พรอมต์ทดสอบ"

โปรดทราบว่าคุณต้องเรียกใช้ adk web จากโฟลเดอร์ด้านบน โดยอิงตามเวอร์ชัน CLI

นี่คือวิธีแก้ปัญหาที่เป็นไปได้ โดยมีวันที่ที่อาจไม่ถูกต้อง โปรดทราบว่าลิงก์การจอง 3 จาก 5 รายการใช้งานได้ ก็ไม่เลวนะ
5. ขั้นตอนที่ 2: เพิ่มเครื่องมือ now()

เพิ่มฟังก์ชันนี้ลงใน agent.py ก่อนคำจำกัดความ root_agent:
from datetime import datetime
def now() -> dict:
"""Returns the current date and time."""
my_datetime = ... # Ask Gemini CLI to help you!
return {
"status": "success",
"current_time": my_datetime
}
อัปเดตคำจำกัดความของ Agent เพื่อรวมเครื่องมือต่อไปนี้
# file XXX.py
root_agent = Agent(
name="..",
model="..",
instruction="..",
tools=[now] # <== This is the only line you want to add.
)
เรียกใช้คำสั่งอีกครั้งและถามคำถามเดิม ตอนนี้โมเดลควรทราบวันที่ (ดี) และไม่แน่ใจเกี่ยวกับโรงแรม (ไม่ดี)
นอกจากนี้ คุณยังทดสอบด้วยคำสั่งต่อไปนี้ได้ด้วย
# Let's pretend we're in Milan. This should call the tool # and respond correctly (possibly with some TZ math issues) echo "What time is it in Milan?" | uv run adk run mysolution/
6. ขั้นตอนที่ 3: มาเปลี่ยนโหมดกัน: google_search
google_search ซึ่งจะช่วยให้ Agent ของเราเข้าถึงข้อมูลแบบเรียลไทม์จากเว็บได้

งานของคุณคือการแก้ไข Agent จากขั้นตอนที่ 2 คุณจะนำเข้าและใช้เครื่องมือ google_search จากไลบรารี ADK แทนการใช้เครื่องมือ now
# Full Code: `steps/step03_search/agent.py`
# Remember to REMOVE the now() tool here. See above why.
from google.adk.agents import Agent
from google.adk.tools import google_search
root_agent = Agent(
name="travel_agent",
model="gemini-2.5-flash",
tools=[google_search],
instruction="""You are a travel agent.
Your job is to help the user plan a trip.
You have access to a search engine.
If you don't know the answer, you can use the search engine.
When you are done, reply with "DONE".""",
)
วิธีเรียกใช้
เช่นเดียวกับขั้นตอนที่ 1
ผู้เชี่ยวชาญเท่านั้น สำหรับการผสานรวมขั้นสูง (ใช้ google_search และ now ร่วมกัน) ให้ตรวจสอบโค้ดใน steps/step03b_search_and_tool/agent.py และเรียกใช้ด้วย make run-step3b โดยคุณจะทำขั้นตอนนี้หรือไม่ก็ได้
7. ขั้นตอนที่ 4: เครื่องมือที่ซับซ้อนยิ่งขึ้น: MCP

ตอนนี้เราได้เห็นทั้งเครื่องมือที่กำหนดเองและเครื่องมือในตัวแล้ว มาดูสิ่งที่มีประสิทธิภาพมากขึ้นกัน นั่นคือรูปแบบโมเดลเป็นเครื่องมือที่ใช้ Model Context Protocol (MCP)
เพื่อให้ขั้นตอนนี้มุ่งเน้นไปที่ความสามารถอันทรงพลังของ MCP เราจะแทนที่เครื่องมือก่อนหน้า (google_search) อีกครั้ง เราจะนำเครื่องมือ now แบบง่ายกลับมาใช้ควบคู่ไปกับเครื่องมือ airbnb_mcp ตัวอย่างนี้แสดงให้เห็นว่า Agent สามารถใช้เครื่องมือที่เข้ากันได้หลายรายการ (ในกรณีนี้คือ FunctionTool และ MCPToolset) เพื่อทำงานที่ซับซ้อนได้อย่างไร
# Full Code: steps/step04_mcp/agent.py
# ... Imports as before
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from mcp import StdioServerParameters
def now() -> dict:
# ... as before
# Configure the Airbnb MCP Toolset
airbnb_mcp = MCPToolset(
connection_params=StdioConnectionParams(
server_params=StdioServerParameters(
command='npx',
args=["-y", "@openbnb/mcp-server-airbnb", "--ignore-robots-txt"],
),
)
)
root_agent = Agent(
name="travel_mcp",
model="gemini-2.5-flash",
instruction="You are a helpful travel assistant. You can find accommodation using Airbnb, and have access to the current time.",
tools=[now, airbnb_mcp],
)
วิธีเรียกใช้
ขั้นตอนนี้กำหนดให้ต้องติดตั้ง npx ในระบบ ส่วนที่เหลือจะเหมือนกับด้านบน
คำเตือน/ข้อผิดพลาด
- หากได้รับข้อผิดพลาดเกี่ยวกับข้อจำกัด
robots.txtคุณสามารถแพตช์ MCP ด้วยคำสั่งละเว้น robots ได้ อ่านเอกสารประกอบเพื่อดูรายละเอียดเพิ่มเติมได้ที่ https://github.com/openbnb-org/mcp-server-airbnb - หากได้รับข้อผิดพลาด
timeout(5 วินาทีสั้นเกินไปที่ Airbnb จะได้รับการตอบกลับ) โปรดดูเอกสารประกอบของ ADK เกี่ยวกับวิธีเพิ่มระยะหมดเวลาเป็น 30 วินาที เป็นต้น หรือ... ใช้ Gemini CLI เพื่อดำเนินการดังกล่าว โปรดทราบว่าเมื่อวันที่ 3 ธ.ค. 25 Cloud Shell แสดงข้อผิดพลาดเกี่ยวกับระยะหมดเวลา ฉันแก้ไขข้อผิดพลาดเกี่ยวกับระยะหมดเวลาแล้ว แต่ก็ยังพบข้อผิดพลาดอยู่ จนกระทั่งฉันบังคับให้ใช้เวอร์ชันก่อนหน้า:args=["-y", "@openbnb/mcp-server-airbnb@0.1.2", "--ignore-robots-txt"]
8. 🏅 บรรลุเป้าหมายที่ 1 แล้ว
🏅 ยินดีด้วย 🏅 ตอนนี้คุณเป็นผู้เชี่ยวชาญด้าน ADK แล้ว คุณได้ทำเวิร์กช็อปส่วนแรกเสร็จแล้ว และสร้างและทดสอบ AI Agent ด้วยเครื่องมือที่กำหนดเอง เครื่องมือในตัว และเครื่องมือ MCP ขั้นสูงเรียบร้อยแล้ว ตอนนี้คุณพร้อมที่จะสร้าง Agent ที่น่าทึ่งของคุณเองด้วย Google Agent Development Kit แล้ว
ตอนนี้คุณมีตัวแทนท่องเที่ยวที่ใช้งานได้ซึ่งทราบเวลาและสามารถค้นหาเว็บได้แล้ว ตอนนี้คุณก็สร้างสรรค์ได้อย่างไร้ขีดจำกัดแล้ว
ตอนนี้ก็ถึงเวลาเพิ่มฟังก์ชันการทำงานด้วย "Gemini CLI" แล้ว
9. 🏅 เป้าหมายที่ 2: Vibe Coding ในแบบของคุณผ่าน ADK โดยใช้ Gemini CLI
ตอนนี้เราเข้าสู่ส่วนที่น่าสนใจของเวิร์กช็อปแล้ว
- ตรวจสอบว่าคุณได้
git commitรหัสไว้ในที่ปลอดภัยแล้ว คุณสามารถแยกโค้ดต้นฉบับหรือสร้าง Branch ได้ ไม่ต้องกังวล Gemini CLI ช่วยคุณได้ดีมากในเรื่องนี้ - ค้นหา💡ไอเดียที่จะนำไปใช้ คุณสามารถดูไอเดียด้านล่าง ค้นหาไอเดียด้วยตัวเอง หรือขอความช่วยเหลือจาก Gemini ให้ดูเอกสารประกอบใน rag/ และเสนอไอเดียที่ชาญฉลาดก็ได้
- ทำตามข้อกำหนดเบื้องต้นเพื่อให้แน่ใจว่า Gemini สามารถอ่านเอกสาร ADK ได้ เท่านี้ก็เรียบร้อย
💡 ไอเดีย
- 🟢 [ง่าย] คุณเป็นผู้ที่พูดได้หลายภาษาใช่ไหม คุณต้องการให้
go,javaหรือTypeScriptการเปลี่ยนโครงสร้างภายในโค้ดที่มีอยู่นั้นทำได้ง่ายมาก เพียงตรวจสอบว่าได้ดาวน์โหลด ADK ที่เหมาะสมแล้ว และขอความช่วยเหลือจาก Gemini CLI ให้ทำการแปล - 🟢 [ง่าย] เพิ่มอีโมจิหรือระบุรูปแบบเอาต์พุตที่ต้องการ (เช่น ตารางที่มีอีโมจิโรงแรม ตามด้วยราคา ตามด้วยอีโมจิดาว 1-5 ดวงโดยใช้ 🌕🌕🌕🌗🌑 เพื่อแสดงครึ่งดาวด้วย)
- 🟢 [ง่าย] เปลี่ยนพรอมต์เพื่อสอนโมเดลเกี่ยวกับสิ่งที่คุณกำลังมองหาหรือสิ่งที่ไม่ต้องการ (เป็นมิตรกับสัตว์เลี้ยง ไม่เอาชั้นล่าง เงียบสงบ ใกล้ขนส่งมวลชน ฯลฯ) แล้วทดสอบ อาจเพิ่มการให้คะแนนส่วนตัว เช่น "คะแนนจาก YOUR_NAME ตั้งแต่ 1-10" โดยอิงตามข้อมูลข้างต้น แล้วจัดเรียงตามคะแนนนั้น
- 🟢 [ง่าย] มีโอเปอเรเตอร์อยู่ในห้องไหม ทำให้ใช้งานได้กับ Cloud Run หรือ Vertex AI Agent Engine คุณทราบหรือไม่ว่าคุณสามารถผสานรวม Agent นี้และเรียกใช้ได้โดยตรงจาก Gemini Enterprise ใหม่
- 🟢 [ง่าย] ผสานรวม
adk runเข้ากับ 🍌 NanoBanana MCP ต้องใช้คีย์ Gemini API คุณจะสร้างรูปภาพได้ที่นี่ แต่จะแสดงภาพไม่ได้ ดูตัวแปรที่ยากขึ้นได้ที่ด้านล่าง - 🟡 [ปานกลาง] สร้างตัวแทนย่อยที่ทำ
HotelSearchและสร้างBudgetAgentหรือLocationAgentซึ่งสามารถเพิ่มประสิทธิภาพและทำซ้ำเกี่ยวกับโรงแรมโดยคำนึงถึงความต้องการด้านสถานที่ตั้งของคุณ เช่น "ห่างจากสถานที่ตั้งไม่เกิน X กม." หาก API ไม่อนุญาตให้ดำเนินการนี้ อาจมีการโต้ตอบไปมาโดย Google Search หมายเหตุ: Gemini CLI ช่วยคุณได้ - 🟡 [ปานกลาง] ใช้
AirbnbReviewAgentซึ่งจะเข้าไปดูรีวิวและสรุปข้อดีและข้อเสียเป็นสัญลักษณ์หัวข้อย่อยที่ใช้รหัสสีไม่กี่รายการสำหรับโรงแรม 1 แห่งหรือหลายแห่งที่ได้จากการค้นหา คุณมีส่วนประกอบ 2 อย่างแล้ว (GoogleSearch และ MCP Airbnb) จากนั้นคุณต้องเชื่อมต่อส่วนประกอบเหล่านี้กับ Agent หลัก และอาจต้องสร้างโปรโตคอลบางอย่างเพื่อให้ส่วนประกอบเหล่านี้สื่อสารกันได้ - 🟡 [ปานกลาง] ผสานรวมกับ A2A กำหนดให้เป็น A2A Agent ขอย้ำอีกครั้งว่าคุณขอความช่วยเหลือจาก Gemini CLI ได้
- 🔴 [ซับซ้อน] คุณสามารถผสานรวมกับ Flights หรือฟังก์ชัน MCP อื่นๆ เพื่อสร้างตัวแทนท่องเที่ยวที่มีฟังก์ชันหลากหลายและครอบคลุมหลายด้าน
- 🔴 [ซับซ้อน] ผสานรวม ADK Web กับ 🍌 NanoBanana MCP วิธีนี้ยากกว่าวิธีข้างต้น และคุณสามารถดูเคล็ดลับบางอย่างได้ที่ https://github.com/palladius/ai-friendly-agents/issues/11 ผู้เขียนใช้เวลา 3 ชั่วโมงในการโต้ตอบกับ Gemini CLI, Gemini3 และเราทั้งคู่ก็อ่านเอกสาร/โค้ดจาก
rag/
หากต้องการแรงบันดาลใจเพิ่มเติม
- ดูไอเดียได้ในบทแนะนำ ADK อย่างเป็นทางการ
- ขอความช่วยเหลือจาก Gemini CLI เพื่อค้นหาไอเดียโดยดูเอกสารประกอบใน
rag/: พรอมต์ที่เป็นไปได้อาจเป็นIs there a feature in here which seems very succulent to you? Give me 3 proposals and let's implement together the one I choose
ข้อกำหนดเบื้องต้นสำหรับ "RAG" ของ ADK
หากต้องการเขียนโค้ดฟังก์ชันการทำงานแบบ Vibe Coding เราขอแนะนำให้ดาวน์โหลด ADK ทั้งหมด python ADK (หมายเหตุ: คุณสามารถปรับให้เข้ากับภาษาที่ต้องการได้อย่างง่ายดาย เช่น Java หรือ Go)
โค้ดอยู่ภายใต้ ./rag และดาวน์โหลดได้ด้วย ./download-adk.sh
เนื่องจากโฟลเดอร์ rag แสดงอยู่ในไฟล์ .gitignore โปรดตรวจสอบว่า .gemini/settings.json มีข้อมูลต่อไปนี้
{
"context": {
"includeDirectories": ["rag"]
}
}
เพราะเหตุใด เราต้องการให้ Gemini อ่านไฟล์เหล่านั้นได้ ขณะที่ไฟล์เหล่านั้นถูกละเว้นโดย Git อย่างปลอดภัย ในทางเทคนิค คุณยังสามารถเลิกซ่อนไฟล์ .gitignore ทั้งหมดได้โดยตั้งค่า context.fileFiltering.respectGitIgnore เป็น false แต่การทำเช่นนี้จะเปิดขยะ node_modules/ และ __pycache__/ จำนวนมาก ดังนั้นการรวมโฟลเดอร์ที่ชัดเจนจึงเป็นตัวเลือกที่แนะนำ
10. ขั้นตอนถัดไป
เกร็ดน่ารู้: เวิร์กช็อปนี้สร้างขึ้นโดยใช้ Gemini CLI หากสนใจ คุณสามารถดูวิธีที่ฉันทำได้โดยดูที่ GEMINI.md และ WORKSHOP_PLAN.md ในโฟลเดอร์นี้
บทเรียนที่ได้รับ
เราได้เรียนรู้วิธีจับคู่ ADK กับ Gemini CLI แล้ว
อ่านเพิ่มเติม
- ดู Codelab อย่างเป็นทางการของ Antigravity 2 รายการต่อไปนี้
- ดูไอเดียได้ในบทแนะนำ ADK อย่างเป็นทางการ
