Data Science Agent แบบมีสถานะใน Agent Runtime

1. ภาพรวม

ใน Codelab นี้ คุณจะได้สร้าง Data Science Agent ที่ค้นหาข้อมูลจริงจากชุดข้อมูลสาธารณะของ BigQuery และจดจำค่ากำหนดของคุณในเซสชันต่างๆ จากนั้นคุณจะนำไปใช้งานใน Agent Runtime ซึ่งเป็นบริการ Google Cloud ที่มีการจัดการครบวงจรซึ่งจะจัดการโครงสร้างพื้นฐาน การปรับขนาด และการจัดการเซสชัน

เอเจนต์ใช้ความสามารถหลัก 3 อย่างที่เปิดใช้งานแบบค่อยเป็นค่อยไป ดังนี้

  • ชุดเครื่องมือ BigQuery: เอเจนต์จะสำรวจสคีมาและเรียกใช้การค้นหา SQL กับชุดข้อมูล BigQuery จริง ซึ่งจะทำงานทั้งในเครื่องและเมื่อติดตั้งใช้งาน
  • คลังความทรงจำ: เมื่อใช้งานแล้ว เอเจนต์จะจดจำค่ากำหนดและบริบทของผู้ใช้ในเซสชันที่ไม่ได้เชื่อมต่อ
  • ความสามารถในการสังเกต: Cloud Trace จะบันทึกขั้นตอนการให้เหตุผล การเรียกใช้เครื่องมือ และเวลาในการตอบสนองของ Agent ผ่านการวัดผล OpenTelemetry

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

  • วิธีสร้างเอเจนต์ ADK ด้วย BigQueryToolset เพื่อเข้าถึงข้อมูลจริง
  • วิธีกำหนดค่า Memory Bank เพื่อให้ข้อมูลคงอยู่ข้ามเซสชัน
  • วิธีทำให้ Agent ใช้งานได้กับ Agent Runtime ด้วย adk deploy
  • วิธีให้สิทธิ์ IAM สำหรับบัญชีบริการของเอเจนต์ที่ติดตั้งใช้งาน
  • วิธีทดสอบการคงอยู่ของหน่วยความจำและความสามารถในการสังเกต

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

  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน
  • เว็บเบราว์เซอร์ เช่น Chrome
  • หากคุณเรียกใช้โค้ดในเครื่องของคุณเองแทนที่จะใช้ Cloud Shell คุณจะต้องมี Google Cloud SDK (gcloud CLI), uv (เครื่องมือจัดการแพ็กเกจ Python) และ Python 3.12 ขึ้นไป (uv จะติดตั้งให้โดยอัตโนมัติหากจำเป็น)

ADK (Agent Development Kit) คือเฟรมเวิร์กของ Google สำหรับสร้าง AI Agent Codelab นี้ใช้ ADK เพื่อสร้าง Agent และติดตั้งใช้งานใน Agent Runtime

Codelab นี้เหมาะสำหรับนักพัฒนาแอประดับกลางที่มีความคุ้นเคยกับ Python และ Google Cloud บ้าง

Codelab นี้ใช้เวลาประมาณ 35 นาที (รวมถึง 5-10 นาทีสำหรับการติดตั้งใช้งาน)

ทรัพยากรที่สร้างในโค้ดแล็บนี้ควรมีค่าใช้จ่ายน้อยกว่า $5

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

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

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

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

เปิด Cloud Shell Editor ในโปรเจ็กต์ GCP ที่คุณสร้างขึ้น

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

gcloud config set project <INSERT_YOUR_GCP_PROJECT_HERE>

เปิดใช้ API

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

gcloud services enable \
  aiplatform.googleapis.com \
  bigquery.googleapis.com \
  telemetry.googleapis.com \
  --project=$(gcloud config get project)
  • aiplatform.googleapis.com: โฮสต์ Agent ของคุณใน Agent Runtime ซึ่งรวมถึงเซสชัน Gemini Enterprise และ Memory Bank รวมถึงให้บริการโมเดล Gemini
  • BigQuery API (bigquery.googleapis.com): การค้นหา SQL กับชุดข้อมูลสาธารณะและส่วนตัว
  • Telemetry API (telemetry.googleapis.com): การติดตาม OpenTelemetry สำหรับการสังเกตการณ์ตัวแทน

ติดตั้ง ADK

