LLM 오케스트레이터 선택

상태

승인

후보군

방안설명
claude -p CLI subprocess로컬 설치된 Claude Code CLI를 ProcessBuilder로 실행. --mcp-config 플래그로 MCP 서버 지정. --output-format stream-json으로 스트리밍 파싱
Anthropic API 직접 호출spring-ai-starter-anthropic으로 API 키 기반 호출
OpenAI APIOpenAI ChatCompletion API 사용

결정

Anthropic API를 직접 호출하지 않고 로컬 설치된 claude -p CLI를 subprocess로 실행한다.

결정 이유

  • 이미 로컬에 Claude Code CLI가 설치돼 있고, --mcp-config 플래그로 MCP 서버를 지정할 수 있다.
  • Anthropic API 키 없이 Claude Code Pro 구독(월정액)만으로 동작 — 추가 비용 0.
  • --output-format stream-json 플래그로 스트리밍 응답 파싱이 가능하다.
  • ChatApiControllerProcessBuilder로 실행하고 CLAUDE_PATH 환경 변수로 경로를 주입한다.

검토 대안

방안기각 이유
Anthropic API 직접 호출API 키 필요, 호출당 과금 발생
OpenAI APIClaude 생태계(MCP 표준)와의 정합성이 낮음

트레이드 오프

  • 득: 추가 API 비용 없음. --mcp-config로 외부 MCP 서버도 동일 방식으로 등록 가능.
  • 실: subprocess 실행 방식이라 LLM 레이턴시에 CLI 기동 시간(~100ms)이 추가된다. 서버 환경에 claude CLI가 설치돼 있어야 한다.