วิธีเปลี่ยน AI Agent ที่เปราะบางให้กลายเป็นระบบที่เชื่อถือได้ด้วย Google ADK 2.0 และ A2UI

@DataChaz
อังกฤษ1 วันที่ผ่านมา · 30 ก.ค. 2569
239K
69
29
9
66

TL;DR

บทความนี้สำรวจว่าเฟรมเวิร์ก ADK 2.0 และ A2UI ของ Google ช่วยแก้ปัญหาความล้มเหลวของ AI Agent ได้อย่างไร โดยการแยกกระบวนการคิดที่คาดเดาไม่ได้ออกจากการประมวลผลซอฟต์แวร์ที่มีโครงสร้างชัดเจน

ลองจินตนาการดู

คุณให้เครื่องมือห้าอย่างกับคำสั่งเดียวแก่เอเจนต์

กระบวนการคืนเงินของคุณอาจทำงานได้อย่างสมบูรณ์

แล้วอีเมลยืนยันก็ล้มเหลว

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

ผลลัพธ์คืออะไร? เงินคืนสองรอบ

โปรโตไทป์ทำงานได้อย่างสวยงาม แต่ระบบ production กลับไม่เป็นอย่างนั้น

ปัญหาไม่ใช่ที่ตัว prompt

ปัญหาคือการให้โมเดลรันกระบวนการที่มันไม่ควรจะรันตั้งแต่แรก!

LLMs ถูกบังคับให้ทำงาน routing, scheduling และ error management อยู่ตลอด

งานเหล่านี้เป็นงานที่ซอฟต์แวร์ทั่วไปจัดการได้อย่างแม่นยำสมบูรณ์แบบอยู่แล้ว

แต่เรากลับให้ AI ทำงานสองอย่างที่ขัดแย้งกัน:

  • อ่านโลก: ทำความเข้าใจข้อมูลที่คาดเดาไม่ได้และไม่มีโครงสร้าง
  • รันกระบวนการ: จัดลำดับเหตุการณ์ที่ตายตัวและกำหนดไว้ล่วงหน้า

อย่างแรกคือจุดที่ AI โดดเด่น ส่วนอย่างที่สองคือหน้าที่ของ code แบบดั้งเดิม

เมื่อรู้ขั้นตอนถัดไปอยู่แล้ว โมเดลก็ไม่ควรต้องเดา

จินตนาการเอเจนต์อัตโนมัติตัวเดียวที่ได้รับเครื่องมือห้าอย่างกับคำสั่งใหญ่หนึ่งชุด:

→ ดึงประวัติการซื้อ

→ ตรวจสอบนโยบายการคืนเงิน

→ ดำเนินการคืนเงินหากมีสิทธิ์

→ ส่งอีเมล

→ แล้วปิด ticket

เพื่อให้สำเร็จ เอเจนต์ต้องจำลำดับ ตรวจสอบผลลัพธ์ของทุกเครื่องมือ และคาดเดาว่าขั้นตอนถัดไปคืออะไร

ถ้าอีเมลยืนยันล้มเหลวหลังจากส่งเงินไปแล้ว โมเดลจะพยายามสร้าง workflow ขึ้นใหม่จาก context window แทนที่จะดำเนินการต่อจากสถานะการทำงานที่ปลอดภัย

ผลลัพธ์ก็คือการคืนเงินสองรอบที่พูดถึงตอนต้นนั่นแหละ

ADK 2.0 จัดการความวุ่นวายได้อย่างไร

ADK 2.0 ของ Google แก้ปัญหานี้ด้วยแนวทางใหม่ทั้งหมด

มันเปลี่ยนการทำงานที่คาดเดาได้กลับมาเป็นขั้นตอน workflow ที่เป็นรูปธรรม โดยใส่ AI ลงไปเฉพาะจุดที่ต้องตีความจริง ๆ เท่านั้น:

Charly Wargnier - inline image

[กราฟ workflow การคืนเงิน - ที่มา: "Why we built ADK 2.0"]

