LangChain4j is an open-source Java library that simplifies the integration of LLMs into Java applications through a unified API, providing access to popular LLMs and vector databases. It makes implementing RAG, tool calling (including support for MCP), and agents easy. LangChain4j integrates seamlessly with various enterprise Java frameworks.
Model Catalog support for Anthropic, Gemini, OpenAI and Mistral by @haumacher in https://github.com/langchain4j/langchain4j/pull/4240
Agentic: Add observability and monitoring by @mariofusco in https://github.com/langchain4j/langchain4j/pull/4181
Anthropic: support latest tool features by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/4211
Anthropic: support structured outputs by @diegoberriosr in https://github.com/langchain4j/langchain4j/pull/4220
Anthropic: return raw HTTP response and SSE events by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/4225
OpenAI: add transcription support by @anunnakian in https://github.com/langchain4j/langchain4j/pull/4101
AI Services: allow to pass ChatRequestParameters as method argument by @mariofusco in https://github.com/langchain4j/langchain4j/pull/4226
Other Changes
docu: update versions to 1.9.1 and 1.9.1-beta17 by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/4151
Update versions to 1.10.0-SNAPSHOT and 1.10.0-beta18-SNAPSHOT by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/4152
Always make sure query transformer has access to system message in memory by @YSZhuoyang in https://github.com/langchain4j/langchain4j/pull/4126
Allow to configure a default value for a key in the agentic scope by @mariofusco in https://github.com/langchain4j/langchain4j/pull/4153
Fix supervisor usage as subagent by @mariofusco in https://github.com/langchain4j/langchain4j/pull/4161
Jvector docs by @odysseaspenta in https://github.com/langchain4j/langchain4j/pull/4163
Bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /docs by @dependabot[bot] in https://github.com/langchain4j/langchain4j/pull/4164
Bump express from 4.21.2 to 4.22.1 in /docs by @dependabot[bot] in https://github.com/langchain4j/langchain4j/pull/4168
docs: add jlama vm options by @vesense in https://github.com/langchain4j/langchain4j/pull/4155
Bump node-forge from 1.3.1 to 1.3.2 in /docs by @dependabot[bot] in https://github.com/langchain4j/langchain4j/pull/4141
Update chat message types count in documentation by @ratomidev in https://github.com/langchain4j/langchain4j/pull/4138
Add documentation for Local code execution engine by @vesense in https://github.com/langchain4j/langchain4j/pull/4159
Test for MCP registry server parsing by @jmartisk in https://github.com/langchain4j/langchain4j/pull/4149
Support tools definition via Map in agents by @mariofusco in https://github.com/langchain4j/langchain4j/pull/4169
Whoops; Make GoogleAiGeminiBatchChatModel.builder() public. by @Bram-- in https://github.com/langchain4j/langchain4j/pull/4156
Adding a new MessageModeratorInputGuardrail by @agoncal in https://github.com/langchain4j/langchain4j/pull/4160
Updates to Infinispan 16.0.3 by @karesti in https://github.com/langchain4j/langchain4j/pull/4171
fix(sql-filter-parser): handle Function expressions in WHERE clause #3667 by @Wanyi9988 in https://github.com/langchain4j/langchain4j/pull/4170
Migrate in-process embedding modules into main repo by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/4179
Fill name support in PromptTemplate by @angelozerr in https://github.com/langchain4j/langchain4j/pull/4180
Fix anthropic token count estimator empty messages by @HamzaElzarw-2022 in https://github.com/langchain4j/langchain4j/pull/3952
fix(ai-service): append output format instructions to last TextContent #3581 by @Wanyi9988 in https://github.com/langchain4j/langchain4j/pull/4184
fix:NPE in SupervisorPlanner#result() when 'response' is missing(#4196) by @wangxuanni in https://github.com/langchain4j/langchain4j/pull/4199
fix: #3091 change single parameter detection logic and add tests by @raphidlee in https://github.com/langchain4j/langchain4j/pull/4186
Fix agentic conditional planner when no condition is matched by @mariofusco in https://github.com/langchain4j/langchain4j/pull/4202
Update the Azure and OpenAI dependencies by @jdubois in https://github.com/langchain4j/langchain4j/pull/4203
Issue #4190 : [BUG] AwsDocumentConverter adds all parameters as required instead of using "required" list by @ncilib-ssc in https://github.com/langchain4j/langchain4j/pull/4214
feat: add HttpClient customization hooks to MCP HTTP & WebSocket transports by @LucasGois1 in https://github.com/langchain4j/langchain4j/pull/4189
Fix BatchSuccess mapping for Gemini BatchResponse by @Bram-- in https://github.com/langchain4j/langchain4j/pull/4175
feat: Support PDF input via URL for Anthropic Claude API by @adrianolaselva in https://github.com/langchain4j/langchain4j/pull/4216
feat: add Anthropic strictTools for tool definitions by @wangxuanni in https://github.com/langchain4j/langchain4j/pull/4223
Fix supervisor test after agentIDs refactor by @mariofusco in https://github.com/langchain4j/langchain4j/pull/4231
Add support for return behavior.immediate with dynamically tools by @sabob in https://github.com/langchain4j/langchain4j/pull/4224
Fix use of default chat memory with agents by @mariofusco in https://github.com/langchain4j/langchain4j/pull/4234
fix: NPE with explicit response formats in Ollama by @dskarzh in https://github.com/langchain4j/langchain4j/pull/4238
refactor(ToolService, AiServiceStreamingResponseHandler): Add maxSequentialToolsInvocations handling by @Ivan97 in https://github.com/langchain4j/langchain4j/pull/4204
Deprecate the langchain4j-github-models module by @jdubois in https://github.com/langchain4j/langchain4j/pull/4243
fix: enhance PartsMapper to handle various tool result formats by @karsta26 in https://github.com/langchain4j/langchain4j/pull/4244
Fix MCP client permanent disconnection after temporary network failure by @dongfeng3692 in https://github.com/langchain4j/langchain4j/pull/4249
Anthropic server tool result returned to attributes by @ejstuart in https://github.com/langchain4j/langchain4j/pull/4245
docs(ehancement): Add spacing to the feature lists by @HamDean in https://github.com/langchain4j/langchain4j/pull/4254
Update watsonx-ai dependency to 0.16.0 by @andreadimaio in https://github.com/langchain4j/langchain4j/pull/4251
Feature/hybrid retrieval by @Ivan97 in https://github.com/langchain4j/langchain4j/pull/4124
AiServiceResponseReceivedEvent containing ChatRequest by @stanlayze in https://github.com/langchain4j/langchain4j/pull/4215
Revisit AiServices.tools() validation by @oscerd in https://github.com/langchain4j/langchain4j/pull/4208
Updates to Infinispan 16.0.5 by @karesti in https://github.com/langchain4j/langchain4j/pull/4259
Allow to pass ChatRequestParameters to streaming AIServices by @mariofusco in https://github.com/langchain4j/langchain4j/pull/4264
Bump org.apache.logging.log4j:log4j-core from 2.22.0 to 2.25.3 in /document-loaders/langchain4j-document-loader-github by @dependabot[bot] in https://github.com/langchain4j/langchain4j/pull/4260
Todo task/added additional date functions in sql filter parser class by @sumanth-reddy13 in https://github.com/langchain4j/langchain4j/pull/4269
Increasing system prompt size to be above 1K to get reliable results. by @jonathannaguin in https://github.com/langchain4j/langchain4j/pull/4270
docs: springboot-integration add automatic Component ToolProvider by @zzx1314 in https://github.com/langchain4j/langchain4j/pull/3075
Adds support of JsonRawSchema for Gemini API by @ichristod in https://github.com/langchain4j/langchain4j/pull/4150
feat: including reasoning content by @commandf1 in https://github.com/langchain4j/langchain4j/pull/4200
feat:Adjust chat memory storage for augmented user messages by @YongGoose in https://github.com/langchain4j/langchain4j/pull/4272
Fix #4278 by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/4281
Fix 4282: Do not fail deserialization when new fields are added to the MCP responses by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/4283
New Contributors
@ratomidev made their first contribution in https://github.com/langchain4j/langchain4j/pull/4138
@Wanyi9988 made their first contribution in https://github.com/langchain4j/langchain4j/pull/4170
@angelozerr made their first contribution in https://github.com/langchain4j/langchain4j/pull/4180
@wangxuanni made their first contribution in https://github.com/langchain4j/langchain4j/pull/4199
@ncilib-ssc made their first contribution in https://github.com/langchain4j/langchain4j/pull/4214
@LucasGois1 made their first contribution in https://github.com/langchain4j/langchain4j/pull/4189
@adrianolaselva made their first contribution in https://github.com/langchain4j/langchain4j/pull/4216
@sabob made their first contribution in https://github.com/langchain4j/langchain4j/pull/4224
@dskarzh made their first contribution in https://github.com/langchain4j/langchain4j/pull/4238
@Ivan97 made their first contribution in https://github.com/langchain4j/langchain4j/pull/4204
@diegoberriosr made their first contribution in https://github.com/langchain4j/langchain4j/pull/4220
@karsta26 made their first contribution in https://github.com/langchain4j/langchain4j/pull/4244
@dongfeng3692 made their first contribution in https://github.com/langchain4j/langchain4j/pull/4249
@ejstuart made their first contribution in https://github.com/langchain4j/langchain4j/pull/4245
@HamDean made their first contribution in https://github.com/langchain4j/langchain4j/pull/4254
@stanlayze made their first contribution in https://github.com/langchain4j/langchain4j/pull/4215
@oscerd made their first contribution in https://github.com/langchain4j/langchain4j/pull/4208
@sumanth-reddy13 made their first contribution in https://github.com/langchain4j/langchain4j/pull/4269
@zzx1314 made their first contribution in https://github.com/langchain4j/langchain4j/pull/3075
@ichristod made their first contribution in https://github.com/langchain4j/langchain4j/pull/4150
@commandf1 made their first contribution in https://github.com/langchain4j/langchain4j/pull/4200
@YongGoose made their first contribution in https://github.com/langchain4j/langchain4j/pull/4272
@haumacher made their first contribution in https://github.com/langchain4j/langchain4j/pull/4240
Full Changelog: https://github.com/langchain4j/langchain4j/compare/1.9.1...1.10.0