คำปราศรัยสำคัญสำหรับนักพัฒนาในงาน Next '26: การสร้าง Agent ADK ด้วยทักษะและเครื่องมือ

1. บทนำ

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

สิ่งที่คุณจะได้ทำ

  • เริ่มต้นโปรเจ็กต์ ADK Agent ใหม่
  • เขียนพรอมต์ของระบบ ที่มีประสิทธิภาพโดยใช้เครื่องมือสร้างที่มีโครงสร้าง
  • เพิ่มเครื่องมือ Google Maps MCP สำหรับบริบทของสถานที่ในโลกจริง
  • โหลดทักษะ ลงในชุดเครื่องมือของ Agent แบบไดนามิก
  • ทดสอบการทำงานของ Agent ในเครื่อง
  • ติดตั้งใช้งาน Agent กับ Agent Engine (Cloud Run)

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

  • เว็บเบราว์เซอร์ เช่น Chrome
  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินแล้ว
  • ความคุ้นเคยกับ Python ในระดับพื้นฐาน

Codelab นี้เหมาะสำหรับนักพัฒนาแอประดับกลางที่ต้องการสร้าง Generative AI Agent ที่มีความเชี่ยวชาญเฉพาะด้าน

ระยะเวลาโดยประมาณ: 45 นาที

ทรัพยากรที่สร้างขึ้นใน Codelab นี้ควรมีค่าใช้จ่ายไม่เกิน $2

2. ก่อนเริ่มต้น

สร้างโปรเจ็กต์ Google Cloud

  1. ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
  2. ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้ว

เริ่มต้น Cloud Shell

Cloud Shell คือสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud ซึ่งมาพร้อมกับเครื่องมือที่จำเป็นที่โหลดไว้ล่วงหน้า

  1. คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของคอนโซล Google Cloud
  2. เมื่อเชื่อมต่อกับ Cloud Shell แล้ว ให้ยืนยันการตรวจสอบสิทธิ์โดยทำดังนี้
    gcloud auth list
    
  3. ยืนยันว่าได้กำหนดค่าโปรเจ็กต์แล้ว
    gcloud config get project
    
  4. หากโปรเจ็กต์ไม่ได้ตั้งค่าตามที่คาดไว้ ให้ตั้งค่าดังนี้
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

ยืนยันการตรวจสอบสิทธิ์โดยทำดังนี้

gcloud auth list

ยืนยันโปรเจ็กต์โดยทำดังนี้

gcloud config get project

ตั้งค่าหากจำเป็นโดยทำดังนี้

export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID

เปิดใช้ API

เรียกใช้คำสั่งนี้เพื่อเปิดใช้ API ที่จำเป็นทั้งหมด

gcloud services enable \
  aiplatform.googleapis.com \
  run.googleapis.com \
  secretmanager.googleapis.com \
  mapstools.googleapis.com \
  storage.googleapis.com \
  cloudresourcemanager.googleapis.com \
  serviceusage.googleapis.com

สร้างคีย์ Google Maps API

หากต้องการใช้เครื่องมือ Google Maps MCP คุณต้องสร้างคีย์ API ของ Maps

  1. ในคอนโซล Google Cloud ให้ใช้แถบค้นหาเพื่อไปที่ Google Maps Platform > ข้อมูลเข้าสู่ระบบ
  2. ยืนยันโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google หากได้รับข้อความแจ้ง
  3. คลิกสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกคีย์ API
  4. คัดลอกคีย์ API ที่สร้างขึ้น คุณจะต้องใช้คีย์นี้ในขั้นตอนถัดไป

3. ตั้งค่าสภาพแวดล้อม

สำหรับ Codelab นี้ เราฝากโค้ดไว้บน GitHub คุณจะต้องโคลนที่เก็บซึ่งมีโครงสร้างไดเรกทอรีและคอมโพเนนต์ย่อยที่จำเป็น (เช่น ไดเรกทอรี skills/)

  1. โคลนที่เก็บและไปที่โฟลเดอร์โปรเจ็กต์โดยใช้คำสั่งต่อไปนี้
