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

GEODE

Autonomous Agent Harness

관측에서 다음 행동으로.

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

2026.02.21 — present

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

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

한 번에 정책 하나만 바꾸고, 측정은 고정합니다.

하네스 밖에서 도는 별도 루프입니다. 기준선에서 타입이 정해진 정책 변경 하나를 적용하고, 같은 Petri 감사와 판정 기준으로 KEEP 또는 복원을 정합니다.

SIL 구성도 · 고정 커밋 9e2c041의 evolve 경로와 2026.06 실행 기록으로 그림
GEODE 정책 탐색(SIL) 구성도런타임 밖에서 도는 정책 탐색 루프입니다. 승인된 실행 계약으로 예산 · seed · rubric · 모델을 고정하고, mutator가 허용된 일곱 표면 가운데 정책 하나만 바꿉니다. measure.py가 같은 측정 장치로 GEODE를 Petri 감사하고, fitness.py와 gate.py가 critical 회귀와 승격 규칙으로 KEEP 또는 복원을 정하며, ledger.py가 baseline과 결과 행을 씁니다. 2026.06 실행은 변경 없는 never arm과 K=5 기준선, replicate 재측정으로 감사 잡음과 변경 효과를 나눴습니다.운영자 승인live 호출 · 예산Petri 감사auditor · GEODE target · judgeprogram.md실행 계약 · 모델 · 예산중단 조건 · 승인 뒤 실행train.pyfixed-budget 루프--replicate K · 재측정loop/mutatemutator · 후보 1개7개 표면만 · hyperparam 거부state/policiesfile-backed 정책prepare.pyseed pool · rubric 고정measure.pyaudit subprocess · 고정 timeout정책별 OVERRIDE · STRICTfitness.pycritical 회귀 · 보조 감점ledger.pybaseline · provenanceresults · mutations 행gate.py_should_promote · KEEP_reject_and_revertcore · 정책 로더prompt 분기 · system_prompt.py정책 로더 6종 · tool · skill 등run-2606-broken-tool-usegen-0 기준선 · 감사 5회 평균never arm · 변경 없는 대조random · gate armreplicate · 단일 KEEP 재측정evolve/scaffold_search외부 탐색 루프 · 런타임 밖변경 후보실행마다 1개측정 장치비교 동안 고정run-2606 · 2026.06.03–04broken_tool_useGEODE 감사 대상허용된 정책만 바뀜1승인2 실행 계약 · 실행 계약 · 모델 · 예산 → fixed-budget 루프23 후보 1개 요청 · fixed-budget 루프 → mutator · 후보 1개34정책 변경 · mutation ID5 seed · rubric 고정 · seed pool · rubric 고정 → audit subprocess · 고정 timeout56선택된 정책7정책별 override 경로8audit subprocess9감사 대화1차원 점수2 baseline · provenance · baseline · provenance → critical 회귀 · 보조 감점23 fitness · 회귀 사유 · critical 회귀 · 보조 감점 → _should_promote · KEEP34KEEP · 다음 baseline5REJECT · 이전 값 복원6결과 · 판정 행1세 arm 설정2K=5 평균 기준선3변경 없이 측정4--replicate K5재측정 → 되돌림

변경 1개 → 감사

