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

GEODE

Autonomous Agent Harness

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

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

2026.02.21 — present

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

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

GEODE runtime vocabulary

Lens
Agent Harness
ReAct
Runtime
External Loop
Data System
Improvement Mechanism
  1. reasoning
  2. action
  3. observation
  1. plan
  2. memory
  3. tools
  4. hook
  5. reflexion
  1. rollouts
  2. data curation
  3. data governance
  1. evaluation
  2. scaffold search
  3. 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

ก่อนเปลี่ยนสิ่งใด ค้นหาสิ่งที่มีอยู่แล้วก่อน

โจทย์: ความปลอดภัยระดับแถวสำหรับบริการโซเชียลที่มีห้าตาราง

  1. สำรวจการเรียก 1–12 · list_objects, get_object_details, execute_sqlอ่านห้าตาราง ฟังก์ชันช่วยสี่ตัวที่มีอยู่แล้ว RLS ที่ปิดอยู่ทั้งห้าตาราง รวมทั้งนโยบาย สิทธิ์ และบทบาท
  2. ลงมือการเรียก 13 · execute_sqlทรานแซกชันเดียว: นโยบาย 20 รายการและเปิด RLS โดยใช้ฟังก์ชันช่วยเดิม 3 ตัวซ้ำและเพิ่มฟังก์ชัน 3 ตัว
  3. ตรวจยืนยันฮาร์เนสการประเมิน · ไม่ใช่การเรียกของเอเจนต์ผ่าน 18 ล้มเหลว 0 การตอบกลับจากเครื่องมือทั้ง 13 ครั้งใน 9 เทิร์นกลับมาโดยไม่มีข้อผิดพลาด
เอาต์พุตของตัวตรวจยืนยัน 18 บรรทัด (ตามต้นฉบับ)
  1. RLS enabled on users
  2. RLS enabled on channels
  3. RLS enabled on channel_moderators
  4. RLS enabled on posts
  5. RLS enabled on comments
  6. Users can update their own profile
  7. Users blocked from updating other users' profiles
  8. Channel owners can update their channels
  9. Non-owners blocked from updating channels
  10. Post authors can update their posts
  11. Channel moderators can update posts in their channels
  12. Unauthorized users blocked from updating posts
  13. Comment authors can update their comments
  14. Post authors can moderate comments on their posts
  15. Channel owners can add moderators
  16. Non-owners blocked from adding moderators
  17. Content visibility varies correctly based on user context
  18. Anonymous users can see 3 public user profiles (correct)

การรันในอดีตใน sandbox การประเมินที่ตั้งค่าไว้ ไม่ใช่ฐานข้อมูลที่ใช้งานจริงหรือเหตุการณ์ด้านความปลอดภัยจริง จำนวนแถวก่อนมีนโยบายไม่มีในบันทึก จึงไม่แสดง บันทึกการรันสาธารณะ (meta.json, คอมมิต 23e3428)

การทบทวนผลลัพธ์และซ่อมแซม (ได้แรงบันดาลใจจาก Reflexion ภายในงานเดียวกัน) เป็นความสามารถของรันไทม์ GEODE ปัจจุบัน บันทึกนี้ไม่มีการซ่อมแซมเช่นนั้น: การตอบกลับจากเครื่องมือทุกครั้งกลับมาโดยไม่มีข้อผิดพลาด เอกสารรันไทม์ (hook-system.md)

โมเดลเลือกการกระทำถัดไป โฮสต์รักษาขอบเขตการรัน

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

การทดลอง Scaffold Search / SIL ภายนอกเริ่มเมื่อ May 15, 2026

ติดตั้งแพ็กเกจ geode-agent จาก PyPI หรือรีโพซิทอรีสาธารณะ แล้วรันจากเทอร์มินัลของคุณเอง เชื่อมต่อในฐานะเซิร์ฟเวอร์ MCP ได้ด้วย

