ในเดือนที่ผ่านมา เอเจนต์เขียนโค้ดที่ผมกำลังสร้างได้ประมวลผล 13 พันล้านโทเค็นระหว่างอินพุตและเอาต์พุต โดยมีอัตราการ hit แคช 97.24% และต้นทุนจริงประมาณ 0.04 R$ ต่อล้านโทเค็น
พอผมพูดถึงตัวเลขเหล่านี้ ปฏิกิริยาแรกมักจะเป็นความไม่เชื่อ—และนั่นเป็นเรื่องปกติ ต้นทุนคือเหตุผลอันดับหนึ่งที่บริษัทต่างๆ เลิกใช้เอเจนต์อัตโนมัติ: โปรเจกต์นำร่องทำงานได้ดี บิลมา โปรเจกต์ตาย ดังนั้น บทความนี้จึงว่าด้วยการที่ตัวเลขเหล่านี้เกิดขึ้นมาได้ ไม่มีเคล็ดลับเดียว แต่มีสถาปัตยกรรมที่ทุกโทเค็นที่เข้าและออกถูกบีบอัด กำหนดเส้นทาง และวัดผล
นี่คือ Velua Code เอเจนต์ที่เรากำลังสร้างที่สตาร์ทอัพใหม่ที่ผมตัดสินใจก่อตั้ง Velua AI (https://velua.aihttps://velua.ai/)) ก่อนสถาปัตยกรรม ขอพูดถึงแนวคิดหลักก่อน
แนวคิดหลัก: สามปัญหา ที่แก้พร้อมกัน
เอเจนต์เขียนโค้ดพังในสามจุด และการแก้แค่จุดเดียวไม่พอ
ต้นทุน เอเจนต์อัตโนมัติใช้โทเค็นในปริมาณที่ทำให้ CFO ทุกคนกลัว ถ้าแต่ละรอบการทำงานมีราคาแพง ก็ไม่มีใครปล่อยให้เอเจนต์ทำงานวนซ้ำ—และเอเจนต์ที่ไม่ทำงานวนซ้ำก็ไม่ได้แก้ปัญหาอะไรจริงๆ
บริบท หน้าต่างบริบทมีจำกัดและมีราคาแพง การใช้งานทั่วไปจะยัดไฟล์ทั้งหมดและผลลัพธ์ grep เข้าไปในพรอมต์ โดยจ่ายเงินเพื่อโทเค็นที่ไม่เกี่ยวข้องเป็นพันๆ ในทุกครั้งที่เรียกใช้
ความจำ ทุกเซสชันเริ่มต้นจากศูนย์ เอเจนต์ต้องค้นพบสิ่งใหม่ในวันอังคาร ทั้งที่มันเรียนรู้ไปแล้วในวันจันทร์—และจ่าย (เป็นโทเค็นและข้อผิดพลาด) เพื่อค้นพบอีกครั้ง
ทั้งสามอย่างส่งผลซึ่งกันและกัน: บริบทที่พองตัวเพิ่มต้นทุน การขาดความจำทำให้บริบทพองตัว นั่นคือสาเหตุที่ Velua Code โจมตีทั้งสามอย่างพร้อมกัน
ต้นทุน: การบีบอัดต้นทาง + การกำหนดเส้นทางแบบแอคทีฟ
การตัดสินใจทางสถาปัตยกรรมอย่างแรก: บีบอัดบริบทที่ต้นทาง ไม่ใช่ที่ปลายทาง ผลลัพธ์ของเครื่องมือทุกอย่าง—การอ่านไฟล์ ผลการค้นหา บันทึกการ build—จะผ่านไปป์ไลน์การบีบอัด ก่อนที่จะเข้าสู่ประวัติเซสชัน แกนหลักคือโมเดลการบีบอัดที่เป็นกรรมสิทธิ์ซึ่งทำงานในเครื่องบน ONNX บนเครื่องของนักพัฒนาหรือในคอนเทนเนอร์ของเอเจนต์ ไม่มีการเรียกเครือข่ายเพื่อบีบอัด: การประหยัดไม่เสียโทเค็น
รอบๆ มัน เลเยอร์ที่เรียบง่ายกว่าทำงานหนัก: การลบรายการซ้ำของการอ่าน (เอเจนต์อ่านไฟล์เดิมซ้ำหรือไม่? เวอร์ชันเก่าออกจากบริบท), การบีบอัด JSON เชิงโครงสร้าง, การตัดเนื้อหาโค้ดทิ้งในขณะที่เก็บลายเซ็นไว้, และเกณฑ์แบบปรับตัวที่บีบอัดแน่นขึ้นเมื่อบริบทใหญ่ขึ้น ทุกอย่างถูกวัดด้วย tokenizer จริงของโมเดลเป้าหมาย—การประหยัดนับเป็นโทเค็นจริง ไม่ใช่ค่าประมาณ
และมีการตัดสินใจว่าสิ่งไหนที่ ไม่ ควรทำ: เราจะไม่แตะต้องระบบพรอมต์ขณะรันไทม์ พรอมต์ที่เสถียรคือสิ่งที่ทำให้อัตราการ hit แคช 97.24% คงอยู่—และการ hit แคชคือต้นทุนที่ถูกที่สุดที่มีอยู่ เพราะโทเค็นที่ถูกแคชมีต้นทุนเพียงเศษเสี้ยวของโทเค็นเต็ม
การตัดสินใจอย่างที่สอง: เอเจนต์ไม่ได้เลือกโมเดล ตัวจำแนกประเภทในเครื่องจะจำแนกแต่ละงานตามหมวดหมู่และความซับซ้อนก่อน และ Velua Gateway—ซึ่งเห็นโมเดลมากกว่า 50 รายการพร้อมราคาและประสิทธิภาพแบบเรียลไทม์—จะกำหนดเส้นทางไปยังโมเดลที่มีความสามารถมากที่สุด ภายในขอบเขตที่จำเป็น นอกเหนือจากการใช้มาตรการป้องกันและเพิ่ม RAG การเปลี่ยนชื่อตัวแปรไม่จำเป็นต้องใช้โมเดลระดับแนวหน้า การออกแบบการย้าย schema ถึงจำเป็น ด้วยการกำหนดเส้นทางแบบแอคทีฟ การเรียกใช้ส่วนใหญ่ไปที่โมเดลขนาดเล็ก และโมเดลราคาแพงจะเข้ามาเมื่อความซับซ้อนต้องการเท่านั้น
Gateway ยังวัดต้นทุนจริงของแต่ละคำขอ สิ่งนี้ช่วยให้เกิดสิ่งที่ผมถือว่าเป็นข้อที่ต่อรองไม่ได้สำหรับเอเจนต์ในระบบ production: งบประมาณเป็นเงื่อนไขการหยุด ลูปการทำงานอัตโนมัติทำงานโดยมีเพดานต้นทุนเป็นสกุลเงิน ไม่ใช่ด้วยความหวัง
เป็นการผสมผสาน—การบีบอัดต้นทาง, แคชสูง, การกำหนดเส้นทางระหว่างโมเดลขนาดเล็ก—ที่สร้างราคา 0.04 R$ ต่อล้านขึ้นมา แต่ละชิ้นส่วนทั้งสามอย่างเดี่ยวๆ ไม่สามารถทำได้ใกล้เคียงเลย
บริบท: กราฟแทนที่จะเป็น Grep
วิธีมาตรฐานที่เอเจนต์จะ "เข้าใจ" ฐานโค้ดคือ grep และการอ่านไฟล์—ซึ่งมีราคาแพงและมองไม่เห็น Velua Code จะคง กราฟความรู้ของโค้ด ไว้: ฟังก์ชัน คลาส เส้นทาง และความสัมพันธ์ระหว่างสิ่งเหล่านี้ (ใครเรียกใคร ใครทำอะไรตามใคร)
สิ่งนี้เปลี่ยนทั้งสองด้านของลูป ในด้านอินพุต เอเจนต์จะประกอบชุดบริบทที่บางเบาโดย การปรึกษากราฟ—มุมมองทางสถาปัตยกรรมของโปรเจกต์และโหนดที่เกี่ยวข้องกับงาน—แทนที่จะทิ้งไฟล์ลงในพรอมต์ ในด้านเอาต์พุต มันเปลี่ยน การตรวจสอบ: เมื่อเอเจนต์แก้ไขฟังก์ชัน กราฟจะแสดงรายการจุดเรียกที่ได้รับผลกระทบอย่างแม่นยำ และเอเจนต์ผู้ตรวจสอบ—ซึ่งมีบริบทที่สะอาด ปราศจากอคติของผู้เขียนโค้ด—จะตรวจสอบแต่ละจุดเหล่านั้น นอกเหนือจากการรันเทส lint และ build "คุณเปลี่ยนลายเซ็นของ processOrder; มีเจ็ดตำแหน่งที่เรียกใช้มัน" เป็นการตรวจสอบประเภทที่ grep ไม่สามารถให้ได้
ความจำ: ลูปที่เรียนรู้
ชิ้นส่วนที่ปิดระบบ เมื่อสิ้นสุดแต่ละรอบการทำงานที่ได้รับการตรวจสอบแล้ว เอเจนต์จะบันทึก การตัดสินใจทางวิศวกรรม: สิ่งที่ตัดสินใจ เหตุผล ทางเลือกที่พิจารณา สิ่งที่ล้มเหลว และการตัดสินใจแต่ละอย่างจะ เชื่อมโยงกับโหนดโค้ด ที่มันอธิบายไว้ภายในกราฟนั้นเอง
ในรอบถัดไป เฟสการรวบรวมบริบทจะดึงการตัดสินใจเหล่านี้กลับมา—รวมถึงแนวทางที่ล้มเหลวแล้ว เพื่อไม่ให้ทำซ้ำอีก ลูปหยุดเป็นเพียงผู้ดำเนินการที่ทำงานซ้ำๆ และกลายเป็นระบบที่ สะสมความรู้เกี่ยวกับฐานโค้ด นอกจากนี้ยังเป็นตัวกระจายต้นทุนที่ดีที่สุดที่มีอยู่: ความจำราคาถูกแทนที่การค้นพบใหม่ที่แพง
ลูปที่สมบูรณ์แล้วคือ: รวบรวมบริบท (กราฟ + ความจำ + RAG), วางแผนด้วยโมเดลที่เหมาะสมกับขนาดของปัญหา, ดำเนินการกับเอเจนต์ย่อย, ตรวจสอบด้วยผู้ตรวจสอบที่มีบริบทสะอาดและการรับรู้กราฟ, เรียนรู้โดยการบันทึกการตัดสินใจ—และทำซ้ำ โดยมีเพดานต้นทุน มันคือลูปเอเจนต์แบบมาตรฐาน โดยแต่ละเฟสทั่วไปถูกแทนที่ด้วยความสามารถของมันเอง
ทำไมลูกค้ารายแรกถึงเป็นตัวเราเอง
กลยุทธ์ผลิตภัณฑ์นั้นจงใจขัดกับสัญชาตญาณ: ก่อนที่จะขายให้ลูกค้ารายใด Velua Code จะทำงานภายในที่ SIGE Cloud การกินอาหารของตัวเองจริงๆ—ERP ในระบบ production ที่มีทีมงานจริงใช้เอเจนต์ทำงานบนโค้ดจริง ทุกวัน
การใช้งานภายในนี้เองที่สร้าง 13 พันล้านโทเค็น และนี่คือสิ่งที่กำลังหล่อหลอมผลิตภัณฑ์ เอเจนต์อัตโนมัติในระบบ production เผยให้เห็นปัญหาที่ไม่มี benchmark ใดเผยให้เห็น: สิทธิ์, ต้นทุนสะสม, งานที่ชะงัก, บริบทที่เสื่อมสภาพ ผมอยากให้มันเติบโตเต็มที่ในที่ที่ความเจ็บปวดเป็นของเราเอง
สิ่งที่จะเกิดขึ้นต่อไป: ความจำแบบรวมสำหรับบริษัท
ปัจจุบัน ความจำในการตัดสินใจอยู่ต่อโปรเจกต์ ขั้นตอนต่อไปคือสิ่งที่ทำให้ผมตื่นเต้นที่สุด: ยกระดับมันให้เป็น เลเยอร์ความจำทางวิศวกรรมแบบรวมสำหรับบริษัท
ลองนึกภาพการตัดสินใจที่บันทึกโดยเอเจนต์ของทีม A—"เราย้ายไปใช้ X เพราะ Y; เราหลีกเลี่ยง Z เพราะมันพัง W"—ที่สามารถดึงมาใช้โดยเอเจนต์ของทีม B และโดยนักพัฒนามนุษย์ที่ใช้งานเอเจนต์เหล่านี้ พร้อมการควบคุมการเข้าถึง ที่มา และการตรวจสอบ คำถาม "ทำไมโค้ดนี้ถึงเป็นแบบนี้?" ตอบได้ด้วยการตัดสินใจดั้งเดิม ซึ่งเชื่อมโยงกับโค้ด สำหรับใครก็ตามหรือเอเจนต์ใดๆ ในองค์กร การเริ่มต้นงานที่เร็วขึ้น ความสอดคล้องระหว่างทีม และความรู้ทางวิศวกรรมของบริษัทที่ไม่ได้อาศัยอยู่ในหัวของคนอีกต่อไป
เมื่อให้บริการผ่าน gateway ความจำนี้จะกลายเป็นโครงสร้างพื้นฐาน: เอเจนต์ใดๆ ในบริษัท ในเครื่องมือใดๆ จะสืบทอดการเรียนรู้ที่สะสมไว้
เอเจนต์อัตโนมัติจะเป็นสินค้าทั่วไป ความรู้ที่พวกมันสะสมเกี่ยวกับ
ระบบของคุณ
จะไม่ใช่
นั่นคือสิ่งที่เดิมพัน
หากคุณกำลังสร้างด้วยเอเจนต์ในระบบ production—หรือปวดหัวกับต้นทุนบริบท—DM ของผมเปิดอยู่





