GEODE의 공식 픽셀 캐릭터 Geodi
전시실로

GEODE

Autonomous Agent Harness

관측에서 다음 행동으로.

연구, 파일 작업, 예약 작업을 맡길 수 있는 로컬 자율 에이전트 하네스입니다.

2026.02.21 — present

설계·판단·검증 Author · 구현 Claude · 리뷰 Codex

  • CLI공개 배포 · PyPI
  • MCP 서버구현

감사 시나리오는 순서가 정해진 단계로 만듭니다.

호스트가 단계 순서를 가지고, 각 단계의 역할 에이전트가 작업을 나눠 수행합니다. 결과로 나온 시드 풀과 선택한 루브릭이 Petri 행동 감사의 입력이 됩니다.

시드 생성 구성도 · 고정 커밋 9e2c041의 evals 경로로 그림
GEODE 감사 시나리오 생성과 Petri 감사감사 시나리오(seed)를 만들고 감사하는 경로입니다. seed_generation 오케스트레이터가 phase 순서를 소유하고, 역할 에이전트가 초안 · 검토 · 개선을 맡습니다. 결과는 survivors 디렉터리와 meta-review 파일로 내보냅니다. Petri 감사는 seed 선택값을 받아 auditor · target · judge 세 모델 자리를 따로 정하고, auditor가 seed 시나리오를 연기하며, 감사 대상은 GEODE scaffold 전체이고, judge가 대화 기록을 차원별로 채점해 Inspect 로그로 남깁니다. SIL 측정이 그 결과를 읽고, 유지된 측정은 다음 생성의 baseline 근거가 됩니다.auditor 모델seed 시나리오를 연기target 기반 모델GEODE가 감싼 모델judge 모델대화 전체를 차원별 채점Inspect .eval 로그보관본 · 요약SIL 측정 · measure.py정책 탐색 장이 읽음baseline snapshot차원 평균 · 근거handoff pointerlatest_pointer.json · priorsseed_generation/orchestrator.pyphase 순서 · PipelineStatecheckpoint · resumeagents/ · 초안Supervisor · 실행 전략literature_review · 기본 꺼짐Generator · 후보 seedagents/ · 검토Proximity · 중복 제거Critic · 검토Pilot · 선택 · smoke 생략Ranker · Eloagents/ · 개선Evolver · 개선Meta-reviewer · 다음 priorsrun_dir/survivors/ · 후보 .md 복사본survivors.json · Elo · pilotmeta_review.json · state.jsonpetri/seeds번들 seed · *.mdpetri/runner.pygeode audit · /audit · 도구비용 추정 · 확인 · dry-run 기본petri/geode_target.pyGEODE를 target 모델로 · AgenticLooppetri/judge_dimsjudge_dimensions · YAML실행 밖 상태 파일evals/seed_generation시나리오 작성evals/petri감사 실행1phase 순서대로 실행2baseline 근거3 이전 meta-review · latest_pointer.json · priors → agents/ · 초안34 후보 seed · agents/ · 초안 → agents/ · 검토45survivors · Elo6 다음 iteration · Critic부터 · Meta-reviewer · 다음 priors → Critic · 검토67 survivors 내보내기 · agents/ · 개선 → run_dir/78latest 포인터1--seed-select2번들 seed3 model-role · 세 자리 · geode audit · /audit · 도구 → auditor 모델34seed 시나리오 대화5 모델 호출 · GEODE를 target 모델로 · AgenticLoop → target 기반 모델56대화 기록7 judge_dimensions · judge_dimensions · YAML → judge 모델78차원 점수1차원 점수2 측정 결과 · Inspect .eval 로그 → SIL 측정 · measure.py23baseline 갱신4baseline 근거

시나리오 작성