สถาปัตยกรรมรันไทม์ · วาดจากเส้นทางโค้ดที่คอมมิตที่ตรึงไว้ 9e2c041
สถาปัตยกรรมรันไทม์ GEODEองค์ประกอบและการเชื่อมต่อของโปรเซสรันไทม์ GEODE คำขอเข้ามาทาง IPC ของเทอร์มินัล เมสเซนเจอร์ หรือโฮสต์ MCP ภายนอก แล้วกลายเป็นเซสชัน AgenticLoop เรียกโมเดลด้วยพรอมต์ระบบ บทสนทนา และสคีมาเครื่องมือ การเรียกเครื่องมือที่โมเดลเสนอจะรันได้ก็ต่อเมื่อผ่านการตรวจขอบเขต นโยบาย สคีมา hook และการอนุมัติของ ToolExecutor และผลลัพธ์จะกลายเป็นอินพุตถัดไปของโมเดล checkpoint, timeline และแถวหลักฐานเป็นที่เก็บที่แยกจากกันผู้ใช้เทอร์มินัลREPL · thin CLIช่องเมสเซนเจอร์Slack · Discord · Telegramโฮสต์ MCP ภายนอกเครื่องมือ run_agentผู้ให้บริการ LLMHTTPS · API ของโมเดลไฟล์ · git · โปรเซสสถานะนอก checkpointเซิร์ฟเวอร์ MCPส่วนกลาง + โปรเจกต์ที่เชื่อถือcore/serverCLIPoller · ซ็อกเก็ต IPCpoller ของเมสเซนเจอร์core/mcp_server.pyrun_agent · รันครั้งเดียวsupervised/services.pySharedServices.create_sessionLaneQueue · session · globalcore/agent/loopAgenticLoop · หกขั้นพรอมต์ระบบ · แหล่งที่ประกาศไว้ข้อความ · ConversationContextcore/llm/adaptersadapter.acomplete · ประเภทข้อผิดพลาดtool_executor/processor.pyToolCallProcessorcore/tools/plan.pyBoundToolPlan · เปลี่ยนแปลงไม่ได้tool_executor/executor.pyขอบเขต · นโยบาย · สคีมาPreToolUse · PostToolUseการอนุมัติ · HITLeffect receiptล็อกทรัพยากร · dispatchcore/toolshandler ของเครื่องมือ · bash · computercore/mcp/manager.pyMCPServerManagermemory/session_checkpoint.pySQLite messages · state.jsonmemory/effect_receipts.pyEffectReceiptStoreobservability/session_timeline.pySessionTimeline · append-onlyagent/evidence_ledger.pyEvidenceLedger · JSONLcore/agent/verify.pyverify_turn_asynccore/hooksHookRegistry · การตัดสินHookSystem · การสังเกตโปรเซสรันไทม์ GEODEserve daemon · REPL · รันครั้งเดียวทางเข้า · การประกอบเซสชันลูปการรัน · การเรียกโมเดลสิทธิ์เครื่องมือ · ผลกระทบบันทึก · การกู้คืน · การเสร็จสิ้น1 prompt · cli.sock · ผู้ใช้เทอร์มินัล → CLIPoller · ซ็อกเก็ต IPC12 create_session(IPC) · CLIPoller · ซ็อกเก็ต IPC → SharedServices.create_session23 lane ต่อคำขอ · CLIPoller · ซ็อกเก็ต IPC → LaneQueue · session · global34ToolExecutor · AgenticLoop5arun(prompt)6พรอมต์ระบบ7ข้อความ8สคีมาเครื่องมือ9StepSnapshot · คำขอ10HTTPS11 การตอบกลับ · tool_use · adapter.acomplete · ประเภทข้อผิดพลาด → AgenticLoop · หกขั้น111แบตช์ที่รอ · บันทึกรอบ2บล็อก tool_use3 aexecute · ToolCallProcessor → ขอบเขต · นโยบาย · สคีมา34อนุญาต · ระดับความปลอดภัย5PreToolUse · PostToolUse6คำขออนุมัติ7 ถูกปฏิเสธก่อนรัน · tool_executor/executor.py → ToolCallProcessor78รับผลกระทบเข้า · ยืนยัน9เรียก handler10 การเรียก MCP · ล็อกทรัพยากร · dispatch → MCPServerManager1011 tools/call · MCPServerManager → เซิร์ฟเวอร์ MCP1112 การเปลี่ยนไฟล์ · git · โปรเซส · handler ของเครื่องมือ · bash · computer → ไฟล์ · git · โปรเซส1213 ผลลัพธ์ · ข้อผิดพลาดหลัง dispatch · tool_executor/executor.py → ToolCallProcessor1314tool_result15การเรียก · การสังเกตผลลัพธ์1แบตช์ที่รอ · บันทึกรอบ2กู้คืนเพื่อทำต่อ3บันทึกเทิร์น4การตรวจความเสร็จ5PostVerify · Stop6แถวหลักฐาน · best-effort7อีเวนต์การรู้คิด · วงจรชีวิต1ข้อความในช่อง2 create_session(DAEMON) · poller ของเมสเซนเจอร์ → SharedServices.create_session23arun(message)4run_agent(prompt)5ลูปรันครั้งเดียวแบบ headless

