การพัฒนาเอเจนต์ ADK ที่ขับเคลื่อนด้วยข้อมูลจำเพาะด้วย Antigravity และ Spec-kit

1. บทนำ

การเพิ่มฟีเจอร์ลงใน Agent ที่มีอยู่ ซึ่งเป็นความสามารถใหม่ที่ใช้ฐานข้อมูลมักหมายถึงการเขียนโค้ดมาตรฐาน การเชื่อมต่อการผสานรวม และการทำให้ทุกอย่างสอดคล้องกับรูปแบบที่มีอยู่แล้วในฐานของโค้ด Antigravity เร่งกระบวนการนี้ในทุกขั้นตอน โดยจะวิเคราะห์ฐานของโค้ดเพื่อสร้างบริบทที่จำเป็น สร้างข้อกำหนดที่มีโครงสร้างและแผนการติดตั้งใช้งานเพื่อให้คุณตรวจสอบ และดำเนินการเปลี่ยนแปลงโค้ด ทั้งหมดนี้จะได้รับการแนะนำโดยความรู้เกี่ยวกับโดเมนที่ช่วยให้คุณบันทึกเป็นทักษะที่นำกลับมาใช้ใหม่ได้ และธรรมนูญของโปรเจ็กต์ที่บังคับใช้หลักการที่ต่อรองไม่ได้ Codelab นี้จะแนะนำวิธีเพิ่มประสิทธิภาพกระบวนทัศน์การพัฒนาที่ขับเคลื่อนด้วยข้อมูลจำเพาะของ Antigravity โดยการแนะนำวงจรใหม่เพื่อเพิ่มเอกสารประกอบข้อมูลจำเพาะที่อ้างอิง spec-kit อย่างมาก

สิ่งที่คุณจะสร้าง

แอปพลิเคชันเลขานุการร้านอาหารที่ทำงานในพื้นที่พร้อมการจองที่เพิ่มผ่านวงจร SDD ที่สมบูรณ์

  • การจอง - แขกจองโต๊ะและตรวจสอบการจอง โดยมีเครื่องมือฐานข้อมูล MCP Toolbox ใหม่และตาราง reservations ใน Cloud SQL เป็นข้อมูลสนับสนุน
  • (ความท้าทาย) - พัฒนา UI ของคุณเองสำหรับ Agent
  • (การท้าทาย) – ทำให้ Google Cloud ใช้งานได้โดยใช้ตัวแทน Antigravity

โค้ดเริ่มต้นมี Agent ADK ที่ใช้งานได้พร้อมการค้นหาเมนู (คีย์เวิร์ด + ความหมายผ่าน MCP Toolbox) และการติดตามค่ากำหนดด้านอาหาร (ผ่าน ToolContext) คุณขยายได้โดยไม่ต้องเขียนโค้ดของแอปพลิเคชันด้วยตนเอง เนื่องจาก Antigravity จะจัดการการติดตั้งใช้งานตามข้อกำหนดของคุณ

404869b603fff6ab.png

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

  • วิธีเริ่มต้นบริบทของโปรเจ็กต์เพื่อให้ Antigravity เข้าใจโค้ดเบสที่มีอยู่
  • วิธีสร้างทักษะ Antigravity ที่รวมความรู้เฉพาะด้าน (เช่น รูปแบบ Codelab ของ ADK) เพื่อนำกลับมาใช้ใหม่
  • วิธีตั้งค่าธรรมนูญของโปรเจ็กต์ที่เวิร์กโฟลว์ SDD จะตรวจสอบเทียบระหว่างการวางแผนและการวิเคราะห์
  • วิธีใช้เวิร์กโฟลว์ Spec-Driven Development (SDD) ใน Antigravity เพื่อเพิ่มฟีเจอร์อย่างเป็นระบบ
  • วิธีขยาย Agent ADK ด้วยเครื่องมือใหม่ที่ใช้ฐานข้อมูลผ่าน MCP Toolbox

ข้อกำหนดเบื้องต้น

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

ขั้นตอนนี้จะโคลนที่เก็บเริ่มต้น ตรวจสอบสิทธิ์กับ Google Cloud จัดสรรฐานข้อมูล Cloud SQL และเตรียมสภาพแวดล้อม Antigravity ในเครื่อง

ติดตั้งข้อกำหนดเบื้องต้น

ตรวจสอบว่าระบบของคุณมีไฟล์ปฏิบัติการ CLI ต่อไปนี้

วิธีการติดตั้งจะแตกต่างกันไปตามระบบปฏิบัติการของเครื่อง

โคลนที่เก็บเริ่มต้น

เปิดเทอร์มินัลใน Antigravity (หรือเทอร์มินัลของระบบ) โคลนที่เก็บข้อมูลเสริมและเข้าสู่ไดเรกทอรี

git clone https://github.com/alphinside/sdd-adk-antigravity-starter.git sdd-adk-agents-agy
cd sdd-adk-agents-agy

เปิดที่เก็บที่โคลนใน Antigravity File->Open Folder->เลือกไดเรกทอรีที่โคลน sdd-adk-agents-agy

นำรีโมตต้นทางออก เวิร์กโฟลว์ SDD จะสร้างกิ่ง Git สำหรับข้อกำหนดฟีเจอร์ การนำรีโมตออกจะช่วยป้องกันการพุชไปยังที่เก็บเริ่มต้นโดยไม่ตั้งใจ

git remote remove origin

ตรวจสอบสิทธิ์ด้วย Google Cloud

เรียกใช้คำสั่งการตรวจสอบสิทธิ์ 2 คำสั่ง ทั้ง 2 วิธีจะเปิดเบราว์เซอร์สำหรับ OAuth

gcloud auth login
gcloud auth application-default login