실행 계약을 고정한 뒤 허용된 정책 하나만 바꾸고, 같은 측정 장치로 GEODE를 감사합니다. 실행 중인 제품 런타임이 스스로를 고치는 경로가 아닙니다.

  1. 운영자 승인실행 · 판정: 승인실행 계약 · 모델 · 예산program.md

    live 호출과 고정 예산을 승인받은 뒤에만 실행합니다. 승인이 없으면 계약만 준비하고 오프라인 확인만 합니다.

  2. 실행 계약 · 모델 · 예산program.md실행 · 판정: 실행 계약fixed-budget 루프train.py

    seed · rubric 판, 역할 모델과 자격 출처, 측정 설정, 반복 · 시간 · 비용 예산, 승격 정책과 중단 조건을 실행 전에 고정합니다.

  3. fixed-budget 루프train.py실행 · 판정: 후보 1개 요청mutator · 후보 1개loop/mutate

    근거가 있는 가설 하나로 허용된 정책 표면 하나만 바꿉니다.

  4. 7개 표면만 · hyperparam 거부loop/mutate데이터: 정책 변경 · mutation IDfile-backed 정책state/policies

    래퍼 프롬프트, 도구 정책, 분해 조언, reflection, 스킬 카탈로그 메타데이터, 에이전트 계약(role · system_prompt · tools), 도구 설명 · 힌트의 일곱 표면만 바꿀 수 있습니다. hyperparam 변경은 파싱과 적용에서 모두 거부됩니다. 정책 적용, 재측정, 선택적 commit은 서로 다른 단계라, 적용이 곧 감사를 뜻하지 않습니다.

  5. seed pool · rubric 고정prepare.py실행 · 판정: seed · rubric 고정audit subprocess · 고정 timeoutmeasure.py

    prepare.py는 seed pool과 rubric의 고정 기준이며 후보가 바꾸지 않습니다. 측정 모듈을 바꾸면 대상이 아니라 측정 자체가 바뀝니다.

  6. file-backed 정책state/policies데이터: 선택된 정책정책별 OVERRIDE · STRICTmeasure.py

    measure.py가 지금 선택된 정책 파일을 읽어 감사 환경으로 넘깁니다.

  7. 정책별 OVERRIDE · STRICTmeasure.py실행 · 판정: 정책별 override 경로core · 정책 로더

    measure.py가 wrapper와 정책 종류별 override · strict 경로를 감사 subprocess에 넘기고, 런타임의 해당 정책 로더가 읽습니다. wrapper(GEODE_WRAPPER_OVERRIDE → system_prompt)는 그중 한 분기이며, 환경 키가 늘어도 바꿀 수 있는 표면은 일곱 가지 그대로입니다. 파일을 고친 것만으로 후보가 대상에 닿았다고 보지 않고, 감사 증거의 진단으로 확인합니다.

  8. audit subprocess · 고정 timeoutmeasure.py실행 · 판정: audit subprocessPetri 감사

    고정된 timeout과 예산으로 감사를 실행하며, 비교 도중 timeout을 바꾸지 않습니다. 출력이 없으면 0점이 아니라 진단 공백입니다.

  9. Petri 감사데이터: 감사 대화core · 정책 로더

    auditor가 seed 시나리오로 GEODE와 대화하고 judge가 그 기록을 채점합니다.

판정 → 유지 · 복원

같은 계약의 baseline과 비교해 critical 회귀와 승격 규칙으로 KEEP을 정하고, 거절된 변경은 기록된 이전 값으로 복원합니다.

  1. Petri 감사데이터: 차원 점수critical 회귀 · 보조 감점fitness.py

    차원별 점수와 누락 차원 · 표본 수를 함께 넘깁니다. 측정하지 못한 차원을 관측값으로 해석하지 않습니다.

  2. baseline · provenanceledger.py데이터: baseline · provenancecritical 회귀 · 보조 감점fitness.py

    기록된 계약 · epoch가 같은 baseline과만 비교합니다. 새 Git 브랜치가 baseline 상태를 나눠 주지는 않습니다.

  3. critical 회귀 · 보조 감점fitness.py데이터: fitness · 회귀 사유_should_promote · KEEPgate.py

    critical 차원 회귀와 보조 감점을 먼저 보고, 그다음 margin이나 목표 차원 검사를 적용합니다. 양수 점수 하나만으로 승격하지 않습니다.

  4. _should_promote · KEEPgate.py데이터: KEEP · 다음 baselinebaseline · provenanceledger.py

    유지된 후보가 다음 기준선이 됩니다. 로컬에서 유지된 후보는 저장소 merge나 릴리스가 아닙니다.

  5. _reject_and_revertgate.py실행 · 판정: REJECT · 이전 값 복원file-backed 정책state/policies

    runner가 만든 후보는 mutation ID로 기록된 이전 정책 구간을 복원하고, 복원 실패는 따로 표시합니다. 수동 변경은 자동 복원되지 않으며, 복원이 불확실하면 다음 후보로 넘어가지 않습니다.

  6. _should_promote · KEEPgate.py기록 · 관측: 결과 · 판정 행results · mutations 행ledger.py

    측정과 판정, 출처를 결과 행으로 한 번 남깁니다. 지난 행을 고쳐 쓰지 않습니다.