คำขอ → การเรียกโมเดล

คำขอจากเทอร์มินัลเข้ามาทาง IPC ประกอบเป็นเซสชัน แล้วลูปเรียกโมเดลด้วยพรอมต์ระบบ บทสนทนา และสคีมาเครื่องมือ

  1. ผู้ใช้เทอร์มินัลการไหลของข้อมูล: prompt · cli.sockCLIPoller · ซ็อกเก็ต IPCcore/server

    thin CLI ส่งคำขอไปยังซ็อกเก็ต IPC ของ serve daemon (~/.geode/cli.sock) ส่วน REPL รันการประกอบเซสชันแบบเดียวกันภายในโปรเซส

  2. CLIPoller · ซ็อกเก็ต IPCcore/serverสิทธิ์ · การประกอบ: create_session(IPC)SharedServices.create_sessionsupervised/services.py

    การเชื่อมต่อแต่ละครั้งประกอบเป็นเซสชัน โหมดกำหนดระดับ HITL งบเวลา และเครื่องมือที่ถูกปฏิเสธ และฉาย BoundToolPlan ให้เข้ากับผู้ให้บริการที่เลือก

  3. CLIPoller · ซ็อกเก็ต IPCcore/serverสิทธิ์ · การประกอบ: lane ต่อคำขอLaneQueue · session · globalsupervised/services.py

    ก่อนรันคำขอ จะยึดทั้ง lane ของเซสชันและ lane ส่วนกลาง ซึ่งจำกัดการรันพร้อมกัน

  4. SharedServices.create_sessionsupervised/services.pyสิทธิ์ · การประกอบ: ToolExecutor · AgenticLoopAgenticLoop · หกขั้นcore/agent/loop

    สร้าง executor และลูปเป็นคู่เดียวที่ใช้ hook, MCP, skill และล็อกทรัพยากรร่วมกัน

  5. LaneQueue · session · globalsupervised/services.pyการไหลของข้อมูล: arun(prompt)AgenticLoop · หกขั้นcore/agent/loop

    รันหนึ่งเทิร์นของผู้ใช้ในหกขั้น: เตรียมอินพุต เตรียมการเรียก เรียกผู้ให้บริการ ประมวลผลเครื่องมือ สังเกตและบีบอัด สิ้นสุด

  6. พรอมต์ระบบ · แหล่งที่ประกาศไว้core/agent/loopการไหลของข้อมูล: พรอมต์ระบบadapter.acomplete · ประเภทข้อผิดพลาดcore/llm/adapters

    สร้างทุกเทิร์นจากแหล่งที่ประกาศไว้ เช่น ส่วนที่เลือกใน GEODE.md และกฎ facade ห้าชั้นของ ContextAssembler ใช้เฉพาะเมื่อเรียกอย่างชัดแจ้ง และไม่ใช่อินพุตของลูปเริ่มต้น

  7. ข้อความ · ConversationContextcore/agent/loopการไหลของข้อมูล: ข้อความadapter.acomplete · ประเภทข้อผิดพลาดcore/llm/adapters

    บทสนทนาและผลลัพธ์เครื่องมือก่อนหน้าส่งแยกจากพรอมต์ระบบ

  8. BoundToolPlan · เปลี่ยนแปลงไม่ได้core/tools/plan.pyสิทธิ์ · การประกอบ: สคีมาเครื่องมือadapter.acomplete · ประเภทข้อผิดพลาดcore/llm/adapters

    โมเดลเห็นเฉพาะเครื่องมือของ BoundToolPlan ที่ผูกกับขั้นนี้ ซึ่งเป็นสแนปช็อตที่เปลี่ยนแปลงไม่ได้ มีเจเนอเรชันและแฮชเนื้อหา

  9. AgenticLoop · หกขั้นcore/agent/loopการไหลของข้อมูล: StepSnapshot · คำขอadapter.acomplete · ประเภทข้อผิดพลาดcore/llm/adapters

    StepSnapshot ตรึงโมเดล เครื่องมือ และ correlation ID ของการเรียกครั้งนี้ มิดเดิลแวร์ LLM สลับ adapter ที่ผูกไว้ไม่ได้

  10. adapter.acomplete · ประเภทข้อผิดพลาดcore/llm/adaptersการไหลของข้อมูล: HTTPSผู้ให้บริการ LLM

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

  11. adapter.acomplete · ประเภทข้อผิดพลาดcore/llm/adaptersการไหลของข้อมูล: การตอบกลับ · tool_useAgenticLoop · หกขั้นcore/agent/loop

    ข้อความล้วนไปสู่การสิ้นสุด tool_use ไปสู่การประมวลผลเครื่องมือ

