감사 시나리오는 순서가 정해진 단계로 만듭니다.
호스트가 단계 순서를 가지고, 각 단계의 역할 에이전트가 작업을 나눠 수행합니다. 결과로 나온 시드 풀과 선택한 루브릭이 Petri 행동 감사의 입력이 됩니다.
시나리오 작성
오케스트레이터가 phase 순서를 소유하고, 역할 에이전트가 후보를 만들고 거른 뒤, 결과를 파일 계약으로 내보냅니다.
phase 순서 · PipelineState
seed_generation/orchestrator.py실행 · 판정: phase 순서대로 실행agents/ · 초안오케스트레이터가 phase 순서와 상태 병합을 소유하고, 각 phase의 역할 에이전트가 일을 합니다. 한 phase 안에서는 SubAgentManager로 나눠 실행할 수 있고, 하위 에이전트는 더 내려가지 않습니다(depth 1).
차원 평균 · 근거
baseline snapshot데이터: baseline 근거agents/ · 초안고른 baseline의 차원별 평균 · stderr · 근거를 Generator · Critic · Evolver가 읽습니다. 첫 생성에는 baseline이 없어 기본 프롬프트로 갑니다.
latest_pointer.json · priors
handoff pointer데이터: 이전 meta-reviewagents/ · 초안이전 실행의 meta-review가 남긴 다음 세대 priors와 덜 다룬 차원을 이번 생성이 참고합니다.
agents/ · 초안데이터: 후보 seedagents/ · 검토
Generator의 후보가 Proximity 중복 제거, Critic 검토, Pilot(선택 · smoke 실행에서는 생략), Ranker의 Elo 순위를 차례로 거칩니다.
agents/ · 검토데이터: survivors · Eloagents/ · 개선
순위가 높은 후보를 Evolver가 고치고, Meta-reviewer가 이번 실행을 정리해 다음 세대의 priors를 만듭니다.
Meta-reviewer · 다음 priors
agents/ · 개선실행 · 판정: 다음 iteration · Critic부터Critic · 검토agents/ · 검토max_iterations를 켜면 Meta-reviewer가 끝난 뒤 개선된 후보로 Critic → Pilot → Ranker → Evolver → Meta-reviewer를 다시 돕니다. Supervisor · Generator · Proximity는 다시 돌지 않으며, 기본값은 0회입니다.
agents/ · 개선데이터: survivors 내보내기run_dir/
살아남은 후보 본문을 survivors/에 파일로 복사하고, Elo · pilot 점수는 survivors.json에, meta-review와 상태는 따로 남깁니다.
meta_review.json · state.json
run_dir/데이터: latest 포인터latest_pointer.json · priorshandoff pointer단일 latest_pointer.json에 이번 실행의 seed_pool · meta_review 위치를 기록합니다. per-run 산출물이 기준이며, 포인터는 다음 실행을 돕는 best-effort 참조라 쓰기에 실패해도 로그만 남깁니다. 두 필드가 모든 실행에 있는 것은 아닙니다.
감사 실행
seed(시나리오 지시)는 auditor가 연기하고, 감사 대상은 GEODE scaffold이며, judge가 대화 기록을 채점합니다. 세 역할은 서로 다른 모델 자리입니다.
survivors/ · 후보 .md 복사본
run_dir/데이터: --seed-selectgeode audit · /audit · 도구petri/runner.py감사는 seed 선택값(survivors 디렉터리, 번들 seed, id · tag)을 받아 Inspect의 inspect_petri/audit 작업으로 넘깁니다. seed 생성이 감사를 직접 시작하지는 않습니다.
번들 seed · *.md
petri/seeds데이터: 번들 seedgeode audit · /audit · 도구petri/runner.py저장소에 들어 있는 번들 seed를 그대로 고를 수도 있습니다.
geode audit · /audit · 도구
petri/runner.py실행 · 판정: model-role · 세 자리auditor 모델auditor · target · judge 모델을 따로 지정합니다. 기본은 dry-run이고, 비용을 추정해 확인한 뒤에만 실제로 부릅니다. 세 역할이 같은 provider면 같은-provider 편향 표시를 붙입니다.
auditor 모델데이터: seed 시나리오 대화GEODE를 target 모델로 · AgenticLoop
petri/geode_target.pyseed는 auditor에게 주는 시나리오 지시입니다. auditor가 대화를 이끌며, target_tools를 켠 경우에만 도구와 도구 결과를 만들어 낼 수 있습니다.
GEODE를 target 모델로 · AgenticLoop
petri/geode_target.py데이터: 모델 호출target 기반 모델GEODE의 AgenticLoop 전체(도구 · hook · 메모리)를 하나의 모델 API로 감쌉니다. 감사 대상은 기반 모델 단독이 아니라 GEODE scaffold입니다.
GEODE를 target 모델로 · AgenticLoop
petri/geode_target.py데이터: 대화 기록judge 모델judge는 샘플마다 전체 대화 기록을 한 번 읽고 차원별로 채점합니다.
judge_dimensions · YAML
petri/judge_dims실행 · 판정: judge_dimensionsjudge 모델채점 차원은 고른 judge 차원 YAML이 정합니다. 행동 감사이며 과제 완료와는 다른 측정입니다.
judge 모델데이터: 차원 점수Inspect .eval 로그
Inspect .eval 로그와 요약을 보관합니다. 보관에 실패하면 메모로 남기고 감사 결과를 막지 않습니다.
측정 → 다음 생성
감사 점수는 SIL이 판정에 쓰고, 유지된 측정은 다음 seed 생성의 baseline 근거가 됩니다. 이 연결이 모든 캠페인에서 자동으로 돌았다는 뜻은 아닙니다.
judge 모델데이터: 차원 점수Inspect .eval 로그
Inspect .eval 로그와 요약을 보관합니다. 보관에 실패하면 메모로 남기고 감사 결과를 막지 않습니다.
Inspect .eval 로그기록 · 관측: 측정 결과SIL 측정 · measure.py
SIL의 measure.py가 감사 subprocess를 실행하고, 그 결과로 fitness를 계산합니다.
SIL 측정 · measure.py데이터: baseline 갱신차원 평균 · 근거
baseline snapshotSIL의 ledger가 유지된 측정을 baseline으로 씁니다. seed 생성은 baseline을 고르면(자동 선택 또는 명시) 그 근거를 읽습니다.
차원 평균 · 근거
baseline snapshot데이터: baseline 근거agents/ · 초안고른 baseline의 차원별 평균 · stderr · 근거를 Generator · Critic · Evolver가 읽습니다. 첫 생성에는 baseline이 없어 기본 프롬프트로 갑니다.
모든 연결을 같은 굵기로 보여 줍니다. 흐름을 고르면 그 경로만 번호와 함께 강조됩니다.
- 실선 · 요청 · 후보 · 결과가 흐르는 방향
- 파선 · 실행 · 판정 · 권한 · 설정
- 긴 점선 · 기록 · 관측, 판정과 별개
- 굵은 검은 선 · 고른 흐름, 번호는 순서
- 상자 · 코드 · 기록 경계, 머리말에 경로
- 안쪽 칩 · 그 경계의 구성 요소
- 점선 상자 · 그 경계 밖
- 오케스트레이터 · 감사 진입
- 감사 대상 · 채점 차원
- 산출물 · 상태 파일
- 역할 에이전트 · 번들 seed
기본 순서와 반복 순서는 오케스트레이터가 정합니다. 설정 · 등록된 역할 · 재개 지점에 따라 일부 단계가 생략되며, 모든 캠페인이 모든 단계를 실행한 것은 아닙니다. 상태 파일의 실제 위치는 실행 환경마다 다르므로 경로를 싣지 않았습니다.
- 세 역할
- seed는 사람이 쓰거나 생성한 시나리오 지시이고, auditor는 그 지시를 연기하는 모델, target은 감사받는 GEODE scaffold, judge는 대화 기록을 채점하는 모델입니다. 점수와 로그는 judge의 산출물입니다.
- 측정의 성격
- Petri 감사는 행동 차원의 점수입니다. 과제 완료율이나 제품 품질 보증이 아닙니다.