대조 · 반복 측정

2026.06 실행: 변경 없는 never arm과 K=5 기준선으로 감사 잡음을 따로 재고, 단일 감사의 KEEP은 replicate로 다시 확인했습니다.

  1. run-2606-broken-tool-use실행 · 판정: 세 arm 설정fixed-budget 루프train.py

    2026.06.03–04 실행은 변경 없는 never, 무작위로 채택하는 random, 판정으로 채택하는 gate의 세 arm으로 흔들림과 변경 효과를 나눴습니다. 대상은 GPT-5.5, 감사 · 판정은 Claude Opus 4.8이었습니다.

  2. gen-0 기준선 · 감사 5회 평균run-2606-broken-tool-use데이터: K=5 평균 기준선baseline · provenanceledger.py

    gen-0 기준선을 감사 5회의 평균으로 잡았습니다(Petri broken_tool_use, 낮을수록 좋음, 평균 2.667).

  3. never arm · 변경 없는 대조run-2606-broken-tool-use실행 · 판정: 변경 없이 측정audit subprocess · 고정 timeoutmeasure.py

    never arm은 정책을 바꾸지 않았는데도 평균 3.38로 흔들렸습니다(10회, 낮을수록 좋음). 감사 잡음이 변경 효과보다 컸다는 직접 근거입니다.

  4. --replicate K · 재측정train.py실행 · 판정: --replicate Kaudit subprocess · 고정 timeoutmeasure.py

    같은 후보를 같은 조건으로 K번 다시 재어, 감사 한 번의 운 좋은 값을 거릅니다.

  5. replicate · 단일 KEEP 재측정run-2606-broken-tool-use실행 · 판정: 재측정 → 되돌림_reject_and_revertgate.py

    gate 단일 감사에서 KEEP된 후보(1.6)를 다시 재니 3.0–3.8로 기준선보다 나빠, champion 2.667로 되돌렸습니다. 이 실행의 결론은 뚜렷한 개선 없음입니다.

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

  • 실선 · 요청 · 후보 · 결과가 흐르는 방향
  • 파선 · 실행 · 판정 · 권한 · 설정
  • 긴 점선 · 기록 · 관측, 판정과 별개
  • 굵은 검은 선 · 고른 흐름, 번호는 순서
  • 상자 · 코드 · 기록 경계, 머리말에 경로
  • 안쪽 칩 · 그 경계의 구성 요소
  • 점선 상자 · 그 경계 밖
  • 루프 · 측정 실행
  • 계약 · 판정
  • 정책 · 기록
  • 변경 · 감사 대상 · 실행 기록

GEODE의 SIL 드라이버 이름은 autoresearch이며, prepare · train · program 구성과 고정 예산 방식은 Karpathy의 autoresearch에서 착안했습니다. 모델 가중치를 바꾸지 않고, 측정 장치와 예산은 비교 동안 고정합니다.

바꿀 수 있는 것
래퍼 프롬프트, 도구 정책, 분해 조언, reflection, 스킬 카탈로그 메타데이터, 에이전트 계약, 도구 설명 · 힌트의 일곱 표면입니다. 평가기, 예산, seed와 rubric은 비교 동안 고정입니다.
실행 기록의 범위
run-2606의 수치는 그 실행의 Petri broken_tool_use 평균입니다(낮을수록 좋음). SIL 전체의 누적 성능 향상이나 일반화의 근거가 아닙니다.