รูปแบบ ADK Agentic ที่มีหน่วยความจำและ MCP

1. สิ่งที่คุณจะได้เรียนรู้

ยินดีต้อนรับสู่ ADK Master Class - เส้นทางสู่ระบบ Multi-Agent

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

เพลงคัฟเวอร์

เมื่อจบบทแนะนำนี้ คุณจะทำสิ่งต่อไปนี้ได้

  • สร้าง AI Agent ตัวแรก: สร้าง Agent ที่ทำงานได้อย่างเต็มรูปแบบตั้งแต่ต้นจนจบ ซึ่งสามารถทำความเข้าใจความต้องการของผู้ใช้ ใช้เครื่องมือต่างๆ เช่น Google Search และสร้างคำตอบที่มีรายละเอียดและเป็นประโยชน์
  • สร้างระบบ Multi-Agent: เรียนรู้รูปแบบ "Agent-as-a-Tool" ซึ่งเป็นแนวคิดที่ปฏิวัติวงการที่ Agent มอบหมายงานให้ Agent อื่นๆ ที่มีความเชี่ยวชาญเฉพาะทาง ทำให้เกิดทีมผู้เชี่ยวชาญด้าน AI ที่ทำงานร่วมกัน
  • จัดระเบียบเวิร์กโฟลว์ที่ซับซ้อน: ทำได้มากกว่าการมอบหมายงานแบบง่ายๆ และเชี่ยวชาญรูปแบบขั้นสูง เช่น เราเตอร์, เชนแบบลำดับ, ลูป และการดำเนินการแบบขนาน เพื่อสร้างแอปพลิเคชันที่แข็งแกร่ง มีประสิทธิภาพ และชาญฉลาด ซึ่งสามารถจัดการคำขอได้เกือบทุกคำขอ
  • ให้ Agent มีความจำ: ทำความเข้าใจบทบาทสำคัญของหน่วยความจำในการสนทนา ซึ่งช่วยให้ Agent จัดการคำถามติดตามผล เรียนรู้จากความคิดเห็น และจัดการงานที่มีหลายขั้นตอนได้อย่างราบรื่น
  • เชื่อมต่อกับ MCP: เชื่อมต่อกับกล่องเครื่องมือ MCP

มาเริ่มกันเลย 🚀

2. ตั้งค่าคีย์ GCP และ Gemini API

การตั้งค่าโปรเจ็กต์ GCP และคีย์ Gemini API

เราต้องมี 2 สิ่งเพื่อขับเคลื่อนเอเจนต์ AI ได้แก่ โปรเจ็กต์ Google Cloud เพื่อเป็นรากฐาน และคีย์ Gemini API เพื่อเข้าถึงโมเดลอันทรงพลังของ Google

ขั้นตอนที่ 1: เปิดใช้บัญชีสำหรับการเรียกเก็บเงิน

หากต้องการเรียกใช้ Codelab นี้ คุณต้องมีบัญชีสำหรับการเรียกเก็บเงินที่มีเครดิตอยู่บ้าง ใช้เครดิตจากแบนเนอร์ที่ด้านบนของ Codelab นี้เพื่อเริ่มต้นใช้งาน หากเชื่อมต่อกับบัญชีสำหรับการเรียกเก็บเงินอยู่แล้ว ให้ข้ามขั้นตอนนี้

ขั้นตอนที่ 2: สร้างโปรเจ็กต์ GCP ใหม่

  • ไปที่คอนโซล Google Cloud แล้วสร้างโปรเจ็กต์ใหม่

สร้างบัญชี GCP ใหม่

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

ลิงก์บัญชีสำหรับการเรียกเก็บเงินกับบัญชี gcp

หากเห็นหน้านี้ ให้ตรวจสอบ manage billing account เลือก Google Cloud Trial One และลิงก์กับบัญชีดังกล่าว

ขั้นตอนที่ 3: ค้นหารหัสโปรเจ็กต์ Google Cloud

👉คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของคอนโซล Google Cloud (ไอคอนรูปเทอร์มินัลที่ด้านบนของแผง Cloud Shell) cloud-shell.png

👉คลิกปุ่ม "เปิดตัวแก้ไข" (ลักษณะเป็นโฟลเดอร์ที่เปิดอยู่พร้อมดินสอ) ซึ่งจะเปิดตัวแก้ไขโค้ด Cloud Shell ในหน้าต่าง คุณจะเห็น File Explorer ทางด้านซ้าย open-editor.png

👉ค้นหารหัสโปรเจ็กต์ Google Cloud

  • เปิดคอนโซล Google Cloud: link
  • เลือกโปรเจ็กต์ที่ต้องการใช้สําหรับเวิร์กช็อปนี้จากเมนูแบบเลื่อนลงของโปรเจ็กต์ที่ด้านบนของหน้า
  • รหัสโปรเจ็กต์จะแสดงในการ์ดข้อมูลโปรเจ็กต์ในแดชบอร์ด

03-04-project-id.png

👉💻 ในเทอร์มินัล ให้ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและตั้งค่าโปรเจ็กต์เป็นรหัสโปรเจ็กต์โดยใช้คำสั่งต่อไปนี้

gcloud auth list

👉💻 โคลนโปรเจ็กต์ Bootstrap จาก GitHub

git clone https://github.com/cuppibla/adk_tutorial.git

👉💻 เรียกใช้สคริปต์การเริ่มต้น สคริปต์นี้จะแจ้งให้คุณป้อนรหัสโปรเจ็กต์ Google Cloud และป้อนรหัสโปรเจ็กต์ Google Cloud ที่คุณพบจากขั้นตอนสุดท้ายเมื่อ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: Agent ตัวแรกใน 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: เวิร์กโฟลว์ Agent: Agent แบบลำดับ, Agent แบบขนาน, Agent แบบวนซ้ำ

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 ได้ที่นี่ การติดตามรูปภาพของเอเจนต์ตามลำดับ

คุณดูการติดตามได้ที่นี่ การติดตามรูปภาพของ sequential_agent

Loop Agent

เลือกเอเจนต์เวิร์กโฟลว์ของ 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 ได้ที่นี่ การติดตามรูปภาพของ Custom_Agent

คุณดูการติดตามได้ที่นี่ การติดตามรูปภาพของ 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 ได้ที่นี่ ภาพการติดตามของ Agent การกำหนดเส้นทาง

คุณดูการติดตามได้ที่นี่ ภาพการติดตามของ 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 ได้ที่นี่ การวาดภาพตัวแทนเป็นเครื่องมือ

คุณดูการติดตามได้ที่นี่ ภาพการติดตามของ Agent การกำหนดเส้นทาง

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

👉💻 เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล

cd ~/adk_tutorial/mcp_tool_box
export VERSION=0.16.0
curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/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