สิทธิ์เครื่องมือ → ผลกระทบ → ผลลัพธ์

ข้อเสนอ tool_use จะรันได้ก็ต่อเมื่อผ่านการตรวจทุกขั้น การปฏิเสธ ผลลัพธ์ และข้อผิดพลาด ล้วนกลับมาจาก executor และกลายเป็นอินพุตถัดไปของโมเดล

  1. AgenticLoop · หกขั้นcore/agent/loopการไหลของข้อมูล: แบตช์ที่รอ · บันทึกรอบSQLite messages · state.jsonmemory/session_checkpoint.py

    ในเซสชันที่ตั้งค่า checkpoint ไว้ (มี checkpoint และ session id) แบตช์ที่ถูกเสนอจะถูกบันทึกก่อนเครื่องมือใดจะรัน และแบตช์จะไม่รันหากบันทึกไม่ได้ แบตช์ที่รันเสร็จจะถูกบันทึกอีกครั้ง ผู้เรียกที่ไม่มี checkpoint ไม่ได้รับการรับประกันนี้

  2. AgenticLoop · หกขั้นcore/agent/loopการไหลของข้อมูล: บล็อก tool_useToolCallProcessortool_executor/processor.py

    ข้อเสนอของโมเดลไม่ใช่สิทธิ์ การเรียกแต่ละครั้งได้รับ ToolContext ที่มีตัวตนของโมเดลและ adapter ของลูป

  3. ToolCallProcessortool_executor/processor.pyการไหลของข้อมูล: aexecuteขอบเขต · นโยบาย · สคีมาtool_executor/executor.py

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

  4. BoundToolPlan · เปลี่ยนแปลงไม่ได้core/tools/plan.pyสิทธิ์ · การประกอบ: อนุญาต · ระดับความปลอดภัยขอบเขต · นโยบาย · สคีมาtool_executor/executor.py

    handler ที่รันได้และระดับความปลอดภัยมาจาก BoundToolPlan ที่ฉายให้เซสชัน

  5. PreToolUse · PostToolUsetool_executor/executor.pyสิทธิ์ · การประกอบ: PreToolUse · PostToolUseHookRegistry · การตัดสินcore/hooks

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

  6. การอนุมัติ · HITLtool_executor/executor.pyสิทธิ์ · การประกอบ: คำขออนุมัติผู้ใช้เทอร์มินัล

    ในเซสชัน IPC คำขออนุมัติถูกส่งต่อไปยัง thin CLI โหมดที่ไม่มีคนใช้นโยบายปฏิเสธเป็นค่าเริ่มต้น ข้อยกเว้นเดียวคือ computer use ของ DAEMON เมื่อผู้ดูแลระบบเปิดใช้แยกต่างหาก (ไม่เช่นนั้นจะถูกบล็อก)

  7. tool_executor/executor.pyการปฏิเสธก่อนรัน: ถูกปฏิเสธก่อนรันToolCallProcessortool_executor/processor.py

    การปฏิเสธจากขอบเขต นโยบาย หรือสคีมา การบล็อกของ PreToolUse หรือการอนุมัติที่ถูกปฏิเสธ จะกลับมาเป็นผลลัพธ์ข้อผิดพลาดโดยไม่มี dispatch ในกรณีนั้นยังไม่มีผลกระทบใดของการเรียกนี้เริ่มขึ้น

  8. effect receipttool_executor/executor.pyการไหลของข้อมูล: รับผลกระทบเข้า · ยืนยันEffectReceiptStorememory/effect_receipts.py

    ผลกระทบ เช่น การเปลี่ยนไฟล์ ข้อความขาออก หรือการดำเนินการด้านผู้ดูแล จะถูกรับเข้าก่อนรัน ผลลัพธ์ที่ไม่แน่นอนจะไม่ถูกรันซ้ำ แต่จะขอการกระทบยอด

  9. ล็อกทรัพยากร · dispatchtool_executor/executor.pyการไหลของข้อมูล: เรียก handlerhandler ของเครื่องมือ · bash · computercore/tools

    ส่งไปยัง handler ที่ผูกไว้หลังล็อกคีย์ทรัพยากร การเรียกที่ถูกยกเลิกเมื่อถึงเส้นตายอาจยังทำงานอยู่ภายนอก

  10. ล็อกทรัพยากร · dispatchtool_executor/executor.pyการไหลของข้อมูล: การเรียก MCPMCPServerManagercore/mcp/manager.py

    เรียกเฉพาะเครื่องมือ MCP ที่ประกาศนโยบายทรัพยากรไว้

  11. MCPServerManagercore/mcp/manager.pyการไหลของข้อมูล: tools/callเซิร์ฟเวอร์ MCP

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

  12. handler ของเครื่องมือ · bash · computercore/toolsการไหลของข้อมูล: การเปลี่ยนไฟล์ · git · โปรเซสไฟล์ · git · โปรเซส

    การเปลี่ยนแปลงที่รันแล้วคงอยู่เป็นสถานะภายนอก checkpoint กู้คืนเฉพาะบทสนทนาและไม่ย้อนการเปลี่ยนแปลงเหล่านั้น

  13. tool_executor/executor.pyการไหลของข้อมูล: ผลลัพธ์ · ข้อผิดพลาดหลัง dispatchToolCallProcessortool_executor/processor.py

    หลัง dispatch ผลลัพธ์ปกติและข้อผิดพลาด (รวมถึงการหมดเวลาและผลลัพธ์ที่ไม่แน่นอน) กลับมาผ่าน PostToolUse ข้อผิดพลาดหรือการหมดเวลาไม่ได้หมายความว่างานภายนอกหยุดหรือถูกย้อนกลับ

  14. ToolCallProcessortool_executor/processor.pyการไหลของข้อมูล: tool_resultข้อความ · ConversationContextcore/agent/loop

    ผลลัพธ์ การปฏิเสธ และข้อผิดพลาด ล้วนถูกซีเรียลไลซ์เป็น tool_result และกลายเป็นข้อความในอินพุตถัดไปของโมเดล

  15. ToolCallProcessortool_executor/processor.pyบันทึก · การสังเกต: การเรียก · การสังเกตผลลัพธ์SessionTimeline · append-onlyobservability/session_timeline.py

    บันทึกการเรียกและผลลัพธ์ (ok หรือ error) ลงใน timeline รวมถึงการเรียกที่ถูกปฏิเสธก่อนรัน บันทึกนี้เป็นการสังเกต ไม่ได้พิสูจน์ว่าผลกระทบภายนอกเริ่มขึ้นหรือสำเร็จ