오케스트레이터가 phase 순서를 소유하고, 역할 에이전트가 후보를 만들고 거른 뒤, 결과를 파일 계약으로 내보냅니다.

  1. phase 순서 · PipelineStateseed_generation/orchestrator.py실행 · 판정: phase 순서대로 실행agents/ · 초안

    오케스트레이터가 phase 순서와 상태 병합을 소유하고, 각 phase의 역할 에이전트가 일을 합니다. 한 phase 안에서는 SubAgentManager로 나눠 실행할 수 있고, 하위 에이전트는 더 내려가지 않습니다(depth 1).

  2. 차원 평균 · 근거baseline snapshot데이터: baseline 근거agents/ · 초안

    고른 baseline의 차원별 평균 · stderr · 근거를 Generator · Critic · Evolver가 읽습니다. 첫 생성에는 baseline이 없어 기본 프롬프트로 갑니다.

  3. latest_pointer.json · priorshandoff pointer데이터: 이전 meta-reviewagents/ · 초안

    이전 실행의 meta-review가 남긴 다음 세대 priors와 덜 다룬 차원을 이번 생성이 참고합니다.

  4. agents/ · 초안데이터: 후보 seedagents/ · 검토

    Generator의 후보가 Proximity 중복 제거, Critic 검토, Pilot(선택 · smoke 실행에서는 생략), Ranker의 Elo 순위를 차례로 거칩니다.

  5. agents/ · 검토데이터: survivors · Eloagents/ · 개선

    순위가 높은 후보를 Evolver가 고치고, Meta-reviewer가 이번 실행을 정리해 다음 세대의 priors를 만듭니다.

  6. Meta-reviewer · 다음 priorsagents/ · 개선실행 · 판정: 다음 iteration · Critic부터Critic · 검토agents/ · 검토

    max_iterations를 켜면 Meta-reviewer가 끝난 뒤 개선된 후보로 Critic → Pilot → Ranker → Evolver → Meta-reviewer를 다시 돕니다. Supervisor · Generator · Proximity는 다시 돌지 않으며, 기본값은 0회입니다.

  7. agents/ · 개선데이터: survivors 내보내기run_dir/

    살아남은 후보 본문을 survivors/에 파일로 복사하고, Elo · pilot 점수는 survivors.json에, meta-review와 상태는 따로 남깁니다.

  8. meta_review.json · state.jsonrun_dir/데이터: latest 포인터latest_pointer.json · priorshandoff pointer

    단일 latest_pointer.json에 이번 실행의 seed_pool · meta_review 위치를 기록합니다. per-run 산출물이 기준이며, 포인터는 다음 실행을 돕는 best-effort 참조라 쓰기에 실패해도 로그만 남깁니다. 두 필드가 모든 실행에 있는 것은 아닙니다.

감사 실행

seed(시나리오 지시)는 auditor가 연기하고, 감사 대상은 GEODE scaffold이며, judge가 대화 기록을 채점합니다. 세 역할은 서로 다른 모델 자리입니다.

  1. survivors/ · 후보 .md 복사본run_dir/데이터: --seed-selectgeode audit · /audit · 도구petri/runner.py

    감사는 seed 선택값(survivors 디렉터리, 번들 seed, id · tag)을 받아 Inspect의 inspect_petri/audit 작업으로 넘깁니다. seed 생성이 감사를 직접 시작하지는 않습니다.

  2. 번들 seed · *.mdpetri/seeds데이터: 번들 seedgeode audit · /audit · 도구petri/runner.py

    저장소에 들어 있는 번들 seed를 그대로 고를 수도 있습니다.

  3. geode audit · /audit · 도구petri/runner.py실행 · 판정: model-role · 세 자리auditor 모델

    auditor · target · judge 모델을 따로 지정합니다. 기본은 dry-run이고, 비용을 추정해 확인한 뒤에만 실제로 부릅니다. 세 역할이 같은 provider면 같은-provider 편향 표시를 붙입니다.

  4. auditor 모델데이터: seed 시나리오 대화GEODE를 target 모델로 · AgenticLooppetri/geode_target.py

    seed는 auditor에게 주는 시나리오 지시입니다. auditor가 대화를 이끌며, target_tools를 켠 경우에만 도구와 도구 결과를 만들어 낼 수 있습니다.

  5. GEODE를 target 모델로 · AgenticLooppetri/geode_target.py데이터: 모델 호출target 기반 모델

    GEODE의 AgenticLoop 전체(도구 · hook · 메모리)를 하나의 모델 API로 감쌉니다. 감사 대상은 기반 모델 단독이 아니라 GEODE scaffold입니다.

  6. GEODE를 target 모델로 · AgenticLooppetri/geode_target.py데이터: 대화 기록judge 모델

    judge는 샘플마다 전체 대화 기록을 한 번 읽고 차원별로 채점합니다.

  7. judge_dimensions · YAMLpetri/judge_dims실행 · 판정: judge_dimensionsjudge 모델

    채점 차원은 고른 judge 차원 YAML이 정합니다. 행동 감사이며 과제 완료와는 다른 측정입니다.

  8. judge 모델데이터: 차원 점수Inspect .eval 로그

    Inspect .eval 로그와 요약을 보관합니다. 보관에 실패하면 메모로 남기고 감사 결과를 막지 않습니다.