git clone https://github.com/GoogleCloudPlatform/next-26-keynotes
cd next-26-keynotes/devkey/demo-1
  1. ตั้งค่าสภาพแวดล้อมเสมือนของ Python และติดตั้ง ADK โดยใช้คำสั่งต่อไปนี้
uv venv
source .venv/bin/activate
uv sync
  1. ตั้งค่าคีย์ Maps API แอปพลิเคชันจะอ่านคีย์นี้จากตัวแปรสภาพแวดล้อม
export GOOGLE_MAPS_API_KEY="<YOUR_MAPS_API_KEY>"

กำหนดค่าตัวแปรสภาพแวดล้อม

Simulator Agent ใช้ไฟล์ .env สำหรับการกำหนดค่า คัดลอกไฟล์ตัวอย่างและอัปเดตไฟล์ด้วยรหัสโปรเจ็กต์

  1. คัดลอกไฟล์สภาพแวดล้อมตัวอย่างโดยใช้คำสั่งต่อไปนี้
cp planner_agent/sample.env planner_agent/.env
  1. เปิด planner_agent/.env และอัปเดตช่อง GOOGLE_CLOUD_PROJECT ด้วยรหัสโปรเจ็กต์ Google Cloud จริงของคุณ รวมถึงอัปเดตช่อง GOOGLE_MAPS_API_KEY ด้วยคีย์ API ของ Google Maps ที่คุณสร้างขึ้น

ไฟล์ควรมีลักษณะดังนี้

GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=<YOUR_PROJECT_ID>
GOOGLE_CLOUD_LOCATION=global
GOOGLE_MAPS_API_KEY=<YOUR_MAPS_API_KEY>
GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY=true
OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true
ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS=true

4. สร้าง ADK Agent ใหม่

สำรวจไฟล์หลักที่กำหนด Agent: planner_agent/agent.py

ในที่เก็บ build-agents-with-skills ระบบจะเริ่มต้น Agent โดยใช้คลาส Agent ของ ADK โดยจะระบุโมเดลพื้นฐาน ชื่อระบุตัวตน และดึงข้อมูลคำแนะนำและเครื่องมือที่กำหนดไว้ในโมดูลอื่นๆ

เปิด planner_agent/agent.py เพื่อตรวจสอบโค้ดการเริ่มต้นโดยใช้คำสั่งต่อไปนี้

instruction="Answer user questions to the best of your knowledge"
description="A helpful assistant for user questions."
tools=[]

# ...

root_agent = Agent(
    model='gemini-3-flash-preview',
    name='planner_agent',
    description=description,
    instruction=instruction,
    tools=tools
)

คลาส Agent จะสรุปประวัติข้อความ การจัดระเบียบเครื่องมือ และการสื่อสาร LLM ไว้ให้คุณ เพื่อให้คุณมุ่งเน้นไปที่ลักษณะการทำงานของ Agent ได้

ตอนนี้ Agent ยังเป็นแบบทั่วไปมาก คุณสามารถโต้ตอบกับ Agent ได้เหมือนกับ LLM อื่นๆ

uv run adk run planner_agent

คำสั่งนี้จะเริ่มแชทกับ Agent โดยจะใช้ gemini-3-flash-preview เป็นโมเดลและสามารถตอบคำถามพื้นฐานได้

Running agent planner_agent, type exit to exit.
[user]: What is the length of a Marathon
[planner_agent]: The official length of a marathon is **26.2 miles**, which is
equivalent to **42.195 kilometers**.

Agent รู้ข้อเท็จจริงบางอย่างเกี่ยวกับมาราธอนอยู่แล้ว แต่ข้อมูลนี้ยังไม่เพียงพอที่จะวางแผนการแข่งขันมาราธอนที่เหมาะสมตามกฎและการวางแผนเส้นทาง

5. สร้างพรอมต์ของระบบ

พรอมต์ของระบบ (คำแนะนำ) จะกำหนดลักษณะการทำงานของ Agent โปรเจ็กต์นี้ใช้ PromptBuilder (planner_agent/utils.py) เพื่อเขียนคำแนะนำแบบไดนามิกแทนที่จะใช้สตริงขนาดใหญ่เพียงสตริงเดียว

