anoman
Migrasi · Dari Anthropic

Dua env var untuk bermigrasi dari Anthropic.

Gunakan endpoint /anthropic kami agar kode Claude SDK Anda yang ada tetap bekerja tanpa perubahan. Bentuk request sama, bentuk response sama, plus guardrails + observability.

Diff lengkap

Sebelum vs sesudah

# BEFORE: raw Anthropic
from anthropic import Anthropic

client = Anthropic(api_key="sk-ant-...")

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hi"}],
)

# AFTER: through Anoman
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.anoman.io/anthropic",  # ← 1
    api_key="anm-sk-...",                          # ← 2
)

response = client.messages.create(
    model="claude-sonnet-4-6",  # same slug — works unchanged
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hi"}],
)

Pilihan endpoint

Base URL yang mana?

Anoman menyediakan model yang sama melalui DUA endpoint:

  https://api.anoman.io/v1         → format OpenAI Messages
  https://api.anoman.io/anthropic  → format Anthropic Messages

Gunakan /anthropic jika:
  - Anda bermigrasi dari Anthropic SDK
  - Anda memakai Claude Code, Agent TARS, atau tool apa pun yang mengharapkan
    bentuk request/response Anthropic
  - Anda ingin tetap memakai fitur khusus Anthropic seperti
    marker cache_control di dalam konten pesan Anda

Gunakan /v1 jika:
  - Anda bermigrasi dari OpenAI / LangChain / CrewAI / dll.
  - Anda ingin antarmuka yang netral vendor

Anda bisa mencampur: API key yang sama bekerja di kedua endpoint.

Yang tetap sama

  • Setiap metode Anthropic SDK bekerja tanpa perubahan.
  • Streaming via stream=True — urutan event SSE identik (message_start, content_block_delta, dst.).
  • Tool calling — blok Anthropic tool_use yang identik.
  • Vision (input gambar) — format array content-block yang identik.
  • cache_control marker — diteruskan secara transparan, upstream tetap menghormatinya.
  • Klien async (AsyncAnthropic) — didukung penuh.
  • Penanganan error — kelas exception yang sama.

Yang otomatis Anda dapatkan

// Anthropic's response shape — unchanged.
// Plus an _anoman extension field that the SDK harmlessly ignores.

{
  "id": "msg_01...",
  "type": "message",
  "role": "assistant",
  "content": [{"type": "text", "text": "..."}],
  "stop_reason": "end_turn",
  "usage": {"input_tokens": 12, "output_tokens": 8},
  "_anoman": {
    "guardrails": {
      "injection": { "status": "pass", "score": 0.02 },
      "pii":       { "status": "pass" }
    },
    "routing": { "region": "id" },
    "cost_usd": "0.000045",
    "weighted_tokens": 80
  }
}

Keuntungan sama seperti migrasi OpenAI — guardrails di setiap request, observability, pencatatan biaya, pengungkapan residency regional, failover multi-provider.

Claude Code + CLI agent

Tanpa perubahan kode — cukup env var

Claude Code, Agent TARS, dan tool lain yang memakai SDK Anthropic membaca ANTHROPIC_BASE_URL dari environment. Dua env var dan CLI Anda yang ada berjalan lewat Anoman:

# Drop-in for Claude Code / Anthropic CLI:
export ANTHROPIC_BASE_URL=https://api.anoman.io/anthropic
export ANTHROPIC_API_KEY=anm-sk-...

claude

# Every prompt now goes through:
#   - ML-based prompt injection detection
#   - PII masking (per your policy group's mode)
#   - Content moderation
#   - Tool policy enforcement (if you've set one)
# Cached, traced, billed transparently.

Panduan lengkap integrasi Claude Code di /docs/agents/claude-code.

Di luar Claude

Endpoint /anthropic menerima slug model dari provider non-Anthropic juga — kami menerjemahkan bentuk request secara otomatis. Jadi model: gpt-4o atau model: deepseek-v3 juga bekerja di endpoint ini. Berguna saat Anda ingin A/B test alternatif tanpa mengubah lokasi panggilan Anthropic-SDK Anda.

Coba — API key gratis + tanpa perubahan kode.

Dua env var. Integrasi lima menit.