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

GEODE

Autonomous Agent Harness

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

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

2026.02.21 — present

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

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

ข้อเสนอให้หยุดของโมเดลจะกลายเป็นความเสร็จได้ก็ต่อเมื่อผ่านการตรวจยืนยัน

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

แผนที่การเสร็จสิ้น · วาดจากเส้นทางโค้ดที่คอมมิตที่ตรึงไว้ 9e2c041
แผนที่การเสร็จสิ้นของ GEODEวิธีที่ข้อเสนอให้หยุดของโมเดลกลายเป็นการเสร็จสิ้น เฉพาะการหยุดแบบส่งมอบได้ (natural, forced_text, actionable_partial) เท่านั้นที่ผ่าน hook PreVerify การตรวจเชิงโครงสร้าง และผู้ตัดสินที่เลือก (LLM judge เป็นค่าเริ่มต้น หรือ Jev เมื่อเลือก) รวมถึง hook PostVerify และ Stop ผลผ่านถูกบันทึกเป็น completed ความล้มเหลวที่แก้ได้จะทำคำขอเดิมต่อภายในงบเริ่มต้นสองครั้ง คำตัดสินที่ใช้ไม่ได้ ความพยายามเปลี่ยนความล้มเหลวเป็นผลผ่าน หรืองบที่หมดลง จะระงับแคนดิเดตและพักเซสชัน การหยุดจากการยกเลิก ขีดจำกัด และโครงสร้างพื้นฐาน รวมถึงการรัน control workflow ถูกบันทึกโดยไม่ตรวจยืนยันIPC · ผู้เรียก CLIการตอบกลับ · สถานะเซสชันผู้รีวิวภายนอกpending · ไม่ได้ติดต่อโมเดลผู้ตัดสินLLM judge · Jev Choiceipc_server/poller.pycontrol workflow · ข้ามการตรวจยืนยันสาธารณะloop/agent_loop.pyarun · เทิร์นของโมเดล_arun_once · ทำต่อเพื่อแก้ไขloop/_guards.py · models.pyการหยุดแบบส่งมอบได้ · natural ฯลฯความล้มเหลว · ขีดจำกัด · การหยุดจากการยกเลิกloop/_lifecycle.pyfinalize_and_return_asyncpolicy_action · การอ่านคำตัดสินงบการทำต่อ · ค่าเริ่มต้น 2core/hooks/public.pyPreVerify · STRENGTHENPostVerify · ACCEPT · REVISE · ESCALATEStop · CONTINUEmemory · observabilitycheckpoint · สถานะเซสชันtimeline · แถวการตัดสินใน ledgercore/agent/verify.pyการตรวจเชิงโครงสร้าง · empty_turnการตัดสินเชิงความหมาย · LLM หรือ Jevverification_error · ล้มเหลวแบบปิดโปรเซสรันไทม์ GEODEจุดจบของหนึ่งเทิร์น AgenticLoopลูป · แคนดิเดตการหยุดfinalization · คำตัดสิน1 ข้อเสนอให้หยุด · arun · เทิร์นของโมเดล → การหยุดแบบส่งมอบได้ · natural ฯลฯ12แคนดิเดตความเสร็จ3 PreVerify · finalize_and_return_async → PreVerify · STRENGTHEN34verify_turn_async5คำขอการตัดสิน6passed · rubric_misses7 การตัดสินของ PostVerify · policy_action · การอ่านคำตัดสิน → PostVerify · ACCEPT · REVISE · ESCALATE78Stop · CONTINUE9completed · บันทึกแล้ว10การตอบกลับ1passed · rubric_misses2 การตัดสินของ PostVerify · policy_action · การอ่านคำตัดสิน → PostVerify · ACCEPT · REVISE · ESCALATE23Stop · CONTINUE4แก้ไข · ความพยายาม +11verification_error2 การตัดสินของ PostVerify · policy_action · การอ่านคำตัดสิน → PostVerify · ACCEPT · REVISE · ESCALATE23ESCALATE · pending4คำตัดสิน · แถวหลักฐาน1 guard · ขีดจำกัด · arun · เทิร์นของโมเดล → ความล้มเหลว · ขีดจำกัด · การหยุดจากการยกเลิก12ความล้มเหลว · การหยุดจากการยกเลิก3ข้ามการตรวจยืนยันสาธารณะ4บันทึกเท่านั้น · ไม่ตรวจยืนยัน5การตอบกลับ

Verify → เสร็จสิ้น