เนื่องจากคุณทำงานในพื้นที่ด้วย Antigravity คุณจึงต้องตรวจสอบสิทธิ์ด้วยตนเอง auth login จะตรวจสอบสิทธิ์ gcloud CLI application-default login ตรวจสอบสิทธิ์ Google Cloud SDK ที่แอปพลิเคชันของคุณใช้ ซึ่งการเรียก Vertex AI ของ ADK และตัวเชื่อมต่อ Python ของ Cloud SQL ต่างก็ต้องใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน

ตั้งค่าโปรเจ็กต์ Google Cloud

เขียนตัวแปรตำแหน่งไปยัง .env ก่อนเรียกใช้สคริปต์การตั้งค่าโปรเจ็กต์

echo "GOOGLE_CLOUD_LOCATION=global" > .env
echo "REGION=us-central1" >> .env
  • GOOGLE_CLOUD_LOCATION=global ใช้สำหรับการเรียก Vertex AI / Gemini API
  • REGION=us-central1 ใช้สำหรับ Cloud SQL และโครงสร้างพื้นฐานอื่นๆ ของ GCP

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

curl -sL https://raw.githubusercontent.com/alphinside/cloud-trial-project-setup/main/setup_verify_trial_project.sh -o setup_verify_trial_project.sh

bash setup_verify_trial_project.sh && source .env

กำลังเปิดใช้ API

เปิดใช้ API ที่จำเป็น

gcloud services enable \
  aiplatform.googleapis.com \
  sqladmin.googleapis.com \
  compute.googleapis.com \
  cloudresourcemanager.googleapis.com

ติดตั้งการอ้างอิง

เราจะใช้ uv เป็นผู้จัดการโปรเจ็กต์ Python uv เป็นเครื่องมือจัดการแพ็กเกจและโปรเจ็กต์ Python ที่รวดเร็วซึ่งเขียนด้วย Rust ( เอกสาร ) Codelab นี้ใช้เพื่อความเร็วและความเรียบง่าย ติดตั้งการอ้างอิง Python ด้วยคำสั่งต่อไปนี้

uv sync

จากนั้นอัปเดตไฟล์ .env ของตัวแทน ADK ด้วยการกำหนดค่าโปรเจ็กต์

cat > restaurant_concierge/.env <<EOF
GOOGLE_CLOUD_PROJECT=${GOOGLE_CLOUD_PROJECT}
GOOGLE_CLOUD_LOCATION=global
GOOGLE_GENAI_USE_VERTEXAI=True
EOF

เตรียมโครงสร้างพื้นฐานของฐานข้อมูลและข้อมูล

ตั้งรหัสผ่านฐานข้อมูลและเพิ่มลงใน .env โดยทำดังนี้

export DB_PASSWORD=codelabpassword
echo "DB_PASSWORD=${DB_PASSWORD}" >> .env

จากนั้นเรียกใช้scripts/setup_database.shสคริปต์เพื่อเตรียมโครงสร้างพื้นฐานทั้งหมดที่จำเป็น โดยจะดำเนินการต่อไปนี้

  • สร้างอินสแตนซ์ Cloud SQL
  • ตรวจสอบว่าอินสแตนซ์พร้อมใช้งานหรือไม่
  • ให้สิทธิ์ Vertex AI
  • สร้างฐานข้อมูล
  • ฐานข้อมูลรายการตั้งต้น
  • เรียกใช้บริการ MCP Toolbox ในเบื้องหลัง
chmod +x scripts/setup_database.sh
./scripts/setup_database.sh > database_setup.log 2>&1 &

คำสั่งนี้จะเรียกใช้การตั้งค่าในเบื้องหลัง คุณสามารถตรวจสอบเอาต์พุตเป็นระยะๆ ได้ที่ไฟล์ database_setup.log

ตอนนี้เราควรมีที่เก็บตัวแทน ADK เริ่มต้นที่จำเป็นทั้งหมดเพื่อใช้ทำงาน ตอนนี้มาพูดถึง Antigravity และการพัฒนาที่อิงตามข้อกำหนดในส่วนถัดไปกันในขณะที่รอให้ทุกอย่างพร้อม

3. สำรวจโค้ดเริ่มต้นและทำความเข้าใจการพัฒนาที่ขับเคลื่อนด้วยข้อมูลจำเพาะ

ขั้นตอนนี้จะอธิบายโครงสร้างโค้ดเริ่มต้น แนะนำวิธีการพัฒนาที่ขับเคลื่อนด้วยข้อกำหนด สร้างฐานข้อมูล และยืนยันว่าเอเจนต์พื้นฐานทำงานได้ก่อนที่คุณจะเริ่มขยาย

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

เปิดโปรเจ็กต์ที่เก็บที่โคลนไว้ในโปรแกรมแก้ไข Antigravity แล้วตรวจสอบเลย์เอาต์ไดเรกทอรี

sdd-adk-agents-agy/
├── .agents/
│   ├── workflows/                 # SDD slash commands (/speckit.*) – manual trigger
│   │   ├── speckit.specify.md
│   │   ├── speckit.clarify.md
│   │   ├── speckit.plan.md
│   │   ├── speckit.tasks.md
│   │   ├── speckit.analyze.md
│   │   ├── speckit.implement.md
│   │   ├── speckit.checklist.md
│   │   └── speckit.constitution.md
│   ├── skills/                   # Antigravity skills (loaded on demand, agent determined)
│   │   ├── mcp-toolbox-postgres/
│   │   │   └── SKILL.md     # MCP Toolbox config skill
│   │   └── repo-research/
│   │       └── SKILL.md     # Repo analysis skill
│   └── rules/               # Always-active context
├── .specify/                # spec-kit SDD templates and memory
│   ├── memory/constitution.md
│   ├── templates/
│   └── scripts/
├── restaurant_concierge/    # ADK agent package
│   ├── __init__.py
│   ├── agent.py             # LlmAgent + ToolContext tools + Toolbox integration
│   └── .env                 # Vertex AI configuration
├── server.py                # FastAPI server wrapping the agent
├── tools.yaml               # MCP Toolbox tool definitions
├── scripts/                 # Setup scripts
└── pyproject.toml

