Geodi, karakter piksel resmi GEODE
Kembali ke ruang pamer

GEODE

Autonomous Agent Harness

Dari observasi ke tindakan berikutnya.

Harness agen otonom lokal yang dapat diserahi riset, pekerjaan berkas, dan tugas terjadwal.

2026.02.21 — present

Desain, penilaian, verifikasi: Author · implementasi: Claude · tinjauan: Codex

  • CLIDipublikasikan · PyPI
  • Server MCPDiimplementasikan

Usulan berhenti dari model baru menjadi penyelesaian melalui verifikasi.

Untuk penghentian yang dapat diserahkan, model yang meminta berhenti tetap melewati verifikasi penyelesaian. Hasilnya selesai, lanjut dalam anggaran, atau menunggu tinjauan; batas eksekusi, pembatalan, dan kesalahan berakhir dalam status berhenti tersendiri.

Peta penyelesaian · digambar dari jalur kode pada commit tetap 9e2c041
Peta penyelesaian GEODEBagaimana usulan berhenti dari model menjadi penyelesaian. Hanya penghentian yang dapat diserahkan (natural, forced_text, actionable_partial) yang melewati hook PreVerify, pemeriksaan struktural dan penilai terpilih (LLM judge secara bawaan, Jev bila dipilih), serta hook PostVerify dan Stop. Kelulusan disimpan sebagai completed; kegagalan yang dapat diperbaiki melanjutkan permintaan yang sama dalam anggaran bawaan dua percobaan. Putusan yang tidak dapat dipakai, upaya mengubah kegagalan menjadi lulus, atau anggaran yang habis menahan kandidat dan menjeda sesi. Penghentian karena pembatalan, batas, dan infrastruktur serta eksekusi control workflow disimpan tanpa verifikasi.IPC · pemanggil CLIrespons · status sesiPeninjau eksternalpending · tidak dihubungiModel penilaiLLM judge · Jev Choiceipc_server/poller.pycontrol workflow · lewati verifikasi publikloop/agent_loop.pyarun · giliran model_arun_once · lanjutan perbaikanloop/_guards.py · models.pypenghentian dapat diserahkan · natural dll.kegagalan · batas · berhenti karena batalloop/_lifecycle.pyfinalize_and_return_asyncpolicy_action · membaca putusananggaran lanjutan · bawaan 2core/hooks/public.pyPreVerify · STRENGTHENPostVerify · ACCEPT · REVISE · ESCALATEStop · CONTINUEmemory · observabilitycheckpoint · status sesitimeline · baris keputusan ledgercore/agent/verify.pypemeriksaan struktural · empty_turnpenilaian semantik · LLM atau Jevverification_error · gagal tertutupProses runtime GEODEakhir satu giliran AgenticLooploop · kandidat berhentifinalization · putusan1 usulan berhenti · arun · giliran model → penghentian dapat diserahkan · natural dll.12kandidat penyelesaian3 PreVerify · finalize_and_return_async → PreVerify · STRENGTHEN34verify_turn_async5permintaan penilaian6passed · rubric_misses7 Keputusan PostVerify · policy_action · membaca putusan → PostVerify · ACCEPT · REVISE · ESCALATE78Stop · CONTINUE9completed · tersimpan10respons1passed · rubric_misses2 Keputusan PostVerify · policy_action · membaca putusan → PostVerify · ACCEPT · REVISE · ESCALATE23Stop · CONTINUE4perbaikan · percobaan +11verification_error2 Keputusan PostVerify · policy_action · membaca putusan → PostVerify · ACCEPT · REVISE · ESCALATE23ESCALATE · pending4putusan · baris bukti1 guard · batas · arun · giliran model → kegagalan · batas · berhenti karena batal12kegagalan · berhenti karena batal3lewati verifikasi publik4simpan saja · tanpa verifikasi5respons

Verify → selesai

