Community라이팅 & 에디팅github.com

InvariantEval

선언된 안전 불변 조건 평가 게이트: 잠긴 필드 규칙을 모든 출력에 적용하고, 모델이 사람 소유 필드를 자동으로 채울 때 최종 확정을 거부합니다. MCP 도구 및 에이전트 스킬 포함.

InvariantEval란 무엇인가요?

InvariantEval은 에이전트가 출력을 최종 확정하기 전에 사용자가 선언한 안전 불변 조건을 강제하는 기술 스킬입니다. 이 스킬은 에이전트가 '올바르게' 작동하도록 만들거나 출력을 자동으로 수정하지 않으며, 단순히 잠긴 필드(예: 합격/불합격, 규정 준수 상태)가 인간의 명시적 확인 없이 모델에 의해 자동 채워졌을 때 최종 확정을 거부합니다. 주로 Claude Code, Cursor, Codex와 같은 AI 코딩 에이전트에서 구조화된 JSON 출력을 다룰 때 사용되며, suite.yaml 파일에 field_policies와 assertion을 선언하는 방식으로 동작합니다. 사용자는 체크 스크립트를 실행하여 에이전트의 출력을 검증하고, 실패 시 사용자 수정이나 명시적 확인을 요구하여 안전성을 보장합니다. MCP 환경에서는 동일한 기능을 하는 check_invariants MCP 도구를 사용할 수도 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add AlpharomeroJL/invarianteval

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

InvariantEval 에이전트 스킬

InvariantEval은 사용자가 선언한 불변 조건을 강제합니다. 에이전트를 '올바르게' 만들거나 출력을 다시 작성하지 않습니다. 유일한 정직한 주장은 다음과 같습니다: 에이전트가 모든 출력에 대해 사용자가 선언한 안전 규칙을 실행하고, 잠긴 필드가 인간의 확인 없이 자동 채워졌을 때 최종 확정을 거부합니다.

이 스킬을 사용해야 할 때

다음과 같은 경우 구조화된 JSON(또는 유사한) 출력을 최종 확정하기 전에 사용하십시오:

  • 도메인에 선언된 잠긴 필드(합격/불합격, 규정 준수 상태 등)가 있는 경우
  • field_policies와 불변 조건 어설션(assertions)이 포함된 suite.yaml이 있거나 필요한 경우
  • 특정 필드를 인간이 소유해야 하며 모델이 이를 임의로 채우면 안 되는 경우

불변 조건을 추측하기 위해 이 스킬을 사용하지 마십시오. 사용자의 역할은 선언을 원활하게 만드는 것이지, 추론하는 것이 아닙니다.

워크플로우

1. 선언된 스위트(suite) 찾기 또는 생성

  • 프로젝트에서 기존 suite.yaml을 찾거나
  • suite.template.yaml을 프로젝트에 복사하고 사용자가 field_policies, equivalence_classes, assertions을 채우도록 하십시오.

사용자가 스위트에 선언하지 않은 잠긴 필드를 절대 임의로 만들지 마십시오.

2. 최종 확정 전에 불변 조건 검사 실행

모델의 원시 파싱된 출력과 의도된 최종 출력이 있습니다. 다음을 실행하십시오:

python agent-skill/invarianteval/check.py \
  --suite path/to/suite.yaml \
  --case-id agent-check \
  --model-parsed /tmp/model_parsed.json \
  --final-output /tmp/final_output.json \
  --human-confirmed /tmp/human_confirmed.json

현재 턴에서 JSON 파일을 작성하십시오. --human-confirmed는 선택 사항입니다(명시적으로 확인된 내용이 없으면 {} 사용).

스위트에는 주어진 --case-id(기본값: agent-check)와 강제하려는 어설션이 포함된 케이스가 있어야 합니다.

3. 검사가 실패하면: 중지

  • 최종 확정, 커밋 또는 출력을 완료된 것으로 제시하지 마십시오.
  • CLI 출력에서 정확한 불변 조건 실패를 표시하십시오(예: never_auto_filled[pass_fail_result]).
  • 다음 중 하나를 요구하십시오:
    • 사용자가 최종 출력을 편집하여 위반 사항을 제거하거나 수정
    • 사용자가 필드를 명시적으로 확인(픽스처의 human_confirmed)
    • 규칙이 잘못된 경우(드문 경우) 사용자가 선언된 스위트를 업데이트

4. 검사가 통과하면: 진행

종료 코드가 0인 경우에만 최종 확정하십시오.

MCP 대안

환경에 [mcp] 추가 기능이 설치된 경우, 동일한 입력에 대해 check_invariants MCP 도구를 선호하십시오. docs/mcp.md를 참조하십시오.

정직한 프레이밍 (필수)

  • 말해야 할 것: "선언된 불변 조건", "최종 확정 거부", "잠긴 필드 자동 채움"
  • 말하지 말아야 할 것: "자기 수정", "에이전트를 올바르게 만듦", "불변 조건 자동 추론"

관련 스킬