เปิด planner_agent/prompts.py เพื่อดูวิธีจัดโครงสร้างพรอมต์เป็นส่วนๆ ที่สมเหตุสมผลโดยใช้คำสั่งต่อไปนี้

from collections import OrderedDict
from .utils import PromptBuilder

ROLE = """\
...
"""

RULES = """\
...
"""

WORKFLOW = """\
...
"""

###

# Planner instructions with no tools mentioned
PLANNER_INSTRUCTION_NO_TOOLS = PromptBuilder(
    OrderedDict(
        role=ROLE,
        rules=RULES,
        tools=TOOLS_PROMPT_ONLY,
        workflow=WORKFLOW_PROMPT_ONLY,
    )
).build()

# Planner instruction with skills and tools defined
PLANNER_INSTRUCTION = PromptBuilder(
    OrderedDict(
        role=ROLE,
        rules=RULES,
        skills=SKILLS,
        tools=TOOLS,
        workflow=WORKFLOW,
    )
).build()

ใน planner_agent/agent.py ระบบได้นำเข้า `PromptBuilder` ไว้แล้ว

ค้นหาส่วนที่มี TODO: Replace Instruction and Description แล้วยกเลิกการแสดงความคิดเห็นของการกำหนดค่าตัวแปร instruction และ description ใหม่

ส่วนของโค้ดนั้นควรมีลักษณะดังนี้

instruction=PLANNER_INSTRUCTION_NO_TOOLS
description="Expert GIS analyst for marathon route and event planning."

คุณกำลังนำเข้าพรอมต์เวอร์ชันสำหรับ Agent ที่ไม่ได้อ้างอิงเครื่องมือใดๆ คุณจะได้เพิ่มเครื่องมือในขั้นตอนต่อๆ ไป

คุณสามารถทดสอบ Agent เวอร์ชันนี้ได้โดยใช้คำสั่งต่อไปนี้

uv run adk run planner_agent

ส่งพรอมต์ต่อไปนี้ในหน้าต่างแชท

Plan a marathon for 10000 participants in Las Vegas on April 24, 2027 in the
evening timeframe

หลังจากนั้นสักครู่ คุณควรได้รับการตอบกลับที่คล้ายกับข้อความต่อไปนี้

Running agent planner_agent, type exit to exit.
[user]: Plan a marathon for 10000 participants in Las Vegas on April 24, 2027 in the evening timeframe
[planner_agent]: Here is the comprehensive marathon plan for Las Vegas.

As requested, I have designed this event for an evening start on April 24, 2027. Because certain parameters (theme and budget) were not specified, I have applied pragmatic defaults: this will be a "Neon Nights" scenic theme to capitalize on the evening Strip, operating on a moderate-to-high budget given the infrastructure needed to secure major Las Vegas corridors.

### 1. Intent Alignment
*   **City & Theme:** Las Vegas, Nevada. Theme: "Neon Nights" an evening race maximizing the visual impact of the illuminated city.
*   **Date & Time:** Saturday, April 24, 2027. Late April evenings in Las Vegas offer optimal running weather (temperatures dropping from ~70°F at sunset to ~60°F). Race start is 6:30 PM (sunset is approx. 7:20 PM).
...
...

เมื่อใช้พรอมต์ที่กำหนดไว้อย่างชัดเจน เอาต์พุตจะใกล้เคียงกับผลลัพธ์ที่คาดหวังมากขึ้น ในขั้นตอนถัดไป คุณจะได้เพิ่มเครื่องมือเพื่อยกระดับความสามารถของ Agent

6. เพิ่มทักษะและเครื่องมือ

หากต้องการเปิดใช้ทักษะและเครื่องมือใน planner_agent/agent.py ให้ค้นหาส่วนที่มี TODO: Replaces Tools แล้วยกเลิกการแสดงความคิดเห็นของ 2 บรรทัดถัดไป โค้ดควรมีลักษณะดังนี้

