AuditCore 다중 에이전트 협업 감사 스킬 (AuditCore Multi-Agent Audit Skill)
1. 아키텍처 개요 (Overview)
AuditCore Skill은 "호스트-브레인 + 결정론적 코어(Host-Brain + Deterministic-Core)" 아키텍처를 채택합니다.
- 외부 API 키가 필요 없는 다중 에이전트 블라인드 리뷰 위원회: 호스트 에이전트(Claude Code, Antigravity, Codex, OpenClaw 등)의 하위 에이전트 디스패치 기능을 직접 재사용하여 컨텍스트가 물리적으로 격리된 4개의 감사 역할(
junior-auditor,challenger-auditor,fact-checker,senior-partner)을 시작합니다. - 결정론적 특허 알고리즘 코어 (
scripts/audit_cli.py): 상태 저장 CLI 엔진을 통해 PII 암호화 및 SHA-256 해시 체인 감사 로그, 3단계 중요성 수준 필터링, 6차원 결정론적 규칙 침투(벤포드 법칙, Z-점수, 정수 10만/1만 이상 징후, 주말 거래, 동일일 분할 거래 승인 회피, 적자 상계/중복 전표), 무료 PyTorch 3방향 하이브리드 법률 검색 $H(q, c_i)$ , 4계층 증거 토폴로지 인과 그래프 및 이분 그래프 손실 검증, DAG 상태 머신 최소 컷 로컬 롤백, CSA-1131 4요소 Word (.docx) / Markdown (.md) 워크페이퍼 자동 생성 및 PII 역복원을 강제 실행합니다.
2. 세 가지 핵심 철칙 (IRON RULES — 위반 시 감사 무효로 간주)
IRON RULE 1: PII 제로 유출 물리적 격리 게이트 (Zero-Leakage Privacy Gate)
- 원본 장부 직접 읽기 금지:
scripts/audit_cli.py init실행 전후에 절대pandas,python,cat,head또는 파일 읽기 도구를 사용하여 사용자의 원본.xlsx/.csv파일 내용을 직접 보지 마십시오! - 암호화 금고 접근 금지:
init이 생성한.auditcore_workspace/cases/<CASE_ID>/.vault_do_not_read.json은 XOR-SHA256-HMAC으로 암호화되어 실제 기업 및 계정 매핑을 저장합니다. 호스트 및 모든 하위 에이전트는 이 파일을 읽거나 해독하는 것이 엄격히 금지됩니다. - 전 과정 비식별화 추론: 모든 SQL 탐색 및 4역할 블라인드 리뷰 추론은
PERSON_0001,ACCT_0001등의 비식별화된 플레이스홀더를 엄격히 사용해야 합니다. 실제 기업 이름은 최종audit_cli.py export단계에서만 결정론적 스크립트에 의해 로컬에서 역복원됩니다.
IRON RULE 2: 4역할 하위 에이전트 독립 블라인드 리뷰 계약 (Blinded Subagent Isolation)
full-audit모드에서는 주 대화에서 "단일 모델이 네 역할을 자체적으로 연기"하는 것이 엄격히 금지됩니다.- 상태 머신 순서에 따라
agents/의 해당 역할 계약 파일을 읽고 독립적인 하위 에이전트를 파생시켜야 합니다(호스트의invoke_subagent/Task/Agent도구 사용):- 1차 심사:
agents/junior-auditor.md->--role junior제출 - 독립 검토:
agents/challenger-auditor.md->--role challenger제출 - 사실 확인:
agents/fact-checker.md->--role factcheck제출 - 최종 심사 파트너:
agents/senior-partner.md->--role senior제출
- 1차 심사:
- 다운그레이드 호환 규칙: 호스트 환경이 하위 에이전트 디스패치 도구를 지원하지 않는 경우에만 메인 세션에서 각 역할 JSON을 단계별로 독립적으로 생성할 수 있지만, 각 단계 생성 후 즉시
audit_cli.py commit을 호출하여 결정론적 증거 그래프 검증을 수행해야 하며 단계를 건너뛰거나 병합하는 것은 절대 허용되지 않습니다.
IRON RULE 3: 상태 저장 CLI 강제 게이트 및 최소 컷 롤백 폐루프 (Stateful CLI & Minimum-Cut Rollback)
- 각 역할 결론은
scripts/audit_cli.py commit --role <role>을 통해 제출되어야 합니다. 상태 머신 순서를 위반하면 CLI는 종료 코드2(STATE_GUARD_VIOLATION)를 반환합니다. factcheck제출 후 전역 일관성 점수 $S_{\text{global}}$ 가 $\theta$ (기본값0.80) 미만이면 CLI가 자동으로 의존성 인식 최소 컷 로컬 롤백을 실행하고"rollback_triggered": true및rollback_diagnosis.arbitration_probe(검증 프로브)를 반환하며 상태를STATE_JUNIOR_AUDIT또는STATE_CHALLENGER_REVIEW로 되돌립니다.rollback_triggered: true가 발생하면rollback_diagnosis를 대상 역할에 주입하여 하위 에이전트를 다시 파생해야 하며, 일관성이 기준을 충족하여STATE_SENIOR_PARTNER에 도달할 때까지 이 과정을 반복해야 합니다! 수동으로 워크페이퍼를 작성하여export를 건너뛰는 것은 엄격히 금지됩니다.
3. 다섯 가지 운영 모드 라우팅 테이블 (5 Operational Modes)
사용자 요청에 따라 해당 모드를 자동으로 선택합니다(기본값은 full-audit 실행):
| 모드 이름 | 적용 시나리오 및 트리거 단어 | 실행 경로 |
|---|---|---|
full-audit(기본 전체 프로세스) | 장부 파일 감사, 사기/내부 통제 결함 전면 점검 및 공식 워크페이퍼 발행 | 아래 섹션 4: 표준 5단계 상태 머신 프로토콜 완전 실행 (init $\to$ sql $\to$ 4역할 블라인드 리뷰 및 최소 컷 롤백 루프 $\to$ export) |
quick-scan(빠른 스캔) | "이상 징후 빠르게 확인", "다중 에이전트 게임 필요 없음, 규칙 스캔 결과만 보기" | 1. audit_cli.py init --file <PATH> --case <ID> --mode quick 실행2. 선택 사항으로 audit_cli.py export --case <ID> --out-dir <DIR> 실행하여 규칙 스캔 워크페이퍼 빠른 내보내기 |
sql-explore(SQL 샌드박스 침투) | 초기화된 장부에 대해 사용자 정의 기간 간/그룹화 집계 쿼리 실행 | audit_cli.py sql --case <ID> --query "SELECT ... FROM financial_ledger ..." 실행(읽기 전용 SELECT / WITH만 허용) |
law-lookup(법률 하이브리드 검색) | "분할 거래/주말 입금/감사 증거 관련 기준 조항 확인" | audit_cli.py law --query "<키워드 또는 질문>" --top-k 5 실행, 가중 증거 체인 $E(q)$ 및 정성적 추론 4단계 결론 $\Psi$ 직접 출력 |
workpaper(워크페이퍼 재내보내기) | 최종 심사 완료된 케이스의 단위명, 회계 기간 또는 내보내기 디렉토리 변경 | audit_cli.py export --case <ID> --entity-name "<단위명>" --period "<기간>" --out-dir <DIR> 실행 |
자세한 CLI 매개변수 및 JSON 스키마는 필요시
references/schemas.md를 참조하십시오.
4. full-audit 표준 5단계 상태 머신 실행 프로토콜 (5-Step Stateful Protocol)
스킬 루트 디렉토리를 <SKILL_DIR>(scripts/audit_cli.py 포함)이라고 가정합니다. 사용자가 장부 파일을 제공하지 않고 데모를 요청하는 경우 내장된 고성능 사기 시뮬레이션 샘플 장부 <SKILL_DIR>/examples/sample_vouchers_2026.xlsx를 직접 사용할 수 있습니다.
1단계: 장부 초기화, 암호화/비식별화 및 결정론적 규칙 침투 (init)
python3 <SKILL_DIR>/scripts/audit_cli.py init \
--file "<USER_EXCEL_OR_CSV_PATH>" \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--lang "중국어"
- 반환된 JSON 기록:
stats,schema_ddl,rule_findings,anomaly_samples,evidence_chain. - 이제 상태 머신은
STATE_DYNAMIC_SQL_EXPLORATION에 있습니다.
2단계: 읽기 전용 SQLite 샌드박스 침투 쿼리 (sql)
schema_ddl 및 rule_findings를 기반으로 비식별화된 테이블 financial_ledger에 대한 집계 검증 SQL을 하나 작성합니다(예: 동일 공급업체의 동일일 분할 거래 건수 및 누적 금액 확인, 차변 계정별 이상 금액 집계 등):
python3 <SKILL_DIR>/scripts/audit_cli.py sql \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--query "SELECT Date, Vendor, COUNT(*) AS tx_count, SUM(Amount) AS total_amount FROM financial_ledger GROUP BY Date, Vendor HAVING tx_count >= 2 OR total_amount >= 100000 ORDER BY total_amount DESC"
- 상태 머신이
STATE_JUNIOR_AUDIT으로 진행됩니다.
3단계: 다중 에이전트 독립 블라인드 리뷰 및 최소 컷 로컬 롤백 루프 (commit 루프)
3.1 초급 감사관 파생 (STATE_JUNIOR_AUDIT)
<SKILL_DIR>/agents/junior-auditor.md를 읽습니다.- 하위 에이전트(또는 독립 단계)를 파생하고 비식별화된
stats,rule_findings,anomaly_samples,sql결과,evidence_chain만 전달합니다(롤백 재심사인 경우rollback_diagnosis를 추가로 전달). - 하위 에이전트가 반환한 JSON(
analysis,risk_score,cited_reg_ids포함)을 가져와 CLI에 제출합니다:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role junior \
--payload '<JUNIOR_JSON>'
- 상태 머신이
STATE_CHALLENGER_REVIEW으로 진행됩니다.
3.2 독립 검토관 파생 (STATE_CHALLENGER_REVIEW)
<SKILL_DIR>/agents/challenger-auditor.md를 읽습니다.- 독립 하위 에이전트를 파생하고 비식별화된 이상 증거,
evidence_chain, 그리고 1차 심사의junior_report및junior_score를 전달하며, 전문가적 회의적 태도로 독립적으로 검토하고 이의를 제기하도록 요청합니다. - 반환된 JSON(
rebuttal,adjusted_risk_score포함)을 가져와 CLI에 제출합니다:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role challenger \
--payload '<CHALLENGER_JSON>'
- 상태 머신이
STATE_FACT_CHECK으로 진행됩니다.
3.3 사실 확인자 파생 및 전역 일관성 검증 (STATE_FACT_CHECK)
<SKILL_DIR>/agents/fact-checker.md를 읽습니다.- 독립 하위 에이전트를 파생하여 1차 심사 및 검토 결론에 대해 원자적 사실 분해 (
claims) 및 이분 그래프 증거 매핑 (evidence_mapping) 을 수행합니다. - 반환된 JSON(
analysis,support_score,conflict_score,conflict_type,claims,evidence_mapping포함)을 가져와 CLI에 제출합니다:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role factcheck \
--payload '<FACTCHECK_JSON>'
- CLI가 반환한
current_state및rollback_triggered를 확인합니다:"rollback_triggered": true인 경우: 증거 그래프에 심각한 충돌이 있음($S_{\text{global}} < \theta$)을 의미하며, CLI가 자동으로 최악의 추론 하위 그래프를 절단하고rollback_target_state(일반적으로STATE_JUNIOR_AUDIT)로 롤백했습니다. 반환된rollback_diagnosis(arbitration_probe및csa_guidance포함)를 추출하여 3.1(또는 3.2)로 돌아가 하위 에이전트를 다시 파생하여 결론을 수정해야 합니다!"current_state": "STATE_SENIOR_PARTNER"인 경우: 증거 그래프 일관성이 기준을 충족했으며 4단계로 진행합니다.
4단계: 선임 파트너 파생, 최종 심사 판결 및 감사 조정 분개 (STATE_SENIOR_PARTNER)
<SKILL_DIR>/agents/senior-partner.md를 읽습니다.- 독립 하위 에이전트를 파생하고 비식별화된 통계, 규정 증거 체인, 검증된 1차 심사/검토 결론을 전달하여 최종 심사 판결(
final_verdict,final_risk_score,reasoning,action_item,suggested_aje)을 생성합니다. - CLI에 제출합니다:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role senior \
--payload '<SENIOR_JSON>'
- 상태 머신이
STATE_WORKPAPER_GENERATION으로 진행됩니다.
5단계: 4요소 워크페이퍼 조립, 품질 평가 $Q(Y)$, PII 역복원 및 CSA-1131 워크페이퍼 내보내기 (export)
python3 <SKILL_DIR>/scripts/audit_cli.py export \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--out-dir "./audit_outputs" \
--entity-name "피감사 단위" \
--period "2026년"
- CLI가 자동으로 PII 엔터티 이름을 역복원하고 다음을 생성합니다:
workpaper_docx_path: 중국 공인회계사 감사 기준 제1131호를 준수하는 공식.docxWord 감사 워크페이퍼;workpaper_markdown_path: 구조화된.md감사 워크페이퍼;quality_evaluation: $Q_{\text{ev}}$, $Q_{\text{con}}$, $Q_{\text{cmp}}$, 총점 $Q(Y)$ 및 제로 허용 환각 검증 결과를 포함한 평가 보고서.
- 사용자에게 최종 감사 발견 사항을 보고하고, 역복원된 실제 관련 단위 이름, 감사 조정 분개(AJE), 품질 점수 $Q(Y)$ 및 생성된
.docx/.md파일 경로를 표시합니다.
5. 일반적인 변명 및 방지 대조표 (Rationalization Table & Red Flags)
| 에이전트의 일반적인 게으름 변명 (Rationalization) | 객관적 사실 및 철칙 대응 (Reality & Iron Rule) |
|---|---|
"장부 파일이 작으니 pandas.read_excel로 먼저 어떤 열과 공급업체가 있는지 확인해보겠습니다." | 심각한 위반 (IRON RULE 1 위반)! 원본 파일을 직접 읽는 순간 평문 기업 이름과 은행 계좌 번호가 LLM 컨텍스트에 노출되어 개인정보 보호 규정 준수 경계를 완전히 파괴합니다. 반드시 audit_cli.py init을 먼저 실행해야 합니다. |
| "시간을 절약하기 위해 하나의 코드 블록에서 1차 심사, 검토, 사실 확인, 파트너의 JSON을 동시에 작성하고 연속으로 commit하겠습니다." | 심각한 위반 (IRON RULE 2 위반)! 단일 컨텍스트에서 네 역할을 동시에 조작하면 심각한 확증 편향(Confirmation Bias)을 유발합니다. 호스트가 하위 에이전트를 지원하는 경우 반드시 독립적으로 파생시켜야 합니다. 순차 실행하더라도 각 commit 후 CLI의 증거 그래프 피드백을 읽고 다음 단계를 수행해야 합니다. |
"factcheck 제출 후 rollback_triggered: true가 발생했지만, JSON에서 점수만 수정하고 senior를 제출하겠습니다." | 상태 게이트가 직접 차단 (종료 코드 2)! 롤백 후 상태 머신은 STATE_JUNIOR_AUDIT(또는 STATE_CHALLENGER_REVIEW)에 있습니다. rollback_diagnosis.arbitration_probe에 따라 이전 역할을 다시 실행하지 않으면 상태 머신이 STATE_SENIOR_PARTNER로 절대 진행을 허용하지 않습니다. |
"이미 감사 결론을 알고 있으니 Markdown 보고서를 직접 작성하여 사용자에게 주면 됩니다. audit_cli.py export를 호출할 필요가 없습니다." | 심각한 위반 (IRON RULE 3 위반)! 수동 보고서는 .vault_do_not_read.json의 실제 기업 이름을 해독할 수 없으며(PERSON_0001만 출력 가능), 특허 4요소 구조 $Y={\text{idx},\text{aje},\text{jud},\text{log}}$, 품질 점수 $Q(Y)$ 및 CSA-1131 .docx 공식 워크페이퍼가 누락됩니다. |
Red Flags — 다음 생각이 들면 즉시 중지하고 CLI 프로토콜로 돌아가십시오:
pd.read_excel/pd.read_csv/open()을 실행하여 사용자의 원본 재무 파일을 읽으려는 경우.vault_do_not_read.json을 읽으려는 경우- 분석에서
evidence_chain에 없는 법률 조항 번호를 조작하는 경우(hallucinated_citations제로 허용 다운그레이드가 트리거되어 $Q(Y)$가 강제로 $\le 0.40$으로 낮아짐) sql또는 임의의commit --role단계를 건너뛰고export를 직접 시도하는 경우