Geodi ตัวละครพิกเซลอย่างเป็นทางการของ GEODE
กลับไปที่ห้องจัดแสดง

GEODE

Autonomous Agent Harness

จากการสังเกตสู่การกระทำถัดไป

ฮาร์เนสเอเจนต์อัตโนมัติที่รันบนเครื่อง ซึ่งรับงานวิจัย งานไฟล์ และงานตามกำหนดเวลาได้ โมเดลเลือกการกระทำถัดไป ส่วนรันไทม์ตรวจสิทธิ์การใช้เครื่องมือและตัดสินว่างานเสร็จเมื่อใด

2026.02.21 — present

การออกแบบ การตัดสินใจ การตรวจยืนยัน: Author · การพัฒนา: Claude · รีวิว: Codex

  • CLIเผยแพร่แล้ว · PyPI
  • เซิร์ฟเวอร์ MCPพัฒนาแล้ว

เปลี่ยนนโยบายทีละหนึ่ง โดยตรึงการวัดไว้

ลูปแยกที่รันนอกฮาร์เนส จาก baseline จะใช้การเปลี่ยนนโยบายแบบมีชนิดหนึ่งรายการ และการออดิต Petri กับเกตชุดเดิมจะตัดสินระหว่าง KEEP กับการคืนค่า

แผนที่ SIL · วาดจากเส้นทาง evolve ที่คอมมิตที่ตรึงไว้ 9e2c041 และบันทึกการรัน June 2026
แผนที่การค้นหานโยบาย (SIL) ของ GEODEลูปค้นหานโยบายที่รันนอกรันไทม์ สัญญาการรันที่อนุมัติแล้วตรึงงบ ซีด รูบริก และโมเดล และ mutator เปลี่ยนนโยบายหนึ่งรายการจากพื้นผิวที่อนุญาตเจ็ดแห่ง measure.py ออดิต GEODE ผ่าน Petri ด้วยเครื่องมือวัดชุดเดิม fitness.py และ gate.py ตัดสิน KEEP หรือย้อนกลับด้วยกฎการถดถอยวิกฤตและการเลื่อนขั้น ledger.py เขียน baseline และแถวผลลัพธ์ การรัน June 2026 แยกสัญญาณรบกวนของการออดิตออกจากผลของการเปลี่ยนแปลงด้วย never arm ที่ไม่มีการเปลี่ยนแปลง baseline K=5 และการวัดซ้ำการอนุมัติของผู้ดูแลระบบการเรียกจริง · งบการออดิต Petriauditor · GEODE target · judgeprogram.mdสัญญาการรัน · โมเดล · งบกฎการหยุด · รันหลังอนุมัติtrain.pyลูปงบคงที่--replicate K · วัดซ้ำloop/mutatemutator · หนึ่งแคนดิเดต7 พื้นผิว · ไม่รับ hyperparamstate/policiesนโยบายที่อิงไฟล์prepare.pyคลังซีด · รูบริกตรึงไว้measure.pysubprocess การออดิต · timeout คงที่OVERRIDE รายนโยบาย · STRICTfitness.pyการถดถอยวิกฤต · การหักคะแนนledger.pybaseline · provenanceผลลัพธ์ · แถว mutationgate.py_should_promote · KEEP_reject_and_revertcore · ตัวโหลดนโยบายแขนงพรอมต์ · system_prompt.pyตัวโหลดนโยบาย 6 ตัว · tool, skill…run-2606-broken-tool-usebaseline gen-0 · ค่าเฉลี่ยของการออดิต 5 ครั้งnever arm · กลุ่มควบคุมที่ไม่เปลี่ยนแปลงrandom · gate armreplicate · วัด KEEP เดี่ยวซ้ำevolve/scaffold_searchลูปค้นหาภายนอก · นอกรันไทม์การเปลี่ยนแปลงแคนดิเดตหนึ่งรายการต่อการรันเครื่องมือวัดตรึงไว้ระหว่างการเปรียบเทียบrun-2606 · June 3–4, 2026broken_tool_useGEODE ที่ถูกออดิตเปลี่ยนได้เฉพาะนโยบายที่อนุญาต1 การอนุมัติ · การอนุมัติของผู้ดูแลระบบ → สัญญาการรัน · โมเดล · งบ12 สัญญาการรัน · สัญญาการรัน · โมเดล · งบ → ลูปงบคงที่23 ขอหนึ่งแคนดิเดต · ลูปงบคงที่ → mutator · หนึ่งแคนดิเดต34การเปลี่ยนนโยบาย · mutation ID5 ซีด · รูบริกตรึงไว้ · คลังซีด · รูบริกตรึงไว้ → subprocess การออดิต · timeout คงที่56นโยบายที่เลือก7พาธ override รายนโยบาย8audit subprocess9บทสนทนาการออดิต1คะแนนรายมิติ2 baseline · provenance · baseline · provenance → การถดถอยวิกฤต · การหักคะแนน23 fitness · เหตุผลการถดถอย · การถดถอยวิกฤต · การหักคะแนน → _should_promote · KEEP34KEEP · baseline ถัดไป5REJECT · คืนค่าเดิม6ผลลัพธ์ · แถวคำตัดสิน1สาม arm2baseline เฉลี่ย K=53วัดโดยไม่เปลี่ยน4--replicate K5วัดซ้ำ → ย้อนกลับ