ในตัวอย่างข้างต้น การดึงประวัติการซื้อ การคืนเงิน และการปิด ticket คือการทำงานของซอฟต์แวร์ปกติ

ส่วนการวิเคราะห์ข้อร้องเรียนและการร่างข้อความยืนยันเฉพาะบุคคลเป็นหน้าที่ของ AI

ผลลัพธ์คือการผสมผสานที่ลงตัว: การทำงานที่ตายตัว ควบคู่กับการใช้เหตุผลแบบเจาะจง

แต่คุณอาจจะคิดว่า: นี่มันแค่การกลับไปใช้ระบบอัตโนมัติแบบตายตัวไม่ใช่เหรอ?

เรากำลัง hard-code workflow ที่เอเจนต์ควรจะมาแทนที่หรือเปล่า?

จริง ๆ แล้วก็ไม่เชิง

Workflow จะเป็นตัวกำหนดขอบเขตที่รู้อยู่แล้ว

เอเจนต์ยังคงจัดการส่วนที่ต้องใช้การตีความ ภาษา หรือดุลยพินิจ

เป้าหมายไม่ใช่การลบความยืดหยุ่น แต่คือการหยุดบังคับให้โมเดลค้นหาเส้นทางการทำงานเดิมซ้ำแล้วซ้ำเล่าในทุก ๆ รอบ

เมื่อตัดการตัดสินใจที่ไม่จำเป็นของโมเดลออกไป สถาปัตยกรรมนี้ก็เปลี่ยนตัวเลขไปโดยสิ้นเชิง

Workflow การคืนเงินเดียวกัน โมเดลเดียวกัน

แต่กับ ADK 2.0 จำนวน token ลดจาก 5,152 เหลือ 2,265 และ latency ลดจาก 7.2 วิ เหลือ 5.7 วิ 🔥

Charly Wargnier - inline image

[ที่มา: "Why we built ADK 2.0"]

โครงสร้างนี้ทำหน้าที่เหมือนตัวกรองธรรมชาติที่ลดการใช้ token ลงครึ่งหนึ่ง

แทนที่จะส่งประวัติทั้งหมด เอเจนต์จะเห็นเฉพาะสิ่งที่ต้องใช้ (เช่น policy agent เห็นเฉพาะข้อร้องเรียน)

ประโยชน์ที่ได้ทันที:

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

Frontend ก็ต้องการขอบเขตเช่นกัน: A2UI ทำให้ UI ของคุณอยู่ในการควบคุม

เยี่ยมมาก ตอนนี้ workflow การคืนเงินอยู่ในการควบคุมแล้ว

ADK 2.0 กำหนดเส้นทางและป้องกันไม่ให้เอเจนต์สร้างลำดับของตัวเองขึ้นมา

แต่ ผู้ใช้ยังต้องการวิธีที่ปลอดภัยในการเห็นและดำเนินการกับสิ่งที่เอเจนต์สร้างขึ้น

พูดง่าย ๆ คือ frontend ก็ต้องการขอบเขตเหมือนกัน!

สมมติว่าการคืนเงินที่อนุมัติทุกครั้งต้องมีการลงนามอนุมัติจากหัวหน้างาน

เอเจนต์ ไม่ควร สร้างข้อความง่าย ๆ แบบว่า:

"การคืนเงินนี้ได้รับการอนุมัติแล้ว"

มันต้องแสดงการ์ดที่มีโครงสร้าง ซึ่งประกอบด้วย

  • จำนวนเงิน
  • ธุรกรรม
  • เหตุผลตามนโยบาย
  • ปุ่ม 'อนุมัติ/ปฏิเสธ' ที่ชัดเจน

นี่คือจุดที่ A2UI ของ Google เข้ามามีบทบาท!

ด้วย A2UI เอเจนต์จะส่งคืน JSON payload แบบ declarative แทนที่จะเป็นโค้ด frontend ที่รันได้

Host จะตรวจสอบ payload นั้นและเรนเดอร์เฉพาะคอมโพเนนต์ที่อยู่ใน catalogue ของมันเท่านั้น

