Anthropic (Claude)
TL;DR
bash
ONGRID_ANTHROPIC_API_KEY=sk-ant-...
ONGRID_ANTHROPIC_MODEL=claude-sonnet-4-6 # default
ONGRID_ANTHROPIC_BASE_URL= # optional; relay / regional endpointProvider id: anthropic. SDK 어댑터: 네이티브 Anthropic Messages API (internal/pkg/llm/ 아래의 eino Anthropic 클라이언트 경유).
환경 변수
| Var | Default | Notes |
|---|---|---|
ONGRID_ANTHROPIC_API_KEY | — | 비어 있음 = 카탈로그에서 provider 제거 |
ONGRID_ANTHROPIC_MODEL | claude-sonnet-4-6 | 호출별 오버라이드가 없을 때 사용되는 모델 |
ONGRID_ANTHROPIC_BASE_URL | (Anthropic API 기본) | Relay / 지역 엔드포인트용 오버라이드 |
ONGRID_ANTHROPIC_MODELS | claude-opus-4-7,claude-sonnet-4-6,claude-haiku-4-5 | 콤마 구분; SPA picker 가 보여 주는 폐쇄 셋 |
네 가지 모두 첫 부팅 시 SetIfAbsent 를 통해 system_settings.llm.anthropic_* 에 시드 — 재부팅이 Settings UI 의 운영자 편집을 절대 덮어쓰지 않습니다.
기본 카탈로그
박스 그대로 모델 picker 는 다음 세 Claude 모델 표시:
claude-opus-4-7— frontier 모델. marginal 정확도가 비용을 이기는 어려운 근본 원인 pass 에 사용.claude-sonnet-4-6— 기본. 균형 잡힌 비용 / 품질; 채팅 picker 가 미리 선택.claude-haiku-4-5— 저렴한 것. RCA Pass-2 구조화 추출기와 번역 호출에 권장 — 짧은 prompt, 짧은 답, 도구 루프 없음.
SPA 의 /settings/llm 페이지에서 리스트 편집 또는 부팅 시 ONGRID_ANTHROPIC_MODELS 오버라이드.
BaseURL 오버라이드
bash
ONGRID_ANTHROPIC_BASE_URL=https://api.anthropic-relay.example.com/v1다음 용도:
- 사내 relay 프록시 (요청은 여전히 Anthropic 키 사용 — relay 는 투명).
- 지역 엔드포인트 — Anthropic 은 오늘 다중 지역을 발행하지 않지만 다른 provider 와의 패리티를 위해 노브가 여기 있음.
기본 base URL 은 cmd/ongrid/main.go:507 에 배선:
go
BaseURL: firstNonEmpty(cfg.LLM.Anthropic.BaseURL, "https://api.anthropic.com/v1"),Anthropic 를 기본으로 만들기
bash
ONGRID_LLM_DEFAULT_PROVIDER=anthropic또는 SPA 에서: /settings/llm → "Default provider" 라디오.
기본 provider 노브는 호출별 provider 가 고정되지 않을 때 Chat() 이 사용하는 것을 제어 (RCA worker, 번역, 아무것도 선택되지 않을 때 홈 페이지 채팅). 재시작 없이 효과 발생을 가능하게 하는 동적 기본 메커니즘은 라우팅 참고.
호출별 선택
채팅 UI 의 모델 picker 는 provider 와 model 둘 다 채팅 send envelope 에 씀. 라우터 (RoutingChatModel.pick) 가 WithProvider(id) eino 옵션을 받음:
go
resp, err := chatModel.Generate(ctx, msgs,
model.WithModel("claude-opus-4-7"),
llm.WithProvider("anthropic"),
)특이점
- Stop reason — Anthropic 은 자체 stop-reason 어휘 (
end_turn,tool_use,max_tokens) 반환. Ongrid 어댑터가 다운스트림 코드가 분기하지 않도록 이를 eino 표준FinishReason으로 매핑. - Tool use — Anthropic 의 tool-use API 는 OpenAI flat-tool_calls 형태가 아닌 content block 사용. 어댑터가 투명하게 번역; provider 와 무관하게 같은 방식으로 도구 작성.
- System 메시지 — Claude 는 선행
role:system메시지가 아닌 단일system파라미터 (문자열) 받음. 어댑터가 보내기 전에\n\n구분자로 다중 system 메시지 병합.