บันทึก · การกู้คืน · การเสร็จสิ้น

checkpoint, timeline และแถวหลักฐานถูกเขียนแยกกัน ไม่มีทรานแซกชันร่วม และ checkpoint กู้คืนเฉพาะบทสนทนา

  1. AgenticLoop · หกขั้นcore/agent/loopการไหลของข้อมูล: แบตช์ที่รอ · บันทึกรอบSQLite messages · state.jsonmemory/session_checkpoint.py

    ในเซสชันที่ตั้งค่า checkpoint ไว้ (มี checkpoint และ session id) แบตช์ที่ถูกเสนอจะถูกบันทึกก่อนเครื่องมือใดจะรัน และแบตช์จะไม่รันหากบันทึกไม่ได้ แบตช์ที่รันเสร็จจะถูกบันทึกอีกครั้ง ผู้เรียกที่ไม่มี checkpoint ไม่ได้รับการรับประกันนี้

  2. SQLite messages · state.jsonmemory/session_checkpoint.pyการไหลของข้อมูล: กู้คืนเพื่อทำต่อAgenticLoop · หกขั้นcore/agent/loop

    เส้นทางกู้คืนเส้นเดียวนำข้อความ สถานะการรู้คิด และตัวนับของ guard กลับมา TaskGraph ที่อยู่เฉพาะในโปรเซสไม่ถูกกู้คืน

  3. AgenticLoop · หกขั้นcore/agent/loopบันทึก · การสังเกต: บันทึกเทิร์นSessionTimeline · append-onlyobservability/session_timeline.py

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

  4. AgenticLoop · หกขั้นcore/agent/loopสิทธิ์ · การประกอบ: การตรวจความเสร็จverify_turn_asynccore/agent/verify.py

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

  5. verify_turn_asynccore/agent/verify.pyสิทธิ์ · การประกอบ: PostVerify · StopHookRegistry · การตัดสินcore/hooks

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

  6. AgenticLoop · หกขั้นcore/agent/loopบันทึก · การสังเกต: แถวหลักฐาน · best-effortEvidenceLedger · JSONLagent/evidence_ledger.py

    แถววินิจฉัยที่ปิดบังข้อมูลแล้ว แฮชใช้เพื่อเชื่อมโยงความสัมพันธ์ แถวไม่ได้พิสูจน์ว่าผลกระทบเกิดขึ้น และไม่ได้เขียนในทรานแซกชันเดียวกับ timeline หรือ checkpoint

  7. AgenticLoop · หกขั้นcore/agent/loopบันทึก · การสังเกต: อีเวนต์การรู้คิด · วงจรชีวิตHookSystem · การสังเกตcore/hooks

    hook การสังเกตรับและบันทึกอีเวนต์ แต่ไม่ได้ตัดสินการรัน