เอเจนต์ตัดสินใจว่าข้อมูลใดจะแสดง และแอปควบคุมวิธีเรนเดอร์

👇 ด้านล่างคือตัวอย่างการ์ดที่เรนเดอร์ด้วย A2UI ซึ่งแสดงให้เห็นความหลากหลายของ UI ที่ A2UI ทำได้:

Charly Wargnier - inline image

เดโม A2UI-over-MCP Recipe Studio ของ Google แสดงสถาปัตยกรรมนี้ในทางปฏิบัติ:

Charly Wargnier - inline image

ที่มา: Google Developers Blog

👆 คุณจะเห็นว่าฟอร์มเลือกแบบคงที่ถูกส่งผ่าน MCP Resource ขณะที่การ์ดสูตรอาหารที่สร้างแบบไดนามิกถูกส่งกลับผ่าน MCP Tool

A2UI เรนเดอร์ทั้งสองแบบได้โดยตรงภายในแอปพลิเคชัน host

เห็นความสมมาตรไหม?

  • ADK 2.0 จำกัดสิ่งที่เอเจนต์ทำได้บน backend
  • A2UI จำกัดสิ่งที่มันสร้างได้บน frontend

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

กลับมาที่ตัวอย่างการคืนเงินที่เราคุยกันข้างต้น การคืนเงินทั่วไปอาจต้องการแค่การ์ดอนุมัติง่าย ๆ

แต่กรณีที่มีข้อโต้แย้ง เกี่ยวข้องกับข้อยกเว้น เอกสารแนบ หรือการชำระคืนบางส่วน อาจต้องใช้ประสบการณ์ที่สมบูรณ์กว่า

นี่คือจุดที่ MCP App เข้ามาช่วย โดยให้พื้นที่ทำงานแบบจำกัดสำหรับการโต้ตอบที่ซับซ้อน:

Charly Wargnier - inline image

→ ADK ควบคุมสิ่งที่จะเกิดขึ้นได้

→ A2UI ทำให้ผลลัพธ์มองเห็นและดำเนินการได้

→ MCP Apps จัดการพื้นที่ทำงานที่ซับซ้อน

อยากรู้เพิ่มเติมไหม?

นี่คือทุกสิ่งที่คุณต้องใช้เพื่อสำรวจ ADK 2.0, A2UI และแพลตฟอร์ม agent ที่กว้างขึ้นของ Google Cloud:

เป็นเกียรติอย่างยิ่งที่ได้ร่วมงานกับ @googlecloud ในโปรเจกต์นี้! 🤝

ถ้าอยากติดตามข่าวสารล่าสุดเกี่ยวกับ LLMs, AI agents และ workflows สามารถติดตามผมได้ที่ @datachaz เพื่อรับข้อมูลเชิงลึกรายวัน

บันทึกในคลิกเดียว

อ่านบทความไวรัลเชิงลึกด้วย AI ใน YouMind

บันทึกแหล่งที่มา ถามคำถามที่ตรงประเด็น สรุปข้อโต้แย้ง และเปลี่ยนบทความไวรัลให้เป็นโน้ตที่นำกลับมาใช้ได้ใน AI เวิร์กสเปซเดียว

สำรวจ YouMind
สำหรับครีเอเตอร์

เปลี่ยน Markdown ของคุณให้เป็นบทความ 𝕏 ที่สะอาดตา

เวลาคุณเผยแพร่งานเขียนยาวของตัวเอง การจัดรูปแบบรูปภาพ ตาราง และบล็อกโค้ดให้เข้ากับ 𝕏 นั้นน่าปวดหัว YouMind เปลี่ยนร่าง Markdown ทั้งฉบับให้เป็นบทความ 𝕏 ที่สะอาดตาและพร้อมโพสต์ทันที

ลอง Markdown เป็น 𝕏

แพตเทิร์นให้ถอดรหัสเพิ่มเติม

บทความไวรัลล่าสุด

สำรวจบทความไวรัลเพิ่มเติม