ไฟล์สำคัญ

ไฟล์การสมัครเป็นตัวแทน

  • restaurant_concierge/agent.py - Agent หลัก LlmAgent ที่รวมเครื่องมือฐานข้อมูล MCP Toolbox เข้ากับการติดตามค่ากำหนดด้านอาหารที่อิงตาม ToolContext เอเจนต์จะโหลดเครื่องมือทั้งหมดจากเซิร์ฟเวอร์กล่องเครื่องมือและเพิ่มฟังก์ชัน Python 2 รายการ (save_dietary_preference, get_dietary_preferences) ที่ใช้ ToolContext เพื่อจัดการสถานะ
  • tools.yaml — คำจำกัดความของเครื่องมือกล่องเครื่องมือ MCP เครื่องมือค้นหาในเมนู 3 รายการ ได้แก่ การค้นหาคีย์เวิร์ด (search_menu) การค้นหาเชิงความหมายผ่าน pgvector (semantic_search_menu) และตัวกรองหมวดหมู่ (get_menu_by_category) ยังไม่มีเครื่องมือการจอง คุณจะเพิ่มเครื่องมือเหล่านั้นในภายหลัง
  • server.py — เซิร์ฟเวอร์ FastAPI ขนาดเล็กที่แสดงวิธีเข้าถึง ADK เป็นออบเจ็กต์ FastAPI get_fast_api_app() จาก ADK มีปลายทางในตัว ซึ่งรวมถึง /run_sse สำหรับ API การสตรีม SSE และการจัดการเซสชัน

Antigravity Files

  • .agents/skills/mcp-toolbox-postgres/SKILL.md — ทักษะที่แนะนำ Antigravity เกี่ยวกับวิธีกำหนดค่า tools.yaml ที่เหมาะสมสำหรับ MCP Toolbox ทักษะนี้จะสอนการกำหนดค่าที่เกี่ยวข้องกับsources, tools และembeddingModels ที่จำเป็นต่อการสร้างไปป์ไลน์ RAG ที่เหมาะสม ทักษะนี้จะไม่เปิดใช้งานจนกว่าคุณจะเพิ่ม Frontmatter YAML ที่เหมาะสมเพื่อให้ Antigravity รู้จัก
  • .agents/skills/repo-research/SKILL.md — ทักษะที่สอน Antigravity วิธีวิเคราะห์ที่เก็บอย่างค่อยเป็นค่อยไปและสร้างเอกสารบริบทของโปรเจ็กต์ที่มีโครงสร้าง โดยจะใช้วิธีการ 4 ระยะ ได้แก่ การสแกนพื้นผิว (เฉพาะโครงสร้างไดเรกทอรี) ไฟล์การกำหนดค่าและข้อมูลเมตา จุดแรกเข้าและโมเดลข้อมูล จากนั้นจึงเจาะลึกแบบกำหนดเป้าหมาย โดยแต่ละระยะจะหยุดและเขียนผลการค้นพบก่อนที่จะไปยังระยะถัดไป และจะยังไม่ทำงานจนกว่าคุณจะเพิ่ม Frontmatter YAML ในภายหลัง เมื่อเปิดใช้งานแล้ว ให้เรียกใช้เพื่อสร้าง .agents/rules/project-context.md ซึ่งเป็นเอกสารการเริ่มต้นใช้งานที่ครอบคลุมสถาปัตยกรรม การขึ้นต่อกันของรันไทม์ พื้นผิว API และอภิธานศัพท์ของโดเมน

การพัฒนาที่ขับเคลื่อนด้วยข้อมูลจำเพาะ: ตั้งแต่การวางแผนในตัวของ Antigravity ไปจนถึง SDD ที่มีโครงสร้าง

ผู้ช่วยเขียนโค้ด AI ช่วยให้สร้างโค้ดจากพรอมต์ได้อย่างง่ายดาย ความเสี่ยง: คุณอธิบายฟีเจอร์ในประโยคเดียว ผู้ช่วยเขียนโค้ดหลายร้อยบรรทัด และคุณยอมรับเพราะดูเหมือนจะถูกต้อง บางครั้งจะเรียกกรณีเช่นนี้ว่า "Vibe Coding" ซึ่งก็คือการเขียนโค้ดตามความรู้สึก โดยยอมรับหรือปฏิเสธเอาต์พุตตามความเหมาะสม ซึ่งเหมาะสำหรับต้นแบบและสคริปต์ที่ใช้แล้วทิ้ง ซึ่งจะทำให้เกิดปัญหาเมื่อโค้ดเบสเติบโตขึ้น เมื่อฟีเจอร์ต่างๆ มีการโต้ตอบกัน หรือเมื่อคุณกลับมาดูโค้ดในอีกหลายสัปดาห์ต่อมาและไม่สามารถสร้างเหตุผลที่ทำให้ตัดสินใจเช่นนั้นขึ้นมาใหม่ได้

b2a0753229d08ef3.png

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

การแลกเปลี่ยนนี้เกิดขึ้นจริง โดย SDD จะช้ากว่า Vibe Coding ต่อฟีเจอร์ คุณเขียนเอกสารก่อนเขียนโค้ด แต่ผลตอบแทนจะเพิ่มขึ้นเรื่อยๆ การเปลี่ยนแปลงในอนาคตทุกครั้งในฐานของโค้ดจะมีบริบท การติดตั้งใช้งานที่ AI สร้างขึ้นทุกครั้งจะมีสัญญาที่ตรวจสอบได้ และคุณสามารถเตรียมความพร้อมผู้ใช้งานใหม่ร่วมกับผู้ทำงานร่วมกัน (มนุษย์หรือ AI) ได้โดยชี้ให้ดูที่ข้อกำหนดแทนที่จะอธิบายการตัดสินใจจากความทรงจำ

