레퍼런스
레퍼런스
프론티어 비교
GEODE를 다섯 frontier 하네스 (Hermes, OpenClaw, Claude Code, Codex CLI, Karpathy autoresearch)와 나란히 비교. 먼저 아키텍처 수준, 이후 프롬프트 시스템 내부로 파고듭니다.
시스템 수준 포지셔닝
6개 하네스에 걸친 최상위 차이. GEODE는 종합입니다. 각 행은 최소 하나의 frontier 시스템에서 빌려옵니다. 소스에 명시적으로 인용된 패턴은 다음과 같습니다. Claude Code while(tool_use), Codex CLI sandbox-default, OpenClawPolicy Chain + Lane Queue, Karpathy P1-P10.
| 축 | Claude Code | Codex CLI | OpenClaw | Hermes | autoresearch | GEODE |
|---|
| 목적 | Coding assist | Code automation | Multi-channel gateway | Self-learning agent | Autonomous ML loop | 장기 실행 자율 실행 |
| 도메인 | code | code | chat routing | open-domain | ML loop | daemon-backed runtime, skills, MCP, and tool registry |
| 주요 기본 단위 | while(tool_use) | sandbox + approve | gateway + lane | skill loop | branchless dumb platform | StateGraph + agentic 루프 |
| 메모리 | bash 세션 + ~/.claude | — | 채널별 저장소 | persistent + skill 카탈로그 | program.md | 5계층 (Org / Project / Session / Vault / Breadcrumb) |
| 검증 | — | sandbox | policy chain | — | ratchet | G1-G4 + Cross-LLM + Rights Risk |
| 자동화 트리거 | 훅 (수동) | — | cron + standing order | skill auto-generate | overnight 루프 | hook 이벤트 + 스케줄러 |
| 멀티 LLM | Anthropic only | OpenAI only | 8+ providers | Anthropic-centric | (single) | 4 프로바이더 (Anthropic + Codex + PAYG + GLM) |
| 서브 에이전트 | Task tool | — | plugin | spawn + announce | — | 차용 (Task tool + OpenClaw Spawn+Announce) |
| 샌드박스 | — | OS 수준 | gateway 격리 | — | 제약 루프 | 6계층 Policy Chain |
GEODE만이 가진 것
- 도메인 검증 분리. 편향 검출과 golden-set 캘리브레이션은 외부 도메인 플러그인이 소유합니다. GEODE 코어는 G1-G4, Cross-LLM, Rights Risk와 런타임 경계만 유지합니다.
- Cause-Action 결정 트리. 6 cause → 5 action이 외부 도메인 플러그인에서 제공됩니다. 코어는 런타임 경계만 유지합니다.
- 플러그인 독립 캘리브레이션. Golden Set, fixture 비교, PASS 임계값은 플러그인 패키지에서 버전 관리됩니다.
- Equivalence-class 폴백. 프로바이더 변형 (예)
openai-codex ↔ openai PAYG)이 구독 우선순위 순서대로 자동 시도됩니다. core/llm/routing/plan_registry.py:resolve_routing 경유. - ChatGPT Plus JWT 검증. auth claim
chatgpt_plan_type이 OAuth 시점에 추출되어 Plan 레코드에 임베드됩니다 (core/auth/oauth_login.py). 엔타이틀먼트 확인에 별도 API 호출이 필요 없습니다.
정의 계층
| 축 | GEODE | Hermes | OpenClaw | Claude Code |
|---|
| 소스 위치 | core/llm/prompts/*.md | agent/prompt_builder.py (Python const) | src/agents/system-prompt.ts (TS const) | constants/prompts.ts (TS const) |
| 빌드 시점 | 모듈 임포트 | 세션 시작 (캐시) | 호출별 모듈식 | 턴별 동적 |
| 사용자 메모리 | 5계층 ~/.geode/memory/ | Frozen JSON 스냅샷 | Workspace HEARTBEAT.md | CLAUDE.md (4계층) |
어셈블리
| 축 | GEODE | Hermes | OpenClaw | Claude Code |
|---|
| 결과 타입 | AssembledPrompt(frozen=True) | str 캐시됨 | String 반환 | TextBlockParam[] |
| 오버라이드 정책 | 기본 append-only | 파라미터로 append | 파라미터로 append | 5단계 우선순위 체인 |
| 스킬 포맷 | Markdown 블록 | XML <available_skills> | XML <available_skills> | XML 레지스트리 |
| Truncation 이벤트 로그 | 훅의 truncation_events | 로거만 | Report 객체 | 추적 안 함 |
해싱 및 무결성
| 축 | GEODE | Hermes | OpenClaw | Claude Code |
|---|
| 알고리즘 | SHA-256[:12] | None | SHA-256 (전체) | SHA-256[:3] |
| 핀 / CI 게이트 | 예. _PINNED_HASHES | None | 탐지만 | None (attribution만) |
| 정규화 | UTF-8 / json sort_keys | mtime + size manifest | CRLF strip + sort + lowercase | (model, toolNames, sysLen) tuple |
캐싱
| 축 | GEODE | Hermes | OpenClaw | Claude Code |
|---|
| Anthropic ephemeral | 예. system + STATIC/DYNAMIC | 예. system_and_3 | 예. 경계 마커 | 예. global/org scope |
| 경계 마커 | __GEODE_PROMPT_CACHE_BOUNDARY__ | None | <!-- OPENCLAW_CACHE_BOUNDARY --> | __SYSTEM_PROMPT_DYNAMIC_BOUNDARY__ |
| 메시지 히스토리 캐시 | No (오픈 GAP) | 예. 직전 3 | 예. 직전 user 메시지 | 예. 직전 user 블록 |
| 사용 breakpoint / 4 | 1-2 | 4 | 2-3 | 3-4 |
관측성
| 축 | GEODE | Hermes | OpenClaw | Claude Code |
|---|
| 주 채널 | PROMPT_ASSEMBLED 훅 payload | 60자 preview 로그 | cache-trace.ts JSONL | logEvent('tengu_*') 텔레메트리 |
| 외부 트레이싱 | OTLP optional | None | 자체 JSONL | 자체 텔레메트리 |
| 트레이스의 프롬프트 텍스트 | 해시만 | 세션 DB에 저장 | 기본은 해시 | 텔레메트리에 없음 |
보안
| 축 | GEODE | Hermes | OpenClaw | Claude Code |
|---|
| 프롬프트 인젝션 스캔 | 없음 (오픈 GAP) | 11 패턴 + invisible Unicode | 경로 / URL 정화 | 사용자 의도 신뢰 |
| Frozen 결과 | frozen=True | 관례 | 관례 | 관례 |
| 오버라이드 보안 | 기본 append-only | append-only | append-only | 우선순위 체인 |
왜 GEODE만이 ratchet으로 갈 수 있었나
GEODE의 프롬프트는 markdown 파일에 살고 있습니다. Hermes, OpenClaw, Claude Code는 프롬프트를 각각 TypeScript 또는 Python 소스 내부의 인라인 문자열로 유지합니다. 인라인 문자열은 자동 포맷터 노이즈, IDE 리네임, 머지 충돌 해소 과정에서 hashlib 기반 ratchet과 싸우게 됩니다. 외부 markdown은 파일을 변경 단위로 만들고, 그래서 해시가 의미를 갖게 됩니다.
비용은 이렇습니다. GEODE는 의도된 프롬프트 변경 시 한 단계 (재핀)를 더 지불하지만, 그 대가로 의도하지 않은 변경이 절대 출시되지 않는다는 CI 강제 보장을 얻습니다.