instruction=PLANNER_INSTRUCTION
tools=get_tools()

นี่คือการเปลี่ยนแปลงโค้ดเพียงอย่างเดียวที่จำเป็นในขั้นตอนนี้ ส่วนที่เหลือของส่วนนี้จะอธิบายแนวคิดเบื้องหลังทักษะและเครื่องมือ

ทักษะ

ทักษะของ Agent คือหน่วยฟังก์ชันการทำงานแบบสแตนด์อโลนที่ ADK Agent ใช้เพื่อทำงานที่เฉพาะเจาะจงได้ ทักษะของ Agent จะสรุปคำแนะนำ ทรัพยากร และเครื่องมือที่จำเป็นสำหรับงานไว้ด้วยกัน โดยอิงตามข้อกำหนดทักษะของ Agent โครงสร้างของทักษะช่วยให้โหลดทักษะได้ทีละส่วนเพื่อลดผลกระทบต่อหน้าต่างบริบทการทำงานของ Agent

สำหรับ Agent วางแผนการแข่งขันมาราธอน เราได้กำหนดทักษะไว้ 3 อย่าง ได้แก่

  1. gis-spatial-engineering - มีหน้าที่ประมวลผลข้อมูล GeoJSON เพื่อสร้างเส้นทางการแข่งขันมาราธอน
  2. mapping - ใช้เครื่องมือ Google Maps เพื่อค้นหาสถานที่และข้อมูลสภาพอากาศ
  3. race-director - ตรวจสอบว่าเส้นทางการแข่งขันมาราธอนเป็นไปตามหลักเกณฑ์การวางแผน

ทักษะสามารถมีสคริปต์ เนื้อหาเพิ่มเติม และข้อมูลอ้างอิง

แอปพลิเคชันจะโหลดทักษะทั้งหมดและแสดงทักษะเหล่านั้นเป็นเครื่องมือใน planner_agent/tools.py โปรดสังเกตวิธีดำเนินการนี้ในฟังก์ชัน get_tools()

def get_tools() -> list:
    """Build the planner's tool list with lazy-loaded skills."""
    from google.adk.code_executors.unsafe_local_code_executor import UnsafeLocalCodeExecutor

    skills_dir = pathlib.Path(__file__).parent / "skills"

    skills = []
    if skills_dir.exists():
        skills = [
            load_skill_from_dir(d)
            for d in sorted(skills_dir.iterdir())
            if d.is_dir() and not d.name.startswith("_") and (d / "SKILL.md").exists()
        ]

    additional_tools = _load_additional_tools(skills_dir)

    skill_toolset = SkillToolset(
        skills=skills,
        code_executor=UnsafeLocalCodeExecutor(),
        additional_tools=additional_tools,
    )

    tools = [
        skill_toolset,
        PreloadMemoryTool(),
    ]

    tools.extend(get_maps_tools())

    return tools

ส่วนที่น่าสนใจที่สุดคือเมธอด load_skill_from_dir จาก ADK นอกจากนี้ยังมีอีกวิธีในการสร้างทักษะใน ADK นั่นคือการสร้างทักษะแบบอินไลน์ แม้ว่าจะไม่ได้ใช้ใน Codelab นี้ แต่ลักษณะการสร้างทักษะแบบอินไลน์จะเป็นดังนี้

from google.adk.skills import models

greeting_skill = models.Skill(
    frontmatter=models.Frontmatter(
        name="greeting-skill",
        description=(
            "A friendly greeting skill that can say hello to a specific person."
        ),
    ),
    instructions=(
        "Step 1: Read the 'references/hello_world.txt' file to understand how"
        " to greet the user. Step 2: Return a greeting based on the reference."
    ),
    resources=models.Resources(
        references={
            "hello_world.txt": "Hello! So glad to have you here!",
            "example.md": "This is an example reference.",
        },
    ),
)

เพิ่มเครื่องมือการแมป

Marathon Planner Agent ต้องมีบริบทเชิงพื้นที่เพื่อสร้างเส้นทาง คุณสามารถให้บริบทนี้ได้โดยการผสานรวมเซิร์ฟเวอร์ Google Maps MCP (Model Context Protocol)

