1. สิ่งที่คุณจะได้เรียนรู้
ยินดีต้อนรับสู่ ADK Master Class - การเดินทางสู่ระบบหลายเอเจนต์
คุณกำลังจะก้าวเข้าสู่โลกที่น่าตื่นเต้นของ AI Agent ลืมแชทบอทแบบง่ายๆ ที่ตอบคำถามเท่านั้นไปได้เลย เรากำลังเจาะลึกAgent Development Kit (ADK)เพื่อสร้างระบบอัตโนมัติที่ซับซ้อนซึ่งสามารถให้เหตุผล วางแผน และใช้เครื่องมือเพื่อทำงานที่ซับซ้อนให้สำเร็จ

เมื่อจบบทแนะนำนี้ คุณจะทำสิ่งต่อไปนี้ได้
- สร้าง AI Agent ตัวแรก: สร้าง Agent ที่ทำงานได้อย่างเต็มรูปแบบตั้งแต่ต้นจนจบ ซึ่งสามารถทำความเข้าใจความต้องการของผู้ใช้ ใช้เครื่องมือต่างๆ เช่น Google Search และสร้างคำตอบที่มีรายละเอียดและเป็นประโยชน์
- สร้างระบบหลายเอเจนต์: เรียนรู้รูปแบบ "Agent ในฐานะเครื่องมือ" ซึ่งเป็นแนวคิดที่ปฏิวัติวงการที่ Agent มอบหมายงานให้ Agent อื่นๆ ที่มีความเชี่ยวชาญเฉพาะทาง ทำให้เกิดทีมผู้เชี่ยวชาญด้าน AI ที่ทำงานร่วมกัน
- จัดระเบียบเวิร์กโฟลว์ที่ซับซ้อน: ทำได้มากกว่าการมอบหมายงานแบบง่ายๆ และเชี่ยวชาญรูปแบบขั้นสูง เช่น เราเตอร์, เชนแบบลำดับ, ลูป และการดำเนินการแบบขนาน เพื่อสร้างแอปพลิเคชันที่มีประสิทธิภาพ มีประสิทธิภาพ และชาญฉลาดที่สามารถจัดการคำขอได้เกือบทุกคำขอ
- ให้ Agent มีความจำ: ทำความเข้าใจบทบาทสำคัญของหน่วยความจำในการสนทนา ซึ่งช่วยให้ Agent จัดการคำถามติดตามผล เรียนรู้จากความคิดเห็น และจัดการงานแบบหลายขั้นตอนได้อย่างราบรื่น
- เชื่อมต่อกับ MCP: เชื่อมต่อกับกล่องเครื่องมือ MCP
มาเริ่มกันเลย 🚀
2. ตั้งค่าคีย์ GCP และ Gemini API
การตั้งค่าโปรเจ็กต์ GCP และคีย์ Gemini API
หากต้องการขับเคลื่อนเอเจนต์ AI เราต้องมี 2 สิ่ง ได้แก่ โปรเจ็กต์ Google Cloud เพื่อเป็นรากฐาน และคีย์ Gemini API เพื่อเข้าถึงโมเดลอันทรงพลังของ Google
ขั้นตอนที่ 1: เปิดใช้บัญชีสำหรับการเรียกเก็บเงิน
- การอ้างสิทธิ์บัญชีการเรียกเก็บเงินพร้อมเครดิต 5 ดอลลาร์ คุณจะต้องใช้เครดิตนี้ในการติดตั้งใช้งาน โปรดตรวจสอบบัญชี gmail
ขั้นตอนที่ 2: สร้างโปรเจ็กต์ GCP ใหม่
- ไปที่ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่

- ไปที่ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่
- เปิดแผงด้านซ้าย คลิก
Billingแล้วตรวจสอบว่าบัญชีสำหรับการเรียกเก็บเงินลิงก์กับบัญชี gcp นี้หรือไม่

