GEODE의 탐색은 네 갈래입니다. 외부 문서 사이트, 일반 웹, 자기 자신의 기억, 그리고 도구 목록 자체. 이 페이지는 네 경로가 각각 어떤 규칙으로 움직이는지 코드 기준으로 정리합니다.
문서 사이트 리서치: llms.txt 우선
개발 도구나 라이브러리 문서를 조사할 때 GEODE는 HTML 내비게이션을 한 장씩 따라가지 않습니다. 사이트의 /llms.txt를 먼저 가져옵니다. llmstxt.org 컨벤션을 따르는 사이트는 전체 문서 페이지의 LLM 친화 인덱스를 그 경로에 발행하기 때문입니다.
web_fetch로/llms.txt를 먼저 조회합니다.- 인덱스에서 관련 링크만 골라 그 페이지들만 가져옵니다.
llms-full.txt(문서 전체를 한 파일로)는 넓은 범위가 정말 필요할 때만 씁니다. 매우 클 수 있습니다./llms.txt가 없으면(404 또는 HTML 응답) 해당 사이트로 범위를 좁힌general_web_search로 폴백합니다.
이 휴리스틱은 instruction 레벨로 구현되어 있습니다. 시스템 프롬프트(core/llm/prompts/router.md의 "Documentation-site research (llms.txt-first)" 절)와web_fetch 도구 설명(core/tools/definitions.json) 두 표면이 같은 지시를 싣습니다. frontier 하네스들이 수렴한 방식입니다.
딥리서치: 독립 축 병렬 수집
프로젝트의 deep-researcher 스킬은 질문·research gap· 검증할 claim을 먼저 정하고, 서로 독립인 조사 축만 한 번의 delegate_task batch로 보냅니다. 부모는 선행조건, 원문 확인, 모순 판정과 최종 종합을 계속 소유합니다. 자식 실패도 결과에서 제거하지 않으며, citation entailment, 최신성, 권위와 상충 근거를 검사합니다.
update_plan은 관측된 진행을 표시하는 advisory checklist일 뿐 실행기가 아닙니다. 런타임이 <plan>을 제공하면 스킬은 별도 체크리스트를 만들지 않고 그 단계 문구를 그대로 사용합니다. 결과를 파일이나 memory에 자동 저장하지도 않습니다.
짧은 독립 축은 delegate_task batch로 한 번에 회수합니다. 실행 중 재지시나 대기가 필요한 축만 spawn_agent로 열고, mailbox·wait·follow-up·interrupt 제어를 사용합니다. 두 경로 모두 depth 1이며 재귀 research tree를 만들지 않습니다.
자식 프로세스가 정상 종료해도 built-in role의 출력 schema 검증이 실패하면 SubResult.success=false입니다. batch 성공 수와 SubagentStop 상태는 실패로 수렴하지만, 검증 오류와 raw excerpt는 부모가 unresolved gap으로 종합할 수 있게 보존합니다.
지속 Goal과의 결합
사용자가 여러 turn에 걸친 지속 목표를 명시한 경우에만 create_goal을 사용합니다. Goal은 objective·token budget·누적 사용량·상태를 sessions.db에 보존하는 persistence·termination 제어 봉투입니다. 행동 선택과 실행은 AgenticLoop가 계속 소유합니다. 성공한 turn 뒤 상태가 active이면 다음 turn을 열고, complete·blocked·budget-limited 또는 오류에서 멈춥니다. 일반 리서치 요청은 Goal로 자동 승격하지 않습니다.
continuation은 현재 요청에만 붙는 contextual-user 입력이며 system prompt와 human transcript를 바꾸지 않습니다. 같은 text-only 응답이 반복되거나 한 public call에서 안전 상한에 닿으면 자동 진행만 멈추고 Goal은 active로 보존합니다. provider 호출은 완료까지 진행되고 token budget은 turn 종료 후 정산되어 다음 continuation admission을 닫습니다. 따라서 마지막 turn만큼 초과할 수 있고, 초과분은 사용량에 그대로 기록됩니다.
Goal 상태 전이는 canonical session event와 선택적 JSONL projection에 함께 남지만 objective 원문은 반복 저장하지 않고 digest만 기록합니다. geode serve가 실행 중이고 foreground Lane이 비어 있으면 active Goal의 동일 checkpoint를 새 generation으로 복원해 내부 continuation을 시작합니다. PAUSED·terminal·missing/corrupt checkpoint는 실행하지 않고, 정상 반환된 같은 Goal projection은 상태가 바뀌기 전까지 다시 admission하지 않습니다. 실행 예외는 1초 host tick에서 재시도하며 각 admission은 독립된 session metrics를 사용합니다.
hosted continuation도 기존 AgenticLoop를 통과하므로 tool loop, PostVerify revision, verify-fail replan, usage·evidence·trajectory writer가 그대로 적용됩니다. 이는 OS-level scheduler나 자동 Plan-and-Execute가 아니며, 여러 serve process 사이의 exactly-once 외부 부작용도 보장하지 않습니다. 결과는 별도 inbox로 복제하지 않고 동일 checkpoint와 session record에 남으며, 다음 gateway turn이 durable history를 이어받습니다. IPC resume는 같은 machine Lane 안에서 checkpoint를 다시 읽고, daemon 종료는 진행 중인 hosted turn에 30초 drain을 제공합니다.
Goal continuation과 실패 보존은GPT-5.6-Luna/max 행동 trajectory로 검증했습니다. 공개본은 38 events와 4/4 tool pair를 보존하고 private body는 digest로 치환합니다.
웹 탐색과 위임 규칙
일반 웹 탐색은 general_web_search와web_fetch가 담당합니다. GEODE의 instruction-level 정책은 한 턴에 이 도구들을 3회 이상 직접 호출하지 않고, delegate_task로 서브에이전트에 위임합니다(GEODE.md RUNTIME CANNOT). 이 행동 계약은 검색 결과로 인한 부모 컨텍스트 폭증을 막습니다. 서브에이전트는 web_research 툴킷 (core/tools/toolkits.toml)으로 격리된 컨텍스트에서 조사를 끝낸 뒤 요약만 돌려줍니다.
로컬 탐색: 기억과 세션
| 표면 | 무엇을 찾나 | 코드 |
|---|---|---|
/recall | 저장해 둔 기억 풀의 목록, 조회, 저장 | core/cli/commands/recall.py |
geode reindex | 모든 프로젝트의 sessions.db를 모아 ~/.geode/search/global.db FTS5 인덱스 재구축 | core/cli/commands/reindex.py |
query_memory | geode-mcp를 붙인 외부 호스트(Claude Code 등)에서 GEODE 메모리 계층 검색 | core/mcp_server.py |
recall_tool_result(ref_id) | 임계값을 넘겨 오프로드된 대형 도구 결과 재조회 | core/orchestration/tool_offload.py |
도구 탐색: deferred loading
도구 목록 자체도 탐색 대상입니다. 네이티브와 MCP 도구를 합친 수가 임계값을 넘으면 전체 스키마를 다 싣지 않고 tool_search메타 도구를 노출해, 에이전트가 필요한 도구를 찾아 그때 로드합니다. 항상 적재되는 도구는 소수로 고정되어 있습니다 (core/tools/registry.py의 deferred 경로).
이 사이트의 llms.txt
GEODE 문서 사이트도 같은 컨벤션으로 발행합니다. 빌드마다sync-stats가 사이트맵에서 재생성합니다.
- /geode/llms.txt. 섹션별 전체 페이지 인덱스.
- /geode/llms-full.txt. 문서 전체를 한 파일로.
다음
- 도구와 툴셋. deferred loading의 자세한 동작.
- MCP 서버. 외부 도구를 붙이는 클라이언트 측.
- 서브에이전트 오케스트레이션. 위임이 실행되는 곳.