GEODE
Autonomous Agent Harness
จากการสังเกตสู่การกระทำถัดไป
ฮาร์เนสเอเจนต์อัตโนมัติที่รันบนเครื่อง ซึ่งรับงานวิจัย งานไฟล์ และงานตามกำหนดเวลาได้ โมเดลเลือกการกระทำถัดไป ส่วนรันไทม์ตรวจสิทธิ์การใช้เครื่องมือและตัดสินว่างานเสร็จเมื่อใด
เปลี่ยนนโยบายทีละหนึ่ง โดยตรึงการวัดไว้
ลูปแยกที่รันนอกฮาร์เนส จาก baseline จะใช้การเปลี่ยนนโยบายแบบมีชนิดหนึ่งรายการ และการออดิต Petri กับเกตชุดเดิมจะตัดสินระหว่าง KEEP กับการคืนค่า
การเปลี่ยนหนึ่งรายการ → การออดิต
เมื่อตรึงสัญญาการรันแล้ว นโยบายที่อนุญาตหนึ่งรายการถูกเปลี่ยน และ GEODE ถูกออดิตด้วยเครื่องมือวัดชุดเดิม นี่ไม่ใช่ผลิตภัณฑ์ที่กำลังทำงานเขียนตัวเองใหม่
การอนุมัติของผู้ดูแลระบบรัน · ตัดสิน: การอนุมัติสัญญาการรัน · โมเดล · งบ
program.mdการรันเริ่มได้หลังจากอนุมัติการเรียกจริงและงบที่ตรึงไว้เท่านั้น หากไม่มีการอนุมัติ จะเตรียมเฉพาะสัญญาและตรวจแบบออฟไลน์
สัญญาการรัน · โมเดล · งบ
program.mdรัน · ตัดสิน: สัญญาการรันลูปงบคงที่train.pyเวอร์ชันของซีดและรูบริก โมเดลตามบทบาทและแหล่งข้อมูลรับรอง การตั้งค่าการวัด งบรอบ เวลา และค่าใช้จ่าย นโยบายการเลื่อนขั้น และเงื่อนไขการหยุด ถูกตรึงไว้ก่อนการรัน
ลูปงบคงที่
train.pyรัน · ตัดสิน: ขอหนึ่งแคนดิเดตmutator · หนึ่งแคนดิเดตloop/mutateสมมติฐานหนึ่งข้อที่มีหลักฐานรองรับเปลี่ยนพื้นผิวนโยบายที่อนุญาตหนึ่งแห่ง
7 พื้นผิว · ไม่รับ hyperparam
loop/mutateข้อมูล: การเปลี่ยนนโยบาย · mutation IDนโยบายที่อิงไฟล์state/policiesเปลี่ยนได้เพียงเจ็ดพื้นผิว: พรอมต์ wrapper นโยบายเครื่องมือ คำแนะนำการแตกงาน reflection เมทาดาทาของแคตตาล็อก skill สัญญาเอเจนต์ (role, system_prompt, tools) และคำอธิบายกับคำใบ้ของเครื่องมือ การเปลี่ยน hyperparameter ถูกปฏิเสธทั้งตอนพาร์สและตอนนำไปใช้ การนำนโยบายไปใช้ การวัดซ้ำ และคอมมิตที่ไม่บังคับ เป็นขั้นตอนที่แยกกัน การนำไปใช้จึงไม่ใช่การออดิตในตัวเอง
คลังซีด · รูบริกตรึงไว้
prepare.pyรัน · ตัดสิน: ซีด · รูบริกตรึงไว้subprocess การออดิต · timeout คงที่measure.pyprepare.py เป็นแหล่งอ้างอิงตายตัวของคลังซีดและรูบริก แคนดิเดตไม่ได้เปลี่ยนมัน การเปลี่ยนโมดูลการวัดคือการเปลี่ยนการวัด ไม่ใช่ระบบที่ถูกทดสอบ
นโยบายที่อิงไฟล์
state/policiesข้อมูล: นโยบายที่เลือกOVERRIDE รายนโยบาย · STRICTmeasure.pymeasure.py อ่านไฟล์นโยบายที่เลือกอยู่ในขณะนั้นและส่งเข้าสู่สภาพแวดล้อมการออดิต
OVERRIDE รายนโยบาย · STRICT
measure.pyรัน · ตัดสิน: พาธ override รายนโยบายcore · ตัวโหลดนโยบายmeasure.py ส่งพาธ wrapper และพาธ override กับ strict รายนโยบายไปยัง subprocess การออดิต และตัวโหลดนโยบายที่ตรงกันของรันไทม์จะอ่านแต่ละรายการ wrapper (GEODE_WRAPPER_OVERRIDE → system_prompt) เป็นแขนงหนึ่ง คีย์สภาพแวดล้อมที่เพิ่มขึ้นไม่ได้ขยายพื้นผิวที่เปลี่ยนได้เจ็ดแห่ง ไฟล์ที่ถูกแก้เพียงอย่างเดียวไม่ได้พิสูจน์ว่าแคนดิเดตไปถึง target การวินิจฉัยในหลักฐานการออดิตเป็นตัวยืนยัน
subprocess การออดิต · timeout คงที่
measure.pyรัน · ตัดสิน: audit subprocessการออดิต Petriการออดิตรันด้วย timeout และงบที่ตรึงไว้ และไม่เปลี่ยนระหว่างการเปรียบเทียบ เอาต์พุตที่หายไปคือช่องว่างในการวินิจฉัย ไม่ใช่คะแนนศูนย์
การออดิต Petriข้อมูล: บทสนทนาการออดิตcore · ตัวโหลดนโยบาย
auditor สนทนากับ GEODE ผ่านซีนาริโอของซีด และ judge ให้คะแนนบันทึกบทสนทนา
คำตัดสิน → คงไว้ · คืนค่า
เมื่อเทียบกับ baseline ที่ใช้สัญญาเดียวกัน การถดถอยวิกฤตและกฎการเลื่อนขั้นจะตัดสิน KEEP การเปลี่ยนที่ถูกปฏิเสธจะถูกคืนเป็นค่าเดิมที่บันทึกไว้
การออดิต Petriข้อมูล: คะแนนรายมิติการถดถอยวิกฤต · การหักคะแนน
fitness.pyคะแนนมาพร้อมมิติที่ขาดและจำนวนตัวอย่าง มิติที่ไม่ได้วัดไม่ถูกตีความเป็นค่าสังเกต
baseline · provenance
ledger.pyข้อมูล: baseline · provenanceการถดถอยวิกฤต · การหักคะแนนfitness.pyการเปรียบเทียบใช้เฉพาะ baseline ที่มีสัญญาและ epoch ที่บันทึกไว้ตรงกัน การสร้าง Git branch ใหม่ไม่ได้แยกสถานะ baseline
การถดถอยวิกฤต · การหักคะแนน
fitness.pyข้อมูล: fitness · เหตุผลการถดถอย_should_promote · KEEPgate.pyตรวจการถดถอยของมิติวิกฤตและการหักคะแนนเสริมก่อน จากนั้นจึงใช้การทดสอบ margin หรือมิติเป้าหมาย สเกลาร์ที่เป็นบวกเพียงค่าเดียวไม่เคยทำให้เลื่อนขั้น
_should_promote · KEEP
gate.pyข้อมูล: KEEP · baseline ถัดไปbaseline · provenanceledger.pyแคนดิเดตที่คงไว้จะเป็น baseline ถัดไป แคนดิเดตที่คงไว้ในเครื่องไม่ใช่การ merge เข้ารีโพซิทอรีหรือการรีลีส
_reject_and_revert
gate.pyรัน · ตัดสิน: REJECT · คืนค่าเดิมนโยบายที่อิงไฟล์state/policiesสำหรับแคนดิเดตที่ runner สร้าง ส่วนนโยบายที่บันทึกไว้ภายใต้ mutation ID จะถูกคืนค่า และการคืนค่าที่ล้มเหลวจะถูกทำเครื่องหมาย การเปลี่ยนแปลงด้วยมือไม่ถูกคืนค่าอัตโนมัติ และการคืนค่าที่ไม่แน่นอนจะหยุดแคนดิเดตถัดไป
_should_promote · KEEP
gate.pyบันทึก · สังเกต: ผลลัพธ์ · แถวคำตัดสินผลลัพธ์ · แถว mutationledger.pyการวัด คำตัดสิน และที่มา ถูกเขียนเป็นแถวผลลัพธ์ครั้งเดียว แถวในอดีตไม่ถูกเขียนทับ
กลุ่มควบคุม · การวัดซ้ำ
การรัน June 2026: never arm ที่ไม่เปลี่ยนแปลงและ baseline K=5 วัดสัญญาณรบกวนของการออดิตแยกต่างหาก และ KEEP จากการออดิตครั้งเดียวถูกตรวจซ้ำด้วย replicate
run-2606-broken-tool-useรัน · ตัดสิน: สาม armลูปงบคงที่
train.pyการรัน June 3–4, 2026 แยกการแกว่งออกจากผลของการเปลี่ยนแปลงด้วยสาม arm: never (ไม่เปลี่ยน), random (รับแบบสุ่ม) และ gate (รับตามคำตัดสิน) target คือ GPT-5.5 ส่วน auditor และ judge คือ Claude Opus 4.8
baseline gen-0 · ค่าเฉลี่ยของการออดิต 5 ครั้ง
run-2606-broken-tool-useข้อมูล: baseline เฉลี่ย K=5baseline · provenanceledger.pybaseline gen-0 คือค่าเฉลี่ยของการออดิตห้าครั้ง (Petri broken_tool_use ยิ่งต่ำยิ่งดี เฉลี่ย 2.667)
never arm · กลุ่มควบคุมที่ไม่เปลี่ยนแปลง
run-2606-broken-tool-useรัน · ตัดสิน: วัดโดยไม่เปลี่ยนsubprocess การออดิต · timeout คงที่measure.pynever arm แกว่งไปที่ค่าเฉลี่ย 3.38 โดยไม่มีการเปลี่ยนนโยบายใดเลย (ออดิต 10 ครั้ง ยิ่งต่ำยิ่งดี) เป็นหลักฐานโดยตรงว่าสัญญาณรบกวนของการออดิตมากกว่าผลของการเปลี่ยนแปลง
--replicate K · วัดซ้ำ
train.pyรัน · ตัดสิน: --replicate Ksubprocess การออดิต · timeout คงที่measure.pyแคนดิเดตเดิมถูกวัดเพิ่มอีก K ครั้งภายใต้เงื่อนไขเดิม เพื่อคัดการออดิตครั้งเดียวที่โชคดีออก
replicate · วัด KEEP เดี่ยวซ้ำ
run-2606-broken-tool-useรัน · ตัดสิน: วัดซ้ำ → ย้อนกลับ_reject_and_revertgate.pyแคนดิเดตที่ได้ KEEP จากการออดิต gate ครั้งเดียว (1.6) วัดซ้ำได้ 3.0–3.8 ซึ่งแย่กว่า baseline จึงคืนค่า champion 2.667 การรันนี้สรุปว่าไม่มีการปรับปรุงที่ชัดเจน
ทุกการเชื่อมต่อมีน้ำหนักเท่ากัน เลือกโฟลว์เพื่อไฮไลต์เฉพาะเส้นทางของโฟลว์นั้นพร้อมขั้นตอนที่มีหมายเลข
- เส้นทึบ · ทิศทางที่คำขอ แคนดิเดต และผลลัพธ์ไหลไป
- เส้นประ · รัน ตัดสิน อนุญาต ตั้งค่า
- เส้นยาวสลับจุด · บันทึกและการสังเกต แยกจากคำตัดสิน
- เส้นดำหนา · โฟลว์ที่เลือก ตัวเลขบอกลำดับ
- กล่อง · ขอบเขตของโค้ดหรือบันทึก พร้อมพาธในส่วนหัว
- ชิปด้านใน · องค์ประกอบภายในขอบเขตนั้น
- กล่องเส้นประ · อยู่นอกขอบเขตนั้น
- ลูป · การรันวัด
- สัญญา · คำตัดสิน
- นโยบาย · บันทึก
- การเปลี่ยนแปลง · target ที่ถูกออดิต · บันทึกการรัน
ไดรเวอร์ SIL ของ GEODE ชื่อ autoresearch โครงสร้าง prepare/train/program และงบที่ตรึงไว้ได้แนวคิดมาจาก autoresearch ของ Karpathy ไม่มีการเปลี่ยนน้ำหนักของโมเดล และเครื่องมือวัดกับงบคงที่ระหว่างการเปรียบเทียบ
- สิ่งที่เปลี่ยนได้
- เจ็ดพื้นผิว: พรอมต์ wrapper นโยบายเครื่องมือ คำแนะนำการแตกงาน reflection เมทาดาทาของแคตตาล็อก skill สัญญาเอเจนต์ และคำอธิบายกับคำใบ้ของเครื่องมือ ตัวประเมิน งบ ซีด และรูบริก คงที่ระหว่างการเปรียบเทียบ
- ขอบเขตของบันทึกการรัน
- ค่าของ run-2606 คือค่าเฉลี่ย Petri broken_tool_use ของการรันนั้น (ยิ่งต่ำยิ่งดี) ไม่ใช่หลักฐานของการปรับปรุงสะสมของ SIL หรือการนำไปใช้ทั่วไป