Antigravity ปฏิบัติตามหลักการพัฒนาที่ขับเคลื่อนด้วยข้อมูลจำเพาะอยู่แล้ว เมื่อตั้งค่า Agent เป็นโหมดการวางแผน Agent จะสร้างอาร์ติแฟกต์ 2 รายการก่อนที่จะเขียนโค้ด

  • แผนการติดตั้งใช้งาน - ภาพรวมของแนวทางเทคนิคที่เสนอ การเปลี่ยนแปลงไฟล์ และการตัดสินใจด้านสถาปัตยกรรม 632169a236bc62cc.png
  • รายการงาน - รายละเอียดของรายการงานที่มีโครงสร้าง

795e47f4d98ae074.png

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

Codelab นี้จะต่อยอดจากพื้นฐานดังกล่าวด้วยเวิร์กโฟลว์ที่มีข้อจำกัดและควบคุมเวอร์ชันโดยอิงตาม spec-kit ซึ่งเป็นเฟรมเวิร์กการพัฒนาที่อิงตามข้อกำหนดจาก GitHub ฟีเจอร์ทุกอย่างจะผ่านไปป์ไลน์ที่ตั้งใจไว้ ซึ่งแต่ละอาร์ติแฟกต์จะเป็นเอกสารแบบสแตนด์อโลนที่คุณสามารถตรวจสอบ แก้ไข และติดตามใน git ได้ ไปป์ไลน์มี 2 เฟส (ชี้แจงและวิเคราะห์) ที่เป็นตัวเลือกในการควบคุมคุณภาพ ซึ่งจะตรวจจับปัญหาได้ก่อนที่จะกลายเป็นปัญหาในการติดตั้งใช้งาน

ระยะ

อาร์ติแฟกต์

Purpose

/speckit.specify

spec.md

กำหนดสิ่งที่จะสร้าง (แสดงต่อผู้ใช้ ไม่ขึ้นกับเทคโนโลยี)

/speckit.clarify (ไม่บังคับ)

อัปเดตเมื่อ spec.md

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

/speckit.plan

plan.md, data-model.md, research.md

ออกแบบวิธีสร้าง (แนวทางเทคนิค รูปแบบข้อมูล การวิจัย)

/speckit.tasks

tasks.md

แบ่งแผนออกเป็นขั้นตอนที่เรียงตามลำดับและนำไปใช้ได้จริง

/speckit.analyze (ไม่บังคับ)

รายงานการวิเคราะห์

ตรวจสอบงานเพื่อหาความเสี่ยง ช่องว่าง หรือกรณีขอบที่ขาดหายไปก่อนการติดตั้งใช้งาน

/speckit.implement

การเปลี่ยนแปลงโค้ด

ทำงานโดยทำเครื่องหมายแต่ละงาน

c0164b540ee0afa1.png

ระบบจะบันทึกอาร์ติแฟกต์ทุกรายการเป็นไฟล์ใน specs/<feature-branch>/ ควบคุมเวอร์ชันใน Git และนำกลับมาใช้ใหม่ได้ หากการสนทนาถูกขัดจังหวะหรือคุณต้องการกลับมาดูการตัดสินใจในภายหลัง เอกสารข้อกำหนดจะพร้อมให้คุณดูเสมอ โดยจะไม่ฝังอยู่ในประวัติการแชท

ที่เก็บเริ่มต้นมีเวิร์กโฟลว์ SDD เหล่านี้ใน .agents/workflows/ และเทมเพลตใน .specify/templates/ คุณจะใช้ฟังก์ชันเหล่านี้ในภายหลังเพื่อเพิ่มฟีเจอร์ลงในเอเจนต์

4. บริบทของโปรเจ็กต์ Bootstrap ด้วย Antigravity

ตอนนี้มาจำลองสถานการณ์ด้วยเงื่อนไขที่ "ค่อนข้างใกล้เคียง" กับงานประจำของเรากัน

  • ที่เก็บที่ไม่ได้จัดการอย่างดี
  • README ล้าสมัย
  • เอกสารประกอบที่ไม่ได้อัปเดตบ่อย

สิ่งแรกที่เราต้องการทำในสถานการณ์เช่นนี้มักจะเป็นการสร้างแผนที่หรือบริบทเกี่ยวกับโปรเจ็กต์ที่เราต้องการให้ Antigravity ทำ ขั้นตอนนี้แสดงตัวอย่างแนวทางในการช่วยให้ Antigravity เข้าใจฐานของโค้ดที่มีอยู่ได้อย่างลึกซึ้งโดยการสร้างทักษะที่วิเคราะห์ที่เก็บและสร้างเอกสารบริบทของโปรเจ็กต์

นอกจากนี้ ยังกำหนดธรรมนูญของโปรเจ็กต์ ซึ่งเป็นหลักการที่ต่อรองไม่ได้ซึ่งเวิร์กโฟลว์ SDD จะตรวจสอบ ซึ่งจะช่วยให้ Antigravity มีบริบทและข้อจำกัดที่จำเป็นสำหรับรอบ SDD ในภายหลัง

ลำดับชั้นบริบทของ Antigravity

Antigravity ใช้บริบท 3 ระดับ โดยแต่ละระดับมีขอบเขตที่แตกต่างกัน ดังนี้

  • กฎ (.agents/rules/): คำสั่งที่ใช้งานอยู่เสมอ ทุกการสนทนาในพื้นที่ทำงานนี้จะเห็นกฎ ( หากคุณเปิดใช้งาน) ใช้กฎสำหรับบริบททั่วทั้งโปรเจ็กต์ เช่น การตัดสินใจด้านสถาปัตยกรรม มาตรฐานการเขียนโค้ด หรือข้อมูล Technology Stack
  • ทักษะ (.agents/skills/): ความรู้แบบออนดีมานด์ Antigravity จะโหลดทักษะเมื่องานปัจจุบันตรงกับฟิลด์ description ของทักษะเท่านั้น ใช้ทักษะสำหรับข้อมูลอ้างอิงเฉพาะโดเมน
  • เวิร์กโฟลว์ (.agents/workflows/): พรอมต์ที่บันทึกไว้ซึ่งทริกเกอร์ด้วยคำสั่ง / ใช้เวิร์กโฟลว์สำหรับกระบวนการแบบหลายขั้นตอนที่ทำซ้ำได้ เช่น ไปป์ไลน์ SDD

