Inicio / Aprende / ChatAnthropic en LangChain: importación, base_url, streaming, herramientas y errores
Claude + LangChain. Una secuencia de eslabones dibujados a mano, hechos con pequeñas tarjetas de documentos, que conecta una hoja de instrucciones con una ventana de modelo y un resultado final.

ChatAnthropic en LangChain: importación, base_url, streaming, herramientas y errores

ChatAnthropic del langchain-anthropic paquete es el modelo de chat de Claude de LangChain. Encapsula el SDK oficial de Anthropic para Python, por lo que basta con un argumento para conectarlo a una pasarela, base_url, establecido en la raíz del host. Todo lo demás en tus cadenas, agentes y herramientas permanece igual.

Instalación e importación

terminal
pip install -U langchain-anthropic
app.py
from langchain_anthropic import ChatAnthropic

llm = ChatAnthropic(
    model="claude-sonnet-5",
    base_url="https://aiprimetech.io",           # host root: the SDK adds /v1/messages
    api_key="your_gateway_key",   # or set ANTHROPIC_API_KEY
)

print(llm.invoke("Say hello in one word.").text)
No /v1 en base_url aquí. El SDK de Anthropic subyacente añade /v1/messages por sí mismo; añadir /v1 produce /v1/v1/messages y un 404 page not found.

Configúralo desde el entorno

base_url es un alias de anthropic_api_urly api_key un alias de anthropic_api_key. Cuando no los pasas, ChatAnthropic lee ANTHROPIC_API_URL primero, después ANTHROPIC_BASE_URL, y la clave de ANTHROPIC_API_KEY. Los argumentos explícitos siempre tienen prioridad.

terminal
export ANTHROPIC_API_KEY=your_gateway_key
export ANTHROPIC_API_URL=https://aiprimetech.io
app.py
from langchain_anthropic import ChatAnthropic

llm = ChatAnthropic(model="claude-sonnet-5")   # picks up the gateway from the environment

Transmisión en tiempo real

app.py
for chunk in llm.stream("Explain backpressure in two sentences."):
    print(chunk.text, end="", flush=True)

.text recopila solo los bloques de texto de cada fragmento, por lo que el resultado se mantiene limpio cuando el modelo también emite bloques de razonamiento o de uso de herramientas. Utiliza streaming para respuestas largas: una solicitud larga sin streaming es la causa habitual de que se agote el tiempo de espera.

Herramientas y salida estructurada

tools.py
from langchain_core.tools import tool

@tool
def get_time(city: str) -> str:
    """Return the current local time in a city."""
    return "12:00"

msg = llm.bind_tools([get_time]).invoke("What time is it in Tokyo?")
print(msg.tool_calls)
structured.py
from pydantic import BaseModel

class Weather(BaseModel):
    city: str
    temperature_c: float

print(llm.with_structured_output(Weather).invoke("It is 21 degrees in Lisbon today."))

Reintentos, tiempos de espera y max_tokens

max_retries tiene como valor predeterminado 2, igual que el SDK de Anthropic, que reintenta los errores de conexión, 429 y las respuestas 5xx. timeout (alias de default_request_timeout) se expresa en segundos. Si dejas max_tokens sin definir, se toma del perfil del modelo.

app.py
llm = ChatAnthropic(
    model="claude-sonnet-5",
    base_url="https://aiprimetech.io",
    max_retries=4,
    timeout=120,
    max_tokens=8000,
)

Para los lotes, limita el paralelismo para respetar el límite de concurrencia de tu clave: llm.batch(inputs, config={"max_concurrency": 3}).

La alternativa con ChatOpenAI

Si tu código está estandarizado en ChatOpenAI, el endpoint compatible con OpenAI de la pasarela también ofrece Claude. Esta vía requiere /v1 al final, al contrario que ChatAnthropic.

app.py
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="claude-sonnet-5", base_url="https://aiprimetech.io/v1", api_key="your_gateway_key")

Es preferible usar ChatAnthropic para Claude: conserva funciones nativas como la caché de prompts y los bloques de razonamiento.

Resolución de problemas

