provider 차이는 wire 경계에 가둬. streaming 형식, tool result를 보내는 방법, 인증 방식은 provider마다 다를 수 있어. 하지만 prompt와 tool 정의까지 provider별로 갈라진다면 adapter 경계가 차이를 충분히 흡수하지 못한 거야.
provider가 새어 나온 곳을 찾아
코드에서 'provider'가 등장하는 곳을 목록으로 만들고 두 그룹으로 나눠. 인증, request body, streaming 형식 같은 합법적인 wire 차이와 prompt 또는 tool variation처럼 공통화해야 할 차이를 구분해.
cwkPippa의 경계
cwkPippa에서는 backend/adapters/base.py가 model API 차이를 다루는 중심 경계야. route, store, frontend는 공통 Claude shape를 사용하고 Codex, Gemini, Ollama vessel은 backend/variants/에서 specialize해 경계를 넓히지 않아.
prompt를 provider 이름으로 갈라놓지 마
'OpenAI면 X prompt, Claude면 Y prompt'처럼 wire 차이를 prompt에 밀어 넣지 마. 공통 prompt를 유지하고 model별 prompt tuning이 정말 필요하다면 별도의 명시적인 layer에서 다뤄.