การปรับปรุงระดับความพยายามทุกระดับของ Agent API
ระดับความพยายามใน Perplexity Agent API ตอนนี้มีต้นทุนต่ำลง โดยคุณภาพการวิจัยเท่าเดิมหรือดีขึ้น พร้อมระดับ ultra ใหม่สำหรับการวิจัยที่ลึกยิ่งขึ้น

ระดับความพยายามใน Perplexity Agent API ช่วยให้นักพัฒนาเลือกความสมดุลระหว่างต้นทุน ความเร็ว และความลึกของการวิจัยสำหรับแต่ละงานได้ วันนี้ ระดับความพยายามทุกระดับมีต้นทุนต่อคำค้นหาที่ต่ำลง โดยคุณภาพการวิจัยสูงขึ้นหรือเท่าเดิม ระดับ ultra ใหม่พร้อมให้ใช้งานแล้วสำหรับการวิจัยที่ครอบคลุมกว้างขวางและรอบด้านที่สุด คำขอใดก็ตามที่เลือกระดับด้วยชื่อ เช่น effort="fast", จะได้รับการกำหนดค่าที่อัปเดตแล้วโดยอัตโนมัติ
การสร้างเอเจนต์การวิจัยหมายถึงการเลือกความสมดุลที่เหมาะสมระหว่างต้นทุน ความเร็ว และความลึกสำหรับแต่ละงาน ระดับความพยายามใน Agent API จะตัดสินใจเรื่องนั้นแทนผู้ใช้ แต่ละระดับคือการกำหนดค่าแบบรวมชุดที่กำหนดโมเดล งบประมาณขั้นตอน การตั้งค่าการค้นหา และเครื่องมือสำหรับงานแต่ละประเภท Perplexity ประเมินและอัปเดตแต่ละระดับอยู่เสมอเพื่อมอบการวิจัยที่ดีที่สุดในต้นทุนปัจจุบันหรือต่ำกว่า
ผลลัพธ์ที่ดีขึ้นเหล่านี้มาจากการเปลี่ยนแปลงสองประเภท งบประมาณ การจัดการบริบท และการสกัดข้อมูลช่วยลดต้นทุนของการรันแต่ละครั้ง ส่วน Skill การเลือกโมเดล และเอเจนต์ที่ทำงานคู่ขนานช่วยยกระดับหรือรักษาคุณภาพของคำตอบ
ประสิทธิภาพของ medium บน BrowseComp และ DSQA เพิ่มขึ้นจาก 55% เป็น 77% ขณะที่ต้นทุนลดลงเกือบ 90% BrowseComp และ DSQA เป็นเบนช์มาร์กการวิจัยสาธารณะ ส่วน WANDR เป็นเบนช์มาร์กของ Perplexity สำหรับงานวิจัยขนาดยาวที่เกี่ยวข้องกับหลายเอนทิตี xhigh ทำงานแบบเอเจนต์ เช่น การรันโค้ดในแซนด์บ็อกซ์ การรักษาลูปการใช้เครื่องมือที่ยาวต่อเนื่อง และการทำงานกับแหล่งข้อมูลจำนวนมากพร้อมกัน xhigh รักษาคะแนน WANDR ไว้ที่ 76.5% ขณะที่มีต้นทุนประมาณ 25% ของการกำหนดค่าเมื่อเดือนสิงหาคม 2026
ต้นทุนของการวิจัย
คำขอการวิจัยเชิงลึกหนึ่งครั้งอาจรันการค้นหาหลายสิบครั้ง อ่านหน้าเว็บหลายร้อยหน้า และตรวจสอบหลักฐานก่อนจะตอบ ทุกการกระทำเหล่านั้นจะเพิ่มโทเค็นในบริบทและเพิ่มค่าใช้จ่ายในบิล หากไม่มีขีดจำกัด เอเจนต์จะทำการกระทำต่อไปเรื่อยๆ ซึ่งเพิ่มต้นทุนและทำให้บริบทแออัดโดยไม่ได้ทำให้คำตอบดีขึ้น ต้นทุนส่วนใหญ่มาจากปัจจัยห้าประการ ได้แก่:
- การจัดสรรงบประมาณ เอเจนต์ที่มีงบประมาณกำหนดไว้อาจใช้ขั้นตอนจนหมดและจบการรันก่อนกำหนดก่อนที่จะทำงานให้เสร็จ ในทางกลับกัน เอเจนต์ที่ไม่มีงบประมาณตายตัวอาจรันต่อไปเรื่อยๆ ทำให้เกิดต้นทุนโดยไม่ได้ทำให้คำตอบสุดท้ายดีขึ้น
- ภาระของบริบท ผลการค้นหาและหน้าที่ดึงมามีหลักฐานอยู่ แต่หากปล่อยไว้โดยไม่ควบคุม หน้าต่างบริบทอาจเต็มไปด้วยข้อมูลที่ไม่เกี่ยวข้องได้อย่างรวดเร็ว หน้าต่างบริบทนำต้นทุนติดไปจากขั้นตอนหนึ่งสู่อีกขั้นตอนหนึ่ง และหน้าต่างที่มีภาระมากเกินไปอาจลดประสิทธิภาพของเอเจนต์ได้
- การเลือกเวิร์กโฟลว์ งานที่ต่างกันต้องใช้วิธีการที่ต่างกัน การค้นหาข้อเท็จจริงเพียงข้อเดียว คำถามแบบหลายทอด (multi-hop) และการสำรวจแหล่งข้อมูลในวงกว้าง ต่างต้องใช้เวิร์กโฟลว์ที่แตกต่างกัน หากปล่อยให้เลือกเอง โมเดลมักเลือกเวิร์กโฟลว์ที่ไม่มีประสิทธิภาพ การอธิบายทุกกลยุทธ์ที่มีอยู่โดยละเอียดในพรอมต์ของเอเจนต์ก็ไม่ได้แก้ปัญหานี้ คำสั่งที่เพิ่มเข้ามาจะถูกแบกไปเป็นโทเค็นในทุกขั้นตอน และโมเดลจะทำตามแต่ละคำสั่งได้น้อยลงเรื่อยๆ เมื่อเวลาผ่านไป
- การเลือกโมเดล การเปลี่ยนไปใช้โมเดลที่ใหญ่ขึ้นอาจไม่ได้ให้ประสิทธิภาพที่ดีขึ้นอย่างคุ้มค่ากับต้นทุนที่เพิ่มขึ้น โมเดลใหม่มักเปิดตัวพร้อมพาดหัวข่าวและคะแนนเบนช์มาร์กที่เผยแพร่ออกมา อย่างไรก็ตาม คะแนนเบนช์มาร์กที่ดีขึ้นอาจมีการปนเปื้อนหรือสะท้อนถึงการที่โมเดลโอเวอร์ฟิต หากไม่มีการประเมินกับงานจริง การเปลี่ยนโมเดลอาจเพิ่มต้นทุนโดยไม่ได้เพิ่มคุณภาพ
- การขยายขนาดด้วยหลายเอเจนต์ เอเจนต์เดียวสามารถค้นหา อ่าน และให้เหตุผลผ่านแหล่งข้อมูลได้ในจำนวนจำกัดต่อการรันหนึ่งครั้ง การรันเอเจนต์หลายตัวคู่ขนานกันช่วยปรับปรุงคุณภาพในงานที่ท้าทายที่สุด แต่ก็เพิ่มต้นทุนและเพิ่มความซับซ้อนหากจัดการไม่ถูกต้อง
การแก้ปัญหาแต่ละข้อเหล่านี้ช่วยลดต้นทุนของระดับความพยายามแต่ละระดับโดยไม่ลดประสิทธิภาพ
การควบคุมงบประมาณการวิจัย
ระดับความพยายามแต่ละระดับมีงบประมาณการวิจัยที่กำหนดไว้ตายตัว ซึ่งประกอบด้วยสามส่วน:
- ขีดจำกัดขั้นตอน: จำนวนรอบที่เอเจนต์ทำได้
- การเรียกใช้เครื่องมือ: ขีดจำกัดจำนวนการเรียกใช้เครื่องมือทั้งหมดในหนึ่งคำขอ ขั้นตอนเดียวสามารถเรียกใช้หลายครั้งผ่านเครื่องมือหลายตัวพร้อมกันได้ ดังนั้นขีดจำกัดขั้นตอนเพียงอย่างเดียวจึงไม่สามารถควบคุมจำนวนการกระทำที่เกิดขึ้นภายในหนึ่งขั้นตอนได้
- การแจ้งเตือนงบประมาณ: การแจ้งเป็นระยะว่ายังเหลืออีกกี่ขั้นตอน เพื่อให้เอเจนต์จัดลำดับความสำคัญและเหลือพื้นที่สำหรับเขียนคำตอบ แทนที่จะใช้งบประมาณจนหมดระหว่างทำงาน
งบประมาณคือจุดแลกเปลี่ยนสำคัญ ยิ่งมีขั้นตอนมากขึ้นก็ยิ่งได้คำตอบที่ดีขึ้น และทุกขั้นตอนก็มีต้นทุน เมื่อใช้ openai/gpt-6-luna การเพิ่มขีดจำกัดขั้นตอนจาก 1 เป็น 15 ช่วยเพิ่มความแม่นยำบน BrowseComp + DSQA จาก 41% เป็น 80% ขณะที่ต้นทุนต่อคำค้นหาเพิ่มขึ้นจาก $0.0017 เป็น $0.0152 หรือคิดเป็นต้นทุนราว 9 เท่าเพื่อคะแนนที่สูงขึ้นราว 2 เท่า
ขีดจำกัดขั้นตอนเพียงอย่างเดียวไม่สามารถควบคุมต้นทุนการวิจัยได้ ภายใต้งบประมาณห้าขั้นตอนเท่ากัน openai/gpt-6.1-terra เรียกใช้เครื่องมือมากกว่า openai/gpt-6-luna เนื่องจากโมเดลที่มีความสามารถสูงกว่ามักเรียกใช้หลายครั้งในขั้นตอนเดียว ระดับความพยายามจึงจำกัดทั้งการเรียกใช้เครื่องมือและจำนวนขั้นตอน สำหรับโมเดลเหล่านี้ ขีดจำกัดการเรียกใช้เครื่องมือมีความสำคัญพอๆ กับขีดจำกัดขั้นตอน
ระดับความพยายามแต่ละระดับจะปรับขีดจำกัดเหล่านี้ แต่เอเจนต์ก็ต้องรู้ด้วยว่ายังเหลือขั้นตอนและการกระทำอีกเท่าใดในการดำเนินการตามคำขอ หากไม่มีข้อมูลนั้น เอเจนต์อาจใช้ขั้นตอนหรือการกระทำจนหมดและถูกบังคับให้ตอบก่อนที่การวิจัยจะเสร็จสมบูรณ์ งบประมาณจะระบุไว้ตั้งแต่เริ่มการรัน และการแจ้งเตือนจะมาถึงเมื่อเอเจนต์ใกล้ถึงขีดจำกัด เพื่อให้มีเวลาเหลือพอสำหรับตรวจสอบและส่งมอบผลลัพธ์ สำหรับระดับ high การแจ้งเตือนจะครอบคลุมทั้งงบประมาณขั้นตอนและงบประมาณการเรียกใช้เครื่องมือ
เอเจนต์สองตัว ตัวหนึ่งมีการแจ้งเตือนงบประมาณและอีกตัวไม่มี ได้รับการทดสอบในงาน BrowseComp ซึ่งต้องระบุซีรีส์โทรทัศน์จากทศวรรษ 1990 เมื่อได้รับประวัติของนักแสดงสามคน เอเจนต์ที่มีการแจ้งเตือนพบคำตอบที่ถูกต้องโดยใช้ 13 จาก 40 ขั้นตอนในงบประมาณ ส่วนเอเจนต์ที่ไม่มีการแจ้งเตือนงบประมาณใช้ครบทั้ง 40 ขั้นตอนและไม่พบคำตอบที่ถูกต้อง ลูปของเอเจนต์ตัวนั้นสิ้นสุดลงอย่างไม่คาดคิด และโมเดลไม่ทราบถึงงบประมาณการวิจัยที่เหลืออยู่ การแจ้งเตือนช่วยให้เอเจนต์มีสมาธิจดจ่อและจัดลำดับความสำคัญของทรัพยากรที่เหลืออยู่ได้อย่างมีประสิทธิภาพ
การจัดการบริบท
การบีบอัดบริบท
งานวิจัยที่ใช้เวลานานจะทำให้หน้าต่างบริบทของโมเดลเต็มไปด้วยผลการค้นหา หน้าที่ดึงมา และบันทึกระหว่างทาง เมื่อเต็มแล้ว เอเจนต์จะต้องหยุดทำงาน
การบีบอัดบริบท (compaction) ช่วยให้การรันที่ยาวนานทำงานต่อไปได้โดยไม่ทำให้หน้าต่างบริบทเต็ม เมื่อบริบทเกินเกณฑ์ที่กำหนด เอเจนต์จะแทนที่งานที่ทำมาจนถึงตอนนั้นด้วยสรุปที่สั้นกว่าเกี่ยวกับสิ่งที่ค้นพบและสิ่งที่ยังเหลืออยู่ แล้วจึงทำงานต่อ
การบีบอัดบริบทจะเก็บสามสิ่งไว้ในบริบทเสมอ ได้แก่ พรอมต์ระบบ คำขอเดิม และ Skill ใดๆ ที่เอเจนต์โหลดไว้แล้ว หลังการบีบอัดแต่ละครั้ง เอเจนต์จะได้รับคำสั่งสั้นๆ สองข้อ คำสั่งแรกคือ “ทำงานต่อไปจนกว่างานจะเสร็จ” ซึ่งป้องกันไม่ให้เอเจนต์ถือว่าสรุปเป็นจุดสิ้นสุด คำสั่งที่สองจะบอกเอเจนต์ว่ามีการบีบอัดเกิดขึ้นไปแล้วกี่ครั้ง เพื่อให้วางแผนงานวิจัยที่เหลืออยู่ได้ การรันที่ยาวนานจะยังคงเห็นเป้าหมายและแผนเดิม และต้นทุนของลูปที่ยาวนานจะลดลงโดยไม่ลดทอนคุณภาพ
ดึงเฉพาะสิ่งที่สำคัญ
ทุกหน้าที่เอเจนต์อ่านจะเพิ่มเข้าไปในบริบท และเอเจนต์ต้องแบกบริบทนั้นไปในทุกขั้นตอนถัดไป หน้าเว็บมีข้อมูลที่ไม่เกี่ยวข้องกับคำถาม เช่น ส่วนนำทาง ข้อความสำเร็จรูป (boilerplate) และเนื้อหาอื่นๆ
แทนที่จะส่งทั้งหน้าให้เอเจนต์ fetch_url จะรันขั้นตอนการสกัดข้อมูลก่อน ข้อความในหน้าจะถูกส่งไปยังโมเดลที่เล็กกว่าพร้อมกับงานปัจจุบันของเอเจนต์ โมเดลจะส่งคืนเฉพาะข้อความส่วนที่เกี่ยวข้อง โดยยกมาแบบคำต่อคำเพื่อให้เอเจนต์อ้างอิงได้ ในระหว่างการประเมิน หน้าขนาด 5,561 โทเค็นถูกลดเหลือ 293 โทเค็น ทำให้มีพื้นที่ว่างสำหรับบริบทที่เกี่ยวข้องเพิ่มเติม
การใช้ fetch_url ร่วมกับการสกัดข้อมูล ที่ระดับความพยายาม high ช่วยลดโทเค็นอินพุตต่อคำค้นหาได้ประมาณ 50% การสกัดข้อมูลยังช่วยปรับปรุงประสิทธิภาพในเบนช์มาร์ก โดยทำได้ 88.0% ที่ $0.073 ต่อคำค้นหา เทียบกับ 83.5% ที่ $0.094 เมื่อไม่ใช้การสกัดข้อมูล
การค้นหาเว็บแบบมุ่งเป้า
การค้นหาเว็บเป็นหัวใจสำคัญของทุกคำขอการวิจัยของเอเจนต์ โดยมีการเปลี่ยนแปลงสามประการในวิธีที่เอเจนต์ค้นหา:
- บริบทต่อการค้นหามากขึ้น: ตอนนี้การค้นหาแต่ละครั้งจะส่งคืนผลลัพธ์ได้สูงสุด 4K โทเค็นแทนที่จะเป็น 2K เอเจนต์จึงพบสิ่งที่ต้องการได้เร็วขึ้น ส่งผลให้ค้นหาน้อยลงและต้นทุนต่ำลง
- เอนจินสนิปเพ็ตใหม่: ผลการค้นหาจะได้รับสนิปเพ็ตที่ตรงกับคำค้นหามากขึ้น เอเจนต์จึงไม่ต้องรับภาระจากข้อความที่ไม่เกี่ยวข้องมากเกินไป
- การค้นหาแบบเร็ว: ด้วยราคา $1.00 ต่อ 1K คำขอ Fast Search ช่วยลดทั้งต้นทุนและเวลาแฝงของการเรียกค้นหาแต่ละครั้ง
ทีม Perplexity Search ปรับปรุงคุณภาพการดึงข้อมูลอย่างต่อเนื่องในงานหลากหลายประเภท การอัปเดตล่าสุดช่วยให้ผลลัพธ์ดีขึ้นในเนื้อหาด้านโค้ด เอกสารสำหรับนักพัฒนา หน้าอ้างอิง กฎหมาย และกฎระเบียบ
การเลือกเวิร์กโฟลว์ที่ถูกต้อง
บางงานต้องรันการค้นหาจำนวนมากพร้อมกัน ขณะที่บางงานต้องอ่านเอกสารขนาดยาวเพียงไม่กี่ฉบับอย่างละเอียด
อย่างไรก็ตาม การโหลดทุกเวิร์กโฟลว์ลงในพรอมต์ระบบของเอเจนต์จะเพิ่มภาระของบริบท และอาจทำให้โมเดลทำงานได้ไม่ดีในงานง่ายๆ ด้วยเหตุนี้ Skill จึงถูกจัดเป็นโครงสร้างแบบต้นไม้พร้อมการเปิดเผยข้อมูลแบบค่อยเป็นค่อยไป โมเดลจะโหลด Skill และคำสั่งที่เกี่ยวข้องระหว่างทำงาน โดยไม่นำข้อมูลที่ไม่เกี่ยวข้องเข้ามาในบริบท Skill แต่ละรายการจะใช้พื้นที่เพียงชื่อและคำอธิบายเท่านั้น จนกว่าโมเดลจะตัดสินว่า Skill นั้นเหมาะกับงานและโหลดเข้ามา เมื่อถึงตอนนั้น คำสั่งฉบับเต็มจะถูกเพิ่มลงในบริบท และโมเดลจะทำตามเวิร์กโฟลว์ที่กำหนดไว้
เพื่อวัดว่า Skill แต่ละรายการมีส่วนช่วยอย่างไร จะมีการนำ Skill ออกทีละรายการเพื่อเปรียบเทียบคุณภาพและต้นทุนในงานที่เอเจนต์พื้นฐานได้โหลด Skill นั้นไว้ การทดลองแบบตัดออก (ablation) เหล่านี้แสดงให้เห็นว่าเวิร์กโฟลว์ใดช่วยเอเจนต์ได้และส่งผลต่อประสิทธิภาพการวิจัยอย่างไร
การรันเบนช์มาร์ก WANDR ด้านล่างแสดงให้เห็นเอเจนต์ที่เลือกเวิร์กโฟลว์ที่ถูกต้องสำหรับงานที่เจาะจง คำแนะนำสำหรับ wide-search และ fanout ถูกโหลดในทุกงาน ซึ่งสะท้อนถึงความจำเป็นในการตรวจสอบหลายเอนทิตี ส่วน people-search ถูกโหลดในงานเพียง 6% และเฉพาะเมื่อคำถามเกี่ยวข้องกับบุคคลเท่านั้น
เมื่อทดสอบงาน WANDR อีกงานหนึ่ง เอเจนต์ได้โหลด Skill people-search พร้อมรูปแบบ fanout เพื่อค้นหาวิศวกรด้าน inference ในลอนดอน เอเจนต์ขยายคำที่เกี่ยวกับตำแหน่งงาน 39 คำเป็นคำค้นหา 117 รายการ แล้วรวมผลลัพธ์รอบแรกเป็นโปรไฟล์ที่ไม่ซ้ำกัน 43 รายการเพื่อคัดกรองต่อ Skill people-search ช่วยชี้นำเอเจนต์ตลอดการขยายนี้โดยไม่เพิ่มบริบทที่ไม่เกี่ยวข้อง ข้อความที่ตัดตอนมาด้านล่างดัดแปลงมาจากสคริปต์ของเอเจนต์ ส่วนชื่อฟังก์ชันตัวช่วยเป็นเพียงตัวอย่างประกอบ
Python
# roles contains the 39 role variants selected by the agent.
queries = []
for role in roles:
queries.extend([
{"query": f"Google DeepMind {role} London"},
{"query": f"Google {role} London"},
{"query": role, "company": "Google", "location": "London"},
])
results = pplx_sdk.search.people_many(
queries, limit_per_query=50, concurrency=8
)
profiles = {}
for result in results:
if not result.ok:
continue
for profile in result.result:
if "linkedin.com/in/" not in profile.url:
continue
url = profile.url.split("?")[0].rstrip("/")
previous = profiles.get(url, {})
if url not in profiles or len(profile.summary or "") > len(
previous.get("summary") or ""
):
profiles[url] = {
"url": url,
"title": profile.title,
"summary": profile.summary,
}
การทำเช็กพอยต์ (checkpointing) เป็นอีกเวิร์กโฟลว์หนึ่งที่ช่วยเอเจนต์ในงานที่ใช้เวลานาน รูปแบบเช็กพอยต์มาจากการเขียนโปรแกรมแบบแบตช์ เมื่อสคริปต์ประมวลผลรายการยาวๆ สคริปต์จะเขียนผลลัพธ์แต่ละรายการลงดิสก์ทันทีที่ได้ผล แทนที่จะเก็บทุกอย่างไว้ในหน่วยความจำจนถึงตอนท้าย หากสคริปต์หยุดทำงานหรือพบข้อผิดพลาดระหว่างทาง ก็จะไม่มีสิ่งใดสูญหาย การรันครั้งถัดไปจะอ่านสิ่งที่บันทึกไว้แล้วและทำต่อจากจุดที่ค้างไว้ โดยลองใหม่เฉพาะรายการที่ล้มเหลวเท่านั้น
ในงาน WANDR อีกงานหนึ่ง เอเจนต์ต้องคัดกรองโปรไฟล์ของวิศวกร 188 คน เอเจนต์จึงโหลดรูปแบบเช็กพอยต์เพื่อบันทึกผลลัพธ์แต่ละรายการระหว่างทำงาน รอบแรกดึงโปรไฟล์ได้ 160 รายการแต่ล้มเหลว 28 รายการ เมื่อเอเจนต์รันสคริปต์อีกครั้ง ก็ข้ามโปรไฟล์ที่บันทึกไว้แล้วและลองใหม่เฉพาะ 28 รายการที่เหลือ หากไม่มีเช็กพอยต์ ระเบียนที่ผิดพลาดเพียงรายการเดียวจะหมายถึงต้องดึงข้อมูลทั้ง 188 รายการใหม่อีกครั้งตัวอย่างโค้ด Python ที่ตัดตอนและดัดแปลงแล้ว โดยละเว้นหน้าอินพุต คำสั่งคัดกรอง สคีมา และการนำเข้า (imports) ส่วนชื่อฟังก์ชันตัวช่วยเป็นเพียงตัวอย่างประกอบ
Python
checkpoint = Checkpoint("research/profile-screening")
config = instruction + json.dumps(schema)
config_id = hashlib.md5(config.encode()).hexdigest()[:6]
def checkpoint_key(page):
url_id = hashlib.md5(page["url_in"].encode()).hexdigest()[:10]
return config_id + url_id
pending = [
page for page in pages if not checkpoint.has(checkpoint_key(page))
]
for offset in range(0, len(pending), 20):
batch = pending[offset : offset + 20]
inputs = [
json.dumps({
"url": page["url_in"], "content": page["content"][:30_000]
})
for page in batch
]
results = pplx_sdk.llm.extract_many(
inputs,
instruction=instruction,
output_schema=schema,
chunk_size=5,
concurrency=4,
)
for page, result in zip(batch, results):
if not result.ok or result.result.error:
continue
checkpoint.record(
checkpoint_key(page),
[{"url": page["url_in"], **result.result.result}],
)
เช็กพอยต์จะบันทึกผลลัพธ์ที่สำเร็จ แต่ไม่ได้สั่งให้ลองใหม่ การรวมคำสั่งและสคีมาไว้ในคีย์ช่วยให้มั่นใจได้ว่าเมื่อเกณฑ์การคัดกรองเปลี่ยนไป ระบบจะประมวลผลใหม่
ไม่ใช่ทุกการทดสอบที่ทำให้คุณภาพและประสิทธิภาพดีขึ้น มีการประเมินการโหลด Skill ทั้งหมดไว้ล่วงหน้าให้เอเจนต์ก่อนเริ่มงาน บน BrowseComp และ DSQA การโหลดล่วงหน้าทำให้ต้นทุนเพิ่มขึ้น 13% บน WANDR ซึ่งเส้นทางการวิจัยที่ยาวกว่าทำให้เนื้อหาที่ดึงมามีสัดส่วนในโทเค็นอินพุตมากขึ้น การโหลดล่วงหน้ายังทำให้คะแนนลดลงด้วย ผลลัพธ์เหล่านี้สนับสนุนให้ใช้การเปิดเผยข้อมูลแบบค่อยเป็นค่อยไป (progressive disclosure) ต่อไป
การเลือกโมเดล
เมื่อความสามารถของโมเดลก้าวหน้าขึ้น โมเดลที่ดีที่สุดสำหรับแต่ละระดับความพยายามก็เปลี่ยนไปด้วย Perplexity ใช้ลูปการวิจัยอัตโนมัติที่คอยติดตามการประกาศและความพร้อมใช้งานของโมเดลใหม่ การประเมินจะเริ่มขึ้นทันทีที่โมเดลพร้อมให้เข้าถึง
เมื่อมีการเปิดตัวโมเดลใหม่ เอเจนต์อัตโนมัติจะนำโมเดลนั้นเข้าสู่ harness สำหรับการประเมิน โดยจะไล่ปรับระดับความพยายามในการให้เหตุผล งบประมาณขั้นตอนและงบประมาณการเรียกใช้เครื่องมือ รวมถึงการกำหนดค่าเครื่องมือ และให้คะแนนการรันทุกครั้งทั้งด้านคุณภาพและต้นทุนเทียบกับระดับความพยายามปัจจุบัน หากการรันใดมีผลถดถอย เอเจนต์จะค้นหาสาเหตุ ปรับการตั้งค่า และรันการประเมินอีกครั้ง โมเดลตัวเลือกจะแทนที่โมเดลปัจจุบันก็ต่อเมื่อชนะด้านคุณภาพด้วยต้นทุนเท่าเดิมหรือต่ำกว่า
เบนช์มาร์กสาธารณะมีประโยชน์ แต่คะแนนจากเบนช์มาร์กเหล่านี้ไม่ได้สะท้อนผลลัพธ์ในงานจริงเสมอไป ตัวอย่างเช่น แผนภูมิด้านล่างแสดงโมเดลตัวเลือกที่ทำคะแนนบน BrowseComp ได้สูงกว่าค่าพื้นฐาน 13.3 คะแนน แต่กลับได้คะแนนต่ำกว่าค่าพื้นฐานที่สอดคล้องกันอยู่มากในงานวิจัยภายในด้านองค์กร กฎหมาย และการเงิน
การขยายขนาดด้วยหลายเอเจนต์
เอเจนต์เดียวครอบคลุมแหล่งข้อมูลได้ในจำนวนจำกัดภายในหนึ่งลูป สำหรับงานที่ซับซ้อน เอเจนต์หลายตัวจะทำงานคู่ขนานกัน โดยแต่ละตัวประสานงานกันในส่วนต่างๆ ของปัญหา
เอเจนต์หลักทำหน้าที่เป็นผู้ประสานงาน (orchestrator) โดยจะเรียก spawn_agent เพื่อสร้างเอเจนต์ลูกและมอบหมายงานที่เจาะจงและมีจุดโฟกัสชัดเจนให้แต่ละตัว เอเจนต์ลูกทุกตัวจะรันลูปการวิจัยของตัวเองด้วยบริบทที่แยกกัน โดยใช้โมเดล เครื่องมือ และงบประมาณขั้นตอนของตัวเอง เอเจนต์ลูกจะรายงานผลลัพธ์กลับไปยังเอเจนต์แม่ ซึ่งสามารถส่งงานติดตามผลให้เอเจนต์ลูกหรือตรวจสอบความคืบหน้าได้ ผู้ประสานงานและเอเจนต์ลูกจะแลกเปลี่ยนข้อความกันเพื่อแบ่งปันหลักฐาน แจ้งอุปสรรค และปรับขั้นตอนถัดไป เมื่อมีข้อมูลใหม่เข้ามา ผู้ประสานงานจะปรับปรุงการมอบหมายงาน และเมื่องานเสร็จสิ้นก็จะรวมผลลัพธ์ทั้งหมดเป็นคำตอบเดียว
Agent API รองรับบทบาทเอเจนต์ที่กำหนดไว้ล่วงหน้า และผู้ประสานงานสามารถสร้างเอเจนต์ลูกพร้อมคำสั่งที่กำหนดเองได้
ระดับความพยายาม ultra จะรันเอเจนต์สามตัวคู่ขนานกันในงานเดียว เอเจนต์แต่ละตัวจะวิจัยทั้งงานอย่างอิสระ ทำให้ได้หลักฐานที่แตกต่างกัน จากนั้นเอเจนต์ตัวที่สี่จะรวมสิ่งที่ค้นพบ ตัดส่วนที่ซ้ำกันออก และเขียนคำตอบสุดท้าย
บน WANDR ultra ทำคะแนนได้ 85.9% ที่ $21.71 ต่องาน ซึ่งเป็นคะแนนสูงสุดในบรรดาการกำหนดค่าที่ทดสอบ
ก้าวต่อไป
ระดับความพยายามได้รับการประเมินและปรับปรุงอย่างต่อเนื่อง ระดับที่ผู้ใช้เลือกจะเป็นตัวกำหนดว่างานจะได้รับการวิจัยมากเพียงใดและมีค่าใช้จ่ายเท่าใด งบประมาณขั้นตอนและงบประมาณการเรียกใช้เครื่องมือ พร้อมการแจ้งเตือนเมื่องบใกล้หมด ช่วยให้คำขออยู่ภายในงบประมาณ การบีบอัดบริบท การสกัดข้อมูล และสนิปเพ็ตที่ดีขึ้นช่วยให้บริบทมุ่งเน้นที่หลักฐาน Skill ช่วยจับคู่เวิร์กโฟลว์ให้เหมาะกับงาน และเอเจนต์ที่ทำงานคู่ขนานช่วยขยายขอบเขตที่ลูปเดียวครอบคลุมได้ ลูปการประเมินอัตโนมัติจะยอมรับโมเดลใหม่ก็ต่อเมื่อโมเดลนั้นปรับปรุงคุณภาพการวิจัยได้ด้วยต้นทุนเท่าเดิม
ระดับความพยายามแต่ละระดับจะพัฒนาต่อไปเรื่อยๆ เมื่อโมเดลและการกำหนดค่าใหม่ๆ พิสูจน์ตัวเองในการประเมิน การเรียกระดับด้วยชื่อจะได้รับการปรับปรุงเหล่านั้นโดยอัตโนมัติ ส่วนการปักหมุดเวอร์ชันจะคงการกำหนดค่าไว้ตามเดิม
ลองใช้ Agent API และเปรียบเทียบระดับความพยายามกับเวิร์กโหลดของคุณเอง ดูรายละเอียดของระดับความพยายามได้ในเอกสารเรื่อง effort ของ Agent API