ในเทอร์มินัล ให้เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างโฟลเดอร์สำหรับ Codelab นี้ และติดตั้ง ADK รวมถึงส่วนที่ใช้อ้างอิง

mkdir -p ~/adk-deploy-scale
cd ~/adk-deploy-scale
uv init --bare
uv add google-adk google-auth google-cloud-bigquery "google-cloud-aiplatform[agent_engines]"

uv จะสร้างสภาพแวดล้อม Python ที่แยกต่างหากสำหรับ Codelab นี้ คุณจึงไม่ต้องเปิดใช้งานสิ่งใด นำหน้าคำสั่ง Python ด้วย uv run

google-adk แพ็กเกจมีเครื่องมือ adk CLI ที่คุณจะใช้เพื่อทดสอบและติดตั้งใช้งานเอเจนต์ adk deploy ใช้ google-cloud-aiplatform เพื่อสร้าง Agent ใน Agent Runtime และ google-cloud-bigquery คือไลบรารีของไคลเอ็นต์ที่อยู่เบื้องหลังเครื่องมือ BigQuery ของ ADK

3. สร้าง Agent

สร้างไดเรกทอรีตัวแทนในโฟลเดอร์ ~/adk-deploy-scale เรียกใช้คำสั่งทั้งหมดในภายหลังจาก ~/adk-deploy-scale (โฟลเดอร์หลักของ data_science_agent/)

mkdir data_science_agent

จากนั้นเรียกใช้คำสั่งต่อไปนี้เพื่อสร้าง data_science_agent/.env ด้วยโปรเจ็กต์ ภูมิภาคที่จะติดตั้งใช้งาน Agent และการตั้งค่าสำหรับ Agent ที่ติดตั้งใช้งาน adk deploy จะอ่านไฟล์นี้ ดังนั้นการตั้งค่าเหล่านี้จะยังคงใช้งานได้หากคุณเปิดเทอร์มินัลใหม่

cat > ~/adk-deploy-scale/data_science_agent/.env <<EOF
GOOGLE_CLOUD_PROJECT=$(gcloud config get project)
GOOGLE_CLOUD_LOCATION=us-central1
GOOGLE_GENAI_USE_ENTERPRISE=True
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true
EOF
  • GOOGLE_CLOUD_PROJECT และ GOOGLE_CLOUD_LOCATION: รหัสโปรเจ็กต์ (กรอกจาก gcloud) และภูมิภาคที่เอเจนต์ทำงาน
  • GOOGLE_GENAI_USE_ENTERPRISE: มีการเรียก ADK ไปยัง Gemini ผ่านโปรเจ็กต์ Google Cloud ของคุณ
  • OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT: บันทึกอินพุตพรอมต์ทั้งหมดและการตอบกลับของเอเจนต์ ซึ่งมีประโยชน์สำหรับการแก้ไขข้อบกพร่อง

โครงสร้างไดเรกทอรีสุดท้ายจะมีลักษณะดังนี้

adk-deploy-scale/
  data_science_agent/
    .env
    __init__.py
    agent.py
    requirements.txt    # created in the Deploy step

คุณจะสร้าง __init__.py และ agent.py ตอนนี้ จากนั้นเพิ่ม requirements.txt ในขั้นตอนการติดตั้งใช้งาน

สร้าง data_science_agent/__init__.py - ต้องมีไฟล์นี้เพื่อให้ ADK ค้นพบและโหลด Agent ของคุณได้

from . import agent  # noqa: F401 — required by `adk eval` and `adk web`

สร้าง data_science_agent/agent.py:

เอเจนต์นี้เชื่อมต่อกับ BigQuery เพื่อดึงข้อมูลและคงเซสชันไว้ใน Memory Bank

ความทรงจำจะเปิดใช้งานโดยอัตโนมัติเมื่อมีการติดตั้งใช้งาน Agent Runtime จะตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_CLOUD_AGENT_ENGINE_ID ซึ่งจะไม่มีเมื่อเรียกใช้ในเครื่อง

from __future__ import annotations

import os

from google.adk.agents import LlmAgent
from google.adk.agents.callback_context import CallbackContext
from google.adk.apps import App
from google.adk.integrations.bigquery import BigQueryCredentialsConfig
from google.adk.integrations.bigquery import BigQueryToolset
from google.adk.models import Gemini
from google.adk.tools.preload_memory_tool import PreloadMemoryTool
from google.genai import types
import google.auth

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
if not PROJECT_ID:
    raise ValueError(
        "GOOGLE_CLOUD_PROJECT environment variable is required. "
        "Add it to data_science_agent/.env: GOOGLE_CLOUD_PROJECT=<your-project-id>"
    )