Lo que ves Causa Solución
404 page not found/v1 en el campo de ChatAnthropic base_urlUsa la raíz del host, https://aiprimetech.io
Model "..." is not supportedUn ID que el grupo de tu clave no ofrece, o un nombre antiguo con fechaUsa un ID actual de la tabla siguiente
AuthenticationErrorANTHROPIC_API_KEY vacío en el proceso en ejecución, o una clave para otro endpointPasa api_key= explícitamente para probar
RateLimitError: Concurrency limit exceededDemasiadas llamadas en paralelo (batch, gather asíncrono)max_concurrency en la configuración del lote
APITimeoutErrorGeneraciones largas sin streamingUsa streaming o aumenta timeout
ID del modelo Úsalo para
claude-sonnet-5Opción predeterminada para programación y trabajo con agentes: rápida, potente y de precio intermedio.
claude-opus-5-5Razonamiento más complejo, refactorizaciones grandes y ejecuciones largas de agentes.
claude-fable-5-1El más capaz y el más caro; resérvalo para las tareas más difíciles.
claude-haiku-4-5Económico y rápido: títulos, resúmenes, clasificación y pasos pequeños.

Preguntas frecuentes

¿Cómo importo ChatAnthropic?
pip install -U langchain-anthropic, y después from langchain_anthropic import ChatAnthropic.
¿Necesita /v1 el base_url de ChatAnthropic?
No. Pasa la raíz del host, por ejemplo, https://aiprimetech.io;; el SDK de Anthropic añade /v1/messages. ChatOpenAI funciona al revés y necesita /v1.
¿Qué variables de entorno lee ChatAnthropic?
ANTHROPIC_API_KEY para la clave, y ANTHROPIC_API_URL, seguido de ANTHROPIC_BASE_URL, para el endpoint cuando no se pasa base_url.
¿Es base_url lo mismo que anthropic_api_url?
Sí. base_url es un alias de anthropic_api_url, y api_key es un alias de anthropic_api_key.
Empieza a usar Claude en minutos

Obtén una clave de API: no necesitas una cuenta de Anthropic ni estar en una lista de espera.

Obtén tu clave de API

AI Prime Tech es una pasarela de API independiente. No está afiliada a Anthropic, no cuenta con su respaldo ni es un distribuidor de Anthropic. Claude y los nombres de los modelos relacionados son marcas comerciales de sus respectivos propietarios.

Más guías de la API de Claude

Cómo obtener una clave de API de ClaudePrecios de la API de Claude, explicadosLa forma más económica de usar la API de ClaudeCursor ilimitado con la API de ClaudeAcceso ilimitado a Claude CodeGateway de la API de Claude frente al acceso directo a AnthropicUsar Claude a través de una API compatible con OpenAILos modelos de Claude explicados: una comparación de Claude Opus, Sonnet, Haiku y Fable; todos los modelos de la API de Claude, nombres de modelos de Anthropic y precios (2026)Pagar la API de Claude con criptomonedasAcceso a la API de Claude sin lista de esperaCómo reducir el uso de tokens de ClaudeCline ilimitado con la API de ClaudeRoo Code ilimitado con la API de ClaudeClaude ilimitado en los IDE de JetBrainsAider sin límites con la API de ClaudeClaude ilimitado en VS CodeConfiguración de OpenCode para Claude: ajustes de opencode.json, modelos y errores comunesEjecutar un agente Hermes sin límites con ClaudeEjecutar OpenClaw sin límites con ClaudeQué significa una API compatible con AnthropicClave API de Claude Code — ANTHROPIC_API_KEY: cómo obtenerla, configurarla y cuándo usar claude setup-token en su lugarCostes de la API de Claude Code: precios y cómo reducirlosExplicación de los errores de la API de Claude: error del servidor 500, sobrecarga 529, límite de solicitudes 429, solicitud incorrecta 400 y la solución para cada unoCómo comprar créditos para la API de Claude y por qué un crédito de Claude es mejor que cualquier oferta de «comprar una cuenta de Claude»API gratuita de Claude: ¿existe una clave API de Claude gratuita y qué es realmente gratis en 2026?API de Claude frente a la suscripción Claude Pro/Max: cuál elegirEjecutar la CLI de Codex con ClaudeConectar Claude a n8nEnrutar LiteLLM a ClaudeUsar Claude en Kilo CodeIntegra Claude en GitHub CopilotConecta Zed a Claude a través de la pasarelaConecta Cherry Studio a ClaudeSDK de Python de Anthropic: instalación, configuración de base_url, streaming y gestión de erroresClaude con Vercel AI SDK: baseURL de createAnthropic, streaming y solucionesEjecuta Factory Droid con ClaudeLa API de Claude Code, explicadaIntegración de la API de Claude en tu aplicaciónCómo usar Claude sin límites y por qué no existe un «Claude Code crackeado»