การเปลี่ยนหนึ่งรายการ → การออดิต

เมื่อตรึงสัญญาการรันแล้ว นโยบายที่อนุญาตหนึ่งรายการถูกเปลี่ยน และ GEODE ถูกออดิตด้วยเครื่องมือวัดชุดเดิม นี่ไม่ใช่ผลิตภัณฑ์ที่กำลังทำงานเขียนตัวเองใหม่

  1. การอนุมัติของผู้ดูแลระบบรัน · ตัดสิน: การอนุมัติสัญญาการรัน · โมเดล · งบprogram.md

    การรันเริ่มได้หลังจากอนุมัติการเรียกจริงและงบที่ตรึงไว้เท่านั้น หากไม่มีการอนุมัติ จะเตรียมเฉพาะสัญญาและตรวจแบบออฟไลน์

  2. สัญญาการรัน · โมเดล · งบprogram.mdรัน · ตัดสิน: สัญญาการรันลูปงบคงที่train.py

    เวอร์ชันของซีดและรูบริก โมเดลตามบทบาทและแหล่งข้อมูลรับรอง การตั้งค่าการวัด งบรอบ เวลา และค่าใช้จ่าย นโยบายการเลื่อนขั้น และเงื่อนไขการหยุด ถูกตรึงไว้ก่อนการรัน

  3. ลูปงบคงที่train.pyรัน · ตัดสิน: ขอหนึ่งแคนดิเดตmutator · หนึ่งแคนดิเดตloop/mutate

    สมมติฐานหนึ่งข้อที่มีหลักฐานรองรับเปลี่ยนพื้นผิวนโยบายที่อนุญาตหนึ่งแห่ง

  4. 7 พื้นผิว · ไม่รับ hyperparamloop/mutateข้อมูล: การเปลี่ยนนโยบาย · mutation IDนโยบายที่อิงไฟล์state/policies

    เปลี่ยนได้เพียงเจ็ดพื้นผิว: พรอมต์ wrapper นโยบายเครื่องมือ คำแนะนำการแตกงาน reflection เมทาดาทาของแคตตาล็อก skill สัญญาเอเจนต์ (role, system_prompt, tools) และคำอธิบายกับคำใบ้ของเครื่องมือ การเปลี่ยน hyperparameter ถูกปฏิเสธทั้งตอนพาร์สและตอนนำไปใช้ การนำนโยบายไปใช้ การวัดซ้ำ และคอมมิตที่ไม่บังคับ เป็นขั้นตอนที่แยกกัน การนำไปใช้จึงไม่ใช่การออดิตในตัวเอง

  5. คลังซีด · รูบริกตรึงไว้prepare.pyรัน · ตัดสิน: ซีด · รูบริกตรึงไว้subprocess การออดิต · timeout คงที่measure.py

    prepare.py เป็นแหล่งอ้างอิงตายตัวของคลังซีดและรูบริก แคนดิเดตไม่ได้เปลี่ยนมัน การเปลี่ยนโมดูลการวัดคือการเปลี่ยนการวัด ไม่ใช่ระบบที่ถูกทดสอบ

  6. นโยบายที่อิงไฟล์state/policiesข้อมูล: นโยบายที่เลือกOVERRIDE รายนโยบาย · STRICTmeasure.py

    measure.py อ่านไฟล์นโยบายที่เลือกอยู่ในขณะนั้นและส่งเข้าสู่สภาพแวดล้อมการออดิต

  7. OVERRIDE รายนโยบาย · STRICTmeasure.pyรัน · ตัดสิน: พาธ override รายนโยบายcore · ตัวโหลดนโยบาย

    measure.py ส่งพาธ wrapper และพาธ override กับ strict รายนโยบายไปยัง subprocess การออดิต และตัวโหลดนโยบายที่ตรงกันของรันไทม์จะอ่านแต่ละรายการ wrapper (GEODE_WRAPPER_OVERRIDE → system_prompt) เป็นแขนงหนึ่ง คีย์สภาพแวดล้อมที่เพิ่มขึ้นไม่ได้ขยายพื้นผิวที่เปลี่ยนได้เจ็ดแห่ง ไฟล์ที่ถูกแก้เพียงอย่างเดียวไม่ได้พิสูจน์ว่าแคนดิเดตไปถึง target การวินิจฉัยในหลักฐานการออดิตเป็นตัวยืนยัน

  8. subprocess การออดิต · timeout คงที่measure.pyรัน · ตัดสิน: audit subprocessการออดิต Petri

    การออดิตรันด้วย timeout และงบที่ตรึงไว้ และไม่เปลี่ยนระหว่างการเปรียบเทียบ เอาต์พุตที่หายไปคือช่องว่างในการวินิจฉัย ไม่ใช่คะแนนศูนย์

  9. การออดิต Petriข้อมูล: บทสนทนาการออดิตcore · ตัวโหลดนโยบาย

    auditor สนทนากับ GEODE ผ่านซีนาริโอของซีด และ judge ให้คะแนนบันทึกบทสนทนา