เปิดใช้งานสกิล

ที่เก็บเริ่มต้นมีทักษะที่เขียนไว้ล่วงหน้า 2 รายการใน .agents/skills/ โดยจะมีวิธีการโดยละเอียด แต่จะเริ่มต้นด้วยTODO(codelab)ความคิดเห็นแทนที่จะเป็น Frontmatter ของ YAML ที่จำเป็น หากไม่มี Frontmatter Antigravity จะค้นหาไม่ได้

ทักษะการต้านแรงโน้มถ่วงต้องมีบล็อกส่วนหน้า YAML ที่ด้านบนของไฟล์ที่มี 2 ฟิลด์ดังนี้

  • name — ตัวระบุที่ไม่ซ้ำกันสำหรับทักษะ
  • description - ข้อมูลสรุปภาษาธรรมชาติที่ Antigravity จะจับคู่เมื่อตัดสินใจว่าจะโหลดทักษะใดสำหรับคำขอที่ระบุ

เปิด .agents/skills/mcp-toolbox-postgres/SKILL.md ในโปรแกรมแก้ไข แทนที่TODO(codelab)บรรทัดความคิดเห็นที่ด้านบนด้วย Frontmatter นี้

---
name: mcp-toolbox-postgres
description: Configure MCP Toolbox for PostgreSQL  sources, tools, and embedding models
---

เปิด .agents/skills/repo-research/SKILL.md ในเครื่องมือแก้ไข แทนที่TODO(codelab)บรรทัดความคิดเห็นที่ด้านบนด้วย Frontmatter นี้

---
name: repo-research
description: Analyze a repository's structure, technologies, and patterns to create or update a project context document. Use when asked to research, analyze, or understand a codebase.
---

ตรวจสอบว่าทักษะทั้ง 2 มี Frontmatter ที่ถูกต้อง

head -4 .agents/skills/mcp-toolbox-postgres/SKILL.md
head -4 .agents/skills/repo-research/SKILL.md

แต่ละรายการควรแสดงตัวคั่น --- ที่ครอบฟิลด์ name: และ description: หากไม่มีตัวคั่นหรือฟิลด์ Antigravity จะไม่รู้จักทักษะ

โดยระบบจะโหลดทั้ง 2 ทักษะตามความต้องการ ซึ่ง Antigravity จะจับคู่คำขอของคุณกับฟิลด์ description และดึงวิธีการทั้งหมดเมื่อเกี่ยวข้องเท่านั้น

ติดตั้งทักษะที่พร้อมใช้งานแบบสาธารณะ

ADK Cheatsheet Skills

ก่อนหน้านี้เราได้ตรวจสอบทักษะที่เราสร้างขึ้นเอง ( ทักษะ repo-research และ mcp-toolbox-postgres) อย่างไรก็ตาม ยังมีทักษะอื่นๆ อีกมากมายที่มีประโยชน์ในการสนับสนุนการพัฒนาซอฟต์แวร์ของเรา และสามารถติดตั้งลงใน Agent การเขียนโค้ดได้อย่างง่ายดาย ตัวอย่างเช่น ในบทแนะนำนี้ เราจำเป็นต้องโต้ตอบกับ ADK ดังนั้นเราจึงต้องมีความรู้ที่เหมาะสมเกี่ยวกับวิธีสร้างด้วย ADK มาติดตั้งทักษะด้านเอกสารประกอบ ADK โดยใช้คำสั่งต่อไปนี้กัน

npx skills add google/adk-docs

จากนั้นระบบจะแจ้งให้คุณยืนยันการติดตั้งดังที่แสดงด้านล่าง

b9caa6a8cb1cdbee.png

กด y เพื่อดำเนินการต่อด้วยพรอมต์ถัดไปเพื่อเลือกทักษะที่จะติดตั้งตามที่แสดงด้านล่าง ตอนนี้ให้เลือกเฉพาะ adk-cheatsheet (กด Space เพื่อเลือก จากนั้นกด Enter เพื่อยืนยัน)

eccdab31618ab6a2.png

จากนั้นเพียงคลิกEnterตัวเลือกอื่นๆ เพื่อเปิดใช้การติดตั้งเริ่มต้นและติดตั้งทักษะในโปรเจ็กต์ปัจจุบัน

คุณจะเห็นว่าระบบได้เพิ่มทักษะ ADK ใหม่ลงในไดเรกทอรี .agents/skills ซึ่งก็คือ adk-cheatsheet

ทักษะของมนุษย์ถ้ำ

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

npx skills add JuliusBrussee/caveman

เช่นเดียวกับก่อนหน้านี้ ให้เลือกทักษะ caveman ที่นี่ก่อน

7a5d9fdfb287837e.png

จากนั้นเพียงคลิกป้อนเพื่อเลือกตัวเลือกอื่นๆ เพื่อเปิดใช้การติดตั้งเริ่มต้นและติดตั้งทักษะในโปรเจ็กต์ปัจจุบัน

ตอนนี้เราควรมีทักษะ 4 อย่างที่กำหนดค่าไว้แล้วและพร้อมที่จะเริ่มต้นเส้นทาง SDD

.agents/skills/
├── adk-cheatsheet
├── caveman
├── mcp-toolbox-postgres
└── repo-research

สร้างบริบทของโปรเจ็กต์

