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 하네스들이 수렴한 방식입니다.
웹 탐색과 위임 규칙
일반 웹 탐색은 general_web_search와read_web_page가 담당합니다. 단, 런타임 가드레일이 하나 있습니다. 한 턴에 이 도구들을 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 서버. 외부 도구를 붙이는 클라이언트 측.
- 서브에이전트 오케스트레이션. 위임이 실행되는 곳.