คำตัดสิน → คงไว้ · คืนค่า

เมื่อเทียบกับ baseline ที่ใช้สัญญาเดียวกัน การถดถอยวิกฤตและกฎการเลื่อนขั้นจะตัดสิน KEEP การเปลี่ยนที่ถูกปฏิเสธจะถูกคืนเป็นค่าเดิมที่บันทึกไว้

  1. การออดิต Petriข้อมูล: คะแนนรายมิติการถดถอยวิกฤต · การหักคะแนนfitness.py

    คะแนนมาพร้อมมิติที่ขาดและจำนวนตัวอย่าง มิติที่ไม่ได้วัดไม่ถูกตีความเป็นค่าสังเกต

  2. baseline · provenanceledger.pyข้อมูล: baseline · provenanceการถดถอยวิกฤต · การหักคะแนนfitness.py

    การเปรียบเทียบใช้เฉพาะ baseline ที่มีสัญญาและ epoch ที่บันทึกไว้ตรงกัน การสร้าง Git branch ใหม่ไม่ได้แยกสถานะ baseline

  3. การถดถอยวิกฤต · การหักคะแนนfitness.pyข้อมูล: fitness · เหตุผลการถดถอย_should_promote · KEEPgate.py

    ตรวจการถดถอยของมิติวิกฤตและการหักคะแนนเสริมก่อน จากนั้นจึงใช้การทดสอบ margin หรือมิติเป้าหมาย สเกลาร์ที่เป็นบวกเพียงค่าเดียวไม่เคยทำให้เลื่อนขั้น

  4. _should_promote · KEEPgate.pyข้อมูล: KEEP · baseline ถัดไปbaseline · provenanceledger.py

    แคนดิเดตที่คงไว้จะเป็น baseline ถัดไป แคนดิเดตที่คงไว้ในเครื่องไม่ใช่การ merge เข้ารีโพซิทอรีหรือการรีลีส

  5. _reject_and_revertgate.pyรัน · ตัดสิน: REJECT · คืนค่าเดิมนโยบายที่อิงไฟล์state/policies

    สำหรับแคนดิเดตที่ runner สร้าง ส่วนนโยบายที่บันทึกไว้ภายใต้ mutation ID จะถูกคืนค่า และการคืนค่าที่ล้มเหลวจะถูกทำเครื่องหมาย การเปลี่ยนแปลงด้วยมือไม่ถูกคืนค่าอัตโนมัติ และการคืนค่าที่ไม่แน่นอนจะหยุดแคนดิเดตถัดไป

  6. _should_promote · KEEPgate.pyบันทึก · สังเกต: ผลลัพธ์ · แถวคำตัดสินผลลัพธ์ · แถว mutationledger.py

    การวัด คำตัดสิน และที่มา ถูกเขียนเป็นแถวผลลัพธ์ครั้งเดียว แถวในอดีตไม่ถูกเขียนทับ

กลุ่มควบคุม · การวัดซ้ำ

การรัน June 2026: never arm ที่ไม่เปลี่ยนแปลงและ baseline K=5 วัดสัญญาณรบกวนของการออดิตแยกต่างหาก และ KEEP จากการออดิตครั้งเดียวถูกตรวจซ้ำด้วย replicate

  1. 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

  2. baseline gen-0 · ค่าเฉลี่ยของการออดิต 5 ครั้งrun-2606-broken-tool-useข้อมูล: baseline เฉลี่ย K=5baseline · provenanceledger.py

    baseline gen-0 คือค่าเฉลี่ยของการออดิตห้าครั้ง (Petri broken_tool_use ยิ่งต่ำยิ่งดี เฉลี่ย 2.667)

  3. never arm · กลุ่มควบคุมที่ไม่เปลี่ยนแปลงrun-2606-broken-tool-useรัน · ตัดสิน: วัดโดยไม่เปลี่ยนsubprocess การออดิต · timeout คงที่measure.py

    never arm แกว่งไปที่ค่าเฉลี่ย 3.38 โดยไม่มีการเปลี่ยนนโยบายใดเลย (ออดิต 10 ครั้ง ยิ่งต่ำยิ่งดี) เป็นหลักฐานโดยตรงว่าสัญญาณรบกวนของการออดิตมากกว่าผลของการเปลี่ยนแปลง

  4. --replicate K · วัดซ้ำtrain.pyรัน · ตัดสิน: --replicate Ksubprocess การออดิต · timeout คงที่measure.py

    แคนดิเดตเดิมถูกวัดเพิ่มอีก K ครั้งภายใต้เงื่อนไขเดิม เพื่อคัดการออดิตครั้งเดียวที่โชคดีออก

  5. 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 หรือการนำไปใช้ทั่วไป