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

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

ยินดีต้อนรับสู่ ADK Master Class - เส้นทางสู่ระบบหลายเอเจนต์

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

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

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

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

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

2. การตั้งค่า: รับคีย์ API

การตั้งค่าคีย์ API ของ Google AI Studio

สิ่งที่คุณต้องมี

  • Python 3.9 ขึ้นไป (python3 --version เพื่อตรวจสอบ)
  • บัญชี Google (เพื่อสร้างคีย์ AI Studio)
  • เทอร์มินัล - เครื่องภายในหรือ Cloud Shell ก็ได้
  • ประมาณ 10 นาที

เราต้องใช้คีย์ Gemini API จาก Google AI Studio เพื่อขับเคลื่อน AI Agent วิธีนี้เป็นวิธีที่เร็วที่สุดในการเริ่มต้นใช้งาน

ขั้นตอนที่ 1 — รับคีย์ Gemini API จาก AI Studio (1 นาที)

  1. เปิด https://aistudio.google.com/app/apikey ในแท็บเบราว์เซอร์ใหม่
  2. ลงชื่อเข้าใช้ด้วยบัญชี Google
  3. คลิก "สร้างคีย์ API" (ด้านขวาบน)
  4. กล่องโต้ตอบจะเปิดขึ้นพร้อมเมนูแบบเลื่อนลงของโปรเจ็กต์
  • หากคุณสร้างโปรเจ็กต์ Google ไว้แล้วก่อนหน้านี้ ให้เลือกโปรเจ็กต์นั้น แล้วคลิก "สร้างคีย์ API ในโปรเจ็กต์ที่มีอยู่"
  • หากไม่อยู่ในรายการ: คลิก "สร้างโปรเจ็กต์"

aistudio

  1. คัดลอกคีย์ API ที่ปรากฏ โดยจะขึ้นต้นด้วย AIza... และมีความยาวประมาณ 40 อักขระ

✏️ วางไว้ในที่ที่ปลอดภัย เนื่องจากคุณจะต้องใช้ในขั้นตอนที่ 4 ด้านล่าง

ขั้นตอนที่ 2 — โคลนที่เก็บ (1 นาที)

👉💻 เปิดเทอร์มินัล (หรือ Cloud Shell) แล้วโคลนที่เก็บของบทแนะนำ

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

ขั้นตอนที่ 3 - สร้างสภาพแวดล้อมเสมือนและติดตั้งการอ้างอิง

👉💻 สร้างและเปิดใช้งานสภาพแวดล้อมเสมือนชื่อ .adk_env จากนั้นติดตั้งการอ้างอิงโดยใช้คำสั่งต่อไปนี้

python3 -m venv .adk_env
source .adk_env/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

คุณควรเห็น (.adk_env) ที่จุดเริ่มต้นของพรอมต์เทอร์มินัล

ขั้นตอนที่ 4 — 🔥 สำคัญ: เพิ่มคีย์ API

⚠️ อย่าข้ามขั้นตอนนี้ สร้างไฟล์ .env ในรูทของโฟลเดอร์ adk_tutorial ไฟล์นี้ใช้ขับเคลื่อนทุกเซสชันใน Codelab นี้ โดยเซสชัน ADK Web (1–5) และเซสชัน Memory และ MCP ในบรรทัดคำสั่ง (6–7) จะอ่านไฟล์นี้โดยอัตโนมัติ

👉💻 สร้างไฟล์ .env ด้วยคีย์ของคุณ (แทนที่ your_actual_api_key_here ด้วยคีย์จากขั้นตอนที่ 1)

cat > .env <<'EOF'
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=your_actual_api_key_here
EOF

ตอนนี้ ~/adk_tutorial/.env ของคุณควรมีข้อมูลต่อไปนี้

GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=your_actual_api_key_here

🚨 สำคัญ: แทนที่ your_actual_api_key_here ด้วยคีย์ API จริงจากขั้นตอนที่ 1 (ขึ้นต้นด้วย AIza...)

