GEODE
Autonomous Agent Harness
จากการสังเกตสู่การกระทำถัดไป
ฮาร์เนสเอเจนต์อัตโนมัติที่รันบนเครื่อง ซึ่งรับงานวิจัย งานไฟล์ และงานตามกำหนดเวลาได้ โมเดลเลือกการกระทำถัดไป ส่วนรันไทม์ตรวจสิทธิ์การใช้เครื่องมือและตัดสินว่างานเสร็จเมื่อใด
การรับแคนดิเดตและอำนาจการรีลีสเป็นการตัดสินที่แยกจากกัน
Crucible เป็นเคอร์เนลการทดลองที่แยกจากการค้นหานโยบาย คอมมิตแคนดิเดตถูกตรวจกับพื้นผิวที่อนุญาตและสัญญาที่ตรึงไว้ งานแบบจับคู่ถูกรวมผลใน checkout สำหรับการวัดที่แยกต่างหาก และผลคือ KEEP, REJECT หรือ INVALID
คำตัดสิน train
แคนดิเดตหนึ่งรายการภายในพื้นผิวที่อนุญาตถูกวัดภายใต้สัญญาที่ตรึงไว้ใน checkout ที่แยกออกมา และกฎที่ลงทะเบียนล่วงหน้าตัดสิน KEEP, REJECT หรือ INVALID
propose → preflight
search/supervisor.pyรัน · ตัดสิน: ขอแคนดิเดตsearch/producerssupervisor ของการค้นหาขอแคนดิเดตจาก producer แคนดิเดตของ r14 คือแคนดิเดตก่อนหน้า (r13) ที่ replay producer นำมาใช้ซ้ำ ไม่ใช่แคนดิเดตใหม่ที่ LLM สร้าง
search/producersข้อมูล: คอมมิตแคนดิเดตหนึ่งรายการpropose → preflight
search/supervisor.pyproducer คืนคอมมิตแคนดิเดตเดียวภายในพาธที่อนุญาต
propose → preflight
search/supervisor.pyรัน · ตัดสิน: พื้นผิวที่อนุญาต · ตรวจ diffพื้นผิวที่อนุญาต · diff ของแคนดิเดตcontract.pydiff ของแคนดิเดตต้องอยู่ในพื้นผิวที่สัญญาอนุญาต และ frozen evaluator ถูกตรวจยืนยัน ใน r14 และ r35 เป้าหมายที่อนุญาตคือไฟล์เดียว tau2_agent_policy.md ส่วน core และการพัฒนา Crucible ถูกตรึงเป็นพาธของ evaluator
evaluate → decide → record
search/supervisor.pyรัน · ตัดสิน: checkout ที่แยกออกมาแยกจาก producermeasurement checkoutแคนดิเดตถูกตรวจใน checkout สำหรับการวัดที่แยกจาก producer
แยกจาก producer
measurement checkoutรัน · ตัดสิน: รันภายใต้สัญญาที่ตรึงไว้การรัน tau2 · receiptassays/baseline และแคนดิเดตรันด้วยสัญญา ซีด และงานชุดเดียวกัน
การรัน tau2 · receipt
assays/ข้อมูล: บทสนทนา actor · userสภาพแวดล้อม tau2เอเจนต์ GEODE (actor) สนทนากับผู้ใช้จำลองที่ evaluator เป็นเจ้าของ ในสภาพแวดล้อมงาน tau2
การรัน tau2 · receipt
assays/ข้อมูล: การเรียกโมเดลโมเดล actor · userใน r14 และ r35 ทั้ง actor และผู้ใช้จำลองคือ gpt-5.4/high (สมาชิก)
verifier ของงาน
assays/ข้อมูล: paired evidencepaired · การรวมผลตาม task · familypromotion.pyผลของ verifier ของงานถูกเก็บเป็นคู่ baseline–แคนดิเดต
frozen evaluator · ลงทะเบียนล่วงหน้า
contract.pyรัน · ตัดสิน: การรวมผลที่ลงทะเบียนล่วงหน้าpaired · การรวมผลตาม task · familypromotion.pyผลแบบจับคู่ถูกรวมตาม task และ family ที่ลงทะเบียนล่วงหน้า โดยตรวจเงื่อนไขงบ ความครอบคลุม โครงสร้างพื้นฐาน และความปลอดภัยแยกกัน
KEEP · REJECT · INVALID
promotion.pyรัน · ตัดสิน: KEEP · ย้าย headsearch/* headrefs/crucibleเมื่อ KEEP head ถัดไปของ refs/crucible/search/* จะเป็นแคนดิเดต promotion_authority ของคำตัดสิน train คือ none
ปฏิเสธ · ไม่ถูกต้อง · ข้อมูลป้อนกลับ
REJECT และ INVALID คง head ไว้ และแคนดิเดตถัดไปได้รับเพียงรหัสความล้มเหลวและ ID งาน train ที่ตรึงไว้ INVALID ไม่ใช่คะแนนศูนย์
verifier ของงาน
assays/ข้อมูล: paired evidencepaired · การรวมผลตาม task · familypromotion.pyผลของ verifier ของงานถูกเก็บเป็นคู่ baseline–แคนดิเดต
frozen evaluator · ลงทะเบียนล่วงหน้า
contract.pyรัน · ตัดสิน: การรวมผลที่ลงทะเบียนล่วงหน้าpaired · การรวมผลตาม task · familypromotion.pyผลแบบจับคู่ถูกรวมตาม task และ family ที่ลงทะเบียนล่วงหน้า โดยตรวจเงื่อนไขงบ ความครอบคลุม โครงสร้างพื้นฐาน และความปลอดภัยแยกกัน
KEEP · REJECT · INVALID
promotion.pyข้อมูล: REJECT · INVALIDรหัสความล้มเหลว · ID งาน trainattempt/feedback.jsonเมื่อถูกปฏิเสธหรือไม่ถูกต้อง head เดิมยังคงอยู่ และแคนดิเดตกับบันทึกถูกเก็บไว้ ค่าเฉลี่ยของ INVALID คือ null ไม่ใช่ศูนย์
รหัสความล้มเหลว · ID งาน train
attempt/feedback.jsonข้อมูล: รหัสความล้มเหลว · ID งานsearch/producersข้อมูลป้อนกลับสู่แคนดิเดตถัดไปจำกัดเพียงรหัสความล้มเหลวและ ID งาน train ที่ตรึงไว้ ไม่มีการส่ง trajectory หรือคำตอบของ evaluator ต่อ
การมีสิทธิ์แบบ sealed · อำนาจแยกต่างหาก
train KEEP เพียงย้าย head ของการค้นหา การมีสิทธิ์แบบ sealed ไปถึงเพียง eligible ref การรีลีสและการดีพลอยผลิตภัณฑ์เป็นอำนาจแยกต่างหากนอก Crucible
evaluate → decide → record
search/supervisor.pyข้อมูล: record · ref receipttrain bundle · KEEP ที่คำนวณใหม่attestation/bundle.pytrain bundle จะใช้ได้ก็ต่อเมื่อสัญญา หลักฐานของ baseline และแคนดิเดต KEEP ที่คำนวณใหม่ สายที่มาของข้อเสนอ บันทึกของ supervisor และ receipt ของ ref ที่นำไปใช้ เชื่อมโยงกันทั้งหมด ไม่ใช่อีกชื่อหนึ่งของการปรับปรุง
train bundle · KEEP ที่คำนวณใหม่
attestation/bundle.pyรัน · ตัดสิน: train bundle เท่านั้น · ครั้งเดียวdisjoint test pack · ใช้ครั้งเดียวattestation/sealed.pyการประเมินแบบ sealed ใช้ test pack ที่ไม่ทับซ้อนกับ train เพียงครั้งเดียว โดยไม่มีการลองใหม่ด้านโครงสร้างพื้นฐาน
ELIGIBLE · release_authority none
attestation/sealed.pyรัน · ตัดสิน: eligible ref เท่านั้นeligible/*refs/crucibleแม้ได้ ELIGIBLE ก็เขียนเพียง refs/crucible/eligible/* และ release_authority ถูกตรึงเป็น none
บันทึกสาธารณะ · r14 · r35
r14 ได้ train KEEP แล้ว sealed REJECT ส่วน r35 (July 13, 2026) เป็น INVALID เพราะความครอบคลุมไม่ครบและโครงสร้างพื้นฐานปนเปื้อน (0 แถวคู่ ค่าเฉลี่ย null) โดย head ไม่เปลี่ยน
KEEP · REJECT · INVALID
promotion.pyข้อมูล: verdict.json สาธารณะgeode-eval-artifactsอาร์ติแฟกต์สาธารณะคือบันทึกที่ปรับให้เป็นมาตรฐานซึ่งตรึงไว้ที่ 23e3428 แฮชการตั้งค่า train ที่ลงทะเบียนล่วงหน้าของ r14 ต่างจากไบต์ของการตั้งค่าสาธารณะ ห่วงโซ่ต้นฉบับทั้งหมดจึงไม่ได้รับการรับรองซ้ำ
attestation/sealed.pyข้อมูล: sealed decision.jsonr14 · train KEEP → sealed REJECT
geode-eval-artifactsr14: KEEP บน telecom train 6 งาน × 1 ครั้ง (6 แถวคู่ ไม่มีอำนาจการเลื่อนขั้น) แล้วคำตัดสิน sealed ที่แยกต่างหากเป็น REJECT (ไม่มีอำนาจการรีลีส)
ทุกการเชื่อมต่อมีน้ำหนักเท่ากัน เลือกโฟลว์เพื่อไฮไลต์เฉพาะเส้นทางของโฟลว์นั้นพร้อมขั้นตอนที่มีหมายเลข
- เส้นทึบ · ทิศทางที่คำขอ แคนดิเดต และผลลัพธ์ไหลไป
- เส้นประ · รัน ตัดสิน อนุญาต ตั้งค่า
- เส้นดำหนา · โฟลว์ที่เลือก ตัวเลขบอกลำดับ
- กล่อง · ขอบเขตของโค้ดหรือบันทึก พร้อมพาธในส่วนหัว
- ชิปด้านใน · องค์ประกอบภายในขอบเขตนั้น
- กล่องเส้นประ · อยู่นอกขอบเขตนั้น
- supervisor ของการค้นหา
- สัญญา · คำตัดสิน · การรับรอง
- ref · บันทึก
- producer · การรัน
Crucible เป็นเคอร์เนลที่แยกจาก SIL การค้นหาทั้งสองไม่ใช่ไปป์ไลน์เดียวที่เลื่อนขั้นแคนดิเดตของกันและกัน กล่องการรีลีสผลิตภัณฑ์ไม่มีการเชื่อมต่อขาเข้า
- อำนาจสามประการ
- train KEEP ย้าย head ของการค้นหา sealed ELIGIBLE บันทึก eligible ref และการรีลีสผลิตภัณฑ์เป็นการตัดสินใจแยกต่างหากนอก Crucible คำตัดสินก่อนหน้าไม่เคยมอบอำนาจในขั้นถัดไป
- null ไม่ใช่ศูนย์
- r35 วางแผนไว้ 9 งาน × 3 ครั้ง (27 แถวต่อ arm) แต่มีคู่ที่เปรียบเทียบได้ 0 คู่ ค่าเฉลี่ยและการปรับปรุงจึงเป็น null ไม่ใช่งานที่ล้มเหลว 27 งาน หรืออัตราความสำเร็จ 0%