ทางเข้าอื่น

เมสเซนเจอร์เข้ามาเป็นเซสชัน DAEMON ของ serve daemon ส่วน run_agent ของโฮสต์ MCP ภายนอกเข้าสู่ลูปรันครั้งเดียวแบบ headless ที่สร้างแยกต่างหาก

  1. ช่องเมสเซนเจอร์การไหลของข้อมูล: ข้อความในช่องpoller ของเมสเซนเจอร์core/server

    poller ของ serve daemon จัดการเฉพาะข้อความจากช่องที่ผูกไว้

  2. poller ของเมสเซนเจอร์core/serverสิทธิ์ · การประกอบ: create_session(DAEMON)SharedServices.create_sessionsupervised/services.py

    โหมดที่ไม่มีคนอนุมัติ: ใช้นโยบายปฏิเสธเริ่มต้นและงบเวลา มีเพียง computer use ที่ผู้ดูแลระบบเปิดใช้แยกได้ หากไม่เปิดก็ยังถูกบล็อก

  3. poller ของเมสเซนเจอร์core/serverการไหลของข้อมูล: arun(message)AgenticLoop · หกขั้นcore/agent/loop

    เธรดหนึ่งใช้ session id คงที่เพียงค่าเดียวและต่อสายโซ่ checkpoint เดียว

  4. โฮสต์ MCP ภายนอกการไหลของข้อมูล: run_agent(prompt)run_agent · รันครั้งเดียวcore/mcp_server.py

    โฮสต์ MCP ภายนอกเรียก GEODE ในฐานะเครื่องมือ

  5. run_agent · รันครั้งเดียวcore/mcp_server.pyการไหลของข้อมูล: ลูปรันครั้งเดียวแบบ headlessAgenticLoop · หกขั้นcore/agent/loop

    executor และลูปแบบ headless ที่สร้างแยกต่างหากโดยข้าม SharedServices รายการปฏิเสธเริ่มต้นใช้ตามเดิม เครื่องมือเช่น run_bash, delegate_task และ computer จึงถูกนำออก ข้อยกเว้น computer use ของ DAEMON ไม่มีในที่นี้

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

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

วาดเฉพาะการเชื่อมต่อที่ยืนยันการเรียกแล้ว facade ห้าชั้นของ ContextAssembler, TaskGraph และการทดลองวิจัยเช่น Jev, SIL และ Crucible ไม่อยู่บนเส้นทางรันไทม์นี้ การยกเลิกแบบอะซิงโครนัสไม่ได้หยุดงานซิงโครนัสที่เริ่มไปแล้ว หรือย้อนผลกระทบที่เกิดขึ้นแล้ว

