ChatXAI builds two OpenAI clients per instance instead of sharing root_client
In langchain-xai, ChatXAI.validate_environment creates two separate openai.OpenAI clients (and two openai.AsyncOpenAI) for each instance, rather than deriving client from root_client like sibling integrations. This causes duplicated resources, inconsistent close behavior, and potential connection pool waste. The fix is to build root clients first and set client/async_client as views.
