GEODE
Autonomous Agent Harness
Dari observasi ke tindakan berikutnya.
Harness agen otonom lokal yang dapat diserahi riset, pekerjaan berkas, dan tugas terjadwal.
GEODE runtime vocabulary
- reasoning
- action
- observation
- plan
- memory
- tools
- hook
- reflexion
- rollouts
- data curation
- data governance
- evaluation
- scaffold search
- promotion
Reasoning: SYSTEM PROMPT · CONVERSATION · RUNTIME HINTS · MODEL · ADAPTER CALL · NEXT ACTION · TOOL SCHEMA · TEXT-ONLY TURN · CURRENT STEP · PROJECT MEMORY · RUNTIME RULES · EFFORT · thinking_budget · reasoning_effort · adaptive_thinking · effort_values · default_effort · binds_thinking · none · minimal · low · medium · high · xhigh · max · MODEL ROUTEAction: ACT · TOOL_USE · TOOLCALLPROCESSOR · DISPATCH · RESEARCH · BASH · COMPUTER USE · FILE · GIT · PROCESS · EFFECT RECEIPT · TOOLEXECUTORObservation: NEXT ACTION · RESEARCH · OBSERVE · TOOL_RESULT · RESULT · ERROR · CODE · DOCUMENT · SOURCE · EVIDENCE · EXCERPTPlan: CURRENT STEP · OBJECTIVE · PLANSTEP · EXPECTED OUTCOME · REMAINING STEPS · COMPLETED · ABANDONED · REVISION · UPDATE_PLAN · /PLAN · REPLAN · VERIFY FAILED · LOW CONFIDENCEMemory: SYSTEM PROMPT · CONVERSATION · PROJECT MEMORY · RUNTIME RULES · TOOL_RESULT · CONVERSATIONCONTEXT · MESSAGES · CONTEXT WINDOW · COMPACTION · CHECKPOINT · SESSION · RECOVERY · SQLITE · STATE.JSON · PreCompact · PostCompact · SessionStart · SessionEndTools: TOOL SCHEMA · TOOL_USE · TOOLCALLPROCESSOR · DISPATCH · BASH · COMPUTER USE · EFFECT RECEIPT · TOOL_RESULT · BOUNDTOOLPLAN · GENERATION · HASH · TOOLEXECUTOR · SCOPE · POLICY · HOOK · APPROVAL · HITL · PreToolUse · PostToolUse · MCP CLIENT · PermissionRequestHook: DISPATCH · HOOK · PreToolUse · PostToolUse · UserPromptSubmit · PermissionRequest · PreCompact · PostCompact · SessionStart · SessionEnd · SubagentStart · SubagentStop · PreVerify · tool_request · tool_execution · llm_request · llm_execution · REQUEST TRANSFORM · next_call · WRAPPER · REGISTRY · PostVerify · StopReflexion: NEXT ACTION · EVIDENCE · REPLAN · VERIFY FAILED · LOW CONFIDENCE · HOOK · PreVerify · HYPOTHESES · CONFIDENCE · NEXT_ACTION_HINT · RECORD_REFLECTION · CONTRADICTION · REPAIR · VERIFY · PostVerify · Stop · COMPLETION · CONTINUE · TIME · TOKEN BUDGET · CANCELLATIONRollouts: SESSION · ROLLOUT · EXAMPLE · SEED · REPETITION · ATTEMPT · TRAJECTORY · REWARD · OUTCOME · TRACE · RUN IDData Curation: TASK SYNTHESIS · SEED GENERATION · PROXIMITY · RANKING · META-REVIEW · ELO TOURNAMENT · PILOT · DEDUPLICATION · SURVIVOR SELECTION · FROZEN POOLData Governance: PROVENANCE · LINEAGE · SCHEMA VERSION · SOURCE DIGEST · PRIVACY REVIEW · ALLOWLIST · IMMUTABLE RELEASE · SPLIT ISOLATION · SEALED HOLDOUTEvaluation: TRAJECTORY · OUTCOME · TRACE · EVALUATION HARNESS · TASK · RUBRIC · GRADER · VERIFIER · VALIDITY · FITNESS · REPLICATION · TASK COVERAGEScaffold Search: RECOVERY · FITNESS · CANDIDATE · HYPOTHESIS · MUTATION POLICY · BASELINE · FROZEN EVALUATOR · POLICY INJECTION · SEARCH SPACE · PROMOTION GATEPromotion: SEALED HOLDOUT · PROMOTION GATE · CRUCIBLE · PAIRED TRIALS · BOOTSTRAP BOUND · FROZEN CONTRACT · TASK-PACK HASH · TRAIN · SEALED TEST · SAFETY VETO · KEEP · REJECT · INVALID
Recorded evaluation · MCPMark PostgreSQL · 2026-07-04
Sebelum mengubah apa pun, ia mencari apa yang sudah ada.
Tugasnya: keamanan tingkat baris untuk layanan sosial dengan lima tabel.
- TelusuriMembaca lima tabel, empat fungsi pembantu yang sudah ada, RLS yang mati di kelimanya, serta kebijakan, hak akses, dan peran.
- BertindakSatu transaksi: 20 kebijakan dan RLS dinyalakan, memakai ulang 3 fungsi pembantu yang ada dan menambah 3 fungsi.
- Verifikasi18 lolos, 0 gagal. Ke-13 respons alat dalam 9 giliran kembali tanpa kesalahan.
Keluaran verifikator, 18 baris (apa adanya)
- RLS enabled on users
- RLS enabled on channels
- RLS enabled on channel_moderators
- RLS enabled on posts
- RLS enabled on comments
- Users can update their own profile
- Users blocked from updating other users' profiles
- Channel owners can update their channels
- Non-owners blocked from updating channels
- Post authors can update their posts
- Channel moderators can update posts in their channels
- Unauthorized users blocked from updating posts
- Comment authors can update their comments
- Post authors can moderate comments on their posts
- Channel owners can add moderators
- Non-owners blocked from adding moderators
- Content visibility varies correctly based on user context
- Anonymous users can see 3 public user profiles (correct)
Eksekusi lampau di sandbox evaluasi yang dikonfigurasi, bukan basis data produksi atau insiden keamanan nyata. Jumlah baris sebelum kebijakan tidak ada dalam catatan, jadi tidak ditampilkan. Catatan eksekusi publik (meta.json, commit 23e3428)
Meninjau hasil dan memperbaikinya (terinspirasi Reflexion, dalam tugas yang sama) adalah kemampuan runtime GEODE saat ini. Perbaikan seperti itu tidak muncul dalam catatan ini: setiap respons alat kembali tanpa kesalahan. Dokumentasi runtime (hook-system.md)
Model memilih tindakan berikutnya; host menjaga batas eksekusi.
Runtime sejak permintaan masuk ke sesi, melalui pemanggilan model dan pemeriksaan otoritas atas setiap pemanggilan alat yang diusulkan, hingga eksekusi, hasil, dan catatan. Pilih satu alur untuk menyorot jalurnya saja, dengan langkah bernomor.
Model memilih tindakan berikutnya; runtime memeriksa izin alat dan memutuskan kapan pekerjaan selesai.
Eksperimen Scaffold Search / SIL eksternal dimulai May 15, 2026
Pasang paket geode-agent dari PyPI atau repositori publik lalu jalankan dari terminal Anda sendiri. Dapat juga dihubungkan sebagai server MCP.
Permintaan → pemanggilan model
Permintaan terminal datang lewat IPC, sesi disusun, dan loop memanggil model dengan prompt sistem, percakapan, dan skema alat.
Pengguna terminalaliran data: prompt · cli.sockCLIPoller · soket IPC
core/serverthin CLI mengirim permintaan ke soket IPC serve daemon (~/.geode/cli.sock). REPL menjalankan komposisi sesi yang sama di dalam proses.
CLIPoller · soket IPC
core/serverotoritas · komposisi: create_session(IPC)SharedServices.create_sessionsupervised/services.pySetiap koneksi menyusun satu sesi. Mode menentukan tingkat HITL, anggaran waktu, dan alat yang ditolak, serta memproyeksikan BoundToolPlan ke penyedia yang dipilih.
CLIPoller · soket IPC
core/serverotoritas · komposisi: lane per permintaanLaneQueue · session · globalsupervised/services.pySebelum menjalankan permintaan, lane sesi dan lane global sama-sama dipegang, sehingga eksekusi bersamaan dibatasi.
SharedServices.create_session
supervised/services.pyotoritas · komposisi: ToolExecutor · AgenticLoopAgenticLoop · enam fasecore/agent/loopMembangun executor dan loop sebagai satu pasangan yang berbagi hook, MCP, skill, dan kunci sumber daya.
LaneQueue · session · global
supervised/services.pyaliran data: arun(prompt)AgenticLoop · enam fasecore/agent/loopMenjalankan satu giliran pengguna dalam enam fase: menyiapkan input, menyiapkan pemanggilan, memanggil penyedia, memproses alat, mengamati dan memadatkan, mengakhiri.
prompt sistem · sumber yang dideklarasikan
core/agent/loopaliran data: prompt sistemadapter.acomplete · kelas kesalahancore/llm/adaptersDibangun setiap giliran dari sumber yang dideklarasikan seperti bagian terpilih GEODE.md dan aturan. Facade lima tingkat ContextAssembler hanya dipakai bila dipanggil secara eksplisit; itu bukan input loop bawaan.
pesan · ConversationContext
core/agent/loopaliran data: pesanadapter.acomplete · kelas kesalahancore/llm/adaptersPercakapan dan hasil alat sebelumnya dikirim terpisah dari prompt sistem.
BoundToolPlan · tidak dapat diubah
core/tools/plan.pyotoritas · komposisi: skema alatadapter.acomplete · kelas kesalahancore/llm/adaptersHanya alat dari BoundToolPlan yang terikat pada langkah ini yang terlihat oleh model. Ini adalah snapshot tak dapat diubah dengan generasi dan hash konten.
AgenticLoop · enam fase
core/agent/loopaliran data: StepSnapshot · permintaanadapter.acomplete · kelas kesalahancore/llm/adaptersStepSnapshot mengunci model, alat, dan ID korelasi pemanggilan ini. Middleware LLM tidak dapat menukar adapter yang terikat.
adapter.acomplete · kelas kesalahan
core/llm/adaptersaliran data: HTTPSPenyedia LLMAdapter per penyedia melakukan pemanggilan. Kegagalan diklasifikasikan dan dicoba ulang hanya dalam batas yang ditetapkan, atau mengakhiri giliran dengan alasan penghentian.
adapter.acomplete · kelas kesalahan
core/llm/adaptersaliran data: respons · tool_useAgenticLoop · enam fasecore/agent/loopTeks saja menuju penghentian; tool_use menuju pemrosesan alat.
Otoritas alat → efek → hasil
Usulan tool_use baru berjalan setelah semua pemeriksaan lolos; penolakan, hasil, dan kesalahan semuanya kembali dari executor dan menjadi input model berikutnya.
AgenticLoop · enam fase
core/agent/loopaliran data: batch tertunda · simpan rondeSQLite messages · state.jsonmemory/session_checkpoint.pyDalam sesi yang mengonfigurasi checkpoint (ada checkpoint dan session id), batch yang diusulkan disimpan sebelum alat apa pun berjalan, dan batch tidak dijalankan jika tidak dapat disimpan. Batch yang selesai disimpan lagi. Pemanggil tanpa checkpoint tidak mendapat jaminan ini.
AgenticLoop · enam fase
core/agent/loopaliran data: blok tool_useToolCallProcessortool_executor/processor.pyUsulan model bukanlah izin. Setiap pemanggilan mendapat ToolContext yang membawa identitas model dan adapter loop.
ToolCallProcessor
tool_executor/processor.pyaliran data: aexecutecakupan · kebijakan · skematool_executor/executor.pyMemeriksa cakupan sesi, penulisan ulang oleh middleware permintaan, kebijakan, dan skema secara berurutan. Penulisan ulang yang menurunkan tingkat keamanan atau kelas data pribadi ditolak.
BoundToolPlan · tidak dapat diubah
core/tools/plan.pyotoritas · komposisi: diizinkan · tingkat keamanancakupan · kebijakan · skematool_executor/executor.pyHandler yang dapat dieksekusi dan tingkat keamanan berasal dari BoundToolPlan yang diproyeksikan untuk sesi.
PreToolUse · PostToolUse
tool_executor/executor.pyotoritas · komposisi: PreToolUse · PostToolUseHookRegistry · keputusancore/hooksHook publik memutuskan blokir, penulisan ulang argumen, atau permintaan izin, dan setelah penulisan ulang, cakupan, kebijakan, dan skema diperiksa lagi. Setelah eksekusi, hook dapat menambahkan konteks atau menahan hasil.
persetujuan · HITL
tool_executor/executor.pyotoritas · komposisi: permintaan persetujuanPengguna terminalDalam sesi IPC, permintaan persetujuan diteruskan ke thin CLI. Mode tanpa manusia menerapkan kebijakan tolak secara bawaan; satu-satunya pengecualian adalah computer use DAEMON, bila operator mengaktifkannya secara terpisah (selain itu diblokir).
tool_executor/executor.pypenolakan sebelum eksekusi: ditolak sebelum eksekusiToolCallProcessor
tool_executor/processor.pyPenolakan cakupan, kebijakan, atau skema, blokir PreToolUse, atau persetujuan yang ditolak kembali sebagai hasil kesalahan tanpa dispatch. Dalam hal itu, belum ada efek dari pemanggilan ini yang dimulai.
effect receipt
tool_executor/executor.pyaliran data: terima efek · konfirmasiEffectReceiptStorememory/effect_receipts.pyEfek seperti perubahan berkas, pesan keluar, atau tindakan administratif diterima sebelum dijalankan. Hasil yang tidak pasti tidak dijalankan lagi; sistem meminta rekonsiliasi.
kunci sumber daya · dispatch
tool_executor/executor.pyaliran data: pemanggilan handlerhandler alat · bash · computercore/toolsMeneruskan ke handler yang terikat setelah mengunci key sumber dayanya. Pemanggilan yang dihentikan pada tenggatnya mungkin masih berjalan di luar.
kunci sumber daya · dispatch
tool_executor/executor.pyaliran data: pemanggilan MCPMCPServerManagercore/mcp/manager.pyHanya alat MCP dengan kebijakan sumber daya yang dideklarasikan yang dipanggil.
MCPServerManager
core/mcp/manager.pyaliran data: tools/callServer MCPKatalog server berasal dari pengaturan global dan dari pengaturan proyek yang lolos pemeriksaan kepercayaan; pemeriksaan itu hanya berlaku untuk entri proyek. Pengelola MCP menerapkan kebijakan ekstensi dan sumber dayanya.
handler alat · bash · computer
core/toolsaliran data: perubahan berkas · git · prosesBerkas · git · prosesPerubahan yang sudah dieksekusi tetap sebagai status di luar. Checkpoint hanya memulihkan percakapan dan tidak membatalkannya.
tool_executor/executor.pyaliran data: hasil · kesalahan pasca-dispatchToolCallProcessor
tool_executor/processor.pySetelah dispatch, hasil normal dan kesalahan (termasuk timeout dan hasil yang tidak pasti) kembali melalui PostToolUse. Kesalahan atau timeout tidak berarti pekerjaan di luar berhenti atau dibatalkan.
ToolCallProcessor
tool_executor/processor.pyaliran data: tool_resultpesan · ConversationContextcore/agent/loopHasil, penolakan, dan kesalahan sama-sama diserialisasi sebagai tool_result dan menjadi pesan dalam input model berikutnya.
ToolCallProcessor
tool_executor/processor.pycatatan · observasi: pemanggilan · observasi hasilSessionTimeline · append-onlyobservability/session_timeline.pyMenulis pemanggilan dan hasilnya (ok atau error) ke timeline, termasuk pemanggilan yang ditolak sebelum eksekusi. Catatan ini adalah observasi; ia tidak membuktikan bahwa efek di luar dimulai atau berhasil.
Catatan · pemulihan · penyelesaian
Checkpoint, timeline, dan baris bukti ditulis terpisah. Tidak ada transaksi bersama, dan checkpoint hanya memulihkan percakapan.
AgenticLoop · enam fase
core/agent/loopaliran data: batch tertunda · simpan rondeSQLite messages · state.jsonmemory/session_checkpoint.pyDalam sesi yang mengonfigurasi checkpoint (ada checkpoint dan session id), batch yang diusulkan disimpan sebelum alat apa pun berjalan, dan batch tidak dijalankan jika tidak dapat disimpan. Batch yang selesai disimpan lagi. Pemanggil tanpa checkpoint tidak mendapat jaminan ini.
SQLite messages · state.json
memory/session_checkpoint.pyaliran data: pemulihan untuk melanjutkanAgenticLoop · enam fasecore/agent/loopSatu jalur pemulihan mengembalikan pesan, status kognitif, dan penghitung guard. TaskGraph yang hanya ada di dalam proses tidak dipulihkan.
AgenticLoop · enam fase
core/agent/loopcatatan · observasi: catatan giliranSessionTimeline · append-onlyobservability/session_timeline.pyRiwayat eksekusi append-only, tidak pernah diputar ulang sebagai status.
AgenticLoop · enam fase
core/agent/loopotoritas · komposisi: pemeriksaan penyelesaianverify_turn_asynccore/agent/verify.pyUsulan model untuk berhenti baru menjadi penyelesaian melalui Verify.
verify_turn_async
core/agent/verify.pyotoritas · komposisi: PostVerify · StopHookRegistry · keputusancore/hooksKeputusan hook publik menyatakan apakah perlu melanjutkan dengan perbaikan, dan perbaikan hanya terjadi dalam anggaran yang ditetapkan (bawaan dua kali).
AgenticLoop · enam fase
core/agent/loopcatatan · observasi: baris bukti · best-effortEvidenceLedger · JSONLagent/evidence_ledger.pyBaris diagnostik yang sudah disamarkan. Hash mendukung korelasi; sebuah baris tidak membuktikan efek terjadi, dan tidak ditulis dalam satu transaksi dengan timeline atau checkpoint.
AgenticLoop · enam fase
core/agent/loopcatatan · observasi: event kognitif · siklus hidupHookSystem · observasicore/hooksHook observasi menerima dan mencatat event; hook ini tidak memutuskan eksekusi.
Jalur masuk lain
Aplikasi pesan masuk sebagai sesi DAEMON milik serve daemon; run_agent dari host MCP eksternal masuk ke loop headless sekali jalan yang dibangun terpisah.
Kanal pesanaliran data: pesan kanalpoller aplikasi pesan
core/serverPoller serve daemon hanya menangani pesan dari kanal yang terikat.
poller aplikasi pesan
core/serverotoritas · komposisi: create_session(DAEMON)SharedServices.create_sessionsupervised/services.pyMode tanpa manusia yang memberi persetujuan: berlaku kebijakan tolak bawaan dan anggaran waktu. Hanya computer use yang dapat diaktifkan terpisah oleh operator; tanpa itu tetap diblokir.
poller aplikasi pesan
core/serveraliran data: arun(message)AgenticLoop · enam fasecore/agent/loopSatu thread mempertahankan satu session id tetap dan melanjutkan satu rantai checkpoint.
Host MCP eksternalaliran data: run_agent(prompt)run_agent · sekali jalan
core/mcp_server.pyHost MCP eksternal memanggil GEODE sebagai alat.
run_agent · sekali jalan
core/mcp_server.pyaliran data: loop headless sekali jalanAgenticLoop · enam fasecore/agent/loopExecutor dan loop headless yang dibangun terpisah dan melewati SharedServices. Daftar tolak bawaan berlaku apa adanya, sehingga alat seperti run_bash, delegate_task, dan computer dihapus; pengecualian computer use DAEMON tidak ada di sini.
Setiap koneksi dengan bobot yang sama. Pilih alur untuk menyorot hanya jalurnya, dengan langkah bernomor.
- Garis utuh · arah aliran permintaan, pesan, dan hasil alat
- Garis putus · komposisi sesi, otoritas, atau putusan; bukan jalur data
- Garis titik-strip panjang · catatan dan observasi; tidak pernah diputar ulang sebagai status
- Strip pendek · penolakan sebelum eksekusi, tanpa efek
- Garis hitam tebal · alur yang dipilih; angka menunjukkan urutan
- Kotak · batas kepemilikan kode, path sumbernya di bagian kepala
- Chip dalam · komponen di dalam batas itu
- Kotak putus-putus · di luar proses runtime
- Garis tepi oranye · tempat model memutuskan
- Loop eksekusi
- Otoritas · putusan
- Penyimpanan catatan
- Masuk · koneksi · eksekusi
Hanya koneksi yang pemanggilannya dikonfirmasi yang digambar. Facade lima tingkat ContextAssembler, TaskGraph, dan eksperimen riset seperti Jev, SIL, dan Crucible tidak berada di jalur runtime ini. Pembatalan asinkron tidak menghentikan pekerjaan sinkron yang sudah dimulai atau membatalkan efek yang sudah terjadi.
Model yang didukung · per penyedia
Pilihan katalog dalam kode dan bawaan yang dikirimkan, bukan daftar yang setiap modelnya lolos pemanggilan API langsung. Rantai fallback yang dikonfigurasi kosong secara bawaan, dan ID yang persis tidak pernah ditingkatkan otomatis ke versi yang lebih baru.
Anthropic
API
- UtamaClaude Opus 5.5
claude-opus-5-5Bawaan - SekunderClaude Sonnet 5
claude-sonnet-5Bawaan - HematClaude Haiku 4.5
claude-haiku-4-5-20251001Bawaan
Tampilkan semua 12 ID katalog
API
claude-fable-5-1claude-opus-5-5bawaanclaude-opus-5claude-sonnet-5bawaanclaude-haiku-4-5-20251001bawaanclaude-fable-5claude-opus-4-8claude-opus-4-7claude-opus-4-6claude-opus-4-5claude-sonnet-4-6claude-sonnet-4-5-20250929
Kode menolak jalur OAuth langganan.
- UtamaClaude Opus 5.5
OpenAI
API · langganan Codex
- Bawaan API dan CodexGPT-6 Sol
gpt-6-solBawaan
Tampilkan semua 11 ID katalog
API · langganan Codex
gpt-6-astragpt-6-solbawaangpt-6-lunagpt-5.6-solgpt-5.6-terragpt-5.6-luna
Hanya API
gpt-5.5gpt-5.3-codexgpt-5.4gpt-5.4-minigpt-5.4-nano
Dua jalur akses ke satu penyedia; katalog menetapkan jalur mana yang diizinkan tiap model.
- Bawaan API dan CodexGPT-6 Sol
Z.ai / GLM
PAYG
- BawaanGLM-5.3
glm-5.3Bawaan
Tampilkan semua 9 ID katalog
PAYG
glm-5.3bawaanglm-5.3-flashglm-5.3-flashxglm-5.2glm-5.1glm-5glm-4.7glm-4.7-flashxglm-4.7-flash
Kode tidak menerima jalur GLM Coding Plan.
- BawaanGLM-5.3
OpenRouter
Layanan routing
- PemilihFree (smoke)
openrouter/openrouter/freeRouter - PemilihAuto (variable)
openrouter/openrouter/autoRouter
Pilihan router, bukan satu model tetap. ID yang dikonfigurasi secara eksplisit juga dapat dipertahankan.
- PemilihFree (smoke)
TypeSafe / Jev
Khusus penilaian · terpisah dari pembuatan teks
- Langsung
jev-1.13.0Khusus keputusan - Melalui OpenRouter
typesafe/jev-1.13Khusus keputusan
Adapter opsional yang hanya membuat penilaian; bukan model pembuat teks utama. Mesin penilaian bawaan adalah llm, dan Jev harus dipilih. Konfigurasi studi Jev sendiri mengikuti catatan di tampilan Jev.
- Langsung
SumberGEODE main 373d420Commit publik October 7, 2026 · diperiksa October 8, 2026
Eksperimen
Model dan jalur sebagaimana tercatat saat itu, bukan bawaan saat ini atau daftar kompatibilitas lengkap.
Laporan benchmark GEODE
July 31, 2026
- GEODEGPT-5.6 Sol
gpt-5.6-solLangganan OpenAI · high
- GEODEGPT-5.6 Sol
Terminal-Bench 2.1 · spesifikasi berpasangan Harbor 0.22.0
August 27, 2026
- GEODE · native CodexGPT-5.6 Sol
gpt-5.6-sollangganan · max
Spesifikasi yang dibekukan; tidak setiap percobaan yang direncanakan menjadi hasil yang valid.
- GEODE · native CodexGPT-5.6 Sol
Eksekusi SIL terarsip run-2606-broken-tool-use
- Scaffold targetGPT-5.5
gpt-5.5openai-codex - Auditor · penilaiClaude Opus 4.8
claude-opus-4-8PAYG
Catatan tentang peran yang terpisah, bukan dua bawaan yang dapat saling menggantikan.
- Scaffold targetGPT-5.5