Petri × GEODE 감사를 한 번 끝까지 돌리는 절차입니다. 기본값이 비용을 지키는 쪽으로 설계되어 있어서, 아무 플래그 없이 돌리면 실제 LLM 호출 없이 dry-run으로 끝납니다. 실측은 명시적으로 올립니다.
준비물
- GEODE 소스 체크아웃과
[audit]extra.uv tool install -e ".[audit]"로inspect_ai가 함께 설치됩니다. - auditor, target, judge 세 역할의 자격. 역할 플래그를 생략하면
~/.geode/config.toml의 역할 SoT를 읽습니다.
기본 명령
# 1) dry-run (기본값). 명령 조립과 seed 해석만 검증 geode audit # 2) 실측. live로 올리고 audit-mode 가드레일 전환 geode audit --live --unrestricted \ --seeds 3 --max-turns 10
같은 인터페이스가 세션 안에서는 /audit 슬래시 명령입니다. 둘 다 plugins/petri_audit/cli_audit.py로 들어갑니다.
플래그
| 플래그 | 의미 | 기본값 |
|---|---|---|
--auditor/-a · --target/-t · --judge/-j | 역할별 모델 지정 | 생략 시 ~/.geode/config.toml 역할 SoT |
--dry-run/--live | 실제 호출 없이 검증 / 실측 | dry-run |
--seeds/-s | seed 수 | 1 |
--seed-select | seed 풀 경로 또는 id 선택 | plugins/petri_audit/seeds |
--max-turns/-m | 대화 턴 상한 | 10 |
--dim-set | judge 차원 세트. subset(22-dim 루브릭) 또는 full(upstream 기본 전체) | subset |
--unrestricted | audit-mode 가드레일 전환 (HITL 해제, 한 런 한정). GEODE_AUDIT_UNRESTRICTED=1과 동일 | off |
--cache/--no-cache | inspect_ai trajectory 캐시 | off. 캐시된 실패 응답이 후속 측정을 오염시키는 것을 막기 위해 기본 비활성 |
--target-tools | real 또는 synthetic 도구 표면 | 없음 |
--tags | 런 태깅 | 없음 |
--yes/-y | confirm 생략 | off |
--use-oauth/--no-oauth | OAuth 자격 lane 강제 | 없음 |
결과 읽기
런이 끝나면 .eval 아카이브가 워크트리 밖 ~/.geode/petri/logs/에 남고, stdout 마지막 줄에 {"dim_means": {...}, "dim_stderr": {...}} JSON이 찍힙니다. 자기개선 루프가 파싱하는 줄이 바로 이것입니다.
# 아카이브 보존 + 커밋 가능한 요약 YAML 생성 geode petri-archive # transcript를 Inspect 뷰어로 inspect view --log-dir ~/.geode/petri/logs/
publish된 번들은 /geode/self-improving/petri-bundle/에서 바로 볼 수 있습니다.
raw 경로: inspect eval
Petri 프레임워크의 원시 명령입니다. GEODE wrapper를 우회하므로 vanilla LLM baseline을 측정할 때 씁니다.
inspect eval inspect_petri/audit \ --model-role auditor=<m> \ --model-role target=anthropic/<m> \ --model-role judge=<m>