GEODE
Autonomous Agent Harness
จากการสังเกตสู่การกระทำถัดไป
ฮาร์เนสเอเจนต์อัตโนมัติที่รันบนเครื่อง ซึ่งรับงานวิจัย งานไฟล์ และงานตามกำหนดเวลาได้ โมเดลเลือกการกระทำถัดไป ส่วนรันไทม์ตรวจสิทธิ์การใช้เครื่องมือและตัดสินว่างานเสร็จเมื่อใด
Decision Offloading w. Jev
การตัดสินใจระหว่างทางข้อใดที่เอเจนต์ทำกลางงาน ซึ่งมอบให้ Jev โมเดลที่ทำหน้าที่ตัดสินเท่านั้นได้ งานวิจัยนี้ตรวจว่าคุณภาพงานที่ตรวจยืนยันอย่างอิสระยังคงอยู่หรือไม่เมื่อมอบไปแล้ว โดยนับรวมการเตรียม การตัดสินซ้ำ การซ่อม และการส่งมอบสุดท้าย ผลการทดลองนำร่องช่วงแรกอธิบายไม่ได้ด้วยการเปลี่ยนการเรียกตัดสินเพียงอย่างเดียว จึงแยกสัญญาอินพุต สัญญาการตัดสินใจ นโยบายความน่าจะเป็น และการใช้ผลของเอเจนต์ผู้รัน ออกเป็นการทดลองของแต่ละเรื่อง
รันไทม์ · คำตัดสินสุดท้าย
เมื่อเลือก Jev การตรวจยืนยันสุดท้ายเรียก Jev หนึ่งครั้งด้วยคำถาม Choice หนึ่งข้อ และผ่านได้เฉพาะคำตัดสิน supported ที่ผ่านการรับเข้า
judgment_engine · llm | jev
core/config/judgment.pyรัน · ตัดสิน: เลือกเส้นทางคำตัดสินสุดท้าย · คำถาม Choice หนึ่งข้อcore/agent/verify.pyเส้นทาง Jev ใช้เฉพาะเมื่อตั้ง judgment_engine เป็น jev (ค่าเริ่มต้น llm) provider auto เลือก TypeSafe ก่อน แล้วจึง OpenRouter ตามที่มีคีย์ หากไม่มีคีย์ เส้นทาง LLM judge ยังคงอยู่ นี่ไม่ใช่ fallback ที่ลองคำขอที่ล้มเหลวใหม่ที่อื่น
คำตัดสินสุดท้าย · คำถาม Choice หนึ่งข้อ
core/agent/verify.pyข้อมูล: คำขอ · แคนดิเดต · การสังเกตSystemOne · เรียกครั้งเดียว · ไม่มี fallbackadapters/typesafe.pyคำขอต้นฉบับและแคนดิเดตถูกปิดบังข้อมูลและจำกัดความยาว แล้วส่งพร้อมการสังเกตจากเครื่องมือเป็นคำถาม Choice หนึ่งข้อ (supported, contradicted, insufficient_evidence) การเรียกตัดสินไม่ได้รับเครื่องมือ (allow_tools=False) การตัดสินที่ต้องใช้ภาพจะไม่ถูกส่งไปยัง Jev และกลายเป็น verification_error
SystemOne · เรียกครั้งเดียว · ไม่มี fallback
adapters/typesafe.pyข้อมูล: SystemOne หนึ่งครั้งTypeSafe SystemOneเรียกหนึ่งครั้ง ตรงไปยัง TypeSafe หรือผ่าน OpenRouter โดยไม่ข้ามไปยังผู้ให้บริการอื่น Jev ไม่เคยถูกใช้เป็นโมเดลสร้างข้อความหลัก
การรับเข้า · ค่าคลาดเคลื่อนผลรวม 1e-5
adapters/typesafe.pyข้อมูล: Choice ที่ผ่านการรับเข้าผ่านเฉพาะ supported · ข้อความเท่านั้นcore/agent/verify.pyคำตอบถูกใช้หลังผ่านการรับเข้าด้านชนิด ช่วงค่า และผลรวมความน่าจะเป็น (ค่าคลาดเคลื่อน 1e-5) เท่านั้น ผ่านได้เฉพาะ supported ส่วน contradicted และ insufficient_evidence กลายเป็นสัญญาณให้ลองใหม่พร้อมการตรวจครั้งถัดไปที่กำหนดไว้ คำตอบที่ไม่ใช่ end_turn หรือไม่ผ่านการรับเข้าจะกลายเป็น verification_error ซึ่งไม่ใช่สัญญาณให้ลองใหม่ (should_retry=False) คะแนนเป็นการฉายแบบทวิภาค ไม่ใช่ความน่าจะเป็นที่ปรับเทียบแล้ว
ผ่านเฉพาะ supported · ข้อความเท่านั้น
core/agent/verify.pyข้อมูล: passed · reflectionนโยบาย PostVerify · Stoploop/_lifecycle.pyคำตัดสินไปสู่นโยบาย PostVerify และ Stop ของบทการตัดสินว่าเสร็จ คำตัดสินเป็นอินพุตของนโยบายนั้น ไม่ใช่อำนาจ เมื่อรอรีวิว แคนดิเดตจะอยู่เป็น pending_text เท่านั้น และคำตอบสุดท้ายว่างเปล่า จึงไม่มีสิ่งใดถูกส่งมอบ
นโยบาย PostVerify · Stop
loop/_lifecycle.pyบันทึก · สังเกต: แถวคำตัดสินtimeline · แถวการตัดสินใน ledgermemory · observabilityการตัดสินถูกบันทึกใน timeline และ evidence ledger: เป็นบันทึกของรันไทม์ แยกจากอาร์ติแฟกต์ของงานวิจัย
รันไทม์ · reflection
ตัวเลือกเดียวกันขับการจำแนกหลักฐานของ reflection ส่วนประโยคการตรวจครั้งถัดไปกำหนดโดยโค้ด
judgment_engine · llm | jev
core/config/judgment.pyรัน · ตัดสิน: ตัวเลือกเดียวกันreflection · การจำแนกหลักฐานloop/_reflection.pyตัวเลือกเดียวกันใช้กับ reflection ด้วย
reflection · การจำแนกหลักฐาน
loop/_reflection.pyข้อมูล: จำแนกหลักฐานSystemOne · เรียกครั้งเดียว · ไม่มี fallbackadapters/typesafe.pyreflection ใช้ Jev จำแนกหลักฐานที่จำกัดขอบเขตแล้ว และต่อท้ายด้วยการตรวจครั้งถัดไปที่โค้ดกำหนด ไม่ได้เปลี่ยนสมมติฐานความเชื่อหรือความมั่นใจในตนเอง
SystemOne · เรียกครั้งเดียว · ไม่มี fallback
adapters/typesafe.pyข้อมูล: SystemOne หนึ่งครั้งTypeSafe SystemOneเรียกหนึ่งครั้ง ตรงไปยัง TypeSafe หรือผ่าน OpenRouter โดยไม่ข้ามไปยังผู้ให้บริการอื่น Jev ไม่เคยถูกใช้เป็นโมเดลสร้างข้อความหลัก
การรับเข้า · ค่าคลาดเคลื่อนผลรวม 1e-5
adapters/typesafe.pyข้อมูล: การจำแนกreflection · การจำแนกหลักฐานloop/_reflection.pyเฉพาะการจำแนกที่ผ่านการรับเข้าเท่านั้นที่อัปเดตสถานะ reflection หากล้มเหลว รอบถัดไปจะลองใหม่จากสถานะเดิมก่อนหน้า
งานวิจัย · แผงตายตัว U3
โดยไม่มี actor การตัดสินของ Jev และ Astra บนสถานะและคำถามเดียวกันถูกเปรียบเทียบเป็นคู่
Astra · Jev · คำถามเดียวกัน
U3 · แผงสถานะตายตัวข้อมูล: การตัดสินของ JevTypeSafe SystemOneU3 (คอมมิตการทดลองต้นฉบับ 2f2b494): 120 สถานะตายตัว · 27 กลุ่มแหล่ง · การเรียก 240 ครั้ง แต่ละสถานะและคำถามถูกส่งไปยัง Jev และ Astra เป็นคู่เดียวกัน ไม่มี actor เครื่องมือ หรือ Harbor
Astra · Jev · คำถามเดียวกัน
U3 · แผงสถานะตายตัวข้อมูล: การตัดสินของ Astraผู้ตัดสิน Astra · โมเดล actorถูกต้องบนตัวอย่างเดียวกัน: Astra 90/120, Jev 84/120 ค่ามัธยฐานต่อการเรียก 10.446 s เทียบกับ 0.253 s นี่คือเวลาแฝงของการเรียกตัดสินเท่านั้น ไม่ใช่เวลางานหรือการประหยัดต้นทุน
U3 · แผงสถานะตายตัวข้อมูล: ผลของแผง · รายงานรายงานวิจัย Jev
ผลความแม่นยำและเวลาแฝงของ U3 ปรากฏในรายงานทางเทคนิคสาธารณะ ที่นี่ไม่ได้อ้างว่าแผงนี้เป็นส่วนหนึ่งของชุดเผยแพร่สาธารณะ E2E หรือไม่
งานวิจัย · การรัน E/I
โดยมี Astra เป็น actor เปลี่ยนเฉพาะเส้นทางการตัดสิน และ rule oracle อิสระตรวจผลลัพธ์กับการส่งมอบแยกกัน
Astra actor · เครื่องมือ · การซ่อม
E/I · Harbor 0.22ข้อมูล: สร้าง · เครื่องมือ · ซ่อมผู้ตัดสิน Astra · โมเดล actorใน E/I บน Harbor 0.22 actor Astra ดูแลการสร้าง การเรียกเครื่องมือ และการซ่อม เปลี่ยนเฉพาะเส้นทางการตัดสิน
เส้นทางผู้ตัดสิน · Astra · Jev · Jev-first
E/I · Harbor 0.22ข้อมูล: เส้นทางการตัดสินความเสร็จTypeSafe SystemOneE7 (คอมมิตการทดลองต้นฉบับ 1f65534): งานสังเคราะห์ที่เขียนเอง 12 งาน × 3 การตั้งค่า × 2 การรัน = 72 การรัน ได้ 24/24 ต่อการตั้งค่า การตั้งค่า Jev-first มี fallback จริง 0/24 ผลของมันจึงไม่ได้ถูกวัด
E/I · Harbor 0.22บันทึก · สังเกต: การตรวจอิสระความถูกต้อง · การส่งมอบ แยกกัน
rule oraclerule oracle อิสระตรวจผลลัพธ์สุดท้าย และนับการส่งมอบสุดท้ายจริงแยกกัน ใน 11 คู่ที่วิเคราะห์ภายหลังของ U8n ที่หยุดกลางคัน ทุกแคนดิเดตผ่าน oracle แต่การส่งมอบคือ Astra 11/11 และ Jev Noul 0/11
E/I · Harbor 0.22ข้อมูล: ความล้มเหลว · สายการซ่อมE2E-DATA · แฮชต้นทาง · สาธารณะ
jev-v3-20260927ชุดเผยแพร่สาธารณะ E2E เก็บสายการเตรียม ความล้มเหลว และการซ่อม โดยแยกแฮชต้นทางกับแฮชฉบับสาธารณะ ฉบับสาธารณะที่ปิดบังข้อมูลไม่ได้ใช้แทนการตรวจยืนยันต้นทางที่ไม่ถูกแก้ไข
REPRODUCE · model-free
jev-v3-20260927ข้อมูล: การคำนวณใหม่แบบไม่ใช้โมเดลรายงานวิจัย Jevการคำนวณตัวเลขใหม่จากคำตอบที่เก็บไว้กับการรันใหม่เป็นคนละการดำเนินการ รายงานนี้เป็นรายงานทางเทคนิคสาธารณะ ไม่ใช่บทความที่ผ่านการพิจารณาโดยผู้ทรงคุณวุฒิ
ทุกการเชื่อมต่อมีน้ำหนักเท่ากัน เลือกโฟลว์เพื่อไฮไลต์เฉพาะเส้นทางของโฟลว์นั้นพร้อมขั้นตอนที่มีหมายเลข
- เส้นทึบ · ทิศทางที่คำขอ แคนดิเดต และผลลัพธ์ไหลไป
- เส้นประ · รัน ตัดสิน อนุญาต ตั้งค่า
- เส้นยาวสลับจุด · บันทึกและการสังเกต แยกจากคำตัดสิน
- เส้นดำหนา · โฟลว์ที่เลือก ตัวเลขบอกลำดับ
- กล่อง · ขอบเขตของโค้ดหรือบันทึก พร้อมพาธในส่วนหัว
- ชิปด้านใน · องค์ประกอบภายในขอบเขตนั้น
- กล่องเส้นประ · อยู่นอกขอบเขตนั้น
- ลูป · ฮาร์เนสการรัน
- การเลือกเส้นทาง · คำตัดสิน · oracle
- บันทึก · ชุดเผยแพร่สาธารณะ
- การส่ง · แผงการตัดสิน
ส่วนบนและส่วนล่างเป็นระบบที่ต่างกัน การตั้งค่าและผลของงานวิจัยไม่ได้เปิดใช้ทั้งหมดในเส้นทางรันไทม์ปัจจุบัน สิ่งเดียวที่เชื่อมกันคือทั้งคู่เรียกโมเดล Jev ตัวเดียวกัน (jev-1.13.0)
- การรับเข้าของรันไทม์
- รันไทม์ตรึงค่าคลาดเคลื่อนผลรวมความน่าจะเป็นไว้เข้มงวดที่ 1e-5 ผู้เรียกฝั่งการประเมินส่งค่าคลาดเคลื่อนที่บันทึกไว้ของตนเอง แทนการผ่อนปรน parser ของรันไทม์
- ขอบเขตของงานวิจัย
- U3 วัดเฉพาะการเรียกตัดสิน E/I รวม actor และการซ่อม ตัวหารของทั้งสองไม่เคยถูกปะปนกัน และ 11 คู่ของ U8n เป็นการวิเคราะห์ภายหลังของการศึกษาที่หยุดกลางคัน
สัญญาการตัดสินใจสามแบบ
Choice
- คืนค่า
- ความน่าจะเป็นต่อหมวดหมู่หรือตัวเลือก
- ตัดสิน
- ความเสร็จ เจตนาและเป้าหมายของคำขอ
Noul
- คืนค่า
- P(true) สำหรับแต่ละเงื่อนไข
- ตัดสิน
- ความขัดแย้ง หลักฐานไม่เพียงพอ
Score
- คืนค่า
- ค่าคาดหมายและการแจกแจงบนสเกลลำดับที่ตายตัว
- ตัดสิน
- อันดับของแคนดิเดตที่สร้างขึ้น
ค่าคาดหมายระบุตำแหน่งของแคนดิเดตบนสเกล ไม่ได้ใช้เป็นความมั่นใจ
การประเมินและการเชื่อมต่อ
แต่ละสัญญาถูกประเมินบนแผงอินพุตตายตัวของตัวเอง และบางสัญญาถูกเชื่อมเข้ากับเส้นทางการรันของฮาร์เนสการทดลอง เพื่อดูว่าเอเจนต์ผู้รันใช้ผลการตัดสินอย่างไร ในแผนที่ด้านบน ส่วนงานวิจัยแสดงการรันเหล่านั้น ส่วนรันไทม์คือเส้นทางแบบเลือกเปิดใน GEODE ปัจจุบัน
ข้อสังเกตที่เปลี่ยนการออกแบบ
- I5 → I6 · สัญญาอินพุต
- การไล่หาความล้มเหลวในการส่งมอบที่เกิดร่วมกันพบว่าอินพุตการตัดสินขาดสัญญาของงาน และอธิบายการสังเกตจากเครื่องมือในคำขอเดียวกันราวกับเป็นบริบทในอดีต
- I6 ส่งมอบได้ 6/6 ในการรันแยกด้วยโค้ดที่แก้ไขแล้วและบัญชีใหม่
- U3 · สถานะ 120 คู่ชุดเดียวกัน
- ค่ามัธยฐานต่อการเรียก Astra 10.446 s · Jev 0.253 s ถูกต้องบนตัวอย่างเดียวกัน 90/120 · 84/120
- ชั่งความเร็วและความแม่นยำร่วมกันสำหรับแต่ละการตัดสินใจ เพื่อกำหนดขอบเขตการมอบหมาย
- U2 · ความน่าจะเป็น
- ความน่าจะเป็นของ Jev ปรับเทียบขนาดได้ดีกว่า แต่ Astra จัดอันดับการตัดสินที่ผิดของตนขึ้นมาก่อนได้แม่นยำกว่า
- การปรับเทียบและการคัดแยกข้อผิดพลาดวัดแยกกัน และเกณฑ์ถูกตรึงบนส่วน selection
- U6a · เจตนาและเป้าหมาย
- บน 40 family ที่ผู้ออกแบบเขียน Jev 216/220 · Astra 220/220 ผ่านมาร์จิน −5 pp ที่ลงทะเบียนล่วงหน้า
- การจำแนกเจตนาและเป้าหมายแบบตายตัวถูกจำกัดให้เป็นแคนดิเดตการนำไปใช้ถัดไป
- U8n · การส่งมอบ
- 11 คู่ที่วิเคราะห์ภายหลังจากการรันที่หยุดกลางคัน: แคนดิเดตที่ซ่อมแล้วผ่าน oracle ทั้งสอง arm การส่งมอบ Astra 11/11 · Jev Noul 0/11
- การตัดสินว่าหลักฐานไม่เพียงพอขัดขวางการส่งมอบที่ถูกต้อง การตั้งค่า Noul ปัจจุบันยังไม่มีเหตุผลพอที่จะเป็นผู้ตัดสินการส่งมอบเพียงผู้เดียว