1. บทนำ

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



- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยทั่วไปจะระบุเป็น
PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณอาจลองใช้ชื่อของคุณเองและดูว่ามีชื่อนั้นหรือไม่ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
- จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะไม่มีค่าใช้จ่ายมากนัก หรืออาจไม่มีค่าใช้จ่ายเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่มต้น Cloud Shell
แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จาก Google Cloud Console ให้คลิกไอคอน 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 ใดก็ได้ตามต้องการ แต่การใช้ uv จะช่วยให้มั่นใจได้ว่าการตั้งค่า ENV/PATH สำหรับ Python จะเหมือนกันสำหรับคุณและ Gemini CLI ดังนั้นประสบการณ์การใช้งานเชลล์ของคุณจะเหมือนกับของ 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
หมายเหตุ: คุณต้องติดตั้ง npm หรือ npx ก่อน
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 หรือคีย์ API ของ Google AI Studio
ตัวเลือก ก (แนะนำสำหรับเวิร์กช็อป): ส่งออกคีย์ 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 sync
# 4. Call Gemini CLI
gemini # This runs Gemini CLI under the simple-travel-agent/ folder.
# Login with your GMail account.
uv sync ไม่ได้จำเป็นอย่างเคร่งครัด แต่หากไม่สำเร็จ คุณจะทราบว่าต้องแก้ไขการติดตั้ง Python หรือ uv
หากต้องการทดสอบการตั้งค่า คุณเพียงแค่เรียกใช้ make test-step1 และตรวจสอบว่าคุณไม่ได้รับ 403 PERMISSION DENIED.
โซลูชันที่พร้อมใช้งาน
โค้ดทั้งหมดจะอยู่ใน 📂 steps/ คุณสามารถคัดลอกโค้ดจากที่นั่นได้
Codelab นี้ไม่ได้สอนวิธีเขียนโค้ด ADK ที่ดี แต่เป็นการตั้งค่าสภาพแวดล้อมเพื่อให้ระบบเขียนโค้ดที่ดีโดยอัตโนมัติตามคำสั่งของคุณ
- การติดตั้งซอฟต์แวร์
- การกำหนดค่า / การทำให้ทำงานได้ และ
- เข้าสู่วงจรความคิดเห็นที่ถูกต้อง
นี่คือสิ่งที่เราอยากให้คุณได้เรียนรู้จริงๆ นอกจากนี้ คุณยังทดสอบทั้งหมดพร้อมกันได้ผ่าน $ make web-4steps
4. ขั้นตอนที่ 1: เอเจนต์พื้นฐาน