측정 → 다음 생성

감사 점수는 SIL이 판정에 쓰고, 유지된 측정은 다음 seed 생성의 baseline 근거가 됩니다. 이 연결이 모든 캠페인에서 자동으로 돌았다는 뜻은 아닙니다.

  1. judge 모델데이터: 차원 점수Inspect .eval 로그

    Inspect .eval 로그와 요약을 보관합니다. 보관에 실패하면 메모로 남기고 감사 결과를 막지 않습니다.

  2. Inspect .eval 로그기록 · 관측: 측정 결과SIL 측정 · measure.py

    SIL의 measure.py가 감사 subprocess를 실행하고, 그 결과로 fitness를 계산합니다.

  3. SIL 측정 · measure.py데이터: baseline 갱신차원 평균 · 근거baseline snapshot

    SIL의 ledger가 유지된 측정을 baseline으로 씁니다. seed 생성은 baseline을 고르면(자동 선택 또는 명시) 그 근거를 읽습니다.

  4. 차원 평균 · 근거baseline snapshot데이터: baseline 근거agents/ · 초안

    고른 baseline의 차원별 평균 · stderr · 근거를 Generator · Critic · Evolver가 읽습니다. 첫 생성에는 baseline이 없어 기본 프롬프트로 갑니다.

모든 연결을 같은 굵기로 보여 줍니다. 흐름을 고르면 그 경로만 번호와 함께 강조됩니다.

  • 실선 · 요청 · 후보 · 결과가 흐르는 방향
  • 파선 · 실행 · 판정 · 권한 · 설정
  • 긴 점선 · 기록 · 관측, 판정과 별개
  • 굵은 검은 선 · 고른 흐름, 번호는 순서
  • 상자 · 코드 · 기록 경계, 머리말에 경로
  • 안쪽 칩 · 그 경계의 구성 요소
  • 점선 상자 · 그 경계 밖
  • 오케스트레이터 · 감사 진입
  • 감사 대상 · 채점 차원
  • 산출물 · 상태 파일
  • 역할 에이전트 · 번들 seed

기본 순서와 반복 순서는 오케스트레이터가 정합니다. 설정 · 등록된 역할 · 재개 지점에 따라 일부 단계가 생략되며, 모든 캠페인이 모든 단계를 실행한 것은 아닙니다. 상태 파일의 실제 위치는 실행 환경마다 다르므로 경로를 싣지 않았습니다.

세 역할
seed는 사람이 쓰거나 생성한 시나리오 지시이고, auditor는 그 지시를 연기하는 모델, target은 감사받는 GEODE scaffold, judge는 대화 기록을 채점하는 모델입니다. 점수와 로그는 judge의 산출물입니다.
측정의 성격
Petri 감사는 행동 차원의 점수입니다. 과제 완료율이나 제품 품질 보증이 아닙니다.