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
고치기 전에, 이미 있는 것부터 찾았습니다.
과제: 다섯 테이블로 된 소셜 서비스에 행 단위 보안 정책을 거는 일.
- 조사테이블 다섯 개의 구조, 이미 있던 보조 함수 4개, 모두 꺼진 RLS, 정책·권한·역할을 읽었습니다.
- 실행트랜잭션 한 번으로 정책 20개와 RLS를 걸었습니다. 기존 함수 3개를 다시 쓰고 새 함수는 3개.
- 검증18개 통과, 0개 실패. 9턴 13번의 도구 응답은 모두 오류 없이 돌아왔습니다.
검증기 출력 18줄 (원문)
- 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)
설정된 평가 환경에서의 지난 실행 기록입니다. 실시간 데이터베이스나 실제 보안 사고가 아닙니다. 정책 전의 행 수는 기록에 없어 보여 주지 않습니다. 공개 실행 기록 (meta.json, 커밋 23e3428)
결과를 되짚어 고치는 단계(Reflexion에서 영감을 받은, 같은 작업 안의 수정)는 현재 GEODE 런타임의 기능입니다. 이 기록에는 그런 수정이 나타나지 않습니다. 모든 도구 응답이 오류 없이 돌아왔습니다. 런타임 문서 (hook-system.md)
다음 행동은 모델이 고르고, 실행 경계는 호스트가 지킵니다.
요청이 세션으로 들어와 모델을 부르고, 모델이 제안한 도구 호출이 권한 확인을 거쳐 실행된 뒤 결과와 기록이 남기까지의 런타임 구성입니다. 흐름을 고르면 그 경로만 번호와 함께 강조됩니다.
다음 행동은 모델이 고르고, 도구 실행 권한과 작업 완료는 런타임이 확인합니다.
외부 Scaffold Search · SIL 실험은 May 15, 2026 시작
PyPI 패키지 geode-agent나 공개 저장소로 설치해 내 컴퓨터의 터미널에서 실행합니다. MCP 서버로도 연결할 수 있습니다.
요청 → 모델 호출
터미널 요청이 IPC로 들어와 세션이 구성되고, 루프가 시스템 프롬프트·대화·도구 스키마로 모델을 부르는 길입니다.
터미널 사용자데이터 흐름: prompt · cli.sockCLIPoller · IPC 소켓
core/serverthin CLI가 serve 데몬의 IPC 소켓(~/.geode/cli.sock)으로 요청을 보냅니다. REPL은 같은 세션 구성을 프로세스 안에서 씁니다.
CLIPoller · IPC 소켓
core/server권한 · 구성: create_session(IPC)SharedServices.create_sessionsupervised/services.py연결마다 세션을 구성합니다. 모드가 HITL 수준, 시간 예산, 거부할 도구를 정하고, BoundToolPlan을 고른 프로바이더에 맞게 투영합니다.
CLIPoller · IPC 소켓
core/server권한 · 구성: 요청마다 laneLaneQueue · session · globalsupervised/services.py요청을 실행하기 전에 같은 세션과 전역 lane을 함께 잡아 동시 실행을 제한합니다.
SharedServices.create_session
supervised/services.py권한 · 구성: ToolExecutor · AgenticLoopAgenticLoop · 6단계core/agent/loop같은 hook·MCP·스킬·자원 잠금을 공유하는 실행기와 루프를 한 쌍으로 만듭니다.
LaneQueue · session · global
supervised/services.py데이터 흐름: arun(prompt)AgenticLoop · 6단계core/agent/loop한 사용자 턴을 여섯 단계(입력 준비, 호출 준비, 프로바이더 호출, 도구 처리, 관측·압축, 종료)로 실행합니다.
시스템 프롬프트 · 선언된 소스
core/agent/loop데이터 흐름: 시스템 프롬프트adapter.acomplete · 실패 분류core/llm/adaptersGEODE.md에서 고른 절과 규칙 등 선언된 소스로 매 턴 만듭니다. ContextAssembler의 5단계 facade는 명시적으로 부를 때만 쓰이고, 기본 루프의 입력이 아닙니다.
대화 메시지 · ConversationContext
core/agent/loop데이터 흐름: 대화 메시지adapter.acomplete · 실패 분류core/llm/adapters대화 기록과 이전 도구 결과는 시스템 프롬프트와 따로 전달됩니다.
BoundToolPlan · 불변
core/tools/plan.py권한 · 구성: 도구 스키마adapter.acomplete · 실패 분류core/llm/adapters이번 단계에 묶인 BoundToolPlan의 도구만 모델에 보입니다. 세대와 내용 hash가 있는 불변 스냅샷입니다.
AgenticLoop · 6단계
core/agent/loop데이터 흐름: StepSnapshot · 요청adapter.acomplete · 실패 분류core/llm/adaptersStepSnapshot이 이번 호출의 모델·도구·상관 ID를 고정합니다. LLM 미들웨어는 묶인 어댑터를 바꿀 수 없습니다.
adapter.acomplete · 실패 분류
core/llm/adapters데이터 흐름: HTTPSLLM 프로바이더프로바이더별 어댑터가 호출합니다. 실패는 분류해 정해진 횟수 안에서만 재시도하거나 종료 사유로 끝냅니다.
adapter.acomplete · 실패 분류
core/llm/adapters데이터 흐름: 응답 · tool_useAgenticLoop · 6단계core/agent/loop텍스트만 오면 종료 판정으로, tool_use가 오면 도구 처리로 갑니다.
도구 권한 → 효과 → 결과
모델의 tool_use 제안이 확인을 모두 통과해야 실행되고, 거부 · 결과 · 오류가 모두 실행기에서 돌아와 다음 모델 입력이 되는 길입니다.
AgenticLoop · 6단계
core/agent/loop데이터 흐름: 대기 배치 · 라운드 저장SQLite messages · state.jsonmemory/session_checkpoint.pycheckpoint가 설정된 세션(checkpoint와 session id가 있을 때)에서는 도구를 실행하기 전에 제안된 배치를 저장하고, 저장하지 못하면 그 배치를 실행하지 않습니다. 실행이 끝난 배치도 다시 저장합니다. checkpoint 없이 부르는 호출자에는 이 보장이 적용되지 않습니다.
AgenticLoop · 6단계
core/agent/loop데이터 흐름: tool_use 블록ToolCallProcessortool_executor/processor.py모델의 제안은 권한이 아닙니다. 호출마다 루프의 모델·어댑터 정체성을 담은 ToolContext를 만듭니다.
ToolCallProcessor
tool_executor/processor.py데이터 흐름: aexecute범위 · 정책 · 스키마 검사tool_executor/executor.py세션 범위, 요청 미들웨어의 변환, 정책, 스키마를 차례로 확인합니다. 변환이 안전 등급이나 개인정보 분류를 낮추면 거부합니다.
BoundToolPlan · 불변
core/tools/plan.py권한 · 구성: 허용 · 안전 등급범위 · 정책 · 스키마 검사tool_executor/executor.py실행 handler와 안전 등급은 세션에 투영된 BoundToolPlan에서 옵니다.
PreToolUse · PostToolUse
tool_executor/executor.py권한 · 구성: PreToolUse · PostToolUseHookRegistry · 결정core/hooks공개 hook이 차단·인자 재작성·권한 요청을 결정하고, 재작성 뒤에는 범위·정책·스키마를 다시 확인합니다. 실행 뒤 hook은 맥락을 더하거나 결과를 막을 수 있습니다.
승인 · HITL
tool_executor/executor.py권한 · 구성: 승인 요청터미널 사용자IPC 세션의 승인 요청은 thin CLI로 전달됩니다. 사람이 없는 모드는 기본 거부 정책을 적용하며, 예외는 DAEMON의 computer use를 운영자가 따로 켜는 경우뿐입니다(켜지 않으면 막힘).
tool_executor/executor.py실행 전 거부: 실행 전 거부 결과ToolCallProcessor
tool_executor/processor.py범위 · 정책 · 스키마 검사, PreToolUse 차단, 승인 거부는 dispatch 없이 오류 결과로 돌아갑니다. 이 경우 이번 호출의 효과는 시작되지 않았습니다.
effect receipt
tool_executor/executor.py데이터 흐름: 효과 접수 · 확정EffectReceiptStorememory/effect_receipts.py파일 변경·외부 전송·관리 작업 같은 효과는 실행 전에 접수합니다. 결과가 불확실하면 다시 실행하지 않고 확인을 요구합니다.
자원 잠금 · dispatch
tool_executor/executor.py데이터 흐름: handler 호출도구 handler · bash · computercore/tools자원 키를 잠근 뒤 정해진 handler로 보냅니다. 마감 시간이 지나 중단해도 바깥 작업은 계속될 수 있습니다.
자원 잠금 · dispatch
tool_executor/executor.py데이터 흐름: MCP 호출MCPServerManagercore/mcp/manager.py자원 정책이 선언된 MCP 도구만 호출합니다.
MCPServerManager
core/mcp/manager.py데이터 흐름: tools/callMCP 서버서버 목록은 전역 설정과, 신뢰를 확인한 프로젝트 설정에서 옵니다. 신뢰 확인은 프로젝트 설정의 서버에만 적용되며, MCP 관리자가 확장 · 자원 정책을 적용합니다.
도구 handler · bash · computer
core/tools데이터 흐름: 파일 · git · 프로세스 변경파일 · git · 프로세스실행한 변경은 바깥 상태로 남습니다. checkpoint는 대화만 복구하며, 이 변경을 되돌리지 않습니다.
tool_executor/executor.py데이터 흐름: 결과 · 실행 뒤 오류ToolCallProcessor
tool_executor/processor.pydispatch 뒤의 정상 결과와 오류(시간 초과, 결과 불확실 포함)가 PostToolUse를 거쳐 돌아옵니다. 오류나 시간 초과는 바깥 작업이 멈췄거나 되돌려졌다는 뜻이 아닙니다.
ToolCallProcessor
tool_executor/processor.py데이터 흐름: tool_result대화 메시지 · ConversationContextcore/agent/loop정상 결과, 거부, 오류 모두 tool_result로 직렬화되어 다음 모델 입력의 메시지가 됩니다.
ToolCallProcessor
tool_executor/processor.py기록 · 관측: 호출 · 결과 관측SessionTimeline · append-onlyobservability/session_timeline.py호출과 그 결과(정상 · 오류)를 timeline에 남기며, 실행 전에 거부된 호출도 남습니다. 이 기록은 관측이며, 바깥 효과가 시작되었거나 성공했다는 증명이 아닙니다.
기록 · 복구 · 완료
checkpoint, timeline, 증거 행은 각자 따로 씁니다. 공유 트랜잭션이 없고, checkpoint는 대화만 복구합니다.
AgenticLoop · 6단계
core/agent/loop데이터 흐름: 대기 배치 · 라운드 저장SQLite messages · state.jsonmemory/session_checkpoint.pycheckpoint가 설정된 세션(checkpoint와 session id가 있을 때)에서는 도구를 실행하기 전에 제안된 배치를 저장하고, 저장하지 못하면 그 배치를 실행하지 않습니다. 실행이 끝난 배치도 다시 저장합니다. checkpoint 없이 부르는 호출자에는 이 보장이 적용되지 않습니다.
SQLite messages · state.json
memory/session_checkpoint.py데이터 흐름: 재개 복원AgenticLoop · 6단계core/agent/loop하나의 복원 경로로 메시지, 인지 상태, 가드 카운터를 되살립니다. 프로세스 안에만 있는 TaskGraph는 복구 대상이 아닙니다.
AgenticLoop · 6단계
core/agent/loop기록 · 관측: 턴 기록SessionTimeline · append-onlyobservability/session_timeline.pyappend-only 실행 기록입니다. 상태로 다시 재생하지 않습니다.
AgenticLoop · 6단계
core/agent/loop권한 · 구성: 완료 검증verify_turn_asynccore/agent/verify.py모델의 종료 제안은 Verify를 거쳐야 완료가 됩니다.
verify_turn_async
core/agent/verify.py권한 · 구성: PostVerify · StopHookRegistry · 결정core/hooks공개 hook 결정으로 이어서 고칠지 정하며, 이어서 고치기는 정해진 예산(기본 2회) 안에서만 합니다.
AgenticLoop · 6단계
core/agent/loop기록 · 관측: 증거 행 · best-effortEvidenceLedger · JSONLagent/evidence_ledger.pyredaction한 진단 행입니다. hash는 상관관계용이며, 행이 있다고 효과가 일어났다는 증명은 아닙니다. timeline·checkpoint와 한 트랜잭션으로 쓰지 않습니다.
AgenticLoop · 6단계
core/agent/loop기록 · 관측: 인지 · 생명주기 이벤트HookSystem · 관측core/hooks관측 hook은 이벤트를 받아 기록할 뿐 실행을 결정하지 않습니다.
다른 진입 경로
메신저는 serve 데몬의 DAEMON 세션으로, 외부 MCP 호스트의 run_agent는 따로 만든 헤드리스 1회 루프로 들어옵니다.
메신저 채널데이터 흐름: 채널 메시지메신저 poller
core/serverserve 데몬의 poller가 바인딩된 채널의 메시지만 처리합니다.
메신저 poller
core/server권한 · 구성: create_session(DAEMON)SharedServices.create_sessionsupervised/services.py사람의 승인이 없는 모드라 기본 거부 정책과 시간 예산이 붙습니다. computer use만 운영자가 따로 켤 수 있고, 켜지 않으면 막힙니다.
메신저 poller
core/server데이터 흐름: arun(message)AgenticLoop · 6단계core/agent/loop같은 스레드는 고정된 session id로 하나의 checkpoint 흐름을 이어 씁니다.
외부 MCP 호스트데이터 흐름: run_agent(prompt)run_agent · 1회 실행
core/mcp_server.py외부 MCP 호스트가 GEODE를 도구로 부릅니다.
run_agent · 1회 실행
core/mcp_server.py데이터 흐름: 헤드리스 1회 루프AgenticLoop · 6단계core/agent/loopSharedServices를 거치지 않고 따로 만든 헤드리스 실행기와 루프입니다. 기본 거부 목록을 그대로 적용해 run_bash · delegate_task · computer 같은 도구가 빠지며, DAEMON의 computer use 예외는 여기에 없습니다.
모든 연결을 같은 굵기로 보여 줍니다. 흐름을 고르면 그 경로만 번호와 함께 강조됩니다.
- 실선 · 요청 · 메시지 · 도구 결과가 흐르는 방향
- 파선 · 세션 구성 · 권한 · 판정, 데이터 경로가 아님
- 긴 점선 · 기록 · 관측, 상태로 다시 재생하지 않음
- 짧은 파선 · 실행 전 거부 결과, 효과 없음
- 굵은 검은 선 · 고른 흐름, 번호는 순서
- 상자 · 코드 소유 경계, 머리말에 소스 경로
- 안쪽 칩 · 그 경계의 구성 요소
- 점선 상자 · 런타임 프로세스 밖
- 주황 테두리 · 모델이 판단하는 곳
- 실행 루프
- 권한 · 판정
- 기록 저장소
- 진입 · 연결 · 실행
실제 호출을 확인한 연결만 그렸습니다. ContextAssembler의 5단계 facade, TaskGraph, Jev · SIL · Crucible 같은 연구 실험은 이 런타임 경로에 넣지 않았습니다. 비동기 취소는 이미 시작된 동기 작업이나 일어난 효과를 멈추거나 되돌리지 않습니다.
지원 모델 · 프로바이더별
코드의 선택 목록과 출하 기본 설정입니다. 실제 API 호출로 하나씩 시험한 목록은 아닙니다. 대체 모델 체인은 기본으로 비어 있고, 정확한 ID를 최신 버전으로 자동 교체하지 않습니다.
Anthropic
API
- 주 모델Claude Opus 5.5
claude-opus-5-5기본 설정 - 보조Claude Sonnet 5
claude-sonnet-5기본 설정 - 저비용Claude Haiku 4.5
claude-haiku-4-5-20251001기본 설정
선택 목록 ID 12개 모두 보기
API
claude-fable-5-1claude-opus-5-5기본claude-opus-5claude-sonnet-5기본claude-haiku-4-5-20251001기본claude-fable-5claude-opus-4-8claude-opus-4-7claude-opus-4-6claude-opus-4-5claude-sonnet-4-6claude-sonnet-4-5-20250929
구독 OAuth 경로는 코드가 거부합니다.
- 주 모델Claude Opus 5.5
OpenAI
API · Codex 구독
- API · Codex 기본GPT-6 Sol
gpt-6-sol기본 설정
선택 목록 ID 11개 모두 보기
API · Codex 구독
gpt-6-astragpt-6-sol기본gpt-6-lunagpt-5.6-solgpt-5.6-terragpt-5.6-luna
API 전용
gpt-5.5gpt-5.3-codexgpt-5.4gpt-5.4-minigpt-5.4-nano
한 공급사의 두 접근 경로입니다. 모델마다 허용되는 경로는 선택 목록이 정합니다.
- API · Codex 기본GPT-6 Sol
Z.ai / GLM
PAYG
- 기본GLM-5.3
glm-5.3기본 설정
선택 목록 ID 9개 모두 보기
PAYG
glm-5.3기본glm-5.3-flashglm-5.3-flashxglm-5.2glm-5.1glm-5glm-4.7glm-4.7-flashxglm-4.7-flash
GLM Coding Plan 경로는 코드가 허용하지 않습니다.
- 기본GLM-5.3
OpenRouter
라우팅 서비스
- 선택기Free (smoke)
openrouter/openrouter/free라우터 - 선택기Auto (variable)
openrouter/openrouter/auto라우터
고정된 하나의 모델이 아니라 라우팅 선택입니다. 직접 지정한 ID도 남길 수 있습니다.
- 선택기Free (smoke)
TypeSafe / Jev
판단 전용 · 텍스트 생성과 별도
- 직접
jev-1.13.0판단 전용 - OpenRouter 경유
typesafe/jev-1.13판단 전용
루트 텍스트 생성 모델이 아니라 판단만 맡는 선택형 어댑터입니다. 기본 판단 엔진은 llm이고, Jev는 따로 골라야 합니다. Jev 연구 당시의 구성은 Jev 보기의 기록을 따릅니다.
- 직접
출처GEODE main 373d420공개 커밋 October 7, 2026 · 확인 October 8, 2026
실험 기록
그때 기록된 모델과 경로입니다. 현재 기본 설정이나 전체 호환 목록이 아닙니다.
GEODE 벤치마크 보고서
July 31, 2026
- GEODEGPT-5.6 Sol
gpt-5.6-solOpenAI 구독 · high
- GEODEGPT-5.6 Sol
Terminal-Bench 2.1 · Harbor 0.22.0 쌍 실행 명세
August 27, 2026
- GEODE · native CodexGPT-5.6 Sol
gpt-5.6-sol구독 · max
고정된 실행 명세이며, 계획한 시도가 모두 유효한 결과가 되지는 않았습니다.
- GEODE · native CodexGPT-5.6 Sol
SIL 보관 실행 run-2606-broken-tool-use
- 대상 scaffoldGPT-5.5
gpt-5.5openai-codex - 감사 · 판정Claude Opus 4.8
claude-opus-4-8PAYG
역할이 나뉜 기록이며, 바꿔 쓸 수 있는 두 기본값이 아닙니다.
- 대상 scaffoldGPT-5.5