เฉพาะการหยุดแบบส่งมอบได้เท่านั้นที่ผ่าน PreVerify → การตัดสิน → PostVerify → Stop ทั้งข้อเสนอให้หยุดของโมเดลและคำสั่งของ hook ไม่ได้เป็นความเสร็จด้วยตัวเอง

  1. arun · เทิร์นของโมเดลloop/agent_loop.pyข้อมูล: ข้อเสนอให้หยุดการหยุดแบบส่งมอบได้ · natural ฯลฯloop/_guards.py · models.py

    เมื่อโมเดลตอบเป็นข้อความโดยไม่เรียกเครื่องมือ เทิร์นนั้นจะกลายเป็นแคนดิเดตการหยุดแบบ natural (forced_text ในรอบสุดท้ายที่อนุญาต) ข้อเสนอให้หยุดของโมเดลยังไม่ใช่ความเสร็จ

  2. การหยุดแบบส่งมอบได้ · natural ฯลฯloop/_guards.py · models.pyข้อมูล: แคนดิเดตความเสร็จfinalize_and_return_asyncloop/_lifecycle.py

    มีเพียง natural, forced_text และ actionable_partial ที่เป็นการหยุดแบบส่งมอบได้ และมีเพียงสามแบบนี้ที่ไปสู่การตรวจยืนยันสาธารณะ

  3. finalize_and_return_asyncloop/_lifecycle.pyรัน · ตัดสิน: PreVerifyPreVerify · STRENGTHENcore/hooks/public.py

    ด้วย STRENGTHEN hook PreVerify ทำได้เพียงเพิ่มข้อกำหนดและรหัสสิ่งที่ขาด ทำให้คำตัดสินเข้มงวดขึ้นได้ แต่ไม่มีวันทำให้ผ่าน

  4. finalize_and_return_asyncloop/_lifecycle.pyรัน · ตัดสิน: verify_turn_asyncการตรวจเชิงโครงสร้าง · empty_turncore/agent/verify.py

    การตรวจเชิงโครงสร้างมาก่อน (เทิร์นว่าง, model_action_required) ความล้มเหลวเชิงโครงสร้างที่แก้ไม่ได้จะข้ามการตัดสินเชิงความหมาย ค่าตั้งเก่าเช่น off หรือ rule_based ถูกแปลงเป็น llm_judge และปิดคำตัดสินไม่ได้

  5. การตัดสินเชิงความหมาย · LLM หรือ Jevcore/agent/verify.pyข้อมูล: คำขอการตัดสินโมเดลผู้ตัดสิน

    ผู้ตัดสินที่เลือก (LLM judge เป็นค่าเริ่มต้น หรือ Jev Choice เมื่อเลือก) ถูกเรียกหนึ่งครั้งโดยไม่มีเครื่องมือ ไม่เกิน 120 วินาที และไม่เกินงบเวลาที่เหลือ แคนดิเดตที่อาจมีข้อสังเกตส่วนบุคคลจะไม่ถูกส่งไปยังผู้ตัดสินเสริม

  6. การตัดสินเชิงความหมาย · LLM หรือ Jevcore/agent/verify.pyข้อมูล: passed · rubric_missespolicy_action · การอ่านคำตัดสินloop/_lifecycle.py

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

  7. policy_action · การอ่านคำตัดสินloop/_lifecycle.pyรัน · ตัดสิน: การตัดสินของ PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    hook PostVerify ตัดสิน ACCEPT, REVISE หรือ ESCALATE การ ACCEPT แคนดิเดตที่ไม่ผ่านการตรวจยืนยันจะกลายเป็น escalate หากไม่มีการตัดสิน จะใช้ค่าเริ่มต้นของรันไทม์ (ผ่าน → accept, ลองใหม่ได้ → revise, นอกนั้น → escalate)

  8. policy_action · การอ่านคำตัดสินloop/_lifecycle.pyรัน · ตัดสิน: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    เฉพาะเมื่อไม่ escalate คำสั่ง CONTINUE ของ hook Stop จึงขอให้ทำต่อเพื่อแก้ไขได้ คำสั่งของ hook เป็นอินพุตของความพยายามครั้งถัดไป ไม่ใช่อำนาจ

  9. policy_action · การอ่านคำตัดสินloop/_lifecycle.pyข้อมูล: completed · บันทึกแล้วcheckpoint · สถานะเซสชันmemory · observability

    เมื่อผ่านและ accept ความพยายามที่ทำต่อจะถูกรวมเข้าด้วยกัน ผลลัพธ์ถูกบันทึก และเซสชันถูกบันทึกเป็น completed

  10. finalize_and_return_asyncloop/_lifecycle.pyข้อมูล: การตอบกลับIPC · ผู้เรียก CLI

    คืนคำตอบสุดท้ายเมื่อ completed คืนคำตอบว่างพร้อม EXTERNAL_VERIFICATION_REQUIRED เมื่อรอรีวิว และคืนเหตุผลการหยุดสำหรับการหยุดที่ไม่ผ่านการตรวจยืนยัน