มาเริ่มด้วยการสร้าง 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 ช่วยให้คุณทดสอบเอเจนต์ได้ 2 วิธี ได้แก่ CLI และเว็บ
- CLI เหมาะที่สุดสำหรับการทดสอบแบบรวดเร็วและอัตโนมัติ
- เว็บเหมาะที่สุดในการดูสิ่งที่เกิดขึ้นด้วยภาพ ใช้ไมโครโฟน (!) และแก้ปัญหา
เคล็ดลับ: ในการทำแบบฝึกหัดนี้ หากต้องการทำสิ่งใดก็ตาม (ยกเว้นการทดสอบหน่วย) ให้ใช้เว็บ มันยอดเยี่ยมมาก ใช้ CLI สำหรับการทดสอบอัตโนมัติเท่านั้น
พรอมต์ที่ดีซึ่งทดสอบขั้นตอนที่ 1-2-3-4 อย่างถูกต้องอาจเป็นพรอมต์นี้ (พรอมต์ "ลิตมัส" อัจฉริยะ)
# <!– litmus prompt –> สวัสดี ฉันต้องการจองโรงแรมในปารีสสำหรับเย็นวันพรุ่งนี้ 1 คืนในใจกลางเมืองปารีส ควรอยู่ใกล้กับสถานี Gare de Lyon งบประมาณ: ต่ำกว่า 200 ยูโรต่อคืน
- บอกหน่อยว่าพรุ่งนี้คือวันที่เท่าไร (YYYYMMDD) และวันอะไร
- บอกหน่อยว่าคุณเห็นโรงแรมใดบ้างสำหรับวันพรุ่งนี้ (อย่างน้อย 3 แห่ง) ฉันต้องการดูราคา ที่อยู่ คะแนนบางอย่าง (ในรูปแบบ XX/YY เช่น "4.7/5" จาก Google Hotels, 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/ที่ด้านขวาบน (ดูรูปภาพด้านข้าง) - ถามคำถามเป็นข้อความหรือผ่านไมโครโฟนในลักษณะเดียวกับ "พรอมต์ลิทมัส"
TODO(ricc): <image here>
โปรดทราบว่าคุณต้องเรียกใช้ adk web จากโฟลเดอร์ด้านบนตามเวอร์ชัน CLI
นี่คือวิธีแก้ปัญหาที่เป็นไปได้พร้อมวันที่ที่กึ่งหลอน หมายเหตุ: ลิงก์การจอง 3 จาก 5 รายการใช้งานได้ ก็ไม่เลวนะ
5. ขั้นตอนที่ 2: เพิ่มเครื่องมือ now()
เอเจนต์ไม่รู้ว่า "วันนี้" คือวันไหน เรามาให้เครื่องมือแก่เอเจนต์กัน
TODO(image): ricc put here image of step2.
เพิ่มฟังก์ชันนี้ลงใน 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
travel_agent = LlmAgent(
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
เมื่อทราบวิธีสร้างเครื่องมือที่กำหนดเองแล้ว มาดูวิธีใช้เครื่องมือที่มีประสิทธิภาพในตัวเครื่องมือหนึ่งที่ ADK มีให้กัน google_search ซึ่งจะช่วยให้ตัวแทนของเราเข้าถึงข้อมูลแบบเรียลไทม์จากเว็บได้

งานของคุณคือการแก้ไข 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
TODO(ricc): เพิ่มรูปภาพ 4
ตอนนี้เราได้เห็นทั้งเครื่องมือที่กำหนดเองและเครื่องมือในตัวแล้ว มาดูสิ่งที่ทรงพลังยิ่งกว่ากัน นั่นคือ รูปแบบโมเดลในฐานะเครื่องมือโดยใช้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 ด้วยคำสั่ง ignore robots ได้ อ่านรายละเอียดเพิ่มเติมได้ที่ https://github.com/openbnb-org/mcp-server-airbnb - หากได้รับข้อผิดพลาด
timeout(5 วินาทีต่ำเกินไปสำหรับ Airbnb ในการรับคำตอบ) โปรดดูเอกสารประกอบ ADK เกี่ยวกับวิธีเพิ่มการหมดเวลาเป็น 30 วินาที เป็นต้น หรือใช้ Gemini CLI เพื่อดำเนินการนี้ โปรดทราบว่าเมื่อวันที่ 3 ธ.ค. 2025 Cloud Shell แสดงข้อผิดพลาดหมดเวลา ฉันแก้ไขข้อผิดพลาดหมดเวลาแล้ว แต่ก็ยังคงได้รับข้อผิดพลาดอยู่ จนกระทั่งฉันบังคับให้ใช้เวอร์ชันก่อนหน้า:args=["-y", "@openbnb/mcp-server-airbnb@0.1.2", "--ignore-robots-txt"]
8. 🏅 ทำเป้าหมายที่ 1 สำเร็จแล้ว
🏅 ยินดีด้วย 🏅 ตอนนี้คุณเป็นผู้เชี่ยวชาญด้าน ADK แล้ว คุณได้เข้าร่วมเวิร์กช็อปส่วนแรกและสร้างและทดสอบเอเจนต์ AI ด้วยเครื่องมือที่กำหนดเอง เครื่องมือในตัว และเครื่องมือ MCP ขั้นสูงเรียบร้อยแล้ว ตอนนี้คุณก็พร้อมสร้างเอเจนต์ที่น่าทึ่งของคุณเองด้วย Google Agent Development Kit แล้ว
ตอนนี้คุณมีตัวแทนการท่องเที่ยวที่ใช้งานได้ซึ่งรู้เวลาและค้นหาเว็บได้ ตอนนี้คุณจะทำอะไรก็ได้ตามใจแล้ว
ตอนนี้ได้เวลาเพิ่มฟังก์ชันการทำงานด้วย "Gemini CLI" แล้ว
9. 🏅 เหตุการณ์สำคัญ 2: Vibe Coding ผ่าน ADK ด้วย Gemini CLI
ตอนนี้เรามาถึงส่วนที่น่าสนใจของเวิร์กช็อปแล้ว
- ตรวจสอบว่าคุณได้
git commitรหัสไว้ในที่ปลอดภัยแล้ว คุณสามารถ Fork โค้ดต้นฉบับหรือสร้างกิ่งได้ ไม่ต้องกังวล Gemini CLI ช่วยคุณได้ - ค้นหาไอเดีย💡ที่จะนำไปใช้ คุณสามารถดูไอเดียด้านล่าง ค้นหาไอเดียด้วยตนเอง หรือขอให้ Gemini ดูเอกสารใน rag/ และเสนอไอเดียอัจฉริยะ 2-3 รายการ
- ทำตามข้อกำหนดเบื้องต้นเพื่อให้ 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 กม. จาก LOCATION" หาก API ไม่อนุญาตให้ทำเช่นนี้ GoogleSearch อาจช่วยให้คุณสลับไปมาระหว่างแอปได้ หมายเหตุ: Gemini CLI ช่วยคุณได้ - 🟡 [ปานกลาง] ใช้
AirbnbReviewAgentซึ่งจะไปอยู่ในรีวิวและสรุปข้อดีและข้อเสียในหัวข้อย่อยที่เข้ารหัสสี 2-3 รายการ สำหรับโรงแรม 1 แห่งหรือ N แห่งที่ได้จากการค้นหา คุณมีส่วนผสมอยู่แล้ว 2 อย่าง (GoogleSearch และ MCP Airbnb) จากนั้นคุณต้องเชื่อมต่อส่วนผสมนี้กับเอเจนต์หลักและอาจต้องคิดค้นโปรโตคอลบางอย่างเพื่อให้ส่วนผสมทั้ง 2 สื่อสารกันได้ - 🟡 [ปานกลาง] ผสานรวมกับ A2A ทำให้เป็นเอเจนต์ A2A ขอความช่วยเหลือจาก Gemini CLI ได้เลย
- 🔴 [ซับซ้อน] คุณสามารถผสานรวมกับ Flights หรือฟังก์ชัน MCP อื่นๆ เพื่อสร้างตัวแทนการท่องเที่ยวแบบมัลติฟังก์ชันที่หลากหลาย
- 🔴 [ซับซ้อน] ผสานรวมเว็บ ADK กับ 🍌 NanoBanana MCP ซึ่งยากกว่าข้อความด้านบน และคุณดูเคล็ดลับบางอย่างได้ที่ https://github.com/palladius/ai-friendly-agents/issues/11 ซึ่งผู้เขียนใช้เวลา 3 ชั่วโมงในการสลับไปมาระหว่าง Gemini CLI, Gemini3 และเราทั้ง 2 คนอ่านเอกสาร/โค้ดจาก
rag/!
หากกำลังมองหาแรงบันดาลใจเพิ่มเติม
- ดูไอเดียได้ในบทแนะนำ ADK ที่ยอดเยี่ยมของ Maurizio
- ขอให้ 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
ข้อกำหนดเบื้องต้นสำหรับ ADK "RAG"
หากต้องการเขียนโค้ดฟังก์ชันการทำงาน เราขอแนะนำให้คุณดาวน์โหลด 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 รายการนี้จาก Romin และ Mete
- การเริ่มต้นใช้งาน Google Antigravity
- การสร้างด้วย Google Antigravity
- สร้างและทำให้ Google Cloud ใช้งานได้กับ Antigravity
- ดูไอเดียได้ในบทแนะนำ ADK ที่ยอดเยี่ยมของ Maurizio