Hanya penghentian yang dapat diserahkan yang melewati PreVerify → penilaian → PostVerify → Stop. Baik usulan berhenti dari model maupun instruksi hook tidak dengan sendirinya merupakan penyelesaian.

  1. arun · giliran modelloop/agent_loop.pydata: usulan berhentipenghentian dapat diserahkan · natural dll.loop/_guards.py · models.py

    Saat model menjawab dengan teks tanpa pemanggilan alat, giliran itu menjadi kandidat berhenti natural (forced_text pada ronde terakhir yang diizinkan). Usulan berhenti dari model belum merupakan penyelesaian.

  2. penghentian dapat diserahkan · natural dll.loop/_guards.py · models.pydata: kandidat penyelesaianfinalize_and_return_asyncloop/_lifecycle.py

    Hanya natural, forced_text, dan actionable_partial yang merupakan penghentian yang dapat diserahkan, dan hanya ketiganya yang lanjut ke verifikasi publik.

  3. finalize_and_return_asyncloop/_lifecycle.pyjalankan · putuskan: PreVerifyPreVerify · STRENGTHENcore/hooks/public.py

    Dengan STRENGTHEN, hook PreVerify hanya dapat menambah persyaratan dan kode kekurangan. Hook ini dapat membuat putusan lebih ketat, tidak pernah meluluskannya.

  4. finalize_and_return_asyncloop/_lifecycle.pyjalankan · putuskan: verify_turn_asyncpemeriksaan struktural · empty_turncore/agent/verify.py

    Pemeriksaan struktural dilakukan lebih dahulu (giliran kosong, model_action_required); kegagalan struktural yang tidak dapat diperbaiki melewati penilaian semantik. Pengaturan lama seperti off atau rule_based diselesaikan menjadi llm_judge dan tidak dapat mematikan putusan.

  5. penilaian semantik · LLM atau Jevcore/agent/verify.pydata: permintaan penilaianModel penilai

    Penilai terpilih (LLM judge secara bawaan, Jev Choice bila dipilih) dipanggil sekali, tanpa alat, paling lama 120 detik dan tidak pernah melampaui sisa anggaran waktu. Kandidat yang mungkin memuat observasi pribadi tidak dikirim ke penilai pembantu.

  6. penilaian semantik · LLM atau Jevcore/agent/verify.pydata: passed · rubric_missespolicy_action · membaca putusanloop/_lifecycle.py

    Putusan memuat lulus atau gagal, kode kekurangan, reflection untuk percobaan berikutnya, dan apakah percobaan ulang berguna. Kelulusan semantik tidak pernah menutupi pemeriksaan struktural yang gagal.

  7. policy_action · membaca putusanloop/_lifecycle.pyjalankan · putuskan: Keputusan PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    Hook PostVerify memutuskan ACCEPT, REVISE, atau ESCALATE. ACCEPT atas kandidat yang gagal verifikasi menjadi escalate. Tanpa keputusan, bawaan runtime berlaku (lulus → accept, dapat dicoba ulang → revise, selainnya → escalate).

  8. policy_action · membaca putusanloop/_lifecycle.pyjalankan · putuskan: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    Hanya bila tidak escalate, instruksi CONTINUE dari hook Stop dapat meminta lanjutan perbaikan. Instruksi hook adalah input untuk percobaan berikutnya, bukan otoritas.

  9. policy_action · membaca putusanloop/_lifecycle.pydata: completed · tersimpancheckpoint · status sesimemory · observability

    Saat lulus dan accept, percobaan lanjutan digabungkan, hasil disimpan, dan sesi dicatat sebagai completed.

  10. finalize_and_return_asyncloop/_lifecycle.pydata: responsIPC · pemanggil CLI

    Mengembalikan jawaban akhir saat completed; jawaban kosong dengan EXTERNAL_VERIFICATION_REQUIRED saat menunggu tinjauan; alasan berhenti untuk penghentian tanpa verifikasi.

Perbaikan dalam anggaran

Kegagalan yang dapat diperbaiki melanjutkan permintaan yang sama. Anggaran bawaan adalah dua percobaan; bila habis, kandidat menunggu tinjauan.

  1. penilaian semantik · LLM atau Jevcore/agent/verify.pydata: passed · rubric_missespolicy_action · membaca putusanloop/_lifecycle.py

    Putusan memuat lulus atau gagal, kode kekurangan, reflection untuk percobaan berikutnya, dan apakah percobaan ulang berguna. Kelulusan semantik tidak pernah menutupi pemeriksaan struktural yang gagal.

  2. policy_action · membaca putusanloop/_lifecycle.pyjalankan · putuskan: Keputusan PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    Hook PostVerify memutuskan ACCEPT, REVISE, atau ESCALATE. ACCEPT atas kandidat yang gagal verifikasi menjadi escalate. Tanpa keputusan, bawaan runtime berlaku (lulus → accept, dapat dicoba ulang → revise, selainnya → escalate).

  3. policy_action · membaca putusanloop/_lifecycle.pyjalankan · putuskan: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    Hanya bila tidak escalate, instruksi CONTINUE dari hook Stop dapat meminta lanjutan perbaikan. Instruksi hook adalah input untuk percobaan berikutnya, bukan otoritas.

  4. anggaran lanjutan · bawaan 2loop/_lifecycle.pyjalankan · putuskan: perbaikan · percobaan +1_arun_once · lanjutan perbaikanloop/agent_loop.py

    Dengan instruksi perbaikan, dan hanya selama nomor percobaan masih di bawah anggaran (bawaan dua kali), permintaan yang sama dilanjutkan. Saat mencapai anggaran, statusnya menjadi escalate_budget_exhausted dan menunggu tinjauan.

Menunggu tinjauan

