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 summarizes scanner evidence for langchain4j/langchain4j, a Java project with 13,334 GitHub stars. SynthScan examined 997,954 lines of code across 4347 source files, recording 514 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 2.6 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 205 finding(s).
Are imports declared and package/API names verified? 222 finding(s).
Are wrappers, guards, and repeated structures necessary? 98 finding(s).
Which changes need focused human review? 514 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 514 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| 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 | 371 | .POST(java.net.http.HttpRequest.BodyPublishers.ofByteArray(requestBody)) | CODE |
| CRITICAL | …dev/langchain4j/code/azure/acads/SessionsREPLTool.java | 375 | 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 | 276 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 296 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 315 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 334 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 370 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 392 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 412 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 432 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 462 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 491 | .messages(dev.langchain4j.data.message.UserMessage.from("hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 542 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 628 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 693 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 764 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 826 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 906 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 1090 | .messages(dev.langchain4j.data.message.UserMessage.from("Give me a phone number")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 1125 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 1134 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ev/langchain4j/model/watsonx/WatsonxChatModelTest.java | 1162 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …in4j/model/watsonx/WatsonxDeploymentChatModelTest.java | 204 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …in4j/model/watsonx/WatsonxDeploymentChatModelTest.java | 231 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …in4j/model/watsonx/WatsonxDeploymentChatModelTest.java | 261 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …/java/dev/langchain4j/model/watsonx/ConverterTest.java | 285 | var toConvert = new com.ibm.watsonx.ai.chat.model.PartialToolCall( | CODE |
| CRITICAL | …chain4j/model/watsonx/WatsonxGatewayChatModelTest.java | 217 | .messages(dev.langchain4j.data.message.UserMessage.from("hello")) | CODE |
| CRITICAL | …chain4j/model/watsonx/WatsonxGatewayChatModelTest.java | 270 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …chain4j/model/watsonx/WatsonxGatewayChatModelTest.java | 362 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …chain4j/model/watsonx/WatsonxGatewayChatModelTest.java | 419 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …chain4j/model/watsonx/WatsonxGatewayChatModelTest.java | 461 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …chain4j/model/watsonx/WatsonxGatewayChatModelTest.java | 492 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 176 | var messages = List.<ChatMessage>of(com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello")); | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 339 | com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello"), | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 427 | com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello"), | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 501 | com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello"), | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 512 | var messages = List.<ChatMessage>of(com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello")); | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 660 | handler.onPartialToolCall(new com.ibm.watsonx.ai.chat.model.PartialToolCall( | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 662 | handler.onPartialToolCall(new com.ibm.watsonx.ai.chat.model.PartialToolCall( | CODE |
| CRITICAL | …ain4j/model/watsonx/WatsonxStreamingChatModelTest.java | 862 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …odel/watsonx/WatsonxGatewayStreamingChatModelTest.java | 140 | var messages = List.<ChatMessage>of(com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello")); | CODE |
| CRITICAL | …odel/watsonx/WatsonxGatewayStreamingChatModelTest.java | 277 | handler.onPartialToolCall(new com.ibm.watsonx.ai.chat.model.PartialToolCall( | CODE |
| CRITICAL | …odel/watsonx/WatsonxGatewayStreamingChatModelTest.java | 279 | handler.onPartialToolCall(new com.ibm.watsonx.ai.chat.model.PartialToolCall( | CODE |
| CRITICAL | …odel/watsonx/WatsonxGatewayStreamingChatModelTest.java | 492 | .messages(dev.langchain4j.data.message.UserMessage.from("Hello")) | CODE |
| CRITICAL | …l/watsonx/WatsonxDeploymentStreamingChatModelTest.java | 141 | var messages = List.<ChatMessage>of(com.ibm.watsonx.ai.chat.model.UserMessage.text("Hello")); | CODE |
| CRITICAL | …main/java/dev/langchain4j/model/watsonx/Converter.java | 362 | return com.ibm.watsonx.ai.chat.model.SystemMessage.of(systemMessage.text()); | CODE |
| CRITICAL | …main/java/dev/langchain4j/model/watsonx/Converter.java | 376 | return com.ibm.watsonx.ai.chat.model.UserMessage.of( | CODE |
| CRITICAL | …angchain4j/model/bedrock/AbstractBedrockChatModel.java | 698 | return software.amazon.awssdk.services.bedrockruntime.model.ToolSpecification.builder() | CODE |
| 84 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 | …hain4j/model/anthropic/AnthropicCustomHeadersTest.java | 0 | event: message_start data: {"type":"message_start","message":{"id":"msg_1","type":"message","role":"assistant","content" | STRING |
| HIGH | …nthropic/AnthropicStreamingChatModelPublisherTest.java | 0 | event: message_start data: {"type":"message_start","message":{"id":"msg_1","type":"message","role":"assistant","content" | STRING |
| HIGH | …j/model/anthropic/AnthropicChatModelNonBlockingIT.java | 0 | event: message_start data: {"type":"message_start","message":{"id":"msg_1","type":"message","role":"assistant","content" | STRING |
| HIGH | …anthropic/AnthropicChatRequestCacheParametersTest.java | 0 | { "id": "msg_123", "type": "message", "role": "assistant", "model": "claude-opus-5-5", "content": [{"type": "text", "tex | STRING |
| HIGH | …/model/anthropic/AnthropicChatModelAsyncRetryTest.java | 0 | { "id": "msg_123", "type": "message", "role": "assistant", "model": "claude-opus-5-5", "content": [{"type": "text", "tex | STRING |
| HIGH | …angchain4j/model/anthropic/AnthropicChatModelTest.java | 0 | { "id": "msg_123", "type": "message", "role": "assistant", "model": "claude-opus-5-5", "content": [{"type": "text", "tex | STRING |
| HIGH | …hropic/AnthropicMidConversationSystemMessagesTest.java | 0 | { "id": "msg_123", "type": "message", "role": "assistant", "model": "claude-opus-5-5", "content": [{"type": "text", "tex | STRING |
| HIGH | …hain4j/model/anthropic/AnthropicPromptCachingTest.java | 0 | { "id": "msg_123", "type": "message", "role": "assistant", "model": "claude-opus-5-5", "content": [{"type": "text", "tex | 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 |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …v/langchain4j/agentic/patterns/p2p/P2PPlannerTest.java | 106 | // No exit condition: the planner can only stop when the agentic scope reaches a stable state. | COMMENT |
| 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 | 257 | * Configuration information for a <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html | COMMENT |
| MEDIUM | …ain4j/model/bedrock/BedrockGuardrailConfiguration.java | 6 | * @see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html">Amazon Bedrock Guardrails</a> | COMMENT |
| MEDIUM | …ain4j/model/bedrock/BedrockGuardrailConfiguration.java | 109 | * See <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-streaming.html">Configure stream | COMMENT |
| MEDIUM | …hain4j/model/bedrock/BedrockGuardContentPlacement.java | 21 | * @see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-use-converse-api.html">Use a guardrail | 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/language-models/ollama.md | 429 | ### Prompts that exceed the context window | COMMENT |
| MEDIUM | …cs/docs/integrations/language-models/amazon-bedrock.md | 100 | `BedrockChatModel` and `BedrockStreamingChatModel` support [Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedro | CODE |
| MEDIUM | …cs/docs/integrations/language-models/amazon-bedrock.md | 140 | The selected user messages are sent as Bedrock [`guardContent`](https://docs.aws.amazon.com/bedrock/latest/userguide/gua | CODE |
| MEDIUM | …docs/integrations/language-models/openai-compatible.md | 93 | **Description:** [OrcaRouter](https://www.orcarouter.ai) is an OpenAI-compatible AI gateway built for both models and ag | CODE |
| MEDIUM | docs/docs/integrations/embedding-stores/pgvector.md | 121 | ## Complete RAG Example with PGVector | COMMENT |
| MEDIUM | docs/docs/integrations/embedding-stores/hibernate.md | 288 | ## 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 | 211 | ## Core RAG APIs | COMMENT |
| MEDIUM | docs/docs/tutorials/rag.md | 751 | ## Naive RAG | COMMENT |
| MEDIUM | docs/docs/tutorials/rag.md | 774 | ## 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 | 46 | Guardrails that _rewrite_ the text they validate can be declared anywhere in the chain. They do not need to be declared | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 54 | ### Rewriting guardrails in a chain | COMMENT |
| MEDIUM | docs/docs/tutorials/guardrails.md | 101 | | **_success_** | `success()` | - The input is valid.<br/> - | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 263 | | [`MessageModeratorInputGuardrail`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-guardrails/src/mai | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 264 | | [`PatternBasedPromptInjectionGuardrail`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-guardrails/s | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 265 | | [`DecisionModelInputGuardrail`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-guardrails/src/main/j | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 295 | | **_success_** | `success()` | - The output is val | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 300 | | **_fatal with retry_** | `retry(String)` or `retry(String, Throwable)` | - Similar to **_fat | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 301 | | **_fatal with reprompt_** | `reprompt(String, String)` or `reprompt(String, Throwable, String)` | - Similar to **_fat | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 468 | | [`JsonExtractorOutputGuardrail`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-guardrails/src/main/ | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 469 | | [`DecisionModelOutputGuardrail`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-guardrails/src/main/ | CODE |
| MEDIUM⚡ | docs/docs/tutorials/guardrails.md | 469 | | [`DecisionModelOutputGuardrail`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-guardrails/src/main/ | CODE |
| MEDIUM | docs/docs/tutorials/guardrails.md | 586 | | [`InputGuardrailsConfigBuilderFactory`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/mai | CODE |
| MEDIUM | docs/docs/tutorials/guardrails.md | 587 | | [`OutputGuardrailsConfigBuilderFactory`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/mai | CODE |
| MEDIUM | docs/docs/tutorials/decision-models.md | 24 | (see the [decision router agentic pattern](/tutorials/agents#decision-router-agentic-pattern)) | CODE |
| MEDIUM | docs/docs/tutorials/decision-models.md | 27 | (see the [confidence cascade agentic pattern](/tutorials/agents#confidence-cascade-agentic-pattern)) | CODE |
| MEDIUM | docs/docs/tutorials/decision-models.md | 361 | refused answer as a failed check, as the [guardrails](#guardrails) do, rather than as a "no". | CODE |
| MEDIUM⚡ | docs/docs/tutorials/decision-models.md | 546 | A [decision agent](/tutorials/agents#decision-agents) is an agent of an agentic system built on a | CODE |
| MEDIUM⚡ | docs/docs/tutorials/decision-models.md | 551 | `@DecisionModelSupplier`. The [decision router](/tutorials/agents#decision-router-agentic-pattern) and the | CODE |
| MEDIUM⚡ | docs/docs/tutorials/decision-models.md | 552 | [confidence cascade](/tutorials/agents#confidence-cascade-agentic-pattern) patterns use a decision model inside | CODE |
| MEDIUM | docs/docs/tutorials/decision-models.md | 580 | and shortens messages longer than 50,000 characters (see [Guardrails](#guardrails)). To leave out messages, for example | CODE |
| MEDIUM | docs/docs/tutorials/decision-models.md | 598 | A question that the decision model [refuses to answer](#refusals) is handled the same way, except by the guardrails: | CODE |
| MEDIUM | docs/docs/tutorials/ai-services.md | 857 | ## RAG | STRING |
| MEDIUM | docs/docs/tutorials/ai-services.md | 889 | ### RAG as a Tool | STRING |
| 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 | 41 | | [`InputGuardrailExecutedEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java/de | CODE |
| MEDIUM⚡ | docs/docs/tutorials/observability.md | 41 | | [`InputGuardrailExecutedEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java/de | CODE |
| MEDIUM⚡ | docs/docs/tutorials/observability.md | 42 | | [`OutputGuardrailExecutedEvent`](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-core/src/main/java/d | CODE |
| 60 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …j/model/anthropic/internal/client/AnthropicClient.java | 142 | * .apiKey("your-api-key") | COMMENT |
| HIGH | …/anthropic/internal/client/DefaultAnthropicClient.java | 111 | * .apiKey("your-api-key") | COMMENT |
| HIGH | docs/docs/integrations/image-models/watsonx.md | 45 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/image-models/watsonx.md | 109 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/image-models/watsonx.md | 126 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/image-models/watsonx.md | 186 | .apiKey("your-api-key") // Simple IBM Cloud authentication | CODE |
| HIGH | docs/docs/integrations/embedding-models/watsonx.md | 37 | .apiKey("your-api-key") // Simple IBM Cloud authentication | CODE |
| HIGH | docs/docs/integrations/embedding-models/watsonx.md | 127 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/embedding-models/watsonx.md | 143 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/embedding-models/watsonx.md | 189 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/embedding-models/watsonx.md | 209 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/embedding-models/watsonx.md | 221 | .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 | 47 | .apiKey("your-api-key") // Simple IBM Cloud authentication | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 154 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 186 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 236 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 257 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 304 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 327 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 429 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 565 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 597 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 646 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 673 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 685 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 697 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 768 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 806 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/integrations/language-models/watsonx.md | 835 | .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/docs/integrations/embedding-stores/milvus.md | 146 | .token("your-api-key") | CODE |
| HIGH | …/docs/integrations/scoring-reranking-models/watsonx.md | 37 | .apiKey("your-api-key") // Simple IBM Cloud authentication | CODE |
| HIGH | …/docs/integrations/scoring-reranking-models/watsonx.md | 129 | .apiKey("your-api-key") | CODE |
| HIGH | docs/docs/tutorials/kotlin.md | 58 | .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 | 241 | } | COMMENT |
| LOW | …ev/langchain4j/mcp/client/ToolSpecificationHelper.java | 261 | // { | 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 |
|---|---|---|---|---|
| LOW | …ql/DefaultAzureCosmosDBNoSqlFilterMapperValueTest.java | 35 | private static final String PLACEHOLDER = "placeholder"; | CODE |
| LOW | …edding/mongodb/MongoDbEmbeddingStoreWithRemovalIT.java | 57 | return new IsEqualTo(key, "placeholder") { | CODE |
| LOW | …embedding/mongodb/MongoDbMetadataFilterMapperTest.java | 66 | return new IsEqualTo(key, "placeholder") { | CODE |
| LOW | …embedding/pgvector/PgVectorEmbeddingStoreConfigIT.java | 307 | return new IsEqualTo(key, "placeholder") { | CODE |
| LOW | …embedding/pgvector/PgVectorEmbeddingStoreConfigIT.java | 316 | return new IsIn(key, List.of("placeholder")) { | CODE |
| LOW⚡ | …store/embedding/pgvector/PgVectorFilterMapperTest.java | 299 | return new IsEqualTo(key, "placeholder") { | CODE |
| LOW⚡ | …store/embedding/pgvector/PgVectorFilterMapperTest.java | 308 | return new IsIn(key, List.of("placeholder")) { | CODE |
| LOW⚡ | …store/embedding/pgvector/PgVectorFilterMapperTest.java | 317 | return new IsNotIn(key, List.of("placeholder")) { | CODE |
| LOW | …e/embedding/milvus/MilvusMetadataFilterMapperTest.java | 178 | Filter filter = new IsEqualTo("tenant", "placeholder") { | CODE |
| LOW | …e/embedding/milvus/MilvusMetadataFilterMapperTest.java | 192 | Filter filter = new IsIn("tenant", List.of("placeholder")) { | CODE |
| LOW | …e/embedding/milvus/MilvusMetadataFilterMapperTest.java | 214 | Filter filter = new IsEqualTo("tenant", "placeholder") { | CODE |
| LOW | …n4j/model/watsonx/WatsonxChatResponseMetadataTest.java | 23 | 0, List.of(new DetectionResult("det-1", "pii", "email", 0.95, "test@test.com", 0, 13))))); | CODE |
| LOW | …/model/bedrock/common/BedrockStreamingChatModelIT.java | 163 | .messages(UserMessage.from("Say 'Lorem ipsum dolor sit amet'")) | CODE |
| LOW | …/model/bedrock/common/BedrockStreamingChatModelIT.java | 163 | .messages(UserMessage.from("Say 'Lorem ipsum dolor sit amet'")) | CODE |
| LOW | …/model/bedrock/common/BedrockStreamingChatModelIT.java | 193 | .messages(UserMessage.from("Say 'Lorem ipsum dolor sit amet'")) | CODE |
| LOW | …/model/bedrock/common/BedrockStreamingChatModelIT.java | 193 | .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 | …edding/milvus/v2/MilvusV2MetadataFilterMapperTest.java | 178 | Filter filter = new IsEqualTo("tenant", "placeholder") { | CODE |
| LOW | …edding/milvus/v2/MilvusV2MetadataFilterMapperTest.java | 192 | Filter filter = new IsIn("tenant", List.of("placeholder")) { | CODE |
| LOW | …edding/milvus/v2/MilvusV2MetadataFilterMapperTest.java | 214 | Filter filter = new IsEqualTo("tenant", "placeholder") { | 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 | …ropic/AnthropicStreamingChatModelPublisherTckTest.java | 132 | .apiKey("dummy-key") | CODE |
| LOW | …nthropic/AnthropicStreamingChatModelPublisherTest.java | 89 | .apiKey("dummy-key") | CODE |
| LOW | …in4j/model/anthropic/AnthropicChatModelErrorsTest.java | 37 | .apiKey("dummy-key") | CODE |
| LOW | …in4j/model/anthropic/AnthropicChatModelErrorsTest.java | 107 | .apiKey("dummy-key") | CODE |
| LOW | …j/model/anthropic/AnthropicChatModelNonBlockingIT.java | 18 | .apiKey("dummy-key") | CODE |
| LOW | …j/model/anthropic/AnthropicChatModelNonBlockingIT.java | 30 | .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 |
| LOW | …e/embedding/mariadb/MariaDbEmbeddingStoreConfigIT.java | 339 | return new IsEqualTo(key, "placeholder") { | CODE |
| LOW | …e/embedding/mariadb/MariaDbEmbeddingStoreConfigIT.java | 348 | return new IsIn(key, List.of("placeholder")) { | CODE |
| LOW | …in4j/store/embedding/mariadb/JSONFilterMapperTest.java | 130 | return new IsEqualTo(key, "placeholder") { | CODE |
| LOW | …in4j/store/embedding/mariadb/JSONFilterMapperTest.java | 139 | return new IsNotIn(key, List.of("placeholder")) { | CODE |
| LOW | …4j/store/embedding/mariadb/ColumnFilterMapperTest.java | 51 | return new IsIn(key, List.of("placeholder")) { | CODE |
| LOW | …e/embedding/chroma/ChromaMetadataFilterMapperTest.java | 184 | return new IsEqualTo(key, "placeholder") { | CODE |
| LOW | …/embedding/chroma/ChromaEmbeddingStoreRemovalV2IT.java | 117 | return new IsEqualTo(key, "placeholder") { | CODE |
| LOW | …re/embedding/chroma/ChromaEmbeddingStoreRemovalIT.java | 114 | return new IsEqualTo(key, "placeholder") { | CODE |
| 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 | 244 | Note that `toolSpecifications` and `responseFormat` specified in the `ChatRequestParameters` will override those generat | CODE |
| HIGH | …/main/java/dev/langchain4j/data/message/AiMessage.java | 20 | * Represents a message generated by AI (language model). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/streaming/TubeBackedStreamingChatResponseHandler.java | 42 | public final class TubeBackedStreamingChatResponseHandler implements StreamingChatResponseHandler { | CODE |
| LOW | …/langchain4j/code/judge0/Judge0JavaScriptEngineIT.java | 42 | codeExecutionEngine.execute("function calculateCompoundInterest(principal, rate, time, compounds) {\n" | CODE |
| LOW | …t/java/dev/langchain4j/agentic/SuspensionResumeIT.java | 328 | public static class DataProcessor { | CODE |
| LOW | …chain4j/service/AiServiceStreamingResponseHandler.java | 60 | 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 | 20 | 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 | 55 | private static class StreamingToSyncResponseHandler implements StreamingChatResponseHandler { | CODE |
| LOW | …/langchain4j/model/LambdaStreamingResponseHandler.java | 36 | public class LambdaStreamingResponseHandler { | CODE |
| 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 |
| MEDIUM | …v/langchain4j/agentic/a2a/A2AAnnotationTenantTest.java | 61 | // ── extractTenantFromAgentCard ────────────────────────────────────────── | COMMENT |
| 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 | 343 | * 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 | 211 | "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 | 235 | "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 | .github/workflows/nightly_jdk21.yaml | 211 | except Exception: | CODE |
| LOW | .github/workflows/nightly_oracle.yaml | 82 | except Exception: | CODE |
| LOW | .github/workflows/nightly_jdk17.yaml | 211 | except Exception: | CODE |
| LOW | .github/workflows/main.yaml | 98 | except Exception: | CODE |
| LOW | .github/workflows/main.yaml | 330 | except Exception: | CODE |
| LOW | .github/workflows/nightly_jdk25.yaml | 207 | except Exception: | CODE |
| LOW | .github/workflows/nightly_milvus.yaml | 99 | except Exception: | 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 | 3425 | // Step 1: Validate the order and write results to shared state | STRING |
| LOW⚡ | docs/docs/tutorials/agents.md | 3431 | // Step 2: Pause for human approval using SuspendedResponse | STRING |
| LOW⚡ | docs/docs/tutorials/agents.md | 3438 | // Step 3: Finalize based on the approval decision | STRING |
| 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 | 16835 | "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 |