LangChain4j is an idiomatic, open-source Java library for building LLM-powered applications on the JVM. It offers a unified API over popular LLM providers and vector stores, and makes implementing tool calling (including MCP support), agents and RAG easy. It integrates seamlessly with enterprise Java frameworks like Quarkus and Spring Boot.
This report presents the forensic synthetic code analysis of langchain4j/langchain4j, a Java project with 12,595 GitHub stars. SynthScan v2.0 examined 821,736 lines of code across 3493 source files, recording 365 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 2.3 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 365 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …dev/langchain4j/model/ollama/OllamaEmbeddingModel.java | 89 | return dev.langchain4j.model.embedding.response.EmbeddingResponse.builder() | CODE |
| CRITICAL | …hain4j/http/client/jdk/MultipartBodyPublisherTest.java | 137 | org.junit.jupiter.api.Assertions.assertTrue( | STRING |
| CRITICAL | …dev/langchain4j/code/azure/acads/SessionsREPLTool.java | 372 | .POST(java.net.http.HttpRequest.BodyPublishers.ofByteArray(requestBody)) | CODE |
| CRITICAL | …dev/langchain4j/code/azure/acads/SessionsREPLTool.java | 376 | nativeHttpClient.send(request, java.net.http.HttpResponse.BodyHandlers.ofString()); | CODE |
| CRITICAL | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 158 | .search(dev.langchain4j.store.embedding.EmbeddingSearchRequest.builder() | CODE |
| CRITICAL | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 186 | .search(dev.langchain4j.store.embedding.EmbeddingSearchRequest.builder() | CODE |
| CRITICAL | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 216 | .search(dev.langchain4j.store.embedding.EmbeddingSearchRequest.builder() | CODE |
| CRITICAL⚡ | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 236 | "Python tutorial for data science", dev.langchain4j.data.document.Metadata.from("language", "python")); | CODE |
| CRITICAL⚡ | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 239 | dev.langchain4j.data.document.Metadata.from("language", "java")); | CODE |
| CRITICAL⚡ | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 241 | "Python guide for machine learning", dev.langchain4j.data.document.Metadata.from("language", "python")); | CODE |
| CRITICAL⚡ | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 250 | .search(dev.langchain4j.store.embedding.EmbeddingSearchRequest.builder() | CODE |
| CRITICAL⚡ | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 254 | .filter(dev.langchain4j.store.embedding.filter.MetadataFilterBuilder.metadataKey("language") | CODE |
| CRITICAL | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 282 | .search(dev.langchain4j.store.embedding.EmbeddingSearchRequest.builder() | CODE |
| CRITICAL | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 314 | .search(dev.langchain4j.store.embedding.EmbeddingSearchRequest.builder() | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 263 | .messages(List.of(dev.langchain4j.data.message.UserMessage.from("hello"))) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 325 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 345 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 364 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 383 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 419 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 441 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 461 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 481 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 511 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 540 | .messages(dev.langchain4j.data.message.UserMessage.from("hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 591 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 677 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 742 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 813 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 875 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 955 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …/java/dev/langchain4j/model/watsonx/ConverterTest.java | 262 | var toConvert = new com.ibm.watsonx.ai.chat.model.PartialToolCall( | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 222 | var messages = List.<ChatMessage>of(com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello")); | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 314 | var messages = List.<ChatMessage>of(com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello")); | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 373 | .messages(List.of(dev.langchain4j.data.message.UserMessage.from("hello"))) | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 464 | com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello"), | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 552 | com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello"), | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 626 | com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello"), | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 637 | var messages = List.<ChatMessage>of(com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello")); | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 731 | handler.onPartialToolCall(new com.ibm.watsonx.ai.chat.model.PartialToolCall( | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 733 | handler.onPartialToolCall(new com.ibm.watsonx.ai.chat.model.PartialToolCall( | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 933 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …va/dev/langchain4j/model/watsonx/WatsonxChatModel.java | 68 | var watsonxChatRequestBuilder = com.ibm.watsonx.ai.chat.ChatRequest.builder(); | CODE |
| CRITICAL | …main/java/dev/langchain4j/model/watsonx/Converter.java | 177 | return com.ibm.watsonx.ai.chat.model.SystemMessage.of(systemMessage.text()); | CODE |
| CRITICAL | …main/java/dev/langchain4j/model/watsonx/Converter.java | 191 | return com.ibm.watsonx.ai.chat.model.UserMessage.of( | CODE |
| CRITICAL | …ngchain4j/model/watsonx/WatsonxStreamingChatModel.java | 75 | var watsonxChatRequestBuilder = com.ibm.watsonx.ai.chat.ChatRequest.builder(); | CODE |
| CRITICAL | …angchain4j/model/bedrock/AbstractBedrockChatModel.java | 522 | return software.amazon.awssdk.services.bedrockruntime.model.ToolSpecification.builder() | CODE |
| CRITICAL | …angchain4j/model/bedrock/AbstractBedrockChatModel.java | 545 | toolConfigurationBuilder.toolChoice(software.amazon.awssdk.services.bedrockruntime.model.ToolChoice.fromAny( | CODE |
| CRITICAL | …i/MistralAiStreamingChatModelStrictJsonSchemaTest.java | 61 | .messages(dev.langchain4j.data.message.UserMessage.from("What is the answer?")) | CODE |
| CRITICAL | …rdrail/OutputGuardrailRemoveViolatingMessageTests.java | 53 | OutputGuardrailException ex = org.junit.jupiter.api.Assertions.assertThrows( | CODE |
| CRITICAL | docs/docs/tutorials/customizable-http-client.md | 59 | org.apache.hc.client5.http.impl.classic.HttpClientBuilder httpClientBuilder = org.apache.hc.client5.http.impl.classic.Ht | CODE |
| CRITICAL | …enai/OpenAiResponsesStreamingChatModelPayloadTest.java | 109 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …j/model/openai/OpenAiStreamingResponseBuilderTest.java | 271 | builder.append(chatCompletionResponseWithLogProb(dev.langchain4j.model.openai.internal.chat.LogProb.builder() | CODE |
| CRITICAL | …j/model/openai/OpenAiStreamingResponseBuilderTest.java | 276 | builder.append(chatCompletionResponseWithLogProb(dev.langchain4j.model.openai.internal.chat.LogProb.builder() | CODE |
| CRITICAL | …odel/openai/internal/OpenAiImageContentFormatTest.java | 33 | dev.langchain4j.data.message.UserMessage.from(imageContent); | CODE |
| CRITICAL | …odel/openai/internal/OpenAiImageContentFormatTest.java | 59 | dev.langchain4j.data.message.UserMessage.from(imageContent); | CODE |
| CRITICAL | …odel/openai/internal/OpenAiImageContentFormatTest.java | 175 | dev.langchain4j.data.message.UserMessage.from(imageContent); | CODE |
| CRITICAL | …ev/langchain4j/model/openai/OpenAiModerationModel.java | 77 | dev.langchain4j.model.openai.internal.moderation.ModerationRequest.builder() | CODE |
| CRITICAL | …dev/langchain4j/model/openai/OpenAiEmbeddingModel.java | 184 | dev.langchain4j.model.openai.internal.embedding.EmbeddingRequest.builder() | CODE |
| CRITICAL⚡ | …dev/langchain4j/model/openai/internal/OpenAiUtils.java | 118 | return dev.langchain4j.model.openai.internal.chat.SystemMessage.from(((SystemMessage) message).text()); | CODE |
| 42 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …gentic/patterns/goap/horoscope/HoroscopeGenerator.java | 0 | you are an astrologist that generates horoscopes based on the user's name and zodiac sign. | STRING |
| HIGH | docs/docs/tutorials/agents.md | 0 | you are an astrologist that generates horoscopes based on the user's name and zodiac sign. | STRING |
| HIGH | …est/java/dev/langchain4j/agentic/WorkflowAgentsIT.java | 0 | you are an astrologist that generates horoscopes based on the user's name and zodiac sign. | STRING |
| HIGH | …c/test/java/dev/langchain4j/agentic/HoroscopeMain.java | 0 | you are an astrologist that generates horoscopes based on the user's name and zodiac sign. | STRING |
| HIGH | …t/java/dev/langchain4j/agentic/DeclarativeAgentIT.java | 0 | you are an astrologist that generates horoscopes based on the user's name and zodiac sign. | STRING |
| HIGH | …chain4j/agentic/patterns/goap/writer/WriterAgents.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | docs/docs/tutorials/agents.md | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …est/java/dev/langchain4j/agentic/WorkflowAgentsIT.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …test/java/dev/langchain4j/agentic/StreamingAgents.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …ntic/src/test/java/dev/langchain4j/agentic/Agents.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …c/test/java/dev/langchain4j/agentic/TypedAgentsIT.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …test/java/dev/langchain4j/agentic/DynamicAgentsIT.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …t/java/dev/langchain4j/agentic/DeclarativeAgentIT.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …/src/test/java/dev/langchain4j/agentic/mcp/Agents.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …/src/test/java/dev/langchain4j/agentic/a2a/Agents.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …4j/agentic/declarative/StreamingChatModelSupplier.java | 0 | * you are a creative writer. * generate a draft of a story long no more than 3 sentence around the given topic. * return | STRING |
| HIGH | …chain4j/agentic/patterns/goap/writer/WriterAgents.java | 0 | you are a professional editor. analyze and rewrite the following story to better align with the target audience of {{aud | STRING |
| HIGH | docs/docs/tutorials/agents.md | 0 | you are a professional editor. analyze and rewrite the following story to better align with the target audience of {{aud | STRING |
| HIGH | …est/java/dev/langchain4j/agentic/WorkflowAgentsIT.java | 0 | you are a professional editor. analyze and rewrite the following story to better align with the target audience of {{aud | STRING |
| HIGH | …test/java/dev/langchain4j/agentic/StreamingAgents.java | 0 | you are a professional editor. analyze and rewrite the following story to better align with the target audience of {{aud | STRING |
| HIGH | …ntic/src/test/java/dev/langchain4j/agentic/Agents.java | 0 | you are a professional editor. analyze and rewrite the following story to better align with the target audience of {{aud | STRING |
| HIGH | …chain4j/agentic/patterns/goap/writer/WriterAgents.java | 0 | you are a professional editor. analyze and rewrite the following story to better fit and be more coherent with the {{sty | STRING |
| HIGH | docs/docs/tutorials/agents.md | 0 | you are a professional editor. analyze and rewrite the following story to better fit and be more coherent with the {{sty | STRING |
| HIGH | …test/java/dev/langchain4j/agentic/StreamingAgents.java | 0 | you are a professional editor. analyze and rewrite the following story to better fit and be more coherent with the {{sty | STRING |
| HIGH | …ntic/src/test/java/dev/langchain4j/agentic/Agents.java | 0 | you are a professional editor. analyze and rewrite the following story to better fit and be more coherent with the {{sty | STRING |
| HIGH | …test/java/dev/langchain4j/agentic/DynamicAgentsIT.java | 0 | you are a professional editor. analyze and rewrite the following story to better fit and be more coherent with the {{sty | STRING |
| HIGH | …t/java/dev/langchain4j/agentic/DeclarativeAgentIT.java | 0 | you are a professional editor. analyze and rewrite the following story to better fit and be more coherent with the {{sty | STRING |
| HIGH | …/src/test/java/dev/langchain4j/agentic/mcp/Agents.java | 0 | you are a professional editor. analyze and rewrite the following story to better fit and be more coherent with the {{sty | STRING |
| HIGH | …/src/test/java/dev/langchain4j/agentic/a2a/Agents.java | 0 | you are a professional editor. analyze and rewrite the following story to better fit and be more coherent with the {{sty | STRING |
| HIGH | …chain4j/agentic/patterns/goap/writer/WriterAgents.java | 0 | you are a critical reviewer. give a review score between 0.0 and 1.0 for the following story based on how well it aligns | STRING |
| HIGH | docs/docs/tutorials/agents.md | 0 | you are a critical reviewer. give a review score between 0.0 and 1.0 for the following story based on how well it aligns | STRING |
| HIGH | …ntic/src/test/java/dev/langchain4j/agentic/Agents.java | 0 | you are a critical reviewer. give a review score between 0.0 and 1.0 for the following story based on how well it aligns | STRING |
| HIGH | …/src/test/java/dev/langchain4j/agentic/mcp/Agents.java | 0 | you are a critical reviewer. give a review score between 0.0 and 1.0 for the following story based on how well it aligns | STRING |
| HIGH | …/src/test/java/dev/langchain4j/agentic/a2a/Agents.java | 0 | you are a critical reviewer. give a review score between 0.0 and 1.0 for the following story based on how well it aligns | STRING |
| HIGH | …v/langchain4j/model/mistralai/MistralAiFimModelIT.java | 0 | public static void main(string[] args) { // create a function to multiply two numbers | STRING |
| HIGH | …in4j/model/mistralai/MistralAiStreamingFimModelIT.java | 0 | public static void main(string[] args) { // create a function to multiply two numbers | STRING |
| HIGH | docs/docs/integrations/language-models/mistral-ai.md | 0 | public static void main(string[] args) { // create a function to multiply two numbers | STRING |
| HIGH | …gchain4j/model/googleai/GoogleAiGeminiChatModelIT.java | 0 | extract information from the following text: 1. a circle with a radius of 5 2. a rectangle with a width of 10 and a heig | STRING |
| HIGH | docs/docs/tutorials/structured-outputs.md | 0 | extract information from the following text: 1. a circle with a radius of 5 2. a rectangle with a width of 10 and a heig | STRING |
| HIGH | …in4j/model/openai/OpenAiChatModelWithJsonSchemaIT.java | 0 | extract information from the following text: 1. a circle with a radius of 5 2. a rectangle with a width of 10 and a heig | STRING |
| HIGH | …ev/langchain4j/model/azure/AzureOpenAiChatModelIT.java | 0 | extract information from the following text: 1. a circle with a radius of 5 2. a rectangle with a width of 10 and a heig | STRING |
| HIGH | …anthropic/AnthropicChatRequestCacheParametersTest.java | 0 | { "id": "msg_123", "type": "message", "role": "assistant", "model": "claude-3-5-sonnet-20241022", "content": [{"type": " | STRING |
| HIGH | …hropic/AnthropicMidConversationSystemMessagesTest.java | 0 | { "id": "msg_123", "type": "message", "role": "assistant", "model": "claude-3-5-sonnet-20241022", "content": [{"type": " | STRING |
| HIGH | …angchain4j/model/anthropic/AnthropicChatModelTest.java | 0 | { "id": "msg_123", "type": "message", "role": "assistant", "model": "claude-3-5-sonnet-20241022", "content": [{"type": " | STRING |
| HIGH | docs/docs/tutorials/agents.md | 0 | generate the horoscope for {{person}}. the person has a name and a zodiac sign. use both to create a personalized horosc | STRING |
| HIGH | …est/java/dev/langchain4j/agentic/WorkflowAgentsIT.java | 0 | generate the horoscope for {{person}}. the person has a name and a zodiac sign. use both to create a personalized horosc | STRING |
| HIGH | …t/java/dev/langchain4j/agentic/DeclarativeAgentIT.java | 0 | generate the horoscope for {{person}}. the person has a name and a zodiac sign. use both to create a personalized horosc | STRING |
| HIGH | docs/docs/tutorials/agents.md | 0 | analyze the following user request and categorize it as 'legal', 'medical' or 'technical'. in case the request doesn't b | STRING |
| HIGH | …ntic/src/test/java/dev/langchain4j/agentic/Agents.java | 0 | analyze the following user request and categorize it as 'legal', 'medical' or 'technical'. in case the request doesn't b | STRING |
| HIGH | …c/test/java/dev/langchain4j/agentic/TypedAgentsIT.java | 0 | analyze the following user request and categorize it as 'legal', 'medical' or 'technical'. in case the request doesn't b | STRING |
| HIGH | docs/docs/tutorials/agents.md | 0 | you are a technical expert. analyze the following user request under a technical point of view and provide the best poss | STRING |
| HIGH | …test/java/dev/langchain4j/agentic/StreamingAgents.java | 0 | you are a technical expert. analyze the following user request under a technical point of view and provide the best poss | STRING |
| HIGH | …ntic/src/test/java/dev/langchain4j/agentic/Agents.java | 0 | you are a technical expert. analyze the following user request under a technical point of view and provide the best poss | STRING |
| HIGH | …t/java/dev/langchain4j/agentic/DeclarativeAgentIT.java | 0 | you are a technical expert. analyze the following user request under a technical point of view and provide the best poss | STRING |
| HIGH | …c/test/java/dev/langchain4j/agentic/TypedAgentsIT.java | 0 | you are a technical expert. analyze the following user request under a technical point of view and provide the best poss | STRING |
| HIGH | docs/docs/tutorials/tools.md | 0 | you are a technical expert. analyze the following user request under a technical point of view and provide the best poss | STRING |
| HIGH | …ava/dev/langchain4j/service/AiServicesWithToolsIT.java | 0 | you are a technical expert. analyze the following user request under a technical point of view and provide the best poss | STRING |
| HIGH | docs/docs/tutorials/agents.md | 0 | you are a banker that can only withdraw us dollars (usd) from a user account. | STRING |
| HIGH | …st/java/dev/langchain4j/agentic/SupervisorAgentIT.java | 0 | you are a banker that can only withdraw us dollars (usd) from a user account. | STRING |
| HIGH | …t/java/dev/langchain4j/agentic/DeclarativeAgentIT.java | 0 | you are a banker that can only withdraw us dollars (usd) from a user account. | STRING |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …chain4j/agentic/patterns/goap/writer/GoapWriterIT.java | 32 | // Manually add additional variables to the agentic scope to verify that GOAP is able to handle them | COMMENT |
| MEDIUM⚡ | …/langchain4j/model/bedrock/BedrockPromptCachingIT.java | 204 | You are a helpful coding assistant. Time now is %s. You are an experienced and knowledgeable coding assi | STRING |
| MEDIUM⚡ | …/langchain4j/model/bedrock/BedrockPromptCachingIT.java | 204 | You are a helpful coding assistant. Time now is %s. You are an experienced and knowledgeable coding assi | STRING |
| MEDIUM⚡ | …/langchain4j/model/bedrock/BedrockPromptCachingIT.java | 294 | You are a helpful coding assistant. Time now is %s. You are an experienced and knowledgeable coding assi | STRING |
| MEDIUM⚡ | …/langchain4j/model/bedrock/BedrockPromptCachingIT.java | 294 | You are a helpful coding assistant. Time now is %s. You are an experienced and knowledgeable coding assi | STRING |
| MEDIUM | …hain4j/model/bedrock/BedrockChatRequestParameters.java | 189 | * Configuration information for a <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html | COMMENT |
| MEDIUM | …ain4j/model/bedrock/BedrockGuardrailConfiguration.java | 4 | * @see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html">Amazon Bedrock Guardrails</a> | COMMENT |
| MEDIUM | …ain4j/model/bedrock/BedrockGuardrailConfiguration.java | 76 | * See <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-streaming.html">Configure stream | COMMENT |
| MEDIUM | …docs/integrations/embedding-models/google-vertex-ai.md | 88 | ### Configuring the embedding model | COMMENT |
| MEDIUM | …cs/integrations/prompt-repetition/prompt-repetition.md | 78 | ## Non-RAG Usage | COMMENT |
| MEDIUM | …cs/integrations/prompt-repetition/prompt-repetition.md | 96 | ## RAG Usage | COMMENT |
| MEDIUM | docs/docs/integrations/embedding-stores/pgvector.md | 121 | ## Complete RAG Example with PGVector | COMMENT |
| MEDIUM | docs/docs/integrations/embedding-stores/hibernate.md | 276 | ## Complete RAG Example with Hibernate | COMMENT |
| MEDIUM | …cs/docs/integrations/embedding-stores/mongodb-atlas.md | 222 | ## RAG | COMMENT |
| MEDIUM | docs/docs/tutorials/rag.md | 5 | # RAG (Retrieval-Augmented Generation) | COMMENT |
| MEDIUM | docs/docs/tutorials/rag.md | 14 | ## What is RAG? | COMMENT |
| MEDIUM | docs/docs/tutorials/rag.md | 40 | ## RAG Stages | COMMENT |
| MEDIUM⚡ | docs/docs/tutorials/rag.md | 76 | ## RAG Flavours in LangChain4j | COMMENT |
| MEDIUM⚡ | docs/docs/tutorials/rag.md | 79 | - [Easy RAG](/tutorials/rag/#easy-rag): the easiest way to start with RAG | CODE |
| MEDIUM⚡ | docs/docs/tutorials/rag.md | 80 | - [Naive RAG](/tutorials/rag/#naive-rag): a basic implementation of RAG using vector search | CODE |
| MEDIUM⚡ | docs/docs/tutorials/rag.md | 81 | - [Advanced RAG](/tutorials/rag/#advanced-rag): a modular RAG framework that allows for additional steps such as | CODE |
| MEDIUM⚡ | docs/docs/tutorials/rag.md | 85 | ## Easy RAG | COMMENT |
| MEDIUM | docs/docs/tutorials/rag.md | 209 | ## Core RAG APIs | COMMENT |
| MEDIUM | docs/docs/tutorials/rag.md | 727 | ## Naive RAG | COMMENT |
| MEDIUM | docs/docs/tutorials/rag.md | 750 | ## Advanced RAG | COMMENT |
| MEDIUM | docs/docs/tutorials/guardrails.md | 42 | Ideally, guardrail implementations should follow the [single responsibility principle](https://en.wikipedia.org/wiki/Sin | CODE |
| MEDIUM | docs/docs/tutorials/guardrails.md | 245 | | [`MessageModeratorInputGuardrail`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-guardrails/src/mai | CODE |
| MEDIUM | docs/docs/tutorials/guardrails.md | 246 | | [`PatternBasedPromptInjectionGuardrail`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-guardrails/s | CODE |
| MEDIUM | docs/docs/tutorials/guardrails.md | 280 | | **_fatal with retry_** | `retry(String)` or `retry(String, Throwable)` | - Similar to **_fat | CODE |
| MEDIUM | docs/docs/tutorials/guardrails.md | 281 | | **_fatal with reprompt_** | `reprompt(String, String)` or `reprompt(String, Throwable, String)` | - Similar to **_fat | CODE |
| MEDIUM | docs/docs/tutorials/guardrails.md | 446 | | [`JsonExtractorOutputGuardrail`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-guardrails/src/main/ | CODE |
| MEDIUM | docs/docs/tutorials/guardrails.md | 556 | | [`InputGuardrailsConfigBuilderFactory`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/mai | CODE |
| MEDIUM | docs/docs/tutorials/guardrails.md | 557 | | [`OutputGuardrailsConfigBuilderFactory`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/mai | CODE |
| MEDIUM | docs/docs/tutorials/ai-services.md | 813 | ## RAG | STRING |
| MEDIUM | docs/docs/tutorials/ai-services.md | 846 | ### RAG as a Tool | STRING |
| MEDIUM⚡ | docs/docs/tutorials/observability.md | 32 | | [`AiServiceRequestIssuedEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java/de | CODE |
| MEDIUM⚡ | docs/docs/tutorials/observability.md | 33 | | [`AiServiceResponseReceivedEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java | CODE |
| MEDIUM⚡ | docs/docs/tutorials/observability.md | 34 | | [`AiServiceErrorEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java/dev/langch | CODE |
| MEDIUM⚡ | docs/docs/tutorials/observability.md | 37 | | [`InputGuardrailExecutedEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java/de | CODE |
| MEDIUM⚡ | docs/docs/tutorials/observability.md | 37 | | [`InputGuardrailExecutedEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java/de | CODE |
| MEDIUM⚡ | docs/docs/tutorials/observability.md | 38 | | [`OutputGuardrailExecutedEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java/d | CODE |
| MEDIUM⚡ | docs/docs/tutorials/observability.md | 38 | | [`OutputGuardrailExecutedEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java/d | CODE |
| MEDIUM | docs/docs/tutorials/observability.md | 385 | ## RAG Observability (EmbeddingModel, EmbeddingStore and ContentRetriever) | COMMENT |
| MEDIUM | docs/docs/tutorials/agents.md | 1217 | ## Pure agentic AI | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 1489 | ## Custom agentic patterns | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 1583 | ### Goal oriented agentic pattern | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 1728 | ### Peer-to-peer agentic pattern | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 1959 | ### Blackboard agentic pattern | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 2073 | ### Voting agentic pattern | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 2243 | ### Debate agentic pattern | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 2369 | ### Belief-Desire-Intention (BDI) agentic pattern | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 2733 | ### AgenticScope and agentic systems recoverability | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 2955 | The additional `langchain4j-agentic-a2a` module provides a seamless integration with the [A2A](https://a2aprotocol.ai/) | STRING |
| MEDIUM | docs/docs/tutorials/agents.md | 3101 | The additional `langchain4j-agentic-mcp` module allows wrapping a single [MCP](https://modelcontextprotocol.io/) tool as | STRING |
| MEDIUM | …agentic/observability/AgentMonitorConcurrencyTest.java | 75 | // Set up the root invocation first, single-threaded — mirrors how the agentic | COMMENT |
| MEDIUM | …chain4j/service/AiServiceStreamingResponseHandler.java | 169 | // If we're using output guardrails, then buffer the partial response until the guardrails have completed | COMMENT |
| MEDIUM | …chain4j/service/AiServiceStreamingResponseHandler.java | 182 | // If we're using output guardrails, then buffer the partial response until the guardrails have completed | COMMENT |
| MEDIUM | …chain4j/service/AiServiceStreamingResponseHandler.java | 406 | // Invoke output guardrails | COMMENT |
| MEDIUM | …chain4j/service/AiServiceStreamingResponseHandler.java | 430 | // If we have output guardrails, we should process all of the partial responses first before | COMMENT |
| MEDIUM | …hain4j/service/guardrail/AbstractGuardrailService.java | 37 | // Caches for whether or not a method has input or output guardrails | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …j/model/anthropic/internal/client/AnthropicClient.java | 85 | * .apiKey("your-api-key") | COMMENT |
| HIGH | …/anthropic/internal/client/DefaultAnthropicClient.java | 98 | * .apiKey("your-api-key") | COMMENT |
| HIGH | docs/docs/integrations/embedding-models/watsonx.md | 36 | .apiKey("your-api-key") // Simple IBM Cloud authentication | CODE |
| HIGH | docs/docs/integrations/embedding-models/watsonx.md | 126 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/embedding-models/mistral-ai.md | 45 | export MISTRAL_AI_API_KEY=your-api-key #For Unix OS based | CODE |
| HIGH | docs/docs/integrations/embedding-models/mistral-ai.md | 46 | SET MISTRAL_AI_API_KEY=your-api-key #For Windows OS | CODE |
| HIGH | docs/docs/integrations/embedding-models/ovh-ai.md | 32 | export OVHAI_AI_API_KEY=your-api-key #For Unix OS based | CODE |
| HIGH | docs/docs/integrations/embedding-models/ovh-ai.md | 33 | SET OVHAI_AI_API_KEY=your-api-key #For Windows OS | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 42 | .apiKey("your-api-key") // Simple IBM Cloud authentication | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 153 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 175 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 210 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 246 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 302 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 353 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 380 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 392 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 404 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 473 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/mistral-ai.md | 45 | export MISTRAL_AI_API_KEY=your-api-key #For Unix OS based | CODE |
| HIGH | docs/docs/integrations/language-models/mistral-ai.md | 46 | SET MISTRAL_AI_API_KEY=your-api-key #For Windows OS | CODE |
| HIGH | …docs/integrations/language-models/openai-compatible.md | 43 | .apiKey("YOUR_API_KEY") | CODE |
| HIGH | …/docs/integrations/scoring-reranking-models/watsonx.md | 36 | .apiKey("your-api-key") // Simple IBM Cloud authentication | CODE |
| HIGH | …/docs/integrations/scoring-reranking-models/watsonx.md | 128 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/tutorials/kotlin.md | 38 | .apiKey("YOUR_API_KEY") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29601 | collarbone | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29621 | ##) | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29641 | ##{ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29661 | ##¶ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29681 | ##ɕ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29701 | ##ʌ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29721 | ##β | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29741 | ##б | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29761 | ##і | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29781 | ##պ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29801 | ##ם | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29821 | ##ح | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29841 | ##چ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29861 | ##थ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29881 | ##। | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29901 | ##দ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29921 | ##ட | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29941 | ##ය | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29961 | ##་ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 29981 | ##თ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30001 | ##ᄌ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30021 | ##ᆨ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30041 | ##ᵖ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30061 | ##„ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30081 | ##ⁿ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30101 | ##₤ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30121 | ##∂ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30141 | ##⊗ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30161 | ##⽥ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30181 | ##け | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30201 | ##ふ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30221 | ##ィ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30241 | ##ト | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30261 | ##レ | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30281 | ##井 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30301 | ##出 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30321 | ##同 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30341 | ##奈 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30361 | ##崎 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30381 | ##成 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30401 | ##朝 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30421 | ##氵 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30441 | ##発 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30461 | ##糹 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30481 | ##車 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30501 | ##雄 | COMMENT |
| LOW | …j-embeddings/src/main/resources/bert-vocabulary-en.txt | 30521 | ##? | COMMENT |
| LOW | …tore/embedding/pgvector/PgVectorHybridFilteringIT.java | 61 | protected void assertScore(EmbeddingMatch<TextSegment> match, double expectedScore) { | COMMENT |
| LOW | …/model/bedrock/BedrockSystemMessageExtractionTest.java | 601 | } | COMMENT |
| LOW | …angchain4j/model/openai/OpenAiToolSpecificationIT.java | 41 | // "type": "boolean" | COMMENT |
| LOW | …-open-ai/src/test/script/deploy-azure-openai-models.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ev/langchain4j/mcp/client/ToolSpecificationHelper.java | 181 | } else { | COMMENT |
| LOW | …est/java/dev/langchain4j/agentic/RecoverabilityIT.java | 141 | // ---- Track the PendingResponse created by HumanInTheLoop so we can unblock Phase 1 during cleanup ---- | COMMENT |
| LOW | …ial/src/test/script/deploy-microsoft-foundry-models.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ev/langchain4j/service/common/AbstractAiServiceIT.java | 121 | COMMENT | |
| LOW | …ev/langchain4j/service/common/AbstractAiServiceIT.java | 141 | // ToolExecutionResultMessage.from(...) | COMMENT |
| LOW | …re-ai-search/src/test/script/deploy-azure-ai-search.sh | 1 | #!/usr/bin/env bash | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …v/langchain4j/model/googleai/GeneratedImageHelper.java | 12 | * This provides a convenient way to extract images generated by Gemini's image generation models. | COMMENT |
| HIGH | docs/docs/tutorials/ai-services.md | 228 | Note that `toolSpecifications` and `responseFormat` specified in the `ChatRequestParameters` will override those generat | CODE |
| HIGH | …/main/java/dev/langchain4j/data/message/AiMessage.java | 19 | * Represents a message generated by AI (language model). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/langchain4j/code/judge0/Judge0JavaScriptEngineIT.java | 42 | codeExecutionEngine.execute("function calculateCompoundInterest(principal, rate, time, compounds) {\n" | CODE |
| LOW | …chain4j/service/AiServiceStreamingResponseHandler.java | 65 | class AiServiceStreamingResponseHandler implements StreamingChatResponseHandler { | CODE |
| LOW | …ev/langchain4j/model/StreamingResponseHandlerTest.java | 8 | public static class MinimalStreamingResponseHandler<T> implements StreamingResponseHandler<T> { | CODE |
| LOW | …ain4j/model/chat/TestStreamingChatResponseHandler.java | 19 | public class TestStreamingChatResponseHandler implements StreamingChatResponseHandler { | CODE |
| LOW | …ngchain4j/model/chat/TestStreamingResponseHandler.java | 15 | public class TestStreamingResponseHandler<T> implements StreamingResponseHandler<T> { | CODE |
| LOW | …dev/langchain4j/model/chat/StreamingChatModelTest.java | 33 | public static final class CollectorResponseHandler implements StreamingChatResponseHandler { | CODE |
| LOW | …ernal/MappingTrackingStreamingChatResponseHandler.java | 29 | public class MappingTrackingStreamingChatResponseHandler implements StreamingChatResponseHandler { | CODE |
| LOW | …in4j/guardrail/StreamingToSynchronousChatExecutor.java | 48 | private static class StreamingToSyncResponseHandler implements StreamingChatResponseHandler { | CODE |
| LOW | …/langchain4j/model/LambdaStreamingResponseHandler.java | 36 | public class LambdaStreamingResponseHandler { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/model/bedrock/common/BedrockStreamingChatModelIT.java | 157 | .messages(UserMessage.from("Say 'Lorem ipsum dolor sit amet'")) | CODE |
| LOW | …/model/bedrock/common/BedrockStreamingChatModelIT.java | 157 | .messages(UserMessage.from("Say 'Lorem ipsum dolor sit amet'")) | CODE |
| LOW | …/model/bedrock/common/BedrockStreamingChatModelIT.java | 187 | .messages(UserMessage.from("Say 'Lorem ipsum dolor sit amet'")) | CODE |
| LOW | …/model/bedrock/common/BedrockStreamingChatModelIT.java | 187 | .messages(UserMessage.from("Say 'Lorem ipsum dolor sit amet'")) | CODE |
| LOW | …el/googleai/GoogleAiGeminiBatchEmbeddingModelTest.java | 546 | var segment = TextSegment.from("Text with other metadata", Metadata.from("author", "John Doe")); | CODE |
| LOW | …hain4j/model/anthropic/AnthropicCustomHeadersTest.java | 79 | .apiKey("dummy-key") | STRING |
| LOW | …hain4j/model/anthropic/AnthropicCustomHeadersTest.java | 98 | .apiKey("dummy-key") | STRING |
| LOW | …hain4j/model/anthropic/AnthropicCustomHeadersTest.java | 171 | .apiKey("dummy-key") | STRING |
| LOW | …in4j/model/anthropic/AnthropicChatModelErrorsTest.java | 37 | .apiKey("dummy-key") | CODE |
| LOW | …in4j/model/anthropic/AnthropicChatModelErrorsTest.java | 107 | .apiKey("dummy-key") | CODE |
| LOW | docs/docs/tutorials/structured-outputs.md | 516 | lack sufficient information (e.g., using "John Doe" when then name is missing)". | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/dev/langchain4j/store/embedding/oracle/SQLFilter.java | 40 | * // Don't forget to close the statement :) | COMMENT |
| LOW | …src/main/java/dev/langchain4j/mcp/McpToolProvider.java | 338 | * NOTE: When writing the mapping function, don't forget to include the tool arguments as well (these should | COMMENT |
| MEDIUM | …angchain4j/service/output/ServiceOutputParserTest.java | 207 | "Sure, here is your JSON:\n```\n{\"key\":\"value\"}\n```\nLet me know if you need more help." | CODE |
| MEDIUM | …angchain4j/service/output/ServiceOutputParserTest.java | 231 | "Sure, here is your JSON:\n```\n{\"keyProperty\" :\n {\"key\" : \"value\"}\n}\n```\nLet me know if you n | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …n/java/dev/langchain4j/model/googleai/GeminiFiles.java | 87 | // Step 1: Initial resumable request to get upload URL | COMMENT |
| LOW⚡ | …n/java/dev/langchain4j/model/googleai/GeminiFiles.java | 90 | // Step 2: Upload the actual file bytes | COMMENT |
| LOW⚡ | docs/docs/tutorials/agents.md | 2765 | // Step 1: Validate the order and write results to shared state | STRING |
| LOW⚡ | docs/docs/tutorials/agents.md | 2771 | // Step 2: Pause for human approval using PendingResponse | STRING |
| LOW⚡ | docs/docs/tutorials/agents.md | 2778 | // Step 3: Finalize based on the approval decision | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …j/agentic/patterns/p2p/P2PPlannerComposeActionsIT.java | 22 | // ── Typed keys ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …j/agentic/patterns/p2p/P2PPlannerComposeActionsIT.java | 36 | // ── Agent wrapper interfaces ──────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/nightly_jdk21.yaml | 186 | except Exception: | CODE |
| LOW | .github/workflows/nightly_oracle.yaml | 81 | except Exception: | CODE |
| LOW | .github/workflows/nightly_jdk17.yaml | 186 | except Exception: | CODE |
| LOW | .github/workflows/main.yaml | 98 | except Exception: | CODE |
| LOW | .github/workflows/main.yaml | 278 | except Exception: | CODE |
| LOW | .github/workflows/nightly_jdk25.yaml | 182 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …/langchain4j/model/bedrock/BedrockPromptCachingIT.java | 204 | You are a helpful coding assistant. Time now is %s. You are an experienced and knowledgeable coding assi | STRING |
| MEDIUM⚡ | …/langchain4j/model/bedrock/BedrockPromptCachingIT.java | 294 | You are a helpful coding assistant. Time now is %s. You are an experienced and knowledgeable coding assi | STRING |
| MEDIUM | docs/package-lock.json | 16787 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …n/java/dev/langchain4j/model/googleai/GeminiFiles.java | 87 | // Step 1: Initial resumable request to get upload URL | COMMENT |
| LOW⚡ | …n/java/dev/langchain4j/model/googleai/GeminiFiles.java | 90 | // Step 2: Upload the actual file bytes | COMMENT |