GEODE
Autonomous Agent Harness
Dari observasi ke tindakan berikutnya.
Harness agen otonom lokal yang dapat diserahi riset, pekerjaan berkas, dan tugas terjadwal.
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.
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.
arun · giliran model
loop/agent_loop.pydata: usulan berhentipenghentian dapat diserahkan · natural dll.loop/_guards.py · models.pySaat 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.
penghentian dapat diserahkan · natural dll.
loop/_guards.py · models.pydata: kandidat penyelesaianfinalize_and_return_asyncloop/_lifecycle.pyHanya natural, forced_text, dan actionable_partial yang merupakan penghentian yang dapat diserahkan, dan hanya ketiganya yang lanjut ke verifikasi publik.
finalize_and_return_async
loop/_lifecycle.pyjalankan · putuskan: PreVerifyPreVerify · STRENGTHENcore/hooks/public.pyDengan STRENGTHEN, hook PreVerify hanya dapat menambah persyaratan dan kode kekurangan. Hook ini dapat membuat putusan lebih ketat, tidak pernah meluluskannya.
finalize_and_return_async
loop/_lifecycle.pyjalankan · putuskan: verify_turn_asyncpemeriksaan struktural · empty_turncore/agent/verify.pyPemeriksaan 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.
penilaian semantik · LLM atau Jev
core/agent/verify.pydata: permintaan penilaianModel penilaiPenilai 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.
penilaian semantik · LLM atau Jev
core/agent/verify.pydata: passed · rubric_missespolicy_action · membaca putusanloop/_lifecycle.pyPutusan memuat lulus atau gagal, kode kekurangan, reflection untuk percobaan berikutnya, dan apakah percobaan ulang berguna. Kelulusan semantik tidak pernah menutupi pemeriksaan struktural yang gagal.
policy_action · membaca putusan
loop/_lifecycle.pyjalankan · putuskan: Keputusan PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook 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).
policy_action · membaca putusan
loop/_lifecycle.pyjalankan · putuskan: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyHanya bila tidak escalate, instruksi CONTINUE dari hook Stop dapat meminta lanjutan perbaikan. Instruksi hook adalah input untuk percobaan berikutnya, bukan otoritas.
policy_action · membaca putusan
loop/_lifecycle.pydata: completed · tersimpancheckpoint · status sesimemory · observabilitySaat lulus dan accept, percobaan lanjutan digabungkan, hasil disimpan, dan sesi dicatat sebagai completed.
finalize_and_return_async
loop/_lifecycle.pydata: responsIPC · pemanggil CLIMengembalikan 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.
penilaian semantik · LLM atau Jev
core/agent/verify.pydata: passed · rubric_missespolicy_action · membaca putusanloop/_lifecycle.pyPutusan memuat lulus atau gagal, kode kekurangan, reflection untuk percobaan berikutnya, dan apakah percobaan ulang berguna. Kelulusan semantik tidak pernah menutupi pemeriksaan struktural yang gagal.
policy_action · membaca putusan
loop/_lifecycle.pyjalankan · putuskan: Keputusan PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook 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).
policy_action · membaca putusan
loop/_lifecycle.pyjalankan · putuskan: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyHanya bila tidak escalate, instruksi CONTINUE dari hook Stop dapat meminta lanjutan perbaikan. Instruksi hook adalah input untuk percobaan berikutnya, bukan otoritas.
anggaran lanjutan · bawaan 2
loop/_lifecycle.pyjalankan · putuskan: perbaikan · percobaan +1_arun_once · lanjutan perbaikanloop/agent_loop.pyDengan 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.
verification_error · gagal tertutup
core/agent/verify.pykegagalan · tanpa putusan: verification_errorpolicy_action · membaca putusanloop/_lifecycle.pyPenilai 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.
policy_action · membaca putusan
loop/_lifecycle.pyjalankan · putuskan: Keputusan PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook 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).
policy_action · membaca putusan
loop/_lifecycle.pyjalankan · putuskan: ESCALATE · pendingPeninjau eksternalKandidat disimpan sebagai pending_text dan ditahan dari respons biasa, checkpoint disimpan, dan sesi dijeda. Tidak ada peninjau eksternal yang dihubungi secara otomatis.
policy_action · membaca putusan
loop/_lifecycle.pycatat · amati: putusan · baris buktitimeline · baris keputusan ledgermemory · observabilityTimeline 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.
arun · giliran model
loop/agent_loop.pyjalankan · putuskan: guard · bataskegagalan · batas · berhenti karena batalloop/_guards.py · models.pyGuard 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.
kegagalan · batas · berhenti karena batal
loop/_guards.py · models.pykegagalan · tanpa putusan: kegagalan · berhenti karena batalfinalize_and_return_asyncloop/_lifecycle.pyPenghentian karena pembatalan, infrastruktur, dan batas tidak memiliki kandidat untuk diverifikasi, sehingga disimpan tanpa verifikasi publik.
control workflow · lewati verifikasi publik
ipc_server/poller.pyjalankan · putuskan: lewati verifikasi publikfinalize_and_return_asyncloop/_lifecycle.pyBila pemanggilan IPC meminta melewati verifikasi publik atau control workflow sedang aktif, verifikasi publik dimatikan untuk eksekusi itu saja dan nilai sebelumnya dipulihkan sesudahnya.
finalize_and_return_async
loop/_lifecycle.pydata: simpan saja · tanpa verifikasicheckpoint · status sesimemory · observabilityPenghentian tanpa verifikasi tetap menyimpan hasil dan checkpoint-nya serta memancarkan event akhir sesi.
finalize_and_return_async
loop/_lifecycle.pydata: responsIPC · pemanggil CLIMengembalikan 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.