# Milestone: Tool Call 판정 모델 Gate 리뷰

## 위치

- Roadmap: [ROADMAP.md](../../../ROADMAP.md)
- Phase: [PHASE.md](../PHASE.md)

## 목표

명시적 `tools[]` schema만으로 판정할 수 없는 tool-call 후보를 별도 validator 모델 또는 classifier 단계로 판정할지 검토한다.
자연어 설명, agent-specific 텍스트, schema 부재, tool 사용 필요성 추론처럼 runtime-only 검증이 확정적으로 처리할 수 없는 케이스를 사용자 리뷰 대상 결정으로 분리한다.
사용자가 gate 조건과 실패 처리 정책을 승인하기 전까지 구현 계획과 코드 구현을 시작하지 않는다.

## 상태

[스케치]

## 승격 조건

- [ ] validator 모델이 필요한 케이스와 runtime-only 검증으로 충분한 케이스의 경계를 확정한다.
- [ ] 모델 판정 결과를 advisory로 둘지 blocking gate로 둘지 결정한다.
- [ ] false positive/false negative가 발생했을 때 retry, 실패 응답, 원문 통과 중 어떤 정책을 적용할지 결정한다.
- [ ] validator 모델 사용 비용, latency, default enable 여부, 호출 표면을 결정한다.
- [ ] 사용자 리뷰를 통해 MVP 포함 여부와 후속 구현 Milestone 분리 방식을 확정한다.

## 구현 잠금

- 상태: 잠금
- SDD: 불필요
- SDD 문서: 없음
- SDD 사유: 현재 Milestone은 모델 판정 gate의 제품/정책 스케치이며, API/config/schema 구현으로 승격할 때 SDD 필요 여부를 재판정한다.
- 잠금 해제 조건: 아래 체크리스트
  - [ ] 아래 결정 필요 항목이 사용자 리뷰로 해소되어 있다.
  - [ ] runtime-only Milestone과 겹치지 않는 구현 범위가 정리되어 있다.
- 결정 필요: 아래 체크리스트
  - [ ] 명시적 `tools[]`가 없는 요청에서 validator 모델을 호출할지 결정한다.
  - [ ] 모델이 tool call 필요성, tool call 후보 여부, schema 위반 여부 중 무엇을 판정할지 결정한다.
  - [ ] validator 모델 판정을 실패 처리의 source of truth로 삼을지 advisory signal로만 둘지 결정한다.
  - [ ] 오판 시 caller agent에 미칠 영향과 원문 통과/차단/retry 기준을 결정한다.
  - [ ] validator 모델 사용을 기본 활성화할지 opt-in metadata/config로 둘지 결정한다.

## 범위

- `tools[]` 또는 명시 schema가 없는 요청의 tool-call 판정 후보
- 자연어/텍스트 기반 tool call처럼 runtime이 deterministic하게 schema validation을 시작하기 어려운 케이스 분류
- validator 모델의 입력, 출력, 신뢰도, 실패 처리 정책 후보
- runtime-only exact replay retry와 모델-assisted gate의 책임 경계
- 사용자 리뷰가 필요한 제품/비용/latency/오판 위험 결정

## 기능

### Epic: [model-gate] Model-Assisted Tool Call Gate

runtime-only validation으로 해결되지 않는 애매한 tool-call 후보를 모델 판정 gate로 다룰지 검토하는 산출물을 묶는다.

- [ ] [case-map] runtime-only 검증이 처리하지 않는 케이스와 validator 모델 후보 케이스가 분리되어 있다.
- [ ] [classifier-role] validator 모델이 판정할 역할과 출력 형태 후보가 정리되어 있다.
- [ ] [risk-policy] false positive/false negative, retry 반복, 원문 통과/차단 정책 후보가 정리되어 있다.
- [ ] [surface-policy] opt-in metadata, config, route policy, default off 여부 후보가 정리되어 있다.
- [ ] [user-review] 사용자가 모델 gate 범위, 비용/latency, 오판 정책을 검토했다.

## 완료 리뷰

- 상태: 없음
- 요청일: 없음
- 완료 근거: 스케치 Milestone이며 기능 Task가 아직 충족되지 않았다.
- 검토 항목: 사용자 리뷰 통과, 잠금 해제 여부, 후속 구현 Milestone 분리 여부
- agent-ui 상태 반영: 해당 없음
- 리뷰 코멘트: 없음

## 범위 제외

- 명시적 `tools[]` schema가 있는 runtime-only validation/retry 구현
- validator 모델 호출 코드 구현
- OpenAI-compatible public API/config/proto 변경
- 임의 자연어 tool inference를 기본 동작으로 켜는 결정
- 비용/latency 측정 없이 default-on 정책을 확정하는 일

## 작업 컨텍스트

- 관련 경로: `apps/edge/internal/openai`, `apps/edge/internal/service`, `packages/go/policy`, [openai-compatible-api.md](../../../../agent-contract/outer/openai-compatible-api.md)
- 표준선(선택): 명시 schema가 있는 요청은 runtime-only validator가 우선이며, 모델 gate는 schema가 없거나 출력 의도가 애매한 케이스에 한정해 검토한다.
- 표준선(선택): 모델 판정은 오판 가능성이 있으므로 사용자 승인 전에는 blocking source of truth로 삼지 않는다.
- 선행 작업: Tool Call Runtime 검증 재시도 MVP
- 후속 작업: 단계 호출과 검증 최적화 MVP 또는 별도 model-assisted validation 구현 Milestone
- 확인 필요: `구현 잠금 > 결정 필요` 항목