ใน planner_agent/tools.py โปรดสังเกตวิธีลงทะเบียนเซิร์ฟเวอร์ MCP ด้วยเครื่องมือ ApiRegistry

from google.adk.integrations.api_registry import ApiRegistry

class MapsApiRegistry(ApiRegistry):
    """ApiRegistry subclass that strips ADC headers to force API key auth."""

    def get_toolset(self, *args, **kwargs):  # noqa: ANN002, ANN003
        toolset = super().get_toolset(*args, **kwargs)
        conn = getattr(toolset, "_connection_params", None)
        headers = getattr(conn, "headers", None) if conn else None
        if headers:
            headers.pop("Authorization", None)  # type: ignore[union-attr]
            headers.pop("x-goog-user-project", None)  # type: ignore[union-attr]
        return toolset

def get_maps_tools() -> list:
    """Return Maps MCP toolset if configured."""
    project_id = os.getenv("GOOGLE_CLOUD_PROJECT", "").strip()
    maps_key = _resolve_maps_key()

    if not project_id or not maps_key:
        return []

    # Map the MCP server location on Google Cloud
    mcp_server_name = f"projects/{project_id}/locations/global/mcpServers/google-mapstools.googleapis.com-mcp"
    
    # Initialize the custom API registry that supports header injection
    api_registry = MapsApiRegistry(
        api_registry_project_id=project_id,
        header_provider=header_provider,
    )
    return [api_registry.get_toolset(mcp_server_name=mcp_server_name)]

การเพิ่มชุดเครื่องมือ MCP จะทำให้ Agent มีความสามารถในการค้นหา Google Maps เพื่อดูรายละเอียดเส้นทาง ระดับความสูง และสถานที่โดยอัตโนมัติ

7. เรียกใช้ Agent ในเครื่อง

เมื่อเชื่อมต่อ Agent, พรอมต์ และเครื่องมือเข้าด้วยกันแล้ว ให้เรียกใช้ Agent ในเครื่องโดยใช้คำสั่งต่อไปนี้ คราวนี้คุณจะใช้ adk web เพื่อให้เห็นเหตุการณ์การโหลดทักษะและการเรียกเครื่องมือ

uv run adk web

คุณควรเห็นผลลัพธ์ที่คล้ายกับตัวอย่างต่อไปนี้

INFO:     Started server process [99665]
INFO:     Waiting for application startup.

