🚀 Release Notes: uipath-langchain-client & uipath-llm-client
This release introduces two new foundational packages that replace the inline HTTP/auth handling previously baked into uipath-langchain. The result is a cleaner separation of concerns, less boilerplate, and a more flexible integration story across providers.
📦 uipath-llm-client — Core Transport Layer
A focused, provider-agnostic HTTP layer for talking to LLM backends.
- Centralized plumbing — URL building, authentication (AgentHub & LLM Gateway), and header management are consolidated into a single
httpx.Client. - Smart transport behavior — retries, streaming headers, BYO credentials, and custom exceptions are handled at the transport level, so there's no per-provider boilerplate.
- Passthrough clients included — ships ready-to-use
httpxclients for OpenAI, Anthropic, and Gemini. - Modular installation — pull in only what you need via optional extras:
bash
pip install uipath-llm-client[openai]
pip install uipath-llm-client[google]
pip install uipath-llm-client[all]🔗 uipath-langchain-client — LangChain Integration Layer
A thin, ergonomic bridge between LangChain and uipath-llm-client.
- Passthrough chat models — each vendor client simply injects the
httpx.Clientfromuipath-llm-client, keeping the integration surface minimal. UiPathChatnormalized client — auto-discovers the correct vendor client via the discovery endpoint, so callers don't have to hardcode provider selection.- Unified
api_config— every client exposesapi_config, includingvendor_typeandapi_flavor, for consistent introspection. - Automatic metadata merging — generation info is merged with response metadata out of the box.
🔄 What Moved Out of uipath-langchain
The old monolithic layout has been broken apart. Here's where things live now:
What | Where it lives now
-- | --
Auth headers, token refresh, URL construction | uipath-llm-client
Retry logic | Transport-level in uipath-llm-client (no longer hardcoded per provider)
RequestMixin | Replaced by UiPathBaseLLMClient in uipath-langchain-client
Chat model factory | uipath-langchain-client (uses discovery endpoint)
Gemini streaming fixes | uipath-langchain-client
ℹ️ Backwards compatibility: old implementations are preserved under
chat/_legacy/so existing integrations continue to work while you migrate.
✨ Why This Matters
- Cleaner architecture — transport concerns and LangChain concerns are now properly separated.
- Less duplication — retries, auth, and headers are defined once, not per provider.
- Easier extensibility — adding a new vendor is now a thin passthrough, not a rewrite.