หากเห็นหน้านี้ ให้ตรวจสอบ manage billing account เลือก Google Cloud Trial One และลิงก์กับบัญชี
ขั้นตอนที่ 3: ค้นหารหัสโปรเจ็กต์ Google Cloud
👉คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของ Google Cloud Console (ไอคอนรูปเทอร์มินัลที่ด้านบนของแผง Cloud Shell) 
👉คลิกปุ่ม "เปิดตัวแก้ไข" (ลักษณะเป็นโฟลเดอร์ที่เปิดอยู่พร้อมดินสอ) ซึ่งจะเปิดตัวแก้ไขโค้ด Cloud Shell ในหน้าต่าง คุณจะเห็น File Explorer ทางด้านซ้าย 
👉ค้นหารหัสโปรเจ็กต์ Google Cloud
- เปิด Google Cloud Console: link
- เลือกโปรเจ็กต์ที่ต้องการใช้สำหรับเวิร์กช็อปนี้จากเมนูแบบเลื่อนลงของโปรเจ็กต์ที่ด้านบนของหน้า
- รหัสโปรเจ็กต์จะแสดงในการ์ดข้อมูลโปรเจ็กต์ในแดชบอร์ด

👉💻 ในเทอร์มินัล ให้ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและตั้งค่าโปรเจ็กต์เป็นรหัสโปรเจ็กต์โดยใช้คำสั่งต่อไปนี้
gcloud auth list
👉💻 โคลนโปรเจ็กต์ Bootstrap จาก GitHub
git clone https://github.com/cuppibla/adk_tutorial.git
👉💻 เรียกใช้สคริปต์การเริ่มต้น สคริปต์นี้จะแจ้งให้คุณป้อนรหัสโปรเจ็กต์ Google Cloud และป้อนรหัสโปรเจ็กต์ Google Cloud ที่คุณพบจากขั้นตอนสุดท้ายเมื่อsetup_venv.shสคริปต์setup_venv.shแจ้งให้ป้อน
cd ~/adk_tutorial
./setup_venv.sh
gcloud services enable compute.googleapis.com \
artifactregistry.googleapis.com \
run.googleapis.com \
iam.googleapis.com \
aiplatform.googleapis.com \
cloudresourcemanager.googleapis.com
3. เซสชันที่ 1: เอเจนต์แรกใน ADK Web
เปิด ADK Web โดยการเรียกใช้
cd ~/adk_tutorial
source .adk_env/bin/activate
adk web
หลังจากเรียกใช้คำสั่งแล้ว คุณควรเห็นเอาต์พุตในเทอร์มินัลที่ระบุว่าเว็บเซิร์ฟเวอร์ ADK เริ่มทำงานแล้ว ซึ่งมีลักษณะคล้ายกับเอาต์พุตนี้
+-----------------------------------------------------------------------------+
| ADK Web Server started |
| |
| For local testing, access at http://localhost:8000. |
+-----------------------------------------------------------------------------+
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
👉 จากนั้น หากต้องการเข้าถึง UI สำหรับนักพัฒนาแอป ADK จากเบราว์เซอร์ ให้ทำดังนี้
จากไอคอนตัวอย่างเว็บ (มักจะมีลักษณะเป็นรูปดวงตาหรือสี่เหลี่ยมที่มีลูกศร) ในแถบเครื่องมือ Cloud Shell (มักจะอยู่ด้านขวาบน) ให้เลือกเปลี่ยนพอร์ต ในหน้าต่างป๊อปอัป ตั้งค่าพอร์ตเป็น 8000 แล้วคลิก "เปลี่ยนและแสดงตัวอย่าง" จากนั้น Cloud Shell จะเปิดแท็บหรือหน้าต่างเบราว์เซอร์ใหม่ที่แสดง UI ของ ADK Dev