✅ จุดตรวจสอบ: คุณมีไฟล์ .env ที่ ~/adk_tutorial/.env ซึ่งมีคีย์ AIza... และพรอมต์เทอร์มินัลแสดง (.adk_env) คุณพร้อมสร้าง Agent แล้ว

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)

👉 จากนั้นเปิดเบราว์เซอร์ไปที่ http://localhost:8000 เพื่อเข้าถึง ADK Dev UI

ตัวอย่างเว็บ

👉 พิธีกรรมการอัญเชิญเสร็จสมบูรณ์แล้ว และตอนนี้เอเจนต์กำลังทำงานอยู่ UI สำหรับนักพัฒนา ADK ในเบราว์เซอร์คือการเชื่อมต่อโดยตรงกับ Familiar

เลือกเอเจนต์คนแรก ในเมนูแบบเลื่อนลงที่ด้านบนของ UI ให้เลือก a_single_agent

คุณเลือก a_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

Parallel Agent

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

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

Plan my trip to San Francisco, I want to find some good concert, restaurant and museum.

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

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

Sequential Agent

Sequential Agent

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

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

Find a good sushi near Standford and tell me how to get there.

คุณเลือก b1_sequential_agent ได้ที่นี่ การติดตามรูปภาพของเอเจนต์ตามลำดับ

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

Agent แบบวน

Agent แบบวน

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

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

Plan a trip from Sunnyvale to San Francisco today.

คุณเลือก b3_loop_agent ได้ที่นี่ การติดตามรูปภาพของ Agent ในลูป

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

5. เซสชันที่ 3: ตัวแทนที่กำหนดเอง

เมื่อเปิด ADK Web UI แล้ว ให้เลือก c_custom_agent จากเมนูแบบเลื่อนลง

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

Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art. Make sure within budget of 100 dollars.

คุณเลือก c_custom_agent ได้ที่นี่ การติดตามรูปภาพของ Custom_Agent

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

6. เซสชันที่ 4: รูปแบบ Orchestrator - Routing Agent

Router Agent

เมื่อเปิด ADK Web UI แล้ว ให้เลือก d_routing_agent จากเมนูแบบเลื่อนลง

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

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

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

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

7. เซสชันที่ 5: เอเจนต์ในฐานะเครื่องมือ

เมื่อเปิด ADK Web UI แล้ว ให้เลือก e_agent_as_tool จากเมนูแบบเลื่อนลง

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

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

คุณเลือก e_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.

จากนั้นสิ้นสุดเซสชันโดยกด Ctrl+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

ซึ่งจะสร้าง destinations.db ใน ~/adk_tutorial/

ขั้นตอนที่ 2: ติดตั้งและเรียกใช้เซิร์ฟเวอร์กล่องเครื่องมือ MCP

👉💻 ดาวน์โหลดไบนารีของกล่องเครื่องมือ MCP สำหรับระบบปฏิบัติการของคุณ

cd ~/adk_tutorial/mcp_tool_box
export VERSION=0.16.0

# Choose the line that matches your machine:
export OS=linux/amd64      # Cloud Shell or Linux (x86_64)
# export OS=darwin/arm64   # macOS Apple Silicon (M1/M2/M3)
# export OS=darwin/amd64   # macOS Intel

curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/$OS/toolbox

เมื่อดาวน์โหลดเสร็จแล้ว ให้เรียกใช้

chmod +x toolbox

ขั้นตอนที่ 3

ในเทอร์มินัลหนึ่ง ให้เรียกใช้คำสั่งต่อไปนี้ (ปล่อยให้ทำงานต่อไป - Agent จะเชื่อมต่อกับคำสั่งนี้ที่ http://127.0.0.1:7001)

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

👉 พรอมต์ทดสอบ (ใช้เมืองที่มีอยู่ในฐานข้อมูลตัวอย่าง ได้แก่ ปารีส โรม นิวยอร์ก หรือโตเกียว)

What are the top-rated things to do in Tokyo?
Show me the museums in Rome.
What can I do in New York for under 25 dollars?