เวิร์กโฟลว์แบบ Agentic (com.google.mlkit:genai-agent, อัลฟ่า) ของ ML Kit ช่วยให้คุณสร้างประสบการณ์การสนทนาในอุปกรณ์แบบหลายรอบและทำงานอัตโนมัติซึ่งขับเคลื่อนโดย Gemini Nano และบริการระบบ AICore ของ Android
คลาส AgentRunner สร้างขึ้นจากคลาส GenerativeModel (การเข้าถึงโมเดลโดยตรง) โดยจะทำให้ลูป Agent ที่ขับเคลื่อนด้วยเป้าหมายและสมบูรณ์เป็นไปโดยอัตโนมัติภายในแอปโดยตรง ซึ่งจะสังเกตบริบท ให้เหตุผลเกี่ยวกับอินพุตของผู้ใช้ ดำเนินการผ่านเครื่องมือ Kotlin ที่พิมพ์ และประเมินความคิดเห็นจนกว่าจะเป็นไปตามเงื่อนไขการสิ้นสุด
รูปแบบทั่วไปของ Agent
เวิร์กโฟลว์แบบ Agent ในอุปกรณ์ได้รับการเพิ่มประสิทธิภาพสำหรับลูปการให้เหตุผลเชิงกำหนดที่มุ่งเน้น ซึ่งระบบจะแปลความตั้งใจของผู้ใช้เป็นการดำเนินการในแอปที่มีโครงสร้าง รูปแบบที่พบบ่อยมีดังนี้
รูปแบบ |
ตัวอย่าง |
การดำเนินการและการลัดการกระทำในแอป |
แปลคำขอภาษาธรรมชาติเป็นคำสั่งเฉพาะของแอป เช่น การใช้การปรับแต่งรูปภาพใน Canvas การแก้ไขการตั้งค่าการเล่น หรือการเปิด/ปิดการตั้งค่าแอป |
การค้นหาที่มีโครงสร้างและการคำนวณในเครื่อง |
การดึงข้อมูลระเบียนที่เฉพาะเจาะจงตามรหัส (เช่น สถานะการสั่งซื้อหรือยอดคงเหลือในบัญชี) และการคำนวณทางคณิตศาสตร์แบบหลายขั้นตอน (เช่น การตัดจำหน่ายเงินกู้หรือเมตริกการออกกำลังกาย) |
การกรองและการดูแลจัดการแบบสนทนา |
การค้นหาและปรับแต่งรายการแอปในเครื่องแบบอินเทอร์แอกทีฟ เช่น การค้นหาผ่านรายการงานในเครื่อง การกรองเพลย์ลิสต์ หรือการจัดเรียงรายการแคตตาล็อกตามเกณฑ์ของผู้ใช้ |
การป้อนข้อมูลแบบหลายขั้นตอนพร้อมคำแนะนำ |
แนะนำผู้ใช้ผ่านขั้นตอนการป้อนข้อมูลที่มีโครงสร้างทีละขั้นตอน ตรวจสอบอินพุตระดับกลางด้วยเครื่องมือในเครื่องก่อนส่งขั้นสุดท้าย |
ประสิทธิภาพและความเป็นส่วนตัวในอุปกรณ์
เวิร์กโฟลว์แบบ Agentic จะทำงานบน Android AICore เพื่อมอบการดำเนินการที่เป็นส่วนตัวและตอบสนองได้ดีบนอุปกรณ์ของผู้ใช้โดยตรง ดังนี้
- การให้เหตุผลในเครื่องและความเป็นส่วนตัวของพรอมต์: ลูปการให้เหตุผลและการวางแผนของโมเดลจะทำงานในอุปกรณ์ทั้งหมดโดยไม่มีเวลาในการตอบสนองของเครือข่าย ข้อมูลพรอมต์ของผู้ใช้จะยังคงเป็นส่วนตัวในอุปกรณ์ อย่างไรก็ตาม เครื่องมือแต่ละรายการที่ติดตั้งใช้งานในแอปยังคงทำการเรียกใช้เครือข่ายหรือค้นหา Cloud API ได้หาก Use Case ของคุณต้องใช้ข้อมูลภายนอก
- เซสชันแบบหลายรอบที่มีการจัดการ: อินเทอร์เฟซ
AgentSessionจะเก็บรักษาประวัติการสนทนาในหน่วยความจำตลอดการสนทนาหลายรอบ คุณจึงไม่ต้องจัดการข้อความถอดเสียงด้วยตนเอง คุณสามารถเรียกคืนหน่วยความจำได้ทุกเมื่อโดยใช้เมธอดsession.close(),deleteSession(sessionId)หรือclearAllSessions() - การป้องกันการดำเนินการ: การกำหนดค่า Agent จะบังคับใช้ขีดจำกัดเทิร์นสูงสุด (ขีดจำกัด
maxTurnsซึ่งมีค่าเริ่มต้นเป็น 10) เป็นเงื่อนไขการสิ้นสุดทรัพยากรเพื่อป้องกันลูปการดำเนินการที่ควบคุมไม่ได้ ประหยัดแบตเตอรี่ และปกป้องการตอบสนองของอุปกรณ์
เลือกระหว่างการสร้างที่กำหนดเอง, Agent และ API สำหรับงานที่เฉพาะเจาะจง
ML Kit จัดระเบียบความสามารถของ GenAI ในอุปกรณ์ตามระดับการปรับแต่งและการจัดการที่ฟีเจอร์ของคุณต้องการ ดังนี้
- การสร้างและ Agent ที่กำหนดเอง: ทำงานร่วมกับโมเดลพื้นฐาน Gemini Nano โดยตรงเมื่อฟีเจอร์ของคุณต้องใช้คำสั่งที่กำหนดเองหรือตรรกะเฉพาะโดเมน เลือกเวิร์กโฟลว์แบบ Agentic (โดยใช้คลาส
AgentRunnerซึ่งสร้างขึ้นจากคลาสGenerativeModel) เมื่อต้องการเซสชันแบบหลายรอบที่มีการจัดการและลูปการเรียกใช้เครื่องมืออัตโนมัติ หรือเลือกการเข้าถึงโมเดลโดยตรง (โดยใช้คลาสGenerativeModel) สำหรับการสร้างพรอมต์ที่กำหนดเอง เอาต์พุตที่มีโครงสร้างแบบพิมพ์ หรือประวัติแบบหลายรอบที่จัดการโดยไคลเอ็นต์ - เสียงพูดและเสียง: ใช้โมเดลเสียงพูดและ GenAI โดยเฉพาะ (เช่น การจดจำเสียงพูด) เพื่อถอดเสียงพูดเป็นข้อความ
- งานข้อความและรูปภาพ: ใช้ประเภทฟีเจอร์เฉพาะงานที่กำหนดค่าไว้ล่วงหน้าและอะแดปเตอร์ LoRA ที่ปรับแต่งอย่างละเอียดบนโมเดลพื้นฐานที่ใช้ร่วมกัน (เช่น คำอธิบายรูปภาพ, การสรุป, การพิสูจน์อักษร และการเขียนใหม่) สำหรับกรณีการใช้งานด้านการมองเห็นและการเขียนแบบเบ็ดเสร็จโดยไม่ต้องใช้วิศวกรรมพรอมต์ (Prompt Engineering)
ตารางต่อไปนี้แสดงการเปรียบเทียบแนวทางเหล่านี้
การพิจารณา |
เวิร์กโฟลว์แบบเป็น Agent ( |
สิทธิ์เข้าถึงโมเดลโดยตรง ( |
Tasks API ข้อความและรูปภาพ |
สถาปัตยกรรม |
เลเยอร์การจัดการระดับสูงที่สร้างขึ้นบน |
อินเทอร์เฟซโดยตรงกับโมเดลพื้นฐาน Gemini Nano สำหรับพรอมต์ที่กำหนดเอง |
ประเภทฟีเจอร์เฉพาะงานที่รองรับโดยอะแดปเตอร์ LoRA ที่ปรับแต่งอย่างละเอียดซึ่งต่อยอดจากโมเดลพื้นฐานที่ใช้ร่วมกัน |
บริบทแบบต่อเนื่อง |
เซสชันแบบหลายเทิร์นที่มีการจัดการ ( |
บริบทการสนทนาแบบหลายรอบที่จัดการโดยไคลเอ็นต์
|
การเรียกใช้งานแบบอินพุตเดียวและไม่มีสถานะ |
การเรียกใช้เครื่องมือและการดำเนินการ |
ลูปการเรียกใช้เครื่องมืออัตโนมัติ ค้นหา AppFunctions ของ Android ที่ลงทะเบียนไว้ ดำเนินการเรียกใช้ที่โมเดลเลือก และป้อนผลลัพธ์กลับไปยังโมเดลโดยอัตโนมัติ |
การประกาศเครื่องมือที่จัดการโดยไคลเอ็นต์
|
ไม่เกี่ยวข้อง (ไปป์ไลน์งานแบบคงที่) |
กรณีที่ควรใช้ |
ใช้เมื่อต้องการการจัดการเป็นกลุ่มแบบอัตโนมัติสำหรับการเรียกใช้เครื่องมือแบบหลายขั้นตอนและเซสชันแบบหลายรอบในหน่วยความจำที่มีการจัดการ |
ใช้สำหรับการสร้างพรอมต์ที่กำหนดเอง, การทำความเข้าใจรูปภาพแบบหลายโมดัล, เอาต์พุตที่มีโครงสร้างซึ่งพิมพ์ไว้ ( |
ใช้เมื่อฟีเจอร์ของคุณตรงกับงานเขียนหรือการมองเห็นมาตรฐาน และคุณต้องการคุณภาพที่พร้อมใช้งานจาก LoRA ที่ปรับแต่งอย่างละเอียดโดยมีการตั้งค่าเพียงเล็กน้อย |
ขั้นตอนถัดไป
- หากต้องการตั้งค่าโปรเจ็กต์และสร้าง Agent รายการแรก โปรดดูหัวข้อเริ่มต้นใช้งานเวิร์กโฟลว์แบบ Agentic
- ดูวิธีแสดงฟังก์ชันในแอปต่อ Agent ได้ที่กำหนดเครื่องมือ
- หากต้องการจัดการเซสชันแบบหลายรอบและความทรงจำในวงจรของ Android โปรดดูหัวข้อจัดการเซสชันและวงจร
- หากต้องการรวบรวมคำตอบแบบสตรีมมิงและอัปเดต UI โปรดดูเหตุการณ์สตรีมและการผสานรวม UI