Putusan yang tidak dapat dipakai, upaya mengubah kegagalan menjadi lulus, atau anggaran yang habis menahan kandidat dan menjeda sesi.

  1. verification_error · gagal tertutupcore/agent/verify.pykegagalan · tanpa putusan: verification_errorpolicy_action · membaca putusanloop/_lifecycle.py

    Penilai yang tidak ada, timeout, atau respons tidak valid menjadi verification_error: bukan kelulusan dan bukan sinyal perbaikan. Putusan yang tidak dapat dipakai tidak pernah menggantikan keberhasilan.

  2. policy_action · membaca putusanloop/_lifecycle.pyjalankan · putuskan: Keputusan PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    Hook PostVerify memutuskan ACCEPT, REVISE, atau ESCALATE. ACCEPT atas kandidat yang gagal verifikasi menjadi escalate. Tanpa keputusan, bawaan runtime berlaku (lulus → accept, dapat dicoba ulang → revise, selainnya → escalate).

  3. policy_action · membaca putusanloop/_lifecycle.pyjalankan · putuskan: ESCALATE · pendingPeninjau eksternal

    Kandidat disimpan sebagai pending_text dan ditahan dari respons biasa, checkpoint disimpan, dan sesi dijeda. Tidak ada peninjau eksternal yang dihubungi secara otomatis.

  4. policy_action · membaca putusanloop/_lifecycle.pycatat · amati: putusan · baris buktitimeline · baris keputusan ledgermemory · observability

    Timeline mendapat baris keputusan, bukti, dan pending, dan evidence ledger mendapat baris verification_policy. Ini adalah catatan best-effort, bukan bukti adanya efek di luar.

Penghentian tanpa verifikasi

Penghentian karena pembatalan, batas, dan infrastruktur serta eksekusi control workflow disimpan tanpa verifikasi publik.

  1. arun · giliran modelloop/agent_loop.pyjalankan · putuskan: guard · bataskegagalan · batas · berhenti karena batalloop/_guards.py · models.py

    Guard seperti batas ronde, waktu, biaya, dan konteks, pembatalan, serta deteksi kegagalan berulang mengakhiri giliran dengan salah satu anggota himpunan tertutup TerminationReason. Batas yang dinonaktifkan dalam konfigurasi tidak selalu ditegakkan.

  2. kegagalan · batas · berhenti karena batalloop/_guards.py · models.pykegagalan · tanpa putusan: kegagalan · berhenti karena batalfinalize_and_return_asyncloop/_lifecycle.py

    Penghentian karena pembatalan, infrastruktur, dan batas tidak memiliki kandidat untuk diverifikasi, sehingga disimpan tanpa verifikasi publik.

  3. control workflow · lewati verifikasi publikipc_server/poller.pyjalankan · putuskan: lewati verifikasi publikfinalize_and_return_asyncloop/_lifecycle.py

    Bila pemanggilan IPC meminta melewati verifikasi publik atau control workflow sedang aktif, verifikasi publik dimatikan untuk eksekusi itu saja dan nilai sebelumnya dipulihkan sesudahnya.

  4. finalize_and_return_asyncloop/_lifecycle.pydata: simpan saja · tanpa verifikasicheckpoint · status sesimemory · observability

    Penghentian tanpa verifikasi tetap menyimpan hasil dan checkpoint-nya serta memancarkan event akhir sesi.

  5. finalize_and_return_asyncloop/_lifecycle.pydata: responsIPC · pemanggil CLI

    Mengembalikan jawaban akhir saat completed; jawaban kosong dengan EXTERNAL_VERIFICATION_REQUIRED saat menunggu tinjauan; alasan berhenti untuk penghentian tanpa verifikasi.

Setiap koneksi dengan bobot yang sama. Pilih alur untuk menyorot hanya jalurnya, dengan langkah bernomor.

  • Garis utuh · arah aliran permintaan, kandidat, dan hasil
  • Garis putus · jalankan, putuskan, otorisasi, konfigurasi
  • Garis titik-strip panjang · catatan dan observasi, terpisah dari putusan
  • Strip pendek · kegagalan atau putusan yang tidak dapat dipakai
  • Garis hitam tebal · alur yang dipilih; angka menunjukkan urutan
  • Kotak · batas kode atau catatan, path-nya di bagian kepala
  • Chip dalam · komponen di dalam batas itu
  • Kotak putus-putus · di luar batas itu
  • loop · finalization
  • penghentian · hook · putusan
  • penyimpanan · catatan
  • masuk IPC

Hanya jalur pemanggilan pada commit tetap 9e2c041 yang digambar. Kelulusan dari penilai terpisah dari keberhasilan verifier benchmark eksternal; penyelesaian di sini adalah keputusan di dalam runtime.

Mesin penilai
Bawaannya LLM judge; Jev Choice menilai hanya bila judgment_engine diatur ke jev. Apa pun pilihannya, penilai yang tidak dapat dipakai menghasilkan verification_error, tidak pernah keberhasilan.
Yang boleh dilakukan hook
PreVerify hanya dapat membuat putusan lebih ketat, PostVerify tidak dapat meluluskan kandidat yang gagal, dan Stop hanya dapat meminta lanjutan bila tidak escalate.
Menunggu tinjauan
Menunggu tinjauan mencatat bahwa keputusan dari luar diperlukan. Status ini tidak memberi tahu siapa pun dan tidak berarti hasilnya disetujui.