แก้ไขภายในงบ

ความล้มเหลวที่แก้ได้จะทำคำขอเดิมต่อ งบเริ่มต้นคือสองครั้ง เมื่อหมดลง แคนดิเดตจะรอรีวิว

  1. การตัดสินเชิงความหมาย · LLM หรือ Jevcore/agent/verify.pyข้อมูล: passed · rubric_missespolicy_action · การอ่านคำตัดสินloop/_lifecycle.py

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

  2. policy_action · การอ่านคำตัดสินloop/_lifecycle.pyรัน · ตัดสิน: การตัดสินของ PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    hook PostVerify ตัดสิน ACCEPT, REVISE หรือ ESCALATE การ ACCEPT แคนดิเดตที่ไม่ผ่านการตรวจยืนยันจะกลายเป็น escalate หากไม่มีการตัดสิน จะใช้ค่าเริ่มต้นของรันไทม์ (ผ่าน → accept, ลองใหม่ได้ → revise, นอกนั้น → escalate)

  3. policy_action · การอ่านคำตัดสินloop/_lifecycle.pyรัน · ตัดสิน: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    เฉพาะเมื่อไม่ escalate คำสั่ง CONTINUE ของ hook Stop จึงขอให้ทำต่อเพื่อแก้ไขได้ คำสั่งของ hook เป็นอินพุตของความพยายามครั้งถัดไป ไม่ใช่อำนาจ

  4. งบการทำต่อ · ค่าเริ่มต้น 2loop/_lifecycle.pyรัน · ตัดสิน: แก้ไข · ความพยายาม +1_arun_once · ทำต่อเพื่อแก้ไขloop/agent_loop.py

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

รอรีวิว

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

  1. verification_error · ล้มเหลวแบบปิดcore/agent/verify.pyความล้มเหลว · ไม่มีคำตัดสิน: verification_errorpolicy_action · การอ่านคำตัดสินloop/_lifecycle.py

    ผู้ตัดสินที่ขาดหาย การหมดเวลา หรือการตอบกลับที่ไม่ถูกต้อง จะกลายเป็น verification_error ซึ่งไม่ใช่ทั้งผลผ่านและสัญญาณให้แก้ไข คำตัดสินที่ใช้ไม่ได้ไม่มีวันแทนความสำเร็จ

  2. policy_action · การอ่านคำตัดสินloop/_lifecycle.pyรัน · ตัดสิน: การตัดสินของ PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    hook PostVerify ตัดสิน ACCEPT, REVISE หรือ ESCALATE การ ACCEPT แคนดิเดตที่ไม่ผ่านการตรวจยืนยันจะกลายเป็น escalate หากไม่มีการตัดสิน จะใช้ค่าเริ่มต้นของรันไทม์ (ผ่าน → accept, ลองใหม่ได้ → revise, นอกนั้น → escalate)

  3. policy_action · การอ่านคำตัดสินloop/_lifecycle.pyรัน · ตัดสิน: ESCALATE · pendingผู้รีวิวภายนอก

    แคนดิเดตถูกเก็บเป็น pending_text และถูกระงับจากการตอบกลับปกติ checkpoint ถูกบันทึกและเซสชันถูกพักไว้ ไม่มีการติดต่อผู้รีวิวภายนอกโดยอัตโนมัติ

  4. policy_action · การอ่านคำตัดสินloop/_lifecycle.pyบันทึก · สังเกต: คำตัดสิน · แถวหลักฐานtimeline · แถวการตัดสินใน ledgermemory · observability

    timeline ได้แถวการตัดสิน หลักฐาน และ pending ส่วน evidence ledger ได้แถว verification_policy ทั้งหมดนี้เป็นบันทึกแบบ best-effort ไม่ใช่หลักฐานของผลกระทบภายนอก

การหยุดที่ไม่ตรวจยืนยัน

