GEODE . 문서
GitHub
핵심 개념
Explanation

두 개의 루프

나머지 문서가 기대는 멘탈 모델입니다. 안쪽 agentic 루프가 작업을 처리하고, 바깥쪽 루프가 작업을 처리하는 시스템 자체를 다듬습니다.

왜 루프가 둘인가

GEODE 안에는 서로 맞물린 루프가 둘 있습니다. 둘을 구분하면 나머지 문서가 한결 읽기 쉬워집니다. 안쪽 루프는 작업 하나를 처리합니다. 바깥쪽 루프는 그 작업을 처리하는 시스템을 시간을 두고 다듬습니다.

안쪽 루프는 매 요청마다 돕니다. 바깥쪽 루프는 가끔, 운영자가 돌릴 때 돕니다. 둘은 코드를 공유하지 않습니다. 대신 두 가지를 주고받습니다. 안쪽 루프가 입는 스캐폴드, 그리고 안쪽 루프가 남기는 기록입니다.

안쪽: agentic 루프

안쪽 루프는 작업 하나를 실행하는 기본 단위입니다. core/agent/loop/agent_loop.pyAgenticLoop가 그것입니다. 형태는 단순합니다. LLM을 호출하고, 모델이 요청한 도구를 실행하고, 결과를 관찰하고, 다시 호출합니다. 모델이 더 호출할 도구가 없거나 종료 신호를 보내면 멈춥니다.

call LLM -> tool calls? -> run tools -> observe -> call LLM ...
                  |
                  +-- no more tool calls -> answer

이 한 번의 실행이 끝나면 두 가지가 남습니다. 사용자에게 줄 결과, 그리고 무슨 일이 있었는지 기록한 트랜스크립트입니다. 트랜스크립트는 버려지지 않습니다. 바깥쪽 루프가 읽을 재료가 됩니다.

한 턴이 실제로 어떻게 도는지, 어떤 경로로 끝나는지는 안쪽 agentic 루프에서 자세히 다룹니다.

바깥쪽: 자기개선 루프

바깥쪽 루프가 다루는 대상은 작업이 아니라 시스템 자체입니다. 정확히는 모델을 감싼 스캐폴드, 곧 시스템 프롬프트 섹션(WRAPPER_PROMPT_SECTIONS)과 behaviour kinds입니다. 모델 가중치와 파라미터는 일절 건드리지 않습니다. 메커니즘은 선택입니다. 후보를 만들고, 측정하고, 더 나은 쪽만 남깁니다.

  1. 변이(mutate). 스캐폴드의 한 섹션을 한 번에 한 군데만 바꿉니다 (core/self_improving/loop/mutate).
  2. 감사(audit). 변이된 스캐폴드를 입은 GEODE를 Petri 적대적 안전 감사가 차원별로 채점합니다.
  3. fitness. 차원 점수를 스칼라 하나로 접습니다 (core/self_improving/fitness.py).
  4. margin 게이트. 측정 불확실성을 넘는 개선만 통과시킵니다 (core/self_improving/gate.py).
  5. 승격 또는 되돌림. 통과하면 새 champion으로 승격하고, 아니면 변이 이전 상태로 되돌립니다. 계보는 git champion chain으로 보존됩니다.

루프 드라이버는 core/self_improving/train.py입니다. 파일명은 Karpathy autoresearch의 3-파일 관습을 빌린 것으로, 실제 training은 일어나지 않습니다. 전체 그림은 자기개선 루프에서, 측정에 쓰는 평가 프레임워크는 Petri × GEODE에서 다룹니다.

둘이 맞물리는 방식

핵심은 두 루프가 직접 호출하지 않는다는 점입니다. 둘은 데이터로 연결됩니다. 안쪽 루프는 스캐폴드를 입고 행동하며 트랜스크립트를 만들고, 바깥쪽 루프는 그것을 감사로 읽어 스캐폴드를 바꿉니다. 바뀐 스캐폴드는 다음 번 안쪽 루프가 행동하는 방식을 바꿉니다.

바깥쪽 선택 루프(변이, Petri 감사, fitness, margin 게이트, champion chain)와 안쪽 agentic 루프(LLM 호출, 도구 실행, 관찰)가 나란히 있고, 스캐폴드는 안쪽으로 흐르며 트랜스크립트는 바깥쪽 감사로 돌아간다
두 루프는 호출이 아니라 데이터로 맞물립니다. 스캐폴드는 안쪽으로, 트랜스크립트는 바깥쪽 감사로 흐릅니다.

그래서 스캐폴드를 바꾸면 코드를 바꾸지 않아도 안쪽 루프의 행동이 달라집니다. 스캐폴드는 안쪽 루프가 입는 옷이고, 바깥쪽 루프는 그 옷을 고르는 쪽입니다. 한쪽은 입고 한쪽은 고릅니다. 둘은 그렇게 한 시스템으로 맞물립니다.