ตรวจสอบว่ามีไดเรกทอรีของกฎอยู่

mkdir -p .agents/rules

ในกล่อง Agent Manager/Chat ของ Antigravity (ในโหมดเอดิเตอร์ ให้กด ctrl + L) ให้เริ่มการสนทนาใหม่ ประเภท:

Research this repository and create a project context document, and communicate efficiently

Antigravity จะจับคู่คำขอของคุณกับทักษะ repo-research และ caveman ( คำสั่งเพื่อสื่อสารอย่างมีประสิทธิภาพ) จากนั้นจะเริ่มวิเคราะห์ฐานของโค้ดอย่างเป็นระบบ โดยจะอ่านไฟล์การกำหนดค่า ซอร์สโค้ด และเอกสารประกอบ จากนั้นจะป้อนข้อมูลลงในเทมเพลตบริบทของโปรเจ็กต์ด้วยสิ่งที่พบ

เมื่อเสร็จแล้ว ให้เปิด .agents/rules/project-context.md ในเอดิเตอร์ ซึ่งมีข้อมูลที่ชัดเจนเกี่ยวกับโปรเจ็กต์ ได้แก่ Technology Stack (Python 3.12, ADK, MCP Toolbox, Cloud SQL), โครงสร้างโปรเจ็กต์, โมเดลข้อมูล (ตาราง menu_items ที่มี pgvector) และการผสานรวมภายนอก

9949388b3e1f401a.png

กำหนดธรรมนูญของโปรเจ็กต์

เวิร์กโฟลว์ SDD อ้างอิงถึงธรรมนูญของโปรเจ็กต์ที่ .specify/memory/constitution.md ระหว่างการวางแผนและการวิเคราะห์ /speckit.plan เวิร์กโฟลว์จะเรียกใช้ "การตรวจสอบรัฐธรรมนูญ" กับเนื้อหาดังกล่าว และ/speckit.analyze จะแจ้งว่ามีการละเมิดเป็น "วิกฤต" หากปล่อยให้รัฐธรรมนูญเป็นเทมเพลตเปล่าที่มีโทเค็นตัวยึดตำแหน่ง การตรวจสอบเหล่านี้จะไม่มีสิ่งใดให้ตรวจสอบ แผนและการวิเคราะห์จะทำงานโดยไม่มีการควบคุม

รัฐธรรมนูญกำหนดหลักการของโปรเจ็กต์ที่ต่อรองไม่ได้ ที่เก็บนี้เป็นที่เก็บขนาดเล็กที่ดูแลโดยนักพัฒนาซอฟต์แวร์เพียงคนเดียว ดังนั้นรัฐธรรมนูญควรสะท้อนถึงขอบเขตดังกล่าว นั่นคือทำให้เรียบง่าย สอดคล้องกัน และหลีกเลี่ยงการออกแบบที่ซับซ้อนเกินไป

ใน Agent Manager ของ Antigravity ให้เริ่มการสนทนาใหม่ เรียกใช้เวิร์กโฟลว์รัฐธรรมนูญ

/speckit.constitution This is a small restaurant concierge ADK agent maintained by one developer. Set 3 principles: (1) All database operations go through MCP Toolbox tool definitions in tools.yaml  no raw SQL in Python code, no ORM. (2) Session state uses ADK ToolContext  no custom state management, no external state stores. (3) Keep it simple  follow existing file and naming conventions exactly.

Antigravity จะกรอกเทมเพลตรัฐธรรมนูญด้วยหลักการที่เป็นรูปธรรม กำหนดเวอร์ชัน (1.0.0) และเรียกใช้การตรวจสอบความสอดคล้องในเทมเพลต SDD

ตรวจสอบรัฐธรรมนูญที่สร้างขึ้นได้ที่ .specify/memory/constitution.md ตรวจสอบว่ามีหลักการทั้ง 3 ข้อและระบุไว้อย่างชัดเจน

276113749cd30834.png

5. วงจร SDD - เพิ่มฟีเจอร์การจอง

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

ระบุฟีเจอร์

ใน Agent Manager ของ Antigravity ให้เริ่มการสนทนาใหม่ พิมพ์/speckit.specifyคำสั่งเวิร์กโฟลว์พร้อมรายละเอียดฟีเจอร์

/speckit.specify Add reservation booking capability to the restaurant concierge agent. Guests should be able to make a table reservation by providing their name, party size, date, and time. They should also be able to check existing reservations. The agent should confirm reservation details before booking and handle special requests (e.g., "window seat", "birthday celebration").

Antigravity สร้างกิ่งก้านฟีเจอร์ สร้างเอกสารข้อกำหนด และเรียกใช้การตรวจสอบคุณภาพ หาก Antigravity ถามคำถามเพื่อขอคำชี้แจง ให้ตอบคำถามตามรายละเอียดฟีเจอร์ด้านบน

ข้อกำหนดจะเน้นที่ "อะไร" และ "ทำไม" ไม่ใช่ "อย่างไร" โดยอธิบายประสบการณ์ของผู้ใช้ ("แขกรับเชิญสามารถจองได้โดยระบุชื่อ จำนวนคน วันที่ และเวลา") โดยไม่ต้องพูดถึงตาราง SQL, tools.yaml หรือ ADK API รายละเอียดการใช้งานจะอยู่ในระยะการวางแผน

ตรวจสอบข้อกำหนดที่สร้างขึ้นที่ specs/<branch-name>/spec.md ตรวจสอบว่าข้อกำหนดดังกล่าวครอบคลุมข้อกำหนดด้านฟังก์ชันและเกณฑ์ความสำเร็จ

4ea3f72f9dfb4d35.png

ชี้แจงข้อกำหนด (ไม่บังคับ)

เรียกใช้เวิร์กโฟลว์การชี้แจงเพื่อระบุและแก้ไขพื้นที่ที่ระบุไม่ชัดเจนในข้อกำหนด