การหยุดจากการยกเลิก ขีดจำกัด และโครงสร้างพื้นฐาน รวมถึงการรัน control workflow ถูกบันทึกโดยไม่ผ่านการตรวจยืนยันสาธารณะ

  1. arun · เทิร์นของโมเดลloop/agent_loop.pyรัน · ตัดสิน: guard · ขีดจำกัดความล้มเหลว · ขีดจำกัด · การหยุดจากการยกเลิกloop/_guards.py · models.py

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

  2. ความล้มเหลว · ขีดจำกัด · การหยุดจากการยกเลิกloop/_guards.py · models.pyความล้มเหลว · ไม่มีคำตัดสิน: ความล้มเหลว · การหยุดจากการยกเลิกfinalize_and_return_asyncloop/_lifecycle.py

    การหยุดจากการยกเลิก โครงสร้างพื้นฐาน และขีดจำกัด ไม่มีแคนดิเดตให้ตรวจยืนยัน จึงถูกบันทึกโดยไม่ผ่านการตรวจยืนยันสาธารณะ

  3. control workflow · ข้ามการตรวจยืนยันสาธารณะipc_server/poller.pyรัน · ตัดสิน: ข้ามการตรวจยืนยันสาธารณะfinalize_and_return_asyncloop/_lifecycle.py

    เมื่อการเรียก IPC ขอข้ามการตรวจยืนยันสาธารณะ หรือมี control workflow ทำงานอยู่ การตรวจยืนยันสาธารณะจะปิดเฉพาะการรันนั้น และคืนค่าเดิมหลังจากนั้น

  4. finalize_and_return_asyncloop/_lifecycle.pyข้อมูล: บันทึกเท่านั้น · ไม่ตรวจยืนยันcheckpoint · สถานะเซสชันmemory · observability

    การหยุดที่ไม่ผ่านการตรวจยืนยันยังคงบันทึกผลลัพธ์และ checkpoint และส่งอีเวนต์สิ้นสุดเซสชัน

  5. finalize_and_return_asyncloop/_lifecycle.pyข้อมูล: การตอบกลับIPC · ผู้เรียก CLI

    คืนคำตอบสุดท้ายเมื่อ completed คืนคำตอบว่างพร้อม EXTERNAL_VERIFICATION_REQUIRED เมื่อรอรีวิว และคืนเหตุผลการหยุดสำหรับการหยุดที่ไม่ผ่านการตรวจยืนยัน

ทุกการเชื่อมต่อมีน้ำหนักเท่ากัน เลือกโฟลว์เพื่อไฮไลต์เฉพาะเส้นทางของโฟลว์นั้นพร้อมขั้นตอนที่มีหมายเลข

  • เส้นทึบ · ทิศทางที่คำขอ แคนดิเดต และผลลัพธ์ไหลไป
  • เส้นประ · รัน ตัดสิน อนุญาต ตั้งค่า
  • เส้นยาวสลับจุด · บันทึกและการสังเกต แยกจากคำตัดสิน
  • เส้นประสั้น · ความล้มเหลวหรือคำตัดสินที่ใช้ไม่ได้
  • เส้นดำหนา · โฟลว์ที่เลือก ตัวเลขบอกลำดับ
  • กล่อง · ขอบเขตของโค้ดหรือบันทึก พร้อมพาธในส่วนหัว
  • ชิปด้านใน · องค์ประกอบภายในขอบเขตนั้น
  • กล่องเส้นประ · อยู่นอกขอบเขตนั้น
  • ลูป · finalization
  • การหยุด · hook · คำตัดสิน
  • การจัดเก็บ · บันทึก
  • ทางเข้า IPC

วาดเฉพาะเส้นทางการเรียกในคอมมิตที่ตรึงไว้ 9e2c041 ผลผ่านของผู้ตัดสินแยกจากความสำเร็จของ verifier ของเบนช์มาร์กภายนอก ความเสร็จในที่นี้เป็นการตัดสินภายในรันไทม์

เอนจินผู้ตัดสิน
ค่าเริ่มต้นคือ LLM judge ส่วน Jev Choice ตัดสินเฉพาะเมื่อตั้ง judgment_engine เป็น jev ไม่ว่ากรณีใด ผู้ตัดสินที่ใช้ไม่ได้ให้ผลเป็น verification_error ไม่ใช่ความสำเร็จ
สิ่งที่ hook ทำได้
PreVerify ทำได้เพียงทำให้คำตัดสินเข้มงวดขึ้น PostVerify ให้แคนดิเดตที่ล้มเหลวผ่านไม่ได้ และ Stop ขอให้ทำต่อได้เฉพาะเมื่อไม่ escalate
รอรีวิว
การรอรีวิวบันทึกว่าต้องมีการตัดสินจากภายนอก ไม่ได้แจ้งเตือนใคร และไม่ได้หมายความว่าผลลัพธ์ได้รับการอนุมัติ