+-----------------------------------------------------------------------------+
| ADK Web Server started                                                      |
|                                                                             |
| For local testing, access at http://127.0.0.1:8000.                         |
+-----------------------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
  1. เปิดเบราว์เซอร์แล้วไปที่ URL ที่แสดงในเทอร์มินัล (โดยปกติคือ http://localhost:8000)
  2. เลือก planner_agent ในเมนูแบบเลื่อนลงที่ด้านซ้ายบน
  3. ส่งพรอมต์ต่อไปนี้ในหน้าต่างแชท
Plan a marathon for 10000 participants in Las Vegas on April 24, 2027 in the
evening timeframe

คุณควรเห็นการโหลดทักษะและการเรียกเครื่องมือ หลังจากนั้นสักครู่ Agent จะสร้างแผนการแข่งขันมาราธอน

UI ควรมีลักษณะดังนี้

UI บนเว็บของ ADK

8. ติดตั้งใช้งาน Agent

เมื่อพอใจกับประสิทธิภาพของ Agent ในเครื่องแล้ว คุณสามารถติดตั้งใช้งาน Agent กับ Agent Engine ซึ่งจะโฮสต์ Agent ใน Cloud Run อย่างปลอดภัย

หากต้องการติดตั้งใช้งาน Agent ให้ใช้คำสั่งการติดตั้งใช้งาน ADK CLI ดังนี้

uv run adk deploy agent_engine \
  --env_file planner_agent/.env --region=us-central1 \
  planner_agent

เมื่อการติดตั้งใช้งานเสร็จสิ้น CLI จะแสดงปลายทางที่โฮสต์อย่างปลอดภัยสำหรับ Agent ตอนนี้คุณสามารถผสานรวมปลายทางนี้เข้ากับแอปพลิเคชันส่วนหน้า แชทบ็อต หรือระบบแบ็กเอนด์อื่นๆ ได้ นอกจากนี้ คุณยังใช้ Agent Runtime Playground เพื่อทดสอบ Agent ได้ด้วย

เอาต์พุตจะมีลักษณะดังนี้

Files and dependencies resolved
Deploying to agent engine...
✅ Created agent engine: projects/<PROJECT_ID>/locations/us-west1/reasoningEngines/<AGENT_ID>

คุณสามารถใช้สคริปต์ Python ที่ให้ไว้เพื่อสื่อสารกับ Agent ได้โดยทำดังนี้

  1. คัดลอกไฟล์สภาพแวดล้อมตัวอย่างโดยใช้คำสั่งต่อไปนี้
cp sample.env .env
  1. เปิด .env และอัปเดตช่อง GOOGLE_CLOUD_PROJECT ด้วยรหัสโปรเจ็กต์ Google Cloud จริงของคุณ

ไฟล์ควรมีลักษณะดังนี้

GOOGLE_CLOUD_PROJECT=<YOUR_PROJECT_ID>
GOOGLE_CLOUD_LOCATION=us-central1
  1. คุณสามารถแสดงรายการ Agent ในโปรเจ็กต์ได้โดยใช้คำสั่งต่อไปนี้
python main.py list

คุณควรเห็นผลลัพธ์ที่คล้ายกับตัวอย่างต่อไปนี้

Listing deployed agents...

ID: <AGENT_ID> | Display Name: planner_agent

เมื่อได้รหัส Agent ที่ติดตั้งใช้งานแล้ว คุณจะส่งพรอมต์ได้โดยใช้คำสั่งต่อไปนี้

export AGENT_ID=<AGENT_ID>
python main.py prompt --agent-id ${AGENT_ID} --message "Plan a marathon for
10000 participants in Las Vegas on April 24, 2027 in the evening timeframe"

คุณจะได้รับเอาต์พุตที่มีลักษณะดังนี้

Streaming response from agent <AGENT_ID>:

{'model_version': 'gemini-3-flash-preview', 'content': {'parts': [{'text': 'Here is a comprehensive
...
...
...

9. ล้างข้อมูล

หากต้องการหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud อย่างต่อเนื่อง ให้ลบทรัพยากรที่สร้างขึ้นระหว่าง Codelab นี้

ลบบริการ Cloud Run ที่สร้างขึ้นโดยการติดตั้งใช้งานโดยใช้คำสั่งต่อไปนี้

python main.py delete --agent-id ${AGENT_ID}

หากคุณจัดเก็บคีย์ API ของ Maps ไว้ใน Secret Manager ให้ลบ Secret โดยใช้คำสั่งต่อไปนี้

gcloud secrets delete maps-api-key --project=$PROJECT_ID

หากคุณสร้างโปรเจ็กต์ Google Cloud ใหม่สำหรับ Codelab นี้ คุณสามารถลบทั้งโปรเจ็กต์เพื่อนำทรัพยากรและ API ทั้งหมดที่เชื่อมโยงกับโปรเจ็กต์นั้นออกได้โดยใช้คำสั่งต่อไปนี้

gcloud projects delete $PROJECT_ID

10. ขอแสดงความยินดี

ขอแสดงความยินดี คุณได้สร้าง Marathon Planner Agent ที่ซับซ้อนโดยใช้ ADK แล้ว

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

  • การเริ่มต้นโปรเจ็กต์ Agent Development Kit (ADK)
  • การใช้ PromptBuilder สำหรับพรอมต์ของระบบแบบโมดูลาร์
  • การผสานรวมความสามารถในการแมปโดยใช้เครื่องมือ MCP และ ApiRegistry
  • การโหลดทักษะแบบมีเงื่อนไขโดยใช้ SkillToolset
  • การทดสอบในเครื่องและการติดตั้งใช้งานกับ Agent Engine

เอกสารอ้างอิง