credentials, _ = google.auth.default()
bq_toolset = BigQueryToolset(credentials_config=BigQueryCredentialsConfig(credentials=credentials))

# GOOGLE_CLOUD_AGENT_ENGINE_ID is set automatically by Agent Runtime.
agent_engine_id = os.getenv("GOOGLE_CLOUD_AGENT_ENGINE_ID")


async def _save_memory(callback_context: CallbackContext) -> None:
    """Persist the session to Memory Bank after each agent run.

    Only activates on Agent Runtime, where Memory Bank is available.
    """
    if agent_engine_id:
        await callback_context.add_session_to_memory()


root_agent = LlmAgent(
    name="data_science_agent",
    model=Gemini(
        model="gemini-3.8-flash",
        # gemini-3.8-flash is served from the global endpoint. The agent
        # itself runs in GOOGLE_CLOUD_LOCATION (us-central1).
        client_kwargs={"location": "global"},
        retry_options=types.HttpRetryOptions(attempts=5),
    ),
    instruction=(
        "You are an expert Data Science Agent. "
        "Your goal is to query enterprise BigQuery datasets, analyze the data, "
        "and summarize your findings. "
        f"When executing SQL queries, use project_id `{PROJECT_ID}` as the "
        "billing project unless the user specifies a different one. "
        "Present results clearly with formatted numbers. "
        "Remember user preferences like preferred regions, date ranges, "
        "or analysis formats across conversations."
    ),
    tools=[bq_toolset, PreloadMemoryTool()],
    after_agent_callback=_save_memory,
)

app = App(
    name="data_science_agent",
    root_agent=root_agent,
)

มาดูกันว่าโค้ดนี้ทำอะไร

  1. BigQueryToolset จะให้เครื่องมือแก่ตัวแทน เช่น execute_sql, list_table_ids และ get_table_info ซึ่งสามารถสำรวจสคีมาและค้นหาชุดข้อมูลใดก็ได้ที่ผู้โทรมีสิทธิ์เข้าถึง
  2. PreloadMemoryTool จะดึงความทรงจำที่เกี่ยวข้องโดยอัตโนมัติก่อนการเรียกใช้ LLM แต่ละครั้งโดยการค้นหาเนื้อหาที่เกี่ยวข้องกับข้อความของผู้ใช้ใน Memory Bank _save_memory การโทรกลับจะคงเซสชันไว้ในธนาคารความทรงจำหลังจากที่เอเจนต์ทำงานแต่ละครั้ง เพื่อให้เอเจนต์เรียกคืนบริบทในเซสชันในอนาคตได้
  3. แอปจะรวม Agent รูทไว้ในแอปพลิเคชันที่ทำให้ใช้งานได้ซึ่ง Agent Runtime สามารถให้บริการได้ name ต้องตรงกับชื่อไดเรกทอรี (data_science_agent) โดย adk web จะใช้ชื่อนี้เพื่อค้นหาและโหลดเอเจนต์
  4. คำสั่งจะบอกให้ Agent ใช้โปรเจ็กต์สำหรับการเรียกเก็บเงินสำหรับการค้นหา SQL และจดจำค่ากำหนดของผู้ใช้
  5. Gemini ที่มี client_kwargs={"location": "global"} จะส่งการเรียกโมเดลไปยังปลายทางส่วนกลางที่ gemini-3.8-flash พร้อมให้บริการ ตัว Agent เองจะทํางานใน us-central1: adk deploy จะตั้งค่า GOOGLE_CLOUD_LOCATION ใน Agent ที่ติดตั้งใช้งานเป็นภูมิภาคที่คุณติดตั้งใช้งาน ดังนั้นระบบจะตั้งค่าตําแหน่งของโมเดลในโค้ดแทน

4. ทำให้ใช้งานได้กับ Agent Runtime

สร้างไฟล์ requirements.txt ในไดเรกทอรี data_science_agent

