AI และ LLMเอเจนต์แผน Performance และ Scale

การแคชการเรียกเครื่องมือของเอเจนต์

เอเจนต์เรียกเครื่องมือเดิมด้วยอาร์กิวเมนต์เดิมซ้ำแล้วซ้ำเล่า จำผลลัพธ์ไว้ แล้วเลิกจ่ายค่าเรียก API เดิมซ้ำสองครั้ง

การค้นหาก่อนการเรียกเครื่องมือแต่ละครั้ง
1
ต่อ namespace หรือต่อรายการ
TTL
ที่ประหยัดได้ รายงานโดย STATS
$
ขั้นที่ 1 จาก 5
สร้าง namespace

สภาพอากาศเปลี่ยนช้า ผลลัพธ์จึงอยู่ได้ 15 นาที

เซสชันตัวอย่างplaying
# สร้าง namespace
hotkv> TOOL.CACHE.CREATE tools MAX_ENTRIES 100000 TTL 900
OK

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

ปัญหา

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

HotKV จัดการอย่างไร

Tool cache จำผลของการเรียกเครื่องมือที่ให้ผลคงที่ภายใต้คีย์ที่สร้างจากชื่อเครื่องมือและอาร์กิวเมนต์ ก่อนเรียกเครื่องมือ เอเจนต์ถามแคชก่อน หากเจอ ผลที่เก็บไว้จะถูกส่งกลับทันที หากไม่พบ ก็เรียกเครื่องมือหนึ่งครั้งและเก็บผลลัพธ์ไว้พร้อม TTL ที่ตรงกับความสดที่ต้องการ

ทีละขั้นตอน

เกิดอะไรขึ้นบ้าง ทีละคำสั่ง

  1. 01

    สร้าง namespace

    สภาพอากาศเปลี่ยนช้า ผลลัพธ์จึงอยู่ได้ 15 นาที

    TOOL.CACHE.CREATE tools MAX_ENTRIES 100000 TTL 900
  2. 02

    การเรียกครั้งแรก ไม่พบ

    ยังไม่มีอะไรแคชไว้สำหรับอาร์กิวเมนต์เหล่านี้

    TOOL.CACHE.GET tools "get_weather(city=Lisbon)"
  3. 03

    เรียกเครื่องมือหนึ่งครั้งแล้วเก็บไว้

    API จริงถูกเรียก และผลลัพธ์ถูกแคชไว้ 15 นาทีถัดไป

    TOOL.CACHE.SET tools "get_weather(city=Lisbon)" "{\"temp_c\":21,\"sky\":\"clear\"}" TTL 900
  4. 04

    ทุกครั้งที่ซ้ำคือการเจอแคช

    เอเจนต์วางแผนทริปวันที่สองแล้วถามอีกครั้ง เอเจนต์ตัวอื่นของนักท่องเที่ยวคนอื่นก็เช่นกัน

    TOOL.CACHE.GET tools "get_weather(city=Lisbon)"
  5. 05

    นับส่วนที่ประหยัดได้

    จำนวนที่เจอ ที่ไม่พบ และการใช้งานที่ประหยัดได้ รายงานต่อ namespace

    TOOL.CACHE.STATS tools
เหมาะกับงานแบบไหน

สถานการณ์จริง

เอเจนต์ท่องเที่ยวและจองที่พัก

การค้นหาสภาพอากาศ สกุลเงิน และห้องว่างซ้ำกันข้ามนักท่องเที่ยวและขั้นตอนการวางแผน แต่ละผลลัพธ์ถูกดึงมาหนึ่งครั้งต่อ TTL

เอเจนต์ข้อมูล

คิวรี SQL แบบอ่านอย่างเดียวและเมตริกบนแดชบอร์ดถูกจำผลไว้ เอเจนต์ที่สำรวจข้อมูลจึงไม่รัวคลังข้อมูล

เอเจนต์ท่องเว็บ

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

อยู่ในตัว

สิ่งที่คุณได้รับ

จำผลตามอาร์กิวเมนต์

คีย์สร้างจากชื่อเครื่องมือและอาร์กิวเมนต์ การเรียกที่ต่างกันแต่ละแบบจึงถูกแคชแยกกัน

TOOL.CACHE.GETTOOL.CACHE.SET

ควบคุมความสด

TTL เริ่มต้นต่อ namespace และ TTL ต่อรายการที่เลือกใช้ได้

TTL

หน่วยความจำมีขอบเขต

ขีดจำกัดจำนวนรายการต่อ namespace พร้อมการไล่ข้อมูลเมื่อเต็ม

MAX_ENTRIES

รายงานส่วนที่ประหยัดได้

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

TOOL.CACHE.STATS

คำถามที่พบบ่อย

ควรแคชเครื่องมือตัวไหน

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

ลบผลที่แคชไว้ก่อนกำหนดได้ไหม

ได้ TOOL.CACHE.DEL ลบหนึ่งรายการ และ TOOL.CACHE.FLUSH ล้าง namespace

แผนไหนรวมฟีเจอร์นี้

Tool cache อยู่ในแผน Performance และ Scale

กรณีใช้งานที่เกี่ยวข้อง

ลองกับเวิร์กโหลดของคุณเอง

HotKV ใช้โปรโตคอลของ Redis คุณจึงชี้ไคลเอนต์ที่มีอยู่มาที่ HotKV แล้วรันคำสั่งเดียวกันนี้ได้