New
1.8.0 and 1.8.0-beta15
Notable Changes
- Reflect latest MCP registry changes by @jmartisk in https://github.com/langchain4j/langchain4j/pull/3888
- Support tool name mapping for MCP clients by @jmartisk in https://github.com/langchain4j/langchain4j/pull/3799
- Allow the output guardrail to rewrite a complete AiMessage by @mariofusco in https://github.com/langchain4j/langchain4j/pull/3868
- Allow accessing AgenticScope from within @Tool-annotated method by @mariofusco in https://github.com/langchain4j/langchain4j/pull/3785
- Allow passing custom attributes from RAG pipeline to ChatMemoryStore by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/3898
- Streaming Cancellation by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/3910
Other Changes
- docs: update home page to display features in card view by @vijaypatidar in https://github.com/langchain4j/langchain4j/pull/3809
- Add markdown & yaml parsers to bom by @vesense in https://github.com/langchain4j/langchain4j/pull/3814
- test: improve PojoListOutputParser test coverage for edge cases by @alxkm in https://github.com/langchain4j/langchain4j/pull/3805
- Split nightly workflows into multiple jobs by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/3822
- OpenAiStreamingChatModel: expose raw HTTP response by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/3828
- test: Add comprehensive test coverage for JSONMetadataHandler by @alxkm in https://github.com/langchain4j/langchain4j/pull/3823
- fix typo by @jujn in https://github.com/langchain4j/langchain4j/pull/3824
- Avoid returing a null AiMessage from Gemini by @loicmathieu in https://github.com/langchain4j/langchain4j/pull/3825
- Allow configuring the logger for logging MCP events by @loicmathieu in https://github.com/langchain4j/langchain4j/pull/3803
- Fix guardrails result after a successful reprompt by @mariofusco in https://github.com/langchain4j/langchain4j/pull/3820
- fix: the Builder exposes a logger setter but SseSubscriber still constructs its own Logger internally. by @NeatGuyCoding in https://github.com/langchain4j/langchain4j/pull/3835
- test: Add comprehensive test coverage for Vertex AI ContentsMapper by @alxkm in https://github.com/langchain4j/langchain4j/pull/3831
- Release automation by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/3838
- feat: Added support to auto reinitialize session if not found by @vijaypatidar in https://github.com/langchain4j/langchain4j/pull/3833
- Automate updating versions in documentation by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/3845
- Automate updating versions in documentation by @dliubarskyi in https://github.com/langchain4j/langchain4j/pull/3847
- test: enhance AiService chat memory configuration coverage by @alxkm in https://github.com/langchain4j/langchain4j/pull/3839
- Fix markdown tests package by @vesense in https://github.com/langchain4j/langchain4j/pull/3844
- docs: Add YugabyteDB embedding store documentation by @krishna-yb in https://github.com/langchain4j/langchain4j/pull/3852
- Azure CosmosDB No SQL: Fixing bugs by @aayush3011 in https://github.com/langchain4j/langchain4j/pull/3813
- Use LocalDateTime evaluated as UTC in the MCP registry client by @jmartisk in https://github.com/langchain4j/langchain4j/pull/3865
- Fix typos in WorkflowAgentsIT by @vesense in https://github.com/langchain4j/langchain4j/pull/3859
- Fix pure-agentic example by @vesense in https://github.com/langchain4j/langchain4j/pull/3860
- feat: I think the Document class should be public so that users can i… by @GuXiangFly in https://github.com/langchain4j/langchain4j/pull/3857
- docs(search-engine): DuckDuckGo integration by @Malaydewangan09 in https://github.com/langchain4j/langchain4j/pull/3862
- Add immutability and validation tests for DefaultQueryRouter by @alxkm in https://github.com/langchain4j/langchain4j/pull/3863
- Fix CI build failure due to langchain4j-docu-chatbot-updater license compliance error by @vesense in https://github.com/langchain4j/langchain4j/pull/3861
- docs: add OpenTelemetry GenAI instrumentation guide by @dineshkumarkummara in https://github.com/langchain4j/langchain4j/pull/3842
- test: Add validation and instance identity tests for ClassInstanceLoader by @alxkm in https://github.com/langchain4j/langchain4j/pull/3870
- docs: Add mariadb to embedding store list by @vesense in https://github.com/langchain4j/langchain4j/pull/3873
- Update the watsonx.ai SDK to the latest version by @andreadimaio in https://github.com/langchain4j/langchain4j/pull/3812
- Allow AiServices to return void by @mariofusco in https://github.com/langchain4j/langchain4j/pull/3874
- Renamed outputName to outputKey and updated docs by @vijaypatidar in https://github.com/langchain4j/langchain4j/pull/3877
- Retain description of anyOf elements from the MCP schema by @jmartisk in https://github.com/langchain4j/langchain4j/pull/3886
- docs: Remove examples from YugabyteDB documentation by @krishna-yb in https://github.com/langchain4j/langchain4j/pull/3875
- docs: Update chat memory docs by @vesense in https://github.com/langchain4j/langchain4j/pull/3876
- test: Add null key validation and empty state tests for InvocationParameters by @alxkm in https://github.com/langchain4j/langchain4j/pull/3881
- docs: add open-ai-official model to list by @vesense in https://github.com/langchain4j/langchain4j/pull/3882
- feat(open-ai): Add support to set query parameters to an OpenAI request by @maff in https://github.com/langchain4j/langchain4j/pull/3880
- test: Add validation tests and refactor AiServicesBuilderTest by @alxkm in https://github.com/langchain4j/langchain4j/pull/3891
- docs: update numbers in intro by @vesense in https://github.com/langchain4j/langchain4j/pull/3893
- chore(deps): Update Apache Tika to version 3.2.3 by @maff in https://github.com/langchain4j/langchain4j/pull/3885
- fix: thinking disabled should set thinking to null, toString should not expose secret by @NeatGuyCoding in https://github.com/langchain4j/langchain4j/pull/3892
- docs: update rag docs by @vesense in https://github.com/langchain4j/langchain4j/pull/3899
- Explicitly for the ResponseFormat instead of checking whether it's null when validating a ChatRequest for any Anthropic model by @Bram-- in https://github.com/langchain4j/langchain4j/pull/3900
- Fix typos in observability doc by @jeanbisutti in https://github.com/langchain4j/langchain4j/pull/3902
- test: add edge case coverage for JsonTestUtils.jsonify() by @alxkm in https://github.com/langchain4j/langchain4j/pull/3905
- feat: add support for base64 images using OpenAi Azure by @mathieu-stennier in https://github.com/langchain4j/langchain4j/pull/3909
- test: Add comprehensive test coverage for ParsingUtils by @alxkm in https://github.com/langchain4j/langchain4j/pull/3913
- Fix ConditionalInvocationHandler name by @vesense in https://github.com/langchain4j/langchain4j/pull/3922
- Add support for validation of content types in Ollama models and respective unit tests by @nwijngaards in https://github.com/langchain4j/langchain4j/pull/3923
- Extract a Base Gemini Chat Model builder by @Bram-- in https://github.com/langchain4j/langchain4j/pull/3917
- Enhance failure and fatal guardrail outcome descriptions by @edeandrea in https://github.com/langchain4j/langchain4j/pull/3919
- docs: update numbers in readme by @vesense in https://github.com/langchain4j/langchain4j/pull/3920
- test: Add comprehensive test coverage for TypeUtils by @alxkm in https://github.com/langchain4j/langchain4j/pull/3924
- test: Add missing test coverage for OpenAiUtils thinking content and edge cases by @alxkm in https://github.com/langchain4j/langchain4j/pull/3931
- Make GoogleAiGeminiChatModel unit-testable by @Bram-- in https://github.com/langchain4j/langchain4j/pull/3927
- Add tool execution request id for Gemini model by @ChiaoGeek in https://github.com/langchain4j/langchain4j/pull/3557
- Close resources in Utils.readBytes by @jeanbisutti in https://github.com/langchain4j/langchain4j/pull/3934
- test: add missing test coverage for ParsingUtils collection parsing by @alxkm in https://github.com/langchain4j/langchain4j/pull/3935
- Remove model from GeminiGenerateContentRequest by @Bram-- in https://github.com/langchain4j/langchain4j/pull/3936
- Fix NPE with OpenAiChatRequestParameters by @jeanbisutti in https://github.com/langchain4j/langchain4j/pull/3940
New Contributors
- @jujn made their first contribution in https://github.com/langchain4j/langchain4j/pull/3824
- @krishna-yb made their first contribution in https://github.com/langchain4j/langchain4j/pull/3852
- @GuXiangFly made their first contribution in https://github.com/langchain4j/langchain4j/pull/3857
- @Malaydewangan09 made their first contribution in https://github.com/langchain4j/langchain4j/pull/3862
- @dineshkumarkummara made their first contribution in https://github.com/langchain4j/langchain4j/pull/3842
- @maff made their first contribution in https://github.com/langchain4j/langchain4j/pull/3880
- @Bram-- made their first contribution in https://github.com/langchain4j/langchain4j/pull/3900
- @jeanbisutti made their first contribution in https://github.com/langchain4j/langchain4j/pull/3902
- @mathieu-stennier made their first contribution in https://github.com/langchain4j/langchain4j/pull/3909
- @nwijngaards made their first contribution in https://github.com/langchain4j/langchain4j/pull/3923
Full Changelog: https://github.com/langchain4j/langchain4j/compare/1.7.1...1.8.0