/speckit.clarify

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

วางแผนการติดตั้งใช้งาน

เรียกใช้เวิร์กโฟลว์การวางแผน

/speckit.plan Update the restaurant concierge agent to multi agent architecture which separate responsibilities for handling menu and reservations. Use your ADK and MCP toolbox skill to implement it properly

Antigravity สร้างแผนทางเทคนิคผ่าน 2 ระยะดังนี้

  1. ระยะการวิจัย - แก้ไขสิ่งที่ยังไม่ทราบเกี่ยวกับโค้ดเบสที่มีอยู่ สร้าง research.md
  2. ช่วงออกแบบ - สร้าง data-model.md (คำจำกัดความของเอนทิตีการจอง) และอัปเดต project-context.md

Antigravity ควรใช้ทักษะ adk-agent-development ในระหว่างการวางแผน ตรวจสอบอาร์ติแฟกต์ที่สำคัญ

  • specs/<branch-name>/plan.md - แนวทางด้านเทคนิค: ไฟล์ที่จะแก้ไข รูปแบบที่ต้องทำตาม
  • specs/<branch-name>/data-model.md — คำจำกัดความของเอนทิตีการจอง (คอลัมน์ ประเภท ความสัมพันธ์)
  • specs/<branch-name>/research.md — การตัดสินใจและเหตุผล

d9996ccbb3211078.png

สร้างงาน

เรียกใช้เวิร์กโฟลว์ของงาน

/speckit.tasks

Antigravity จะแบ่งแผนออกเป็นรายการงานที่เรียงลำดับใน specs/<branch-name>/tasks.md งานจะเป็นไปตามรูปแบบรายการตรวจสอบที่เข้มงวดโดยมีรหัส เครื่องหมายลำดับความสำคัญ และเส้นทางไฟล์ เช่น

- [ ] [T001] [P] Create reservations table schema in scripts/seed_db.py
- [ ] [T002] [P] Add create_reservation tool to tools.yaml
- [ ] [T003] [P] Add list_reservations tool to tools.yaml
- [ ] [T004] [P] Update agent instruction in restaurant_concierge/agent.py

โดยจะจัดระเบียบงานเป็นระยะต่างๆ ได้แก่ การตั้งค่า → พื้นฐาน → สตอรี่ของผู้ใช้ → การปรับแต่ง สแกนรายการงานเพื่อทำความเข้าใจว่าระบบจะสร้างและแก้ไขอะไร

9fcdb822d8279ddf.png

วิเคราะห์งาน (ไม่บังคับ)

เรียกใช้เวิร์กโฟลว์การวิเคราะห์เพื่อตรวจสอบงานสำหรับความเสี่ยงและช่องโหว่

/speckit.analyze

Antigravity จะตรวจสอบรายการงานกับข้อกำหนดและแผน โดยมองหางานที่อาจขัดแย้งกัน หรือช่องว่างระหว่างข้อกำหนดของข้อกำหนดกับงานที่วางแผนไว้ แก้ไขปัญหาร้ายแรงก่อนที่จะนำไปใช้

6. ใช้งาน

เรียกใช้เวิร์กโฟลว์การติดตั้งใช้งาน

/speckit.implement

Antigravity จะนำเสนอแผนการติดตั้งใช้งานขั้นสุดท้ายและอาร์ติแฟกต์ของงาน ตรวจสอบและอนุมัติเพื่อดำเนินการต่อ

adc1e3d098bd1638.png

306448e70f61ab51.png

Antigravity จะดำเนินการตามงานและทำเครื่องหมายแต่ละงานเมื่อเสร็จสิ้น เมื่อเสร็จแล้ว ระบบจะแสดงคำแนะนำแบบสมบูรณ์

48cc7752817a54c7.png

ทดสอบการเปลี่ยนแปลงโค้ด

หลังจากติดตั้งใช้งานเสร็จแล้ว ให้ยืนยันว่ามีการเปลี่ยนแปลงคีย์ ชื่อไฟล์และเนื้อหาที่แน่นอนอาจแตกต่างกันไป แต่ควรมีรูปแบบเหล่านี้เหมือนใน tools.yaml และ agent.py

# Verify reservation tools were added to tools.yaml
grep -i "reservation" tools.yaml

คุณจะเห็นเอาต์พุตบางอย่างในลักษณะนี้

...
get_reservations_by_name:
      Retrieve all reservations for a guest by their name. Uses case-insensitive
      SELECT id, guest_name, party_size, reservation_datetime, special_requests, created_at
      FROM reservations
      ORDER BY reservation_datetime DESC
...

และสำหรับ agent.py

# Verify agent instruction was updated
grep -i "reservation" restaurant_concierge/agent.py

# Check what files changed
git diff --name-only

คุณอาจเห็นการเปลี่ยนแปลงเช่นนี้

...
- **Table Reservations**: Help guests book a table or check their existing reservations.
## Reservation Booking Rules
When a guest wants to make a reservation, collect ALL of the following before confirming:
**IMPORTANT**: Before calling `book_reservation`, you MUST:
- Only call `book_reservation` after the guest says "yes" or "confirm"
## Checking Reservations
When a guest asks to check their reservations:
- Use `get_reservations_by_name` to find their bookings
        book_reservation,
...

การเปลี่ยนแปลงควรส่งผลต่อสคริปต์ฐานข้อมูลเริ่มต้น สคริปต์ที่อัปเดตแล้วควรสร้างตาราง reservations หากยังไม่มี คุณควรเห็นเอาต์พุตที่ยืนยันว่าได้สร้างตารางใหม่แล้ว (menu_itemsข้อมูลที่มีอยู่จะยังคงอยู่)

