Execution Contract
Execution Contract(실행 계약)는 모든 Tool 호출이 따르는 불변의 9단계 시퀀스입니다. 단계를 건너뛰지 않습니다. 순서를 변경하지 않습니다. 모든 실행은 결정론적이고, 트랜잭션으로 보호되며, 감사 추적이 가능합니다.
런타임에 AI는 개입하지 않습니다. 실행기(executor)는 이 계약에 따라 Flow 그래프를 처리하는 순수한 결정론적 엔진입니다.
9단계
1단계: 입력 검증
수신된 페이로드는 Tool에 선언된 JSON Schema에 대해 검증됩니다. 입력이 스키마와 일치하지 않으면 -- 필수 필드 누락, 타입 불일치, 범위 초과 값 -- 요청은 검증 오류와 함께 즉시 거부됩니다.
입력이 구조적으로 유효한 것이 확인될 때까지 어떤 비즈니스 로직도 실행되지 않습니다.
2단계: 인가
세 계층의 인가 검사가 순서대로 수행됩니다:
- JWT 검증 -- 요청에는 유효하고 만료되지 않은 JSON Web Token이 포함되어야 합니다 (Tool이 공개로 설정된 경우 제외).
- RBAC 검사 -- 사용자의 역할이 Tool의
allowedRoles목록에 포함되어야 합니다. 예를 들어,deleteUserTool은admin만 허용할 수 있습니다. - 행 수준 정책 -- 대상 Entity에
rowLevelAccess가 활성화되어 있으면, 사용자는 자신이 소유한 레코드(ownerField로 결정)만 접근할 수 있습니다.
인가 검사가 하나라도 실패하면 데이터 읽기나 쓰기 전에 요청이 거부됩니다.
3단계: 정책 검사
Tool에 연결된 Policy가 평가됩니다. 이것은 런타임 정책 검사로, 설계 시점의 리스크 분석과는 별개입니다. 속도 제한, 행 수 제한, 예산 임계값 등이 포함됩니다.
block 행동이 지정된 정책이 위반되면 요청이 거부됩니다. warn 또는 escalate 행동이 지정된 정책은 위반을 기록하되 실행은 계속 진행됩니다.