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

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 แล้วสร้างโปรเจ็กต์ใหม่

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

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

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

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

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

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

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

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

  • เปิด Google Cloud Console: 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สคริปต์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

webpreview

👉 พิธีกรรมการอัญเชิญเสร็จสมบูรณ์แล้ว และเอเจนต์กำลังทำงานอยู่ 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ได้ที่นี่ การติดตามรูปภาพของเอเจนต์ตามลำดับ

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

ตัวแทน Loop

เลือกเอเจนต์เวิร์กโฟลว์ของ Loop ในเมนูแบบเลื่อนลงที่ด้านบนของ UI ให้เลือก loop_agent

👉 พรอมต์ทดสอบ:

Plan a trip from Sunnyvale to San Francisco today.

คุณเลือกloop_agentได้ที่นี่ ภาพวาดของตัวแทน Loop

คุณดูการติดตามได้ที่นี่ ภาพวาดของตัวแทน Loop

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ได้ที่นี่ ภาพการติดตามของตัวแทนการกำหนดเส้นทาง

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

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