Agentic AI Framework for Java Developers
This report summarizes scanner evidence for alibaba/spring-ai-alibaba, a Java project with 11,091 GitHub stars. SynthScan examined 391,363 lines of code across 2916 source files, recording 254 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 2.3 (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? 159 finding(s).
Are imports declared and package/API names verified? 72 finding(s).
Are wrappers, guards, and repeated structures necessary? 35 finding(s).
Which changes need focused human review? 254 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 254 distinct pattern matches across 16 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 | …i/a2a/registry/nacos/utils/AgentCardConverterUtil.java | 151 | com.alibaba.nacos.api.ai.model.a2a.AgentCapabilities nacosCapabilities = new com.alibaba.nacos.api.ai.model.a2a.AgentC | CODE |
| CRITICAL | …aba/cloud/ai/agent/agentscope/AgentScopeAgentTest.java | 301 | Model scopeModel = io.agentscope.core.model.DashScopeChatModel.builder() | CODE |
| CRITICAL | …aba/cloud/ai/agent/agentscope/AgentScopeAgentTest.java | 387 | Model scopeModel = io.agentscope.core.model.DashScopeChatModel.builder() | CODE |
| CRITICAL | …aba/cloud/ai/agent/agentscope/AgentScopeAgentTest.java | 450 | Model scopeModel = io.agentscope.core.model.DashScopeChatModel.builder() | CODE |
| CRITICAL | …aba/cloud/ai/agent/agentscope/AgentScopeAgentTest.java | 501 | Model scopeModel = io.agentscope.core.model.DashScopeChatModel.builder() | CODE |
| CRITICAL | …/agent/agentscope/flow/AgentScopeRoutingAgentTest.java | 66 | this.scopeModel = io.agentscope.core.model.DashScopeChatModel.builder() | CODE |
| CRITICAL | …scope/flow/AgentScopeRoutingGraphBuildingStrategy.java | 88 | com.alibaba.cloud.ai.graph.agent.flow.strategy.FlowGraphBuildingStrategy.addSubAgentNode(subAgent, graph); | CODE |
| CRITICAL | …configure/graph/GraphObservationAutoConfiguration.java | 104 | return new com.alibaba.cloud.ai.graph.observation.SpringAiAlibabaChatModelObservationConvention(); | CODE |
| CRITICAL | …om/alibaba/cloud/ai/graph/agent/FlowAgentHookTest.java | 396 | return com.alibaba.cloud.ai.graph.agent.flow.builder.FlowGraphBuilder.buildGraph(config.getName(), config); | STRING |
| CRITICAL | …a/cloud/ai/graph/agent/hooks/InterruptionHookTest.java | 68 | return new ChatResponse(List.of(new Generation(new org.springframework.ai.chat.messages.AssistantMessage("Mock respon | CODE |
| CRITICAL | …a/cloud/ai/graph/agent/hooks/InterruptionHookTest.java | 73 | return Flux.just(new ChatResponse(List.of(new Generation(new org.springframework.ai.chat.messages.AssistantMessage("M | CODE |
| CRITICAL⚡ | …cloud/ai/graph/agent/hooks/hip/HumanInTheLoopTest.java | 570 | org.springframework.ai.tool.ToolCallback tool1 = org.springframework.ai.tool.function.FunctionToolCallback.builder("to | CODE |
| CRITICAL⚡ | …cloud/ai/graph/agent/hooks/hip/HumanInTheLoopTest.java | 575 | org.springframework.ai.tool.ToolCallback tool2 = org.springframework.ai.tool.function.FunctionToolCallback.builder("to | CODE |
| CRITICAL⚡ | …cloud/ai/graph/agent/hooks/hip/HumanInTheLoopTest.java | 580 | org.springframework.ai.tool.ToolCallback tool3 = org.springframework.ai.tool.function.FunctionToolCallback.builder("to | CODE |
| CRITICAL | …/ai/graph/agent/node/AgentToolNodeIntegrationTest.java | 279 | stateData.put("messages", List.of(new org.springframework.ai.chat.messages.UserMessage("test"))); | CODE |
| CRITICAL | …/graph/agent/node/AgentToolNodeAsyncExecutionTest.java | 134 | com.alibaba.cloud.ai.graph.agent.tool.DefaultCancellationToken realToken = new com.alibaba.cloud.ai.graph.agent.tool. | CODE |
| CRITICAL | …/graph/agent/node/AgentToolNodeAsyncExecutionTest.java | 240 | com.alibaba.cloud.ai.graph.agent.tool.DefaultCancellationToken token = new com.alibaba.cloud.ai.graph.agent.tool.Defa | CODE |
| CRITICAL | …/graph/agent/node/AgentToolNodeAsyncExecutionTest.java | 288 | com.alibaba.cloud.ai.graph.agent.tool.DefaultCancellationToken token = new com.alibaba.cloud.ai.graph.agent.tool.Defa | CODE |
| CRITICAL | …/graph/agent/node/AgentToolNodeAsyncExecutionTest.java | 358 | com.alibaba.cloud.ai.graph.agent.tool.DefaultCancellationToken token = new com.alibaba.cloud.ai.graph.agent.tool.Def | CODE |
| CRITICAL | …/graph/agent/node/AgentToolNodeAsyncExecutionTest.java | 438 | com.alibaba.cloud.ai.graph.agent.tool.DefaultCancellationToken token = new com.alibaba.cloud.ai.graph.agent.tool.Def | CODE |
| CRITICAL | …/graph/agent/node/AgentToolNodeAsyncExecutionTest.java | 515 | com.alibaba.cloud.ai.graph.agent.tool.DefaultCancellationToken token = new com.alibaba.cloud.ai.graph.agent.tool.Defa | CODE |
| CRITICAL | …/graph/agent/node/AgentToolNodeAsyncExecutionTest.java | 651 | com.alibaba.cloud.ai.graph.agent.tool.DefaultCancellationToken token = new com.alibaba.cloud.ai.graph.agent.tool.Defa | CODE |
| CRITICAL | …oud/ai/graph/agent/renderer/SaaStTemplateRenderer.java | 481 | if (!org.stringtemplate.v4.compiler.Compiler.funcs.containsKey(text) || this.validateStFunctions) { | CODE |
| CRITICAL⚡ | …es/chatui/_next/static/chunks/1392-ac34e5281b74d5e2.js | 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1392],{36:(e,t)=>{"use strict";Object.defineProperty(t,"__esMod | CODE |
| CRITICAL⚡ | …es/chatui/_next/static/chunks/1392-ac34e5281b74d5e2.js | 2 | See https://err.47ng.com/NUQS-${e}`}function a(e){if(0===e.size)return"";let t=[];for(let[n,o]of e.entries()){let e=n. | CODE |
| CRITICAL | …i/examples/documentation/graph/core/MemoryExample.java | 141 | var userProfileNode = com.alibaba.cloud.ai.graph.action.AsyncNodeActionWithConfig.node_async((state, config) -> { | CODE |
| CRITICAL | …i/examples/documentation/graph/core/MemoryExample.java | 203 | var cacheNode = com.alibaba.cloud.ai.graph.action.AsyncNodeActionWithConfig.node_async((state, config) -> { | CODE |
| CRITICAL | …i/examples/documentation/graph/core/MemoryExample.java | 291 | var loadUserPreferences = com.alibaba.cloud.ai.graph.action.AsyncNodeActionWithConfig.node_async((state, config) -> { | CODE |
| CRITICAL | …st/java/com/alibaba/cloud/ai/graph/StateGraphTest.java | 1896 | return Optional.of(com.alibaba.cloud.ai.graph.action.InterruptionMetadata.builder(nodeId, state) | CODE |
| CRITICAL | …m/alibaba/cloud/ai/graph/StateGraphSerializerTest.java | 165 | .saverConfig(com.alibaba.cloud.ai.graph.checkpoint.config.SaverConfig.builder() | CODE |
| CRITICAL | …baba/cloud/ai/graph/checkpoint/savers/H2SaverTest.java | 168 | var exception = org.junit.jupiter.api.Assertions.assertThrows( | CODE |
| CRITICAL⚡ | …serializer/plain_text/jackson/JacksonDeserializer.java | 584 | return com.alibaba.cloud.ai.graph.GraphResponse.error(throwable, metadata); | CODE |
| CRITICAL⚡ | …serializer/plain_text/jackson/JacksonDeserializer.java | 589 | return com.alibaba.cloud.ai.graph.GraphResponse.done(result, metadata); | CODE |
| CRITICAL⚡ | …serializer/plain_text/jackson/JacksonDeserializer.java | 594 | return com.alibaba.cloud.ai.graph.GraphResponse.of(pendingFuture, metadata); | CODE |
| CRITICAL | …aph/observation/GraphObservationLifecycleListener.java | 92 | if (com.alibaba.cloud.ai.graph.StateGraph.START.equals(nodeId)) { | CODE |
| CRITICAL | …aph/observation/GraphObservationLifecycleListener.java | 99 | if (com.alibaba.cloud.ai.graph.StateGraph.END.equals(nodeId)) { | CODE |
| CRITICAL | …cloud/ai/studio/core/utils/security/AESCryptUtils.java | 49 | return org.apache.commons.codec.binary.Base64.encodeBase64String(encode_content); | CODE |
| CRITICAL | …cloud/ai/studio/core/utils/security/AESCryptUtils.java | 67 | byte[] encode_content = org.apache.commons.codec.binary.Base64.decodeBase64(encrypted); | CODE |
| CRITICAL | …ibaba/cloud/ai/studio/core/utils/common/DateUtils.java | 204 | return org.apache.commons.lang3.time.DateUtils.parseDate(str.toString(), parsePatterns); | CODE |
| CRITICAL | …a/cloud/ai/studio/core/rag/DocumentChunkConverter.java | 85 | return org.springframework.ai.document.Document.builder() | CODE |
| CRITICAL | …/core/workflow/processor/AbstractExecuteProcessor.java | 921 | if (org.apache.commons.collections.CollectionUtils.isEmpty(messageList)) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | README.md | 78 | export AI_DASHSCOPE_API_KEY=your-api-key | CODE |
| HIGH | …aba/cloud/ai/graph/agent/ToolContextHelperExample.java | 55 | * export AI_DASHSCOPE_API_KEY=your-api-key | COMMENT |
| HIGH | …mples/documentation/src/main/resources/application.yml | 9 | api-key: ${DASHSCOPE_API_KEY:your-api-key} | CODE |
| HIGH | …xamples/documentation/framework/advanced/a2a/README.md | 70 | export DASHSCOPE_API_KEY=your-api-key | CODE |
| HIGH | examples/chatbot/README.md | 13 | export AI_DASHSCOPE_API_KEY=your-api-key | CODE |
| HIGH | examples/multimodal/README.md | 21 | export AI_DASHSCOPE_API_KEY=your_api_key | CODE |
| HIGH | examples/voice-agent/README.md | 67 | export AI_DASHSCOPE_API_KEY=your-api-key | CODE |
| HIGH | …frontend/packages/main/src/pages/AgentSchema/index.tsx | 385 | yaml += ` api-key: "${handle.model['api-key'] || 'your-api-key'}"\n`; | CODE |
| HIGH | …frontend/packages/main/src/pages/AgentSchema/index.tsx | 402 | yaml += ` api-key: "your-api-key"\n`; | CODE |
| HIGH | …frontend/packages/main/src/pages/AgentSchema/index.tsx | 406 | const defaultApiKey = handle.model?.['api-key'] || 'your-api-key'; | CODE |
| HIGH | …frontend/packages/main/src/pages/AgentSchema/index.tsx | 605 | 'api-key': parsedHandle.model?.['api-key'] || 'your-api-key' | CODE |
| HIGH | …frontend/packages/main/src/pages/AgentSchema/index.tsx | 661 | 'api-key': 'your-api-key' | CODE |
| HIGH | …frontend/packages/main/src/pages/AgentSchema/index.tsx | 827 | 'api-key': existingHandle.model?.['api-key'] || 'your-api-key' | CODE |
| HIGH | …frontend/packages/main/src/pages/AgentSchema/index.tsx | 1080 | 'api-key': 'your-api-key' | CODE |
| HIGH | …frontend/packages/main/src/pages/AgentSchema/index.tsx | 1104 | 'api-key': currentHandle.model?.['api-key'] || 'your-api-key' | CODE |
| HIGH | …frontend/packages/main/src/pages/AgentSchema/index.tsx | 1136 | 'api-key': 'your-api-key' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/agent/agentscope/flow/AgentScopeRoutingMergeNode.java | 0 | synthesize these search results to answer the original question: "%s" - combine information from multiple sources withou | STRING |
| HIGH | …a/cloud/ai/graph/agent/flow/node/RoutingMergeNode.java | 0 | synthesize these search results to answer the original question: "%s" - combine information from multiple sources withou | STRING |
| HIGH | …examples/multiagents/routing/simple/RouterService.java | 0 | synthesize these search results to answer the original question: "%s" - combine information from multiple sources withou | STRING |
| HIGH | …va/com/alibaba/cloud/ai/graph/agent/AgentToolTest.java | 0 | { "type": "object", "properties": { "topic": { "type": "string" }, "wordcount": { "type": "integer" }, "style": { "type" | STRING |
| HIGH | …cloud/ai/graph/agent/model/ReactAgentDeepSeekTest.java | 0 | { "type": "object", "properties": { "topic": { "type": "string" }, "wordcount": { "type": "integer" }, "style": { "type" | STRING |
| HIGH | …documentation/framework/advanced/AgentToolExample.java | 0 | { "type": "object", "properties": { "topic": { "type": "string" }, "wordcount": { "type": "integer" }, "style": { "type" | STRING |
| HIGH | …a/com/alibaba/cloud/ai/graph/agent/ReactAgentTest.java | 0 | { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "strin | STRING |
| HIGH | …cloud/ai/graph/agent/model/ReactAgentDeepSeekTest.java | 0 | { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "strin | STRING |
| HIGH | …a/cloud/ai/graph/agent/model/ReactAgentOpenAiTest.java | 0 | { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "strin | STRING |
| HIGH | …a/com/alibaba/cloud/ai/graph/agent/ReactAgentTest.java | 0 | { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "summary": { "type": "str | STRING |
| HIGH | …cloud/ai/graph/agent/model/ReactAgentDeepSeekTest.java | 0 | { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "summary": { "type": "str | STRING |
| HIGH | …a/cloud/ai/graph/agent/model/ReactAgentOpenAiTest.java | 0 | { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "summary": { "type": "str | STRING |
| HIGH | …ibaba/cloud/ai/graph/checkpoint/savers/h2/H2Saver.java | 0 | update graph_thread set is_released = true where thread_name = ? and is_released = false | STRING |
| HIGH | …oud/ai/graph/checkpoint/savers/oracle/OracleSaver.java | 0 | update graph_thread set is_released = true where thread_name = ? and is_released = false | STRING |
| HIGH | …cloud/ai/graph/checkpoint/savers/mysql/MysqlSaver.java | 0 | update graph_thread set is_released = true where thread_name = ? and is_released = false | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/linter/license/.licenserc.yaml | 1 | # Copyright 2024-2026 the original author or authors. | COMMENT |
| LOW | tools/linter/markdownlint/markdown_lint_config.yaml | 1 | # | COMMENT |
| LOW | tools/ci-config/labeler.yml | 1 | # | COMMENT |
| LOW | tools/scripts/new-line-check.py | 1 | # | COMMENT |
| LOW | tools/scripts/check-chinese-content.py | 1 | # | COMMENT |
| LOW | tools/github-actions/setup-deps/action.yml | 1 | # | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 1 | ///* | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 21 | //import com.alibaba.cloud.ai.dashscope.rerank.DashScopeRerankModel; | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 41 | // | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 61 | // "year", "2024", // 年份 | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 81 | // DashScopeRerankOptions rerankOptions = new DashScopeRerankOptions(); | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 101 | // .filterExpressionKey("filter_expression") | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 121 | // | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 141 | // | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 161 | // | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 181 | // | COMMENT |
| LOW | …ba/cloud/ai/graph/node/KnowledgeRetrievalNodeTest.java | 201 | // // 使重排序失效 | COMMENT |
| LOW | …in/java/com/alibaba/cloud/ai/graph/node/HumanNode.java | 1 | ///* | COMMENT |
| LOW | …in/java/com/alibaba/cloud/ai/graph/node/HumanNode.java | 21 | //import com.alibaba.cloud.ai.graph.exception.RunnableErrors; | COMMENT |
| LOW | …in/java/com/alibaba/cloud/ai/graph/node/HumanNode.java | 41 | // this.interruptStrategy = interruptStrategy; | COMMENT |
| LOW | …in/java/com/alibaba/cloud/ai/graph/node/HumanNode.java | 61 | // if (stateUpdateFunc != null) { | COMMENT |
| LOW | …in/java/com/alibaba/cloud/ai/graph/node/HumanNode.java | 81 | // private void interrupt(OverAllState state) throws GraphRunnerException { | COMMENT |
| LOW | …in/java/com/alibaba/cloud/ai/graph/node/HumanNode.java | 101 | // private Function<OverAllState, Map<String, Object>> stateUpdateFunc = null; | COMMENT |
| LOW | …in/java/com/alibaba/cloud/ai/graph/node/HumanNode.java | 121 | // | COMMENT |
| LOW | …/com/alibaba/cloud/ai/graph/agent/AgentSkillsTest.java | 361 | COMMENT | |
| LOW | …cloud/ai/graph/agent/ParallelAgentIntegrationTest.java | 141 | // HashMap<String, KeyStrategy> keyStrategyHashMap = new HashMap<>(); | COMMENT |
| LOW | …cloud/ai/graph/agent/ParallelAgentIntegrationTest.java | 161 | // ReactAgent fetchNewsAgent = ReactAgent.builder() | COMMENT |
| LOW | …cloud/ai/graph/agent/ParallelAgentIntegrationTest.java | 181 | // 你是一个日报生成器。请基于以下信息生成一份杭州今日综合报告: | COMMENT |
| LOW | …cloud/ai/graph/agent/ParallelAgentIntegrationTest.java | 201 | // .state(sharedStateFactory) | COMMENT |
| LOW | …cloud/ai/graph/agent/ParallelAgentIntegrationTest.java | 221 | // System.out.println("并行收集的新闻数据: " + finalState.value("news_data").get()); | COMMENT |
| LOW | …/com/alibaba/cloud/ai/graph/agent/RemoteAgentTest.java | 61 | // .outputKey("output") | COMMENT |
| LOW | …/com/alibaba/cloud/ai/graph/agent/RemoteAgentTest.java | 81 | // System.out.println("chunk[" + chunkCount + "]: " + outBase.toString()); | COMMENT |
| LOW | …ba/cloud/ai/graph/agent/tools/ShellSessionManager.java | 541 | COMMENT | |
| LOW | …/cloud/ai/graph/agent/a2a/A2aNodeActionWithConfig.java | 461 | // public Flux<NodeOutput> stream(OverAllState state) throws Exception { | COMMENT |
| LOW | …ud/ai/agent/studio/controller/ExecutionController.java | 81 | // throw new ResponseStatusException( | COMMENT |
| LOW | …ud/ai/agent/studio/controller/ExecutionController.java | 101 | // } | COMMENT |
| LOW | …ud/ai/agent/studio/controller/ExecutionController.java | 121 | // request.threadId); | COMMENT |
| LOW | .github/dependbot.yml | 1 | # | COMMENT |
| LOW | .github/workflows/issue-and-pr.yml | 1 | # | COMMENT |
| LOW | .github/workflows/invalid-issue-check.yml | 1 | # Copyright 2024-2026 the original author or authors. | COMMENT |
| LOW | .github/workflows/greeting-guideline-pr.yml | 1 | # Copyright 2024-2026 the original author or authors. | COMMENT |
| LOW | .github/workflows/build-and-test.yml | 1 | # | COMMENT |
| LOW | .github/workflows/remove-stale-pr.yml | 1 | # | COMMENT |
| LOW | .github/workflows/linter.yml | 1 | # | COMMENT |
| LOW | .github/workflows/pull-request-robot.yml | 1 | # | COMMENT |
| LOW | .github/workflows/lint-pr-title.yml | 1 | # | COMMENT |
| LOW | .github/workflows/license-check.yml | 1 | # | COMMENT |
| LOW | .github/workflows/secret-check.yml | 1 | # | COMMENT |
| LOW | .github/ISSUE_TEMPLATE/feature_request.yml | 1 | # | COMMENT |
| LOW | .github/ISSUE_TEMPLATE/bug_report.yml | 1 | # | COMMENT |
| LOW | .github/ISSUE_TEMPLATE/config.yml | 1 | # | COMMENT |
| LOW | .github/ISSUE_TEMPLATE/task.yml | 1 | # | COMMENT |
| LOW | .github/ISSUE_TEMPLATE/question.yml | 1 | # | COMMENT |
| LOW | …ai/studio/core/rag/reranker/DashscopeRerankerTest.java | 61 | // @Test | COMMENT |
| LOW | …ai/studio/core/rag/reranker/DashscopeRerankerTest.java | 81 | // List<Document> emptyDocs = List.of(); | COMMENT |
| LOW | …gacy/pages/prompts/version-history/version-history.jsx | 561 | // title: $i18n.get({ id: 'legacy.prompts.model.configuration', dm: '模型配置' }), | COMMENT |
| LOW | …gacy/pages/prompts/version-history/version-history.jsx | 581 | // }, | COMMENT |
| LOW | …gacy/pages/prompts/version-history/version-history.jsx | 621 | // { | COMMENT |
| LOW | …end/packages/main/src/legacy/services/tracing/index.ts | 1 | import { request } from '../../utils/request'; | COMMENT |
| LOW | …end/packages/main/src/legacy/services/tracing/index.ts | 21 | // "spanName": "GET /api/users", | COMMENT |
| 11 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 53 | // Step 0: Add root agent node (transparent node) | COMMENT |
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 56 | // Step 1: Add routing node (where LLM makes routing decision) | COMMENT |
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 64 | // Step 2: Connect beforeModel hooks to routing node (if any) | COMMENT |
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 72 | // Step 3: Connect afterModel hooks after routing node (if any) | COMMENT |
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 79 | // Step 4: Add merge node for result synthesis | COMMENT |
| LOW | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 90 | // Step 5: Process sub-agents for routing | COMMENT |
| LOW | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 101 | // Step 6: Add parallel conditional edges for routing | COMMENT |
| LOW⚡ | …mples/documentation/framework/advanced/RAGExample.java | 125 | // Step 1: Retrieve relevant documents | COMMENT |
| LOW⚡ | …mples/documentation/framework/advanced/RAGExample.java | 128 | // Step 2: Build context from documents | COMMENT |
| LOW⚡ | …mples/documentation/framework/advanced/RAGExample.java | 133 | // Step 3: Generate answer with context | COMMENT |
| LOW | …cloud/ai/graph/checkpoint/savers/mongo/MongoSaver.java | 162 | // Step 1: Try to atomically get an active thread | COMMENT |
| LOW | …cloud/ai/graph/checkpoint/savers/mongo/MongoSaver.java | 186 | // Step 2: No active thread exists, create a new one atomically | COMMENT |
| LOW | …aba/cloud/ai/graph/internal/ParallelEdgeProcessor.java | 191 | // We need to check if there are intermediate nodes (length > 2 means start + convergence + at least one intermediate | COMMENT |
| LOW⚡ | …/com/alibaba/cloud/ai/graph/executor/NodeExecutor.java | 695 | // Step 1: Apply getEmbedFlux transformation logic to graphFlux.getFlux() | COMMENT |
| LOW⚡ | …/com/alibaba/cloud/ai/graph/executor/NodeExecutor.java | 699 | // Step 2: Apply handleEmbeddedFlux processing logic (directly implemented) | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/undeploy.sh | 23 | # Step 1: Delete Ingress | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/undeploy.sh | 27 | # Step 2: Delete applications | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/undeploy.sh | 32 | # Step 3: Delete middleware | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/undeploy.sh | 42 | # Step 4: Delete namespace (this will delete all resources in the namespace) | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 32 | # Step 1: Create namespace | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 36 | # Step 2: Create MySQL init scripts ConfigMap if SQL files exist | COMMENT |
| LOW | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 54 | # Step 3: Deploy middleware | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 78 | # Step 4: Wait for critical services | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 86 | # Step 5: Deploy applications | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 94 | # Step 6: Deploy Ingress | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 98 | # Step 7: Show status | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 53 | // Step 0: Add root agent node (transparent node) | COMMENT |
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 56 | // Step 1: Add routing node (where LLM makes routing decision) | COMMENT |
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 64 | // Step 2: Connect beforeModel hooks to routing node (if any) | COMMENT |
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 72 | // Step 3: Connect afterModel hooks after routing node (if any) | COMMENT |
| LOW⚡ | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 79 | // Step 4: Add merge node for result synthesis | COMMENT |
| LOW | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 90 | // Step 5: Process sub-agents for routing | COMMENT |
| LOW | …/agent/flow/strategy/RoutingGraphBuildingStrategy.java | 101 | // Step 6: Add parallel conditional edges for routing | COMMENT |
| LOW⚡ | …mples/documentation/framework/advanced/RAGExample.java | 125 | // Step 1: Retrieve relevant documents | COMMENT |
| LOW⚡ | …mples/documentation/framework/advanced/RAGExample.java | 128 | // Step 2: Build context from documents | COMMENT |
| LOW⚡ | …mples/documentation/framework/advanced/RAGExample.java | 133 | // Step 3: Generate answer with context | COMMENT |
| LOW | …cloud/ai/graph/checkpoint/savers/mongo/MongoSaver.java | 162 | // Step 1: Try to atomically get an active thread | COMMENT |
| LOW | …cloud/ai/graph/checkpoint/savers/mongo/MongoSaver.java | 186 | // Step 2: No active thread exists, create a new one atomically | COMMENT |
| LOW⚡ | …/com/alibaba/cloud/ai/graph/executor/NodeExecutor.java | 695 | // Step 1: Apply getEmbedFlux transformation logic to graphFlux.getFlux() | COMMENT |
| LOW⚡ | …/com/alibaba/cloud/ai/graph/executor/NodeExecutor.java | 699 | // Step 2: Apply handleEmbeddedFlux processing logic (directly implemented) | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/undeploy.sh | 23 | # Step 1: Delete Ingress | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/undeploy.sh | 27 | # Step 2: Delete applications | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/undeploy.sh | 32 | # Step 3: Delete middleware | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/undeploy.sh | 42 | # Step 4: Delete namespace (this will delete all resources in the namespace) | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 32 | # Step 1: Create namespace | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 36 | # Step 2: Create MySQL init scripts ConfigMap if SQL files exist | COMMENT |
| LOW | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 54 | # Step 3: Deploy middleware | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 78 | # Step 4: Wait for critical services | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 86 | # Step 5: Deploy applications | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 94 | # Step 6: Deploy Ingress | COMMENT |
| LOW⚡ | spring-ai-alibaba-admin/deploy/kubernetes/deploy.sh | 98 | # Step 7: Show status | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | AGENTS.md | 23 | ├── spring-ai-alibaba-graph-core/ # Runtime providing persistence, workflow orchestration, state mgmt | CODE |
| MEDIUM | CLAUDE.md | 23 | ├── spring-ai-alibaba-graph-core/ # Runtime providing persistence, workflow orchestration, state mgmt | CODE |
| MEDIUM | …handoffs-multiagent/src/main/resources/application.yml | 8 | # Set to true to run the multi-agent handoffs demo on startup (sales + support with handoff tools). | COMMENT |
| MEDIUM | examples/multiagent-patterns/workflow/README.md | 12 | ## RAG Agent | COMMENT |
| MEDIUM | examples/multiagent-patterns/workflow/README.md | 36 | # RAG agent | COMMENT |
| MEDIUM | …t-patterns/workflow/src/main/resources/application.yml | 18 | # Enable RAG agent example (ragagent package) | COMMENT |
| MEDIUM | …ud/ai/examples/multiagents/workflow/ragagent/README.md | 1 | # RAG Agent Workflow | COMMENT |
| MEDIUM | …agentscope/handoffs/src/main/resources/application.yml | 10 | # Set to true to run the AgentScope multi-agent handoffs demo on startup. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …aba-studio/agent-chat-ui/src/hooks/use-file-upload.tsx | 86 | // Global drag events with counter for robust dragOver state | COMMENT |
| MEDIUM | …ighter_languages_refractor_gherkin.dbc62ac9c35ee2b9.js | 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2690],{38862:a=>{function e(a){var e;e=/(?:\r?\n|\ | CODE |
| MEDIUM | …hatui/_next/static/chunks/e610e9eb-8deba821626819b0.js | 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2982],{6906:(e,n,t)=>{var r,l=t(41837),a=t(49046), | CODE |
| MEDIUM | …hatui/_next/static/chunks/e610e9eb-8deba821626819b0.js | 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2982],{6906:(e,n,t)=>{var r,l=t(41837),a=t(49046), | CODE |
| MEDIUM | …atui/_next/static/chunks/framework-92fe0709eb3fe4d5.js | 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6593],{5640:(e,t,n)=>{e.exports=n(60808)},15339:(e | CODE |
| MEDIUM | …atui/_next/static/chunks/framework-92fe0709eb3fe4d5.js | 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6593],{5640:(e,t,n)=>{e.exports=n(60808)},15339:(e | CODE |
| MEDIUM⚡ | …es/chatui/_next/static/chunks/1392-ac34e5281b74d5e2.js | 2 | See https://err.47ng.com/NUQS-${e}`}function a(e){if(0===e.size)return"";let t=[];for(let[n,o]of e.entries()){let e=n. | CODE |
| MEDIUM⚡ | …es/chatui/_next/static/chunks/1392-ac34e5281b74d5e2.js | 2 | See https://err.47ng.com/NUQS-${e}`}function a(e){if(0===e.size)return"";let t=[];for(let[n,o]of e.entries()){let e=n. | CODE |
| MEDIUM | …-highlighter/refractor-core-import.208f5adebe7aa3a4.js | 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[86,2129,3533,6916,6943],{2437:(e,n,t)=>{"use strict";var a=t(12 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aba/cloud/ai/graph/node/TemplateTransformNodeTest.java | 385 | TestAddress address = new TestAddress("123 Main St", "New York", "10001"); | CODE |
| LOW | …i/graph/node/TemplateTransformNodeIntegrationTest.java | 60 | Map.of("user.name", "John Doe", "user.email", "john@example.com", "user.score", 1500)); | CODE |
| LOW | …/cloud/ai/graph/agent/a2a/RemoteAgentCardProvider.java | 57 | authHeaders.put("Authorization", "Bearer dummy-token-for-extended-card"); | CODE |
| LOW | …ces/chatui/_next/static/chunks/717-cc15e189c732e2b5.js | 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[717],{4831:(e,t)=>{Object.defineProperty(t,"__esMo | CODE |
| LOW | …ai/examples/documentation/graph/QuickStartExample.java | 634 | "sender_email", "user@example.com", | STRING |
| LOW | …ocumentation/graph/examples/HumanInTheLoopExample.java | 182 | .addMetadata(RunnableConfig.HUMAN_FEEDBACK_METADATA_KEY, "placeholder") | CODE |
| LOW | …aph/plain_text/SpringAIJacksonStateSerializerTest.java | 207 | metadata.put("author", "John Doe"); | CODE |
| LOW | …in/java/com/alibaba/cloud/ai/graph/RunnableConfig.java | 217 | * {@link #HUMAN_FEEDBACK_METADATA_KEY} with value {@code "placeholder"} to metadata. | COMMENT |
| LOW | …in/java/com/alibaba/cloud/ai/graph/RunnableConfig.java | 237 | .addMetadata(HUMAN_FEEDBACK_METADATA_KEY, "placeholder") | CODE |
| LOW | …in/java/com/alibaba/cloud/ai/graph/RunnableConfig.java | 418 | * {@code "placeholder"}) so the built config is suitable for resuming a run | COMMENT |
| LOW | …in/java/com/alibaba/cloud/ai/graph/RunnableConfig.java | 427 | return addMetadata(HUMAN_FEEDBACK_METADATA_KEY, "placeholder"); | CODE |
| LOW | …n/java/com/alibaba/cloud/ai/graph/store/StoreItem.java | 36 | * Map.of("name", "John Doe", "email", "john@example.com") | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …cloud/ai/a2a/core/server/JsonRpcA2aRequestHandler.java | 59 | public class JsonRpcA2aRequestHandler implements A2aRequestHandler { | CODE |
| LOW | …-ai-alibaba-studio/agent-chat-ui/src/types/messages.ts | 98 | export function isToolRequestConfirmMessage(message: Message): message is ToolRequestConfirmMessage { | CODE |
| LOW | …at-ui/src/components/thread/messages/tool-feedback.tsx | 15 | function AutomaticallyApprovedToolItem({ | CODE |
| LOW | …rc/components/thread/messages/tool-request-confirm.tsx | 4 | export function ToolRequestConfirmMessage({ | CODE |
| LOW | …-studio/agent-chat-ui/src/lib/ensure-tool-responses.ts | 6 | export function ensureToolCallsHaveResponses(messages: Message[]): Message[] { | CODE |
| LOW | …-studio/agent-chat-ui/src/lib/agent-inbox-interrupt.ts | 3 | export function isAgentInboxInterruptSchema( | CODE |
| LOW | …amples/multimodal/src/main/resources/static/index.html | 264 | async function runImageFromClasspathResource() { | CODE |
| LOW | …/packages/main/src/legacy/services/evaluators/index.ts | 106 | export async function createDatasetDataItemFromTrace(params: EvaluatorsAPI.CreateDatasetDataItemFromTraceParams) { | CODE |
| LOW | …tantAppEdit/components/KnowledgeSelectorComp/index.tsx | 19 | export function SelectedKnowledgeBaseItem({ | CODE |
| LOW | …tantAppEdit/components/KnowledgeSelectorComp/index.tsx | 45 | export default function KnowledgeBaseSelectorComp() { | CODE |
| LOW | …tantAppEdit/components/AssistantPromptEditor/index.tsx | 22 | export function AssistantPromptEditorWrap(props: IPromptProps) { | CODE |
| LOW | …omponent/AppComponent/components/AppSelector/index.tsx | 190 | export function AppSelectorModalByAppComponent(props: IAppModalProps) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …dmin/deploy/docker-compose/docker-compose-service.yaml | 3 | # ========================= | COMMENT |
| MEDIUM | …dmin/deploy/docker-compose/docker-compose-service.yaml | 5 | # ========================= | COMMENT |
| MEDIUM | …dmin/deploy/docker-compose/docker-compose-service.yaml | 233 | # ========================= | COMMENT |
| MEDIUM | …dmin/deploy/docker-compose/docker-compose-service.yaml | 235 | # ========================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/scripts/new-line-check.py | 46 | # Check if the incoming file ends with a blank line | COMMENT |
| LOW⚡ | tools/scripts/check-chinese-content.py | 74 | # Check if any parent directory is in exclude list | COMMENT |
| LOW⚡ | tools/scripts/check-chinese-content.py | 79 | # Check if filename is in exclude list | COMMENT |
| LOW⚡ | tools/scripts/check-chinese-content.py | 83 | # Check if file matches i18n patterns | COMMENT |
| LOW | tools/scripts/check-chinese-content.py | 125 | # Check if contains real Chinese content | COMMENT |
| LOW | spring-ai-alibaba-admin/docker/middleware/run.sh | 15 | # Check if .env file already exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/scripts/new-line-check.py | 93 | print("Error: Some files do not end with a blank line.") | CODE |
| LOW | tools/scripts/check-chinese-content.py | 153 | except Exception as e: | CODE |
| LOW | tools/scripts/check-chinese-content.py | 304 | except Exception as e: | CODE |
| LOW | …/resources/skills/pdf-extractor/scripts/extract_pdf.py | 51 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/scripts/check-chinese-content.py | 22 | CODE | |
| LOW | tools/scripts/check-chinese-content.py | 25 | CODE | |
| LOW | tools/scripts/check-chinese-content.py | 28 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aba-admin/frontend/packages/main/src/request/upload.ts | 139 | //// Example usage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/scripts/check-chinese-content.py | 107 | CODE |