โมเดลที่รองรับ · ตามผู้ให้บริการ

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

  • Anthropic

    API

    • หลักClaude Opus 5.5claude-opus-5-5ค่าเริ่มต้น
    • รองClaude Sonnet 5claude-sonnet-5ค่าเริ่มต้น
    • ประหยัดClaude Haiku 4.5claude-haiku-4-5-20251001ค่าเริ่มต้น
    แสดง ID ในแคตตาล็อกทั้ง 12 รายการ

    API

    • claude-fable-5-1
    • claude-opus-5-5ค่าเริ่มต้น
    • claude-opus-5
    • claude-sonnet-5ค่าเริ่มต้น
    • claude-haiku-4-5-20251001ค่าเริ่มต้น
    • claude-fable-5
    • claude-opus-4-8
    • claude-opus-4-7
    • claude-opus-4-6
    • claude-opus-4-5
    • claude-sonnet-4-6
    • claude-sonnet-4-5-20250929

    โค้ดปฏิเสธเส้นทาง OAuth แบบสมาชิก

  • OpenAI

    API · สมาชิก Codex

    • ค่าเริ่มต้นของ API และ CodexGPT-6 Solgpt-6-solค่าเริ่มต้น
    แสดง ID ในแคตตาล็อกทั้ง 11 รายการ

    API · สมาชิก Codex

    • gpt-6-astra
    • gpt-6-solค่าเริ่มต้น
    • gpt-6-luna
    • gpt-5.6-sol
    • gpt-5.6-terra
    • gpt-5.6-luna

    API เท่านั้น

    • gpt-5.5
    • gpt-5.3-codex
    • gpt-5.4
    • gpt-5.4-mini
    • gpt-5.4-nano

    เส้นทางเข้าถึงสองทางสู่ผู้ให้บริการรายเดียว แคตตาล็อกกำหนดว่าแต่ละโมเดลใช้เส้นทางใดได้

  • Z.ai / GLM

    PAYG

    • ค่าเริ่มต้นGLM-5.3glm-5.3ค่าเริ่มต้น
    แสดง ID ในแคตตาล็อกทั้ง 9 รายการ

    PAYG

    • glm-5.3ค่าเริ่มต้น
    • glm-5.3-flash
    • glm-5.3-flashx
    • glm-5.2
    • glm-5.1
    • glm-5
    • glm-4.7
    • glm-4.7-flashx
    • glm-4.7-flash

    โค้ดไม่รับเส้นทาง GLM Coding Plan

  • OpenRouter

    บริการเราต์ติ้ง

    • ตัวเลือกโมเดลFree (smoke)openrouter/openrouter/freeเราเตอร์
    • ตัวเลือกโมเดลAuto (variable)openrouter/openrouter/autoเราเตอร์

    การเลือกของเราเตอร์ ไม่ใช่โมเดลตายตัวตัวเดียว ID ที่กำหนดเองอย่างชัดแจ้งก็เก็บไว้ได้

  • TypeSafe / Jev

    สำหรับการตัดสินเท่านั้น · แยกจากการสร้างข้อความ

    • โดยตรงjev-1.13.0ใช้ตัดสินใจเท่านั้น
    • ผ่าน OpenRoutertypesafe/jev-1.13ใช้ตัดสินใจเท่านั้น

    adapter ทางเลือกที่ทำหน้าที่ตัดสินเท่านั้น ไม่ใช่โมเดลสร้างข้อความหลัก เอนจินการตัดสินเริ่มต้นคือ llm และต้องเลือก Jev เอง การตั้งค่าของงานวิจัย Jev เป็นไปตามบันทึกในมุมมอง Jev

แหล่งที่มาGEODE main 373d420คอมมิตสาธารณะ October 7, 2026 · ตรวจเมื่อ October 8, 2026

การทดลอง

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

  • รายงานเบนช์มาร์ก GEODE

    July 31, 2026

    • GEODEGPT-5.6 Solgpt-5.6-solสมาชิก OpenAI · high
  • Terminal-Bench 2.1 · ข้อกำหนดแบบจับคู่ Harbor 0.22.0

    August 27, 2026

    • GEODE · native CodexGPT-5.6 Solgpt-5.6-solสมาชิก · max

    ข้อกำหนดที่ตรึงไว้ ไม่ใช่ทุกการทดลองที่วางแผนไว้จะกลายเป็นผลลัพธ์ที่ใช้ได้

  • การรัน SIL ที่เก็บถาวร run-2606-broken-tool-use

    • scaffold เป้าหมายGPT-5.5gpt-5.5openai-codex
    • ผู้ตรวจสอบ · ผู้ตัดสินClaude Opus 4.8claude-opus-4-8PAYG

    บันทึกของบทบาทที่แยกกัน ไม่ใช่ค่าเริ่มต้นสองค่าที่สลับกันได้