google-adk
google-genai
google-auth
google-cloud-bigquery
python-dotenv
opentelemetry-instrumentation-google-genai
opentelemetry-instrumentation-httpx
opentelemetry-instrumentation-grpc
  • google-adk และ google-genai: ADK และไคลเอ็นต์ Gemini
  • google-auth: การตรวจสอบสิทธิ์ Google Cloud
  • google-cloud-bigquery: ไลบรารีของไคลเอ็นต์ BigQuery ที่ BigQueryToolset ใช้ ADK ไม่ได้ติดตั้งไว้โดยค่าเริ่มต้น
  • python-dotenv: โหลดไฟล์ .env เมื่อเริ่มต้น
  • แพ็กเกจ 3 รายการ opentelemetry-instrumentation-* จะเปิดใช้ฟีเจอร์ความสามารถในการสังเกตที่คุณจะสำรวจในภายหลัง โดยจะวัดการเรียกใช้โมเดล Gemini และการสื่อสาร gRPC/HTTP ภายในเพื่อให้ร่องรอยปรากฏในแท็บร่องรอยของเอเจนต์

adk deploy ยังอ่านไฟล์ data_science_agent/.env ที่คุณสร้างไว้ก่อนหน้านี้และตั้งค่าในเอเจนต์ที่ติดตั้งใช้งานด้วย

ติดตั้งใช้งาน Agent อาร์กิวเมนต์สุดท้าย data_science_agent คือไดเรกทอรีที่มีโค้ดตัวแทน

uv run adk deploy agent_engine \
  --project=$(gcloud config get project) \
  --region=us-central1 \
  --display_name="Data Science Agent" \
  --otel_to_cloud \
  data_science_agent

ที่จุดเริ่มต้น เอาต์พุตจะแสดงเส้นสีเหลือง 2 เส้น Ignoring GOOGLE_CLOUD_PROJECT in .env ... และ Ignoring GOOGLE_CLOUD_LOCATION in .env ... โดยคาดว่าแฟล็ก --project และ --region จะมีความสำคัญเหนือกว่าค่าเดียวกันใน .env

ธง

วัตถุประสงค์

--project / --region

โปรเจ็กต์ที่อยู่ในระบบคลาวด์และภูมิภาค Google Cloud เป้าหมาย

--display_name

ชื่อที่ผู้ใช้อ่านได้ซึ่งแสดงใน Cloud Console

--otel_to_cloud

ส่งออกการติดตามและบันทึก OpenTelemetry ไปยัง Google Cloud และเปิดการวัดและส่งข้อมูล (GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY=true) ในเอเจนต์ที่ติดตั้งใช้งาน

เมื่อติดตั้งใช้งานใน Agent Runtime ความสามารถ 2 อย่างจะเปิดใช้งานโดยอัตโนมัติ ได้แก่

  • Memory Bank: adk deploy เชื่อมต่อ Agent กับเซสชันและ Memory Bank ในอินสแตนซ์ Agent Runtime PreloadMemoryTool จะอ่านจากธนาคารความทรงจำและ_save_memoryจะคงเซสชันไว้โดยอัตโนมัติ
  • ความสามารถในการสังเกต: Cloud Trace จะบันทึกขั้นตอนการให้เหตุผล การเรียกใช้เครื่องมือ และเวลาในการตอบสนองของ Agent

5. ให้สิทธิ์เข้าถึง BigQuery

คุณต้องให้สิทธิ์เข้าถึง BigQuery แก่ Agent ของบริการ Agent Runtime (Agent ของบริการเครื่องมือให้เหตุผลของ AI Platform) เมื่อติดตั้งใช้งานแล้ว เอเจนต์จะทำงานในฐานะบัญชีบริการที่จัดการโดย Google นี้ (ไม่ใช่ข้อมูลเข้าสู่ระบบส่วนตัวของคุณ) จึงต้องมีสิทธิ์ที่ชัดเจนในการเรียกใช้คำค้นหา SQL

PROJECT_NUMBER=$(gcloud projects describe $(gcloud config get project) \
  --format='value(projectNumber)')

SA="service-${PROJECT_NUMBER}@gcp-sa-aiplatform-re.iam.gserviceaccount.com"

# Required to execute SQL queries
gcloud projects add-iam-policy-binding $(gcloud config get project) \
  --member="serviceAccount:${SA}" \
  --role="roles/bigquery.jobUser"

# Required to read table metadata and data
gcloud projects add-iam-policy-binding $(gcloud config get project) \
  --member="serviceAccount:${SA}" \
  --role="roles/bigquery.dataViewer"

แต่ละคำสั่งจะพิมพ์ Updated IAM policy for project [...] เมื่อสำเร็จ

6. ทดสอบ Agent ที่ติดตั้งใช้งาน

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

