GEODE . 문서
GitHub
GEODE 운영
How-to

장기 실행 안전

라운드, 시간, 비용 가드와 컨텍스트 오버플로 사다리입니다. 긴 실행이 어떻게 정직하게 끝나는지 다룹니다.

긴 실행의 위험은 셋입니다. 끝나지 않는 루프, 넘치는 컨텍스트, 불어나는 비용. AgenticLoop는 매 라운드 진입 시점에 가드를 검사하고, 걸리면 조용히 죽는 대신 이유가 적힌 termination_reason으로 끝납니다 (core/agent/loop/agent_loop.py).

라운드 진입 가드

가드기준종료 이유
라운드 상한max_rounds > 0일 때만. 0은 무제한이며 대화형 기본값입니다.max_rounds
실행 time budgettime_budget_s > 0일 때 wall-clock 검사. 게이트웨이 120초, 스케줄러 300초가 모드 기본값입니다.time_budget_expired
세션 budget세션 전체 기본 2시간 (core/agent/budget.py). 임계 도달 전 HANDOFF_TRIGGERED 훅이 한 번 발화해 인수인계 기회를 줍니다.session_time_budget_expired
비용 budgetcost_budget > 0이면 80%에서 1회 경고, 도달 시 종료. 세션 비용은 token tracker 누적치입니다.cost_budget_exceeded
overthinking 감지도구 호출 없이 고출력 텍스트 라운드가 연속되면 조용한 다운그레이드 대신 멈추고 사용자에게 묻습니다.user_clarification_needed

마무리 단계(force_text)에서는 적응형 컴퓨트가 걸립니다. max_tokens를 컨텍스트 윈도의 0.5%(하한 4096)로 줄이고 thinking을 끄고 effort를 낮춰, 마지막 응답이 예산을 더 태우지 않게 합니다.

컨텍스트 오버플로 사다리

오버플로 처리는 ContextWindowManager(core/agent/context_manager.py)에 위임되고, 프로바이더에 따라 갈립니다.

Anthropic   80%+  서버 사이드 compaction이 처리
            95%   클라이언트 emergency prune만 개입
OpenAI/GLM  80%   클라이언트 LLM 기반 compaction
            95%   emergency prune
공통        200K  초과 윈도 모델에도 200K 절대 상한
                  (rate-limit pool 분리) → 도구 결과 요약 + compact

전략 결정은 CONTEXT_OVERFLOW_ACTION 훅 핸들러에 위임되고, 핸들러가 없으면 하드코딩된 폴백을 씁니다. prune 후에도 critical이면 실행은 context_exhausted로 끝나며, 사용자 언어에 맞춘 안내문을 남깁니다 (core/agent/loop/models.py). API가 400 context-overflow를 돌려준 경우는 aggressive_context_recovery 후 재시도하고, 실패하면 같은 이유로 끝납니다.

도구 결과 오프로딩

임계값을 넘는 도구 결과는 컨텍스트에 그대로 쌓이지 않습니다. .geode/tool-offload/{session_id}/에 저장되고 컨텍스트에는 요약과 ref_id만 남으며, 필요하면 recall_tool_result(ref_id)로 다시 불러옵니다 (core/orchestration/tool_offload.py). 임계값은 tool_offload_threshold 설정이고 0이면 꺼집니다. 오프로드 시 TOOL_RESULT_OFFLOADED 훅이 발화합니다.

서브에이전트 경계

위임된 작업도 같은 규율을 따릅니다. 깊이 1 강제(재귀 금지), 세션당 15개 상한, 타임아웃 기본 600초 (GEODE_SUBAGENT_TIMEOUT_S, 10초에서 3600초로 clamp) 입니다 (core/agent/sub_agent.py).

운영 점검

> /status        # 데몬, 모델, MCP 상태
> /cost          # 세션 + 월간 비용
> /context       # 조립된 컨텍스트 계층 확인

실행이 어디서 어떻게 끝났는지는 멈춘 실행 디버깅의 transcript와 SQL event timeline 절차로 추적합니다.

다음