# Milestone: 지식, 도구 정책, 검증 최적화

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/knowledge-tool-optimization-extension/PHASE.md`

## 목표

기본 모델 서빙과 부하 라우팅이 가능해진 뒤, RAG, context 구성/압축, web search, MCP 정책, tool policy, output validation, retry/fallback을 IOP의 추론 최적화 계층으로 확장한다.
NomadCode는 이 계층의 소비자 중 하나이며, 이 Milestone은 특정 Agent Shell에 종속되지 않는 공통 IOP 책임을 정의한다.

## 상태

[계획]

## 구현 잠금

- 상태: 잠금
- 결정 필요: 아래 체크리스트
  - [ ] 첫 최적화 범위를 RAG, web search, MCP/tool policy, validation/fallback 중 어디까지로 둘지 결정한다.
  - [ ] MCP/tool policy와 web search의 보안 기본값을 허용 중심으로 둘지 차단/승인 중심으로 둘지 결정한다.
  - [ ] validation/fallback의 품질 기준을 어떤 신호와 임계값으로 시작할지 결정한다.

## 범위

- RAG 검색과 context 구성/압축 책임 경계
- web search를 IOP 지식 소스로 통합하는 기준
- MCP allow/block/injection 정책과 tool policy 기준
- output validation, retry/fallback, token/속도/품질 최적화 기준
- 모델 호출 로그와 품질 평가 결과를 후속 routing 판단에 연결하는 방향

## 기능

### Epic: [knowledge-policy] Knowledge and Tool Policy

- [ ] [knowledge-policy] 지식 소스, context 구성/압축, MCP/tool policy, validation/fallback 책임 경계가 IOP 책임으로 문서화되어 있다.
- [ ] [web-search-context] web search는 RAG/context 최적화 후보에 포함되어 IOP 지식 소스 경계에서 다룬다.
- [ ] [client-surface] NomadCode와 다른 외부 agent는 OpenAI-compatible API를 기본 호출 표면으로 사용하고, IOP 전용 workspace/session/agent/policy 문맥은 별도 `iop` wrapper field가 아니라 `metadata` 확장 또는 IOP native endpoint의 명시 필드로 전달한다.
- [ ] [shell-boundary] 특정 Agent Shell이나 Project Workspace UI 요구가 IOP 최적화 책임을 오염시키지 않도록 범위를 분리한다.
- [ ] [validation-policy] 검증과 fallback은 모델 선택/라우팅 결과를 보완하는 IOP 내부 정책으로 정의한다.

## 완료 리뷰

- 상태: 없음
- 요청일: 없음
- 완료 근거: 모든 기능 Task가 아직 충족되지 않았다.
- 리뷰 필요:
  - [ ] 사용자가 완료 결과를 확인했다
  - [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음

## 범위 제외

- 기본 모델 serving/load routing 없이 RAG/MCP/validation부터 구현
- NomadCode Agent Shell 자체 구현
- NomadCode 전용 Project Workspace, diff/PR/branch/commit UX
- OpenCode, Aider, Claude Code, Gemini CLI, Codex CLI adapter 직접 추가 구현

## 작업 컨텍스트

- 관련 경로: `apps/edge`, `apps/node`, `apps/control-plane`, `packages/go/policy`, `packages/go/observability`, `proto/iop`, `README.md`, `agent-roadmap/archive/phase/serving-routing-optimization/milestones/model-serving-load-routing.md`
- 표준선(선택): 기본 모델 serving/load routing이 먼저 안정화된 뒤 최적화 계층을 붙인다.
- 표준선(선택): 외부 실행 호출 계약은 OpenAI-compatible shape를 우선 유지하고, IOP 고유 문맥은 `metadata`로 확장한다. 완전 신규 프로토콜은 OpenAI-compatible 표면으로 lifecycle, artifact, cancel, approval, streaming 요구를 감당하기 어렵다는 근거가 생길 때 재검토한다.
- 선행 작업: Ollama 서빙 안정화, Control Plane과 Client 운영
- 후속 작업: 정책/이력/감사와 품질 기반 routing/fallback 고도화
- 확인 필요: 첫 최적화 범위, tool/web 보안 기본값, validation/fallback 품질 기준