ทดสอบความสามารถของ BigQuery โดยทำดังนี้

  1. "แสดงรายการตารางใน bigquery-public-data.hacker_news"
    • คาดการณ์: เอเจนต์เรียกใช้ list_table_ids และแสดงชื่อตาราง รวมถึง full
  2. "ค้นหาจํานวนโพสต์ต่อปีใน bigquery-public-data.hacker_news.full"
    • คาดการณ์: เอเจนต์เรียกใช้ execute_sql ด้วยการค้นหา SQL และแสดงผลตารางปีและจำนวนโพสต์
  3. "การเปลี่ยนแปลงของเปอร์เซ็นต์โพสต์เมื่อเทียบกับปีก่อนเป็นเท่าใด"
    • คาดการณ์: เอเจนต์เรียกใช้ execute_sql ด้วยการค้นหา SQL ที่คำนวณการเปลี่ยนแปลงเปอร์เซ็นต์และแสดงผลลัพธ์

7. ทดสอบความต่อเนื่องของหน่วยความจำ

ใน Playground ให้สอนความชอบแก่เอเจนต์โดยทำดังนี้

  1. "จำไว้ว่าชุดข้อมูลโปรดของฉันคือ bigquery-public-data.hacker_news"
  2. "มีตารางอะไรบ้าง"

รอสักครู่เพื่อให้หน่วยความจำคงอยู่ (_save_memory การเรียกกลับจะทำงานหลังจากที่ตัวแทนตอบกลับ)

ตอนนี้เริ่มเซสชันใหม่โดยคลิกเซสชันใหม่ใน Playground แล้วถามว่า

  1. "ชุดข้อมูลที่ฉันชื่นชอบคืออะไร"

เอเจนต์ควรจดจำ bigquery-public-data.hacker_news ได้แม้ว่าจะเป็นเซสชันใหม่ที่ไม่มีประวัติการสนทนาก็ตาม ซึ่งได้ผลเนื่องจากเหตุผลต่อไปนี้

  • _save_memoryจะบันทึกแต่ละเซสชันลงในธนาคารความทรงจำผ่าน callback_context.add_session_to_memory()
  • PreloadMemoryTool จะดึงความทรงจำที่เกี่ยวข้องก่อนการเรียกใช้ LLM แต่ละครั้ง
  • Memory Bank จะจับคู่เนื้อหาตามความหมาย ไม่ใช่แค่ตามคีย์เวิร์ด

8. สำรวจความสามารถในการสังเกต

ใน Cloud Console ให้ไปที่ Agent ที่ติดตั้งใช้งาน แล้วคลิกแท็บการติดตาม

แท็บร่องรอยที่แสดงตารางเซสชัน

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

คลิกเซสชันเพื่อตรวจสอบรายละเอียดการติดตาม ซึ่งรวมถึง

  • กราฟแบบมีทิศทางแบบไม่มีวงจร (DAG) ของช่วง ซึ่งแสดงรายละเอียดทีละขั้นตอนของการให้เหตุผลของ Agent การเรียกใช้เครื่องมือ (การค้นหา BigQuery) และเวลาในการตอบสนอง
  • อินพุตและเอาต์พุตสำหรับแต่ละช่วง (เปิดใช้ผ่านตัวแปรสภาพแวดล้อม OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT ใน .env)
  • แอตทริบิวต์ข้อมูลเมตา เช่น รหัส Span, รหัสการติดตาม และการกำหนดเวลา

นอกจากนี้ คุณยังเปลี่ยนไปใช้มุมมองช่วง (สลับที่ด้านบน) เพื่อดูช่วงแต่ละช่วงในทุกเซสชันได้ด้วย

วิธีการทำงานของการติดตาม

เมื่อคุณติดตั้งใช้งานด้วย --otel_to_cloud adk deploy จะสร้างคอนเทนเนอร์ที่เรียกใช้เซิร์ฟเวอร์ ADK API โดยเปิด OpenTelemetry ไว้ ใน Agent Runtime เซิร์ฟเวอร์จะเริ่มต้นไปป์ไลน์ OpenTelemetry ซึ่งมีลักษณะดังนี้

  1. สร้าง TracerProvider ด้วย OTLP Exporter ที่ส่งช่วงไปยัง telemetry.googleapis.com
  2. บันทึกสแปนของ ADK เองสำหรับการเรียกใช้เอเจนต์ การเรียกโมเดล และการเรียกใช้เครื่องมือ และใช้แพ็กเกจการตรวจสอบทั้ง 3 รายการจาก requirements.txt เพื่อเพิ่มสแปนจากไลบรารีหลัก (Gemini, httpx, gRPC)
  3. ส่งชุดข้อมูลและช่วงไปยัง Telemetry API ซึ่งแท็บการติดตามจะอ่านข้อมูลเหล่านั้น