หากทุกอย่างเป็นไปด้วยดีจนถึงตอนนี้ เราจะทดสอบฟีเจอร์ใน UI สำหรับนักพัฒนาซอฟต์แวร์ของตัวแทน ADK ได้ มาทำการย้ายข้อมูลฐานข้อมูลเพื่อรวมตารางใหม่และรีสตาร์ทกล่องเครื่องมือเพื่อเลือกคำจำกัดความของเครื่องมือใหม่ใน tools.yaml กัน หยุดกระบวนการ Toolbox ที่มีอยู่ แล้วเริ่มกระบวนการใหม่โดยทำดังนี้

lsof -ti:5000 | xargs kill -9 2>/dev/null; echo "Done"
./scripts/setup_database.sh > database_setup.log 2>&1 &

คุณสามารถตรวจสอบบันทึกเอาต์พุตใน database_setup.log ว่า Antigravity สร้างโค้ดและการกำหนดค่าที่ถูกต้องหรือไม่ หากพบข้อผิดพลาด ให้ลองโต้ตอบกับตัวแทนเพื่อแก้ไข

หากทุกอย่างเป็นไปด้วยดี เราจะเริ่ม UI สำหรับนักพัฒนาแอป ADK ได้โดยทำดังนี้

uv run adk web .

เปิด http://localhost:8000 ในเบราว์เซอร์ แล้วทดสอบด้วยพรอมต์ต่อไปนี้

I'd like to book a table for 4 people on Friday at 7pm under the name Timmy
Do I have any upcoming reservations?

d9815389df37ed1a.png

f38a944851e28c29.png

ตอนนี้ให้หยุด UI สำหรับนักพัฒนาแอป ADK โดยกด Ctrl+C 2 ครั้ง

7. ชาเลนจ์ (ไม่บังคับ)

ตอนนี้คุณก็ทราบเวิร์กโฟลว์ SDD ทั้งหมดแล้ว ลองทดสอบดู

  • เรียกใช้รอบ SDD ที่ 2 เพื่อสร้างอินเทอร์เฟซแชทบนเว็บสำหรับเจ้าหน้าที่อำนวยความสะดวกของร้านอาหาร โดยครั้งนี้ไม่ต้องมีคำแนะนำแบบทีละขั้นตอน
  • ทำให้เอเจนต์ใช้งานได้ใน Cloud Run สำหรับสถานการณ์การใช้งานจริง

คำแนะนำ

  • โปรเจ็กต์ไม่มีเฟรมเวิร์กส่วนหน้า Antigravity ควรเสนอ HTML/CSS/JS แบบดั้งเดิม หากแนะนำ React หรือคล้ายกัน ให้โน้มน้าวให้ใช้แบบเรียบง่าย (หลักการ "ทำให้เรียบง่าย" ของรัฐธรรมนูญควรจับประเด็นนี้ได้)
  • เซิร์ฟเวอร์ ADK จะแสดง /run_sse สำหรับการสตรีมและ /apps/{app_name}/users/{user_id}/sessions สำหรับการจัดการเซสชัน Antigravity จะค้นพบสิ่งเหล่านี้จากบริบทของโปรเจ็กต์
  • หลังจากติดตั้งใช้งานแล้ว ให้เริ่มเซิร์ฟเวอร์ด้วย uv run uvicorn server:app --host 0.0.0.0 --port 8080 (ไม่ใช่ adk web) เพื่อให้การติดตั้งไฟล์แบบคงที่ทำงานได้
  • ทดสอบที่ http://localhost:8080/static/index.html
  • Codelab อ้างอิงแสดงวิธีทำให้ใช้งานได้และคงอยู่ของ ADK Agent อยู่แล้ว โปรดอ้างอิง Antigravity ถึง Codelab นี้

8. ยินดีด้วย

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

สิ่งที่คุณสร้าง

  • เอเจนต์ ADK ของเจ้าหน้าที่อำนวยความสะดวกในร้านอาหารที่มีการค้นหาเมนู การค้นหาเชิงความหมาย การติดตามค่ากำหนดด้านอาหาร และการจอง
  • ทักษะ Antigravity สำหรับการวิจัยที่เก็บที่สร้างและดูแลเอกสารบริบทของโปรเจ็กต์
  • ธรรมนูญของโปรเจ็กต์ที่บังคับใช้หลักการที่ต่อรองไม่ได้ในระหว่างการวางแผนและการวิเคราะห์
  • วงจร SDD ที่สมบูรณ์ซึ่งแสดงให้เห็นเวิร์กโฟลว์ระบุ → ชี้แจง → วางแผน → งาน → วิเคราะห์ → นำไปใช้

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

  • วิธีใช้เวิร์กโฟลว์ Spec-Driven Development ใน Antigravity เพื่อเพิ่มฟีเจอร์ลงในโค้ดเบสที่มีอยู่
  • วิธีสร้างทักษะ Antigravity ที่รวมความรู้เฉพาะด้านเพื่อนำกลับมาใช้ใหม่ในการสนทนา
  • วิธีเริ่มต้นบริบทของโปรเจ็กต์เพื่อให้ Antigravity ตัดสินใจอย่างมีข้อมูลเกี่ยวกับการเลือกสถาปัตยกรรม รูปแบบ และเทคโนโลยี
  • วิธีตั้งค่าธรรมนูญของโปรเจ็กต์ที่เวิร์กโฟลว์ SDD ตรวจสอบ
  • วิธีขยาย Agent ADK ด้วยเครื่องมือใหม่ที่ใช้ฐานข้อมูลผ่าน MCP Toolbox

ล้างข้อมูล

หยุดกระบวนการที่ทำงานในเครื่อง (กล่องเครื่องมือ)

pkill -f toolbox 2>/dev/null

ลบอินสแตนซ์ Cloud SQL เพื่อหลีกเลี่ยงการเรียกเก็บเงินอย่างต่อเนื่อง โดยทำดังนี้

gcloud sql instances delete restaurant-db --quiet

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

gcloud projects delete $GOOGLE_CLOUD_PROJECT