👉 พิธีกรรมการอัญเชิญเสร็จสมบูรณ์แล้ว และเอเจนต์กำลังทำงานอยู่ UI สำหรับนักพัฒนา ADK ในเบราว์เซอร์คือการเชื่อมต่อโดยตรงกับ Familiar
เลือกตัวแทนเวิร์กโฟลว์แบบคู่ขนาน ในเมนูแบบเลื่อนลงที่ด้านบนของ UI ให้เลือก parallel_agent
คุณเลือกsingle_agentได้ที่นี่ 
คุณดูการติดตามได้ที่นี่ 
👉 พรอมต์ทดสอบ:
Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art.
4. เซสชันที่ 2: ตัวแทนเวิร์กโฟลว์: ตัวแทนแบบลำดับ ตัวแทนแบบคู่ขนาน ตัวแทนแบบวนซ้ำ
Parallel Agent
เลือกตัวแทนเวิร์กโฟลว์แบบคู่ขนาน ในเมนูแบบเลื่อนลงที่ด้านบนของ UI ให้เลือก parallel_agent
👉 พรอมต์ทดสอบ:
Plan my trip to San Francisco, I want to find some good concert, restaurant and museum.
คุณเลือกparallel_agentได้ที่นี่ 
คุณดูการติดตามได้ที่นี่ 
Sequential Agent
เลือกเวิร์กโฟลว์แบบลำดับ ในเมนูแบบเลื่อนลงที่ด้านบนของ UI ให้เลือก sequential_agent
👉 พรอมต์ทดสอบ:
Find a good sushi near Standford and tell me how to get there.
คุณเลือกsequential_agentได้ที่นี่ 
คุณดูการติดตามได้ที่นี่ 
ตัวแทน Loop
เลือกเอเจนต์เวิร์กโฟลว์ของ Loop ในเมนูแบบเลื่อนลงที่ด้านบนของ UI ให้เลือก loop_agent
👉 พรอมต์ทดสอบ:
Plan a trip from Sunnyvale to San Francisco today.
คุณเลือกloop_agentได้ที่นี่ 
คุณดูการติดตามได้ที่นี่ 
5. เซสชันที่ 3: ตัวแทนที่กำหนดเอง
เมื่อเปิด ADK Web UI แล้ว คุณจะเลือกเอเจนต์ Custom_Agent ได้
👉 พรอมต์ทดสอบ:
Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art. Make sure within budget of 100 dollars.
คุณเลือกCustom_Agentได้ที่นี่ 
คุณดูการติดตามได้ที่นี่ 
6. เซสชันที่ 4: รูปแบบ Orchestrator - Routing Agent
เมื่อเปิด ADK Web UI แล้ว คุณจะเลือก routing_agent ได้
👉 พรอมต์ทดสอบ:
Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.
คุณเลือกrouting_agentได้ที่นี่ 
คุณดูการติดตามได้ที่นี่ 
7. เซสชันที่ 5: ตัวแทนในฐานะเครื่องมือ
เมื่อเปิด ADK Web UI แล้ว คุณจะเลือกเอเจนต์ Agent_as_tool ได้
👉 พรอมต์ทดสอบ:
Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.
คุณเลือกagent_as_toolได้ที่นี่ 
คุณดูการติดตามได้ที่นี่ 
8. เซสชันที่ 6: เอเจนต์ที่มีหน่วยความจำระยะยาว
👉💻 ทดสอบความจำระยะยาวโดยไปที่โฟลเดอร์และใช้โปรแกรมเรียกใช้เพื่อเพิ่มพลังให้เอเจนต์
cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py
👉 พรอมต์ทดสอบ:
I like Art and Italian food.
จากนั้นสิ้นสุดเซสชันโดยกด "crtl+C" เริ่มเซสชันใหม่
cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py
👉 พรอมต์ทดสอบ:
Plan a trip to San Francisco based on my preference.
9. เซสชันที่ 7: เพิ่มศักยภาพให้ตัวแทนด้วย MCP
ขั้นตอนที่ 1: เตรียมฐานข้อมูลในเครื่อง
👉💻 เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
cd ~/adk_tutorial
source .adk_env/bin/activate
chmod +x setup_trip_database.py
./setup_trip_database.py
ขั้นตอนที่ 2: ติดตั้งและเรียกใช้เซิร์ฟเวอร์ MCP Toolbox
👉💻 เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
cd ~/adk_tutorial/mcp_tool_box
export VERSION=0.16.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
เมื่อดาวน์โหลดเสร็จแล้ว ให้เรียกใช้
chmod +x toolbox
ขั้นตอนที่ 3
ในเทอร์มินัลหนึ่ง ให้เรียกใช้คำสั่งต่อไปนี้
cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/mcp_tool_box
./toolbox --tools-file "trip_tools.yaml" --port 7001
ในเทอร์มินัลอื่น ให้เรียกใช้คำสั่งต่อไปนี้
cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/g_agents_mcp
python main.py