คอนเทนเนอร์ที่ติดตั้งใช้งานมี ADK รวมถึง OpenTelemetry SDK และเครื่องมือส่งออก แต่ไม่มีแพ็กเกจการตรวจสอบ requirements.txt จึงแสดงทั้ง 3 รายการ หากไม่มีเซิร์ฟเวอร์ ADK API จะบันทึกคำเตือนและข้ามช่วงเหล่านั้น

การแก้ปัญหา

หากไม่พบร่องรอยใดๆ หลังจากผ่านไป 2-3 นาที ให้ทำดังนี้

  1. ตรวจสอบว่าเปิดใช้ Telemetry API แล้ว: คุณเปิดใช้ในขั้นตอนการตั้งค่า ยืนยันด้วย gcloud services list --enabled --project=$(gcloud config get project) | grep telemetry
  2. ตรวจสอบคำเตือนใน Cloud Logging: ไปที่ Logging > Logs Explorer แล้วค้นหา "proceeding without" หรือ "GoogleGenAiSdkInstrumentor" คำเตือนที่ระบุชื่อเครื่องมือวัด (GenAI, HTTPX หรือ gRPC) หมายความว่าไม่มีแพ็กเกจ opentelemetry-instrumentation-* ที่ตรงกันใน requirements.txt
  3. อย่าเพิ่ม google-cloud-aiplatform ลงใน requirements.txt adk deploy จะเพิ่มโดยอัตโนมัติ การประกาศด้วยตนเองอาจทำให้แพ็กเกจ OpenTelemetry ขัดแย้งกันและทำให้การตรวจสอบล้มเหลวโดยไม่มีการแจ้งเตือน

9. ล้าง

โปรดลบทรัพยากรที่สร้างขึ้นระหว่างการทำ Codelab นี้เพื่อหลีกเลี่ยงการเรียกเก็บเงินอย่างต่อเนื่อง

ลบเอเจนต์ที่ติดตั้งใช้งานจากหน้าการติดตั้งใช้งานใน Cloud Console เลือกเอเจนต์แล้วคลิกลบ

หากสร้างโปรเจ็กต์สำหรับ Codelab นี้โดยเฉพาะ คุณสามารถลบทั้งโปรเจ็กต์แทนได้โดยทำดังนี้

gcloud projects delete <YOUR_PROJECT_ID>

ไม่บังคับ: ล้างข้อมูลสภาพแวดล้อมในเครื่อง

cd ~
rm -rf ~/adk-deploy-scale

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

คุณได้สร้างเอเจนต์วิทยาศาสตร์ข้อมูลแบบมีสถานะและทําให้ใช้งานได้ใน Agent Runtime แล้ว

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

  • วิธีสร้างเอเจนต์ ADK ด้วย BigQueryToolset เพื่อเข้าถึงข้อมูลจริง
  • วิธีเปิดใช้หน่วยความจำถาวรด้วย Memory Bank โดยใช้ PreloadMemoryTool และ after_agent_callback
  • วิธีให้สิทธิ์ IAM สำหรับบัญชีบริการของเอเจนต์ที่ติดตั้งใช้งาน
  • วิธีติดตั้งใช้งาน Agent Runtime และเปิดใช้ความสามารถในการสังเกตด้วย Cloud Trace

ขั้นตอนถัดไป

  • ค้นหาชุดข้อมูล BigQuery ส่วนตัวของคุณเองโดยให้สิทธิ์เข้าถึงข้อมูลแก่ตัวแทนบริการ Agent Runtime
  • เพิ่มการดำเนินการโค้ดเพื่อเรียกใช้การวิเคราะห์ Python ในแซนด์บ็อกซ์ที่ปลอดภัย
  • ตั้งค่าแดชบอร์ดการสังเกตการณ์ Cloud Trace เพื่อตรวจสอบเอเจนต์ในเวอร์ชันที่ใช้งานจริง
  • เผยแพร่ผลลัพธ์ไปยัง Google Workspace โดยใช้เครื่องมือ MCP

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