An Autonomous LLM Agent for Complex Task Solving
This report summarizes scanner evidence for OpenBMB/XAgent, a Python project with 8,549 GitHub stars. SynthScan examined 51,615 lines of code across 349 source files, recording 439 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 15.5 (Elevated 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.
Can maintainers explain intent, assumptions, and trade-offs? 199 finding(s).
Are imports declared and package/API names verified? 112 finding(s).
Are wrappers, guards, and repeated structures necessary? 199 finding(s).
Which changes need focused human review? 439 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 439 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 |
|---|---|---|---|---|
| HIGH | command_input.py | 136 | Interrupts the current input process and returns the current data. Args: input_data (dict) | STRING |
| HIGH | ToolServer/ToolServerManager/main.py | 76 | Wait for the startup of node with id node_id. It probes the node status every seconds until creation_wait_seco | STRING |
| HIGH | ToolServer/ToolServerManager/main.py | 154 | Reconnect session of a node. Fetches node info and restarts the node if it exists. Args: node_id (str, | STRING |
| HIGH | ToolServer/ToolServerManager/main.py | 229 | Routes a request to a specific node. Fetches the node info, checks if it is valid and running. Updates latest | STRING |
| HIGH | ToolServer/ToolServerNode/config.py | 38 | Fetches a configuration value for a given key. Args: key (str): The configuration key to fet | STRING |
| HIGH | ToolServer/ToolServerNode/main.py | 155 | This function retrieves the tool names based on a query question using the ADA retriever. Args: questi | STRING |
| HIGH | ToolServer/ToolServerNode/main.py | 239 | This function executes a tool with the provided arguments and environment. Args: tool_name (str): The | STRING |
| HIGH | ToolServer/ToolServerNode/utils/response.py | 39 | Wrap the tool response in a standardized object structure (depending on its type) to allow decoding. Forma | STRING |
| HIGH | ToolServer/ToolServerNode/utils/openai.py | 49 | Sends a request to the OpenAI and gets a response. Args: messages: Payload to be sent to O | STRING |
| HIGH | ToolServer/ToolServerNode/utils/openai.py | 78 | Makes a request to the OpenAI by calling the instance of the class. Args: messages: Payloa | STRING |
| HIGH | XAgentServer/database/interface/interaction.py | 333 | delete interaction Args: db (Session): db session interaction_id (str): intera | STRING |
| HIGH | XAgentServer/database/interface/interaction.py | 365 | insert an interaction process for recording Args: db (Session): db session pro | STRING |
| HIGH | XAgentServer/database/interface/interaction.py | 436 | update send flag, if send success, update flag if send flag is True, it means that the process has been | STRING |
| HIGH | XAgentServer/database/interface/interaction.py | 462 | update receive flag, if receive success, update flag if this flag is True, it means that the process ha | STRING |
| HIGH | XAgentServer/database/interface/interaction.py | 487 | update human data Args: db (Session): db session interaction_id (str): interac | STRING |
| HIGH | XAgentServer/database/interface/interaction.py | 513 | if interaction is failed, insert error message this message will be displayed in the interaction list | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 34 | get interaction Args: db: db interaction_id: interaction id Returns: | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 101 | get parameter Args: db: db interaction_id: interaction id Returns: | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 120 | get init parameter Args: db: db interaction_id: interaction id Returns: | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 145 | get interaction by user id Args: db: db user_id: user id page_size: | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 165 | interaction is exist Args: db: db interaction_id: interaction id Return | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 251 | is running Args: db: db user_id: user id Returns: True if r | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 288 | get shared interaction Args: db: db interaction_id: interaction id | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 311 | search many shared Args: db: db page_size: page size page_index: pa | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 348 | search many raws Args: db: db interaction_id: interaction id Returns: | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 367 | get raw Args: db: db interaction_id: interaction id node_id: node i | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 388 | get next send Args: db: db interaction_id: interaction id Returns: | STRING |
| HIGH | XAgentServer/application/cruds/interaction.py | 471 | insert error Args: db: db interaction_id: interaction id message: m | STRING |
| HIGH | XAgent/config.py | 26 | Access the class attribute. Args: key (str): Key to access the class attribute. R | STRING |
| HIGH | XAgent/config.py | 129 | Get the normalized model name for a given input model name. Args: model_name (str, optional): Input mo | STRING |
| HIGH | XAgent/vector_db.py | 153 | The function to search the database for sentences similar to the query sentence. Args: query_s | STRING |
| HIGH | XAgent/ai_functions/function_manager.py | 75 | Executes a function by its name. Args: function_name (str): The name of the function to ex | STRING |
| HIGH | XAgent/ai_functions/request/obj_generator.py | 39 | Processes chat completion requests and retrieves responses. Args: kwargs: Request data parameters. | STRING |
| HIGH | XAgent/ai_functions/request/obj_generator.py | 136 | Validates arguments against the function schema. Args: function_schema (dict): Schema to validate t | STRING |
| HIGH | XAgent/ai_functions/request/obj_generator.py | 177 | Validates and refines the function call response. Args: req_kwargs: Request data parameters. | STRING |
| HIGH | XAgent/ai_functions/request/openai.py | 35 | Handle operation of OpenAI chat completion. This function operates OpenAI chat completion with provided | STRING |
| HIGH | XAgent/ai_functions/request/openai.py | 115 | Handle operation of OpenAI v1.x.x chat completion. This function operates OpenAI v1.x.x chat completion with pr | STRING |
| HIGH | XAgent/agent/utils.py | 5 | Parses the response and returns the command name and arguments. This function will raise the exception `json.d | STRING |
| HIGH | XAgent/agent/tool_agent/agent.py | 40 | This function generates a message list and a token list based on the input parameters using the `gener | STRING |
| HIGH | XAgent/workflow/task_handler.py | 197 | Generates search plan and process it for the current task. Args: plan (Plan): The plan to | STRING |
| HIGH | XAgent/inner_loop_search_algorithms/ReACT.py | 85 | Runs the chain search task. Args: config: Configuration for the search. agent: | STRING |
| HIGH | XAgent/inner_loop_search_algorithms/ReACT.py | 200 | Run the chain search task. Args: config: Configuration for the search. agent: | STRING |
| HIGH | Markdown_Docs/XAgent/function_handler.md | 123 | Generates search plan and process it for the current task. Args: plan (Plan): The plan to be processed | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | command.py | 0 | define a long task to run interaction args: parameter (interactionparameter): the parameter of interaction | STRING |
| HIGH | XAgentServer/application/websockets/recorder.py | 0 | define a long task to run interaction args: parameter (interactionparameter): the parameter of interaction | STRING |
| HIGH | XAgentServer/application/websockets/base.py | 0 | define a long task to run interaction args: parameter (interactionparameter): the parameter of interaction | STRING |
| HIGH | tests/test_1106_model_openai.py | 0 | {"choices": [{"finish_reason": "stop", "index": 0, "message": {"content": "hello, world!"}}]} | STRING |
| HIGH | tests/test_model_alias.py | 0 | {"choices": [{"finish_reason": "stop", "index": 0, "message": {"content": "hello, world!"}}]} | STRING |
| HIGH | Markdown_Docs/XAgent/ai_functions/request/openai.md | 0 | {"choices": [{"finish_reason": "stop", "index": 0, "message": {"content": "hello, world!"}}]} | STRING |
| HIGH | XAgentServer/application/websockets/replayer.py | 0 | main websocket server extends: websocketendpoint description: in this websocket, we will receive the args from user, and | STRING |
| HIGH | XAgentServer/application/websockets/share.py | 0 | main websocket server extends: websocketendpoint description: in this websocket, we will receive the args from user, and | STRING |
| HIGH | XAgentServer/application/websockets/base.py | 0 | main websocket server extends: websocketendpoint description: in this websocket, we will receive the args from user, and | STRING |
| HIGH | XAgentServer/application/websockets/replayer.py | 0 | connect to client args: websocket (websocket): a websocket object raises: xagentwebsocketconnecterror: if the user is ru | STRING |
| HIGH | XAgentServer/application/websockets/share.py | 0 | connect to client args: websocket (websocket): a websocket object raises: xagentwebsocketconnecterror: if the user is ru | STRING |
| HIGH | XAgentServer/application/websockets/base.py | 0 | connect to client args: websocket (websocket): a websocket object raises: xagentwebsocketconnecterror: if the user is ru | STRING |
| HIGH | XAgentServer/application/websockets/replayer.py | 0 | when disconnect with client, it will run this function override this function to do something when disconnect with clien | STRING |
| HIGH | XAgentServer/application/websockets/recorder.py | 0 | when disconnect with client, it will run this function override this function to do something when disconnect with clien | STRING |
| HIGH | XAgentServer/application/websockets/share.py | 0 | when disconnect with client, it will run this function override this function to do something when disconnect with clien | STRING |
| HIGH | XAgentServer/application/websockets/base.py | 0 | when disconnect with client, it will run this function override this function to do something when disconnect with clien | STRING |
| HIGH | XAgentServer/application/websockets/replayer.py | 0 | when receive data from client, it will run this function args: websocket (websocket): a websocket object data (any): the | STRING |
| HIGH | XAgentServer/application/websockets/recorder.py | 0 | when receive data from client, it will run this function args: websocket (websocket): a websocket object data (any): the | STRING |
| HIGH | XAgentServer/application/websockets/share.py | 0 | when receive data from client, it will run this function args: websocket (websocket): a websocket object data (any): the | STRING |
| HIGH | XAgentServer/application/websockets/base.py | 0 | when receive data from client, it will run this function args: websocket (websocket): a websocket object data (any): the | STRING |
| HIGH | XAgent/agent/plan_refine_agent/prompt.py | 0 | the example that will be given to the dispatcher to generate the prompt returns: example_input: the user query or the ta | STRING |
| HIGH | XAgent/agent/tool_agent/prompt.py | 0 | the example that will be given to the dispatcher to generate the prompt returns: example_input: the user query or the ta | STRING |
| HIGH | XAgent/agent/reflect_agent/prompt.py | 0 | the example that will be given to the dispatcher to generate the prompt returns: example_input: the user query or the ta | STRING |
| HIGH | XAgent/agent/plan_generate_agent/prompt.py | 0 | the example that will be given to the dispatcher to generate the prompt returns: example_input: the user query or the ta | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | command.py | 1 | CODE | |
| LOW | command.py | 3 | CODE | |
| LOW | command.py | 5 | CODE | |
| LOW | command.py | 14 | CODE | |
| LOW | command_input.py | 1 | CODE | |
| LOW | command_input.py | 5 | CODE | |
| LOW | command_input.py | 8 | CODE | |
| LOW | ToolServer/ToolServerManager/config.py | 2 | CODE | |
| LOW | ToolServer/ToolServerManager/config.py | 5 | CODE | |
| LOW | ToolServer/ToolServerManager/connections.py | 3 | CODE | |
| LOW | ToolServer/ToolServerManager/connections.py | 5 | CODE | |
| LOW | ToolServer/ToolServerManager/connections.py | 5 | CODE | |
| LOW | ToolServer/ToolServerManager/connections.py | 5 | CODE | |
| LOW | ToolServer/ToolServerManager/connections.py | 5 | CODE | |
| LOW | ToolServer/ToolServerManager/connections.py | 9 | CODE | |
| LOW | ToolServer/ToolServerManager/main.py | 11 | CODE | |
| LOW | ToolServer/ToolServerNode/config.py | 4 | CODE | |
| LOW | ToolServer/ToolServerNode/main.py | 2 | CODE | |
| LOW | ToolServer/ToolServerNode/main.py | 9 | CODE | |
| LOW | ToolServer/ToolServerNode/core/labels.py | 1 | CODE | |
| LOW | ToolServer/ToolServerNode/core/register/register.py | 6 | CODE | |
| LOW | ToolServer/ToolServerNode/core/register/register.py | 6 | CODE | |
| LOW | ToolServer/ToolServerNode/core/register/register.py | 6 | CODE | |
| LOW | ToolServer/ToolServerNode/core/register/__init__.py | 1 | CODE | |
| LOW | ToolServer/ToolServerNode/core/register/__init__.py | 1 | CODE | |
| LOW | ToolServer/ToolServerNode/core/register/__init__.py | 2 | CODE | |
| LOW | ToolServer/ToolServerNode/core/envs/web.py | 3 | CODE | |
| LOW | ToolServer/ToolServerNode/core/envs/web.py | 3 | CODE | |
| LOW | ToolServer/ToolServerNode/core/envs/web.py | 3 | CODE | |
| LOW | ToolServer/ToolServerNode/core/envs/pycoding.py | 3 | CODE | |
| LOW | ToolServer/ToolServerNode/utils/__init__.py | 1 | CODE | |
| LOW | ToolServer/ToolServerNode/utils/response.py | 2 | CODE | |
| LOW | ToolServer/ToolServerNode/utils/response.py | 2 | CODE | |
| LOW | …olServer/ToolServerNode/extensions/tools/calculator.py | 1 | CODE | |
| LOW | …olServer/ToolServerNode/extensions/tools/calculator.py | 2 | CODE | |
| LOW | …olServer/ToolServerNode/extensions/tools/calculator.py | 4 | CODE | |
| LOW | …olServer/ToolServerNode/extensions/tools/calculator.py | 5 | CODE | |
| LOW | ToolServer/ToolServerNode/extensions/envs/shell.py | 9 | CODE | |
| LOW | XAgentServer/database/interface/user.py | 4 | CODE | |
| LOW | XAgentServer/database/interface/user.py | 7 | CODE | |
| LOW | XAgentServer/application/routers/conv.py | 4 | CODE | |
| LOW | XAgentServer/application/websockets/replayer.py | 5 | CODE | |
| LOW | XAgentServer/application/websockets/replayer.py | 6 | CODE | |
| LOW | XAgentServer/application/websockets/replayer.py | 20 | CODE | |
| LOW | XAgentServer/application/websockets/share.py | 23 | CODE | |
| LOW | XAgent/running_recorder.py | 8 | CODE | |
| LOW | XAgent/recorder.py | 5 | CODE | |
| LOW | XAgent/summarization_system.py | 1 | CODE | |
| LOW | XAgent/core.py | 13 | CODE | |
| LOW | XAgent/core.py | 19 | CODE | |
| LOW | XAgent/vector_db.py | 4 | CODE | |
| LOW | XAgent/utils.py | 3 | CODE | |
| LOW | XAgent/utils.py | 3 | CODE | |
| LOW | XAgent/utils.py | 5 | CODE | |
| LOW | XAgent/logs.py | 7 | CODE | |
| LOW | XAgent/function_handler.py | 1 | CODE | |
| LOW | XAgent/function_handler.py | 2 | CODE | |
| LOW | XAgent/function_handler.py | 4 | CODE | |
| LOW | XAgent/function_handler.py | 5 | CODE | |
| LOW | XAgent/function_handler.py | 7 | CODE | |
| 51 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ToolServer/ToolServerNode/main.py | 170 | except Exception as e: | CODE |
| LOW | ToolServer/ToolServerNode/main.py | 270 | except Exception as e: | CODE |
| LOW | ToolServer/ToolServerNode/core/register/register.py | 112 | except Exception as e: | CODE |
| LOW | ToolServer/ToolServerNode/core/register/register.py | 145 | except Exception as e: | CODE |
| LOW | ToolServer/ToolServerNode/core/envs/web.py | 84 | except Exception as e: | CODE |
| LOW | ToolServer/ToolServerNode/utils/retriever.py | 116 | except Exception as e: | CODE |
| LOW | …olServer/ToolServerNode/extensions/tools/calculator.py | 22 | except Exception as e: | CODE |
| LOW | …olServer/ToolServerNode/extensions/tools/calculator.py | 27 | except Exception as e: | CODE |
| LOW | XAgentServer/server.py | 105 | except Exception as e: | CODE |
| LOW | XAgentServer/server.py | 117 | except Exception as e: | CODE |
| LOW | XAgentServer/loggers/logs.py | 217 | except Exception: | CODE |
| LOW | XAgentServer/loggers/logs.py | 226 | except Exception: | CODE |
| LOW | XAgentServer/application/dependence.py | 39 | except Exception as e: | CODE |
| LOW | XAgentServer/application/routers/user.py | 53 | except Exception: | CODE |
| LOW | XAgentServer/application/routers/conv.py | 171 | except Exception as e: | CODE |
| LOW | XAgentServer/application/websockets/replayer.py | 70 | except Exception as exc: | CODE |
| LOW | XAgentServer/application/websockets/recorder.py | 79 | except Exception as exc: | CODE |
| LOW⚡ | XAgentServer/application/websockets/common.py | 53 | except Exception: | CODE |
| LOW⚡ | XAgentServer/application/websockets/common.py | 63 | except Exception: | CODE |
| LOW | XAgentServer/application/websockets/share.py | 70 | except Exception as exc: | CODE |
| LOW | XAgentServer/application/websockets/base.py | 102 | except Exception as exc: | CODE |
| LOW | XAgentServer/application/websockets/base.py | 385 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/user.py | 26 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/user.py | 48 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/user.py | 70 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/user.py | 92 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/user.py | 115 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/user.py | 133 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/user.py | 151 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 29 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 47 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 63 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 79 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 96 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 114 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 136 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 178 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 194 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 223 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 246 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 264 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 281 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 303 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 327 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 343 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 362 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 383 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 401 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 419 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 437 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 462 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 508 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 524 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 542 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/recorder.py | 28 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/recorder.py | 48 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/recorder.py | 65 | except Exception as e: | CODE |
| LOW | XAgentServer/application/cruds/recorder.py | 90 | except Exception as e: | CODE |
| LOW | XAgent/vector_db.py | 146 | except Exception as e: | CODE |
| LOW | XAgent/vector_db.py | 183 | except Exception as e: | CODE |
| 19 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run.py | 41 | def execute_command_line_process(args: argparse.Namespace, quiet_mode: bool = False) -> None: | CODE |
| LOW | ToolServer/ToolServerNode/main.py | 128 | def generate_directory_structure(path): | CODE |
| LOW | ToolServer/ToolServerNode/core/base.py | 69 | def __get_defined_func_name__(cls) -> list[str]: | CODE |
| LOW | ToolServer/ToolServerNode/core/envs/filesystem.py | 29 | def _is_path_within_workspace(self,path:str)->bool: | CODE |
| LOW | ToolServer/ToolServerNode/utils/import_helper.py | 3 | def import_all_modules_in_folder(file,name): | CODE |
| LOW | ToolServer/ToolServerNode/extensions/envs/rapidapi.py | 34 | def convert_rapidapi_desc_to_code(rapidapi_desc:dict)->list[dict]: | CODE |
| LOW | tests/test_security_regressions.py | 12 | def _load_toolserver_path_security(): | CODE |
| LOW | tests/test_security_regressions.py | 28 | def test_toolserver_upload_rejects_path_components(tmp_path): | CODE |
| LOW | tests/test_security_regressions.py | 40 | def test_workspace_file_cannot_escape_record_directory(tmp_path): | CODE |
| LOW | tests/test_security_regressions.py | 53 | def test_workspace_path_rejects_symlink_escape(tmp_path): | CODE |
| LOW | tests/test_security_regressions.py | 64 | def test_runtime_tool_registration_is_not_exposed(): | CODE |
| LOW | tests/test_function_call_utils.py | 32 | def test_recovers_text_tool_call_as_subtask_handle(): | CODE |
| LOW | tests/test_run.py | 25 | def test_execute_command_line_process_quiet_mode(mock_start_command_line, mock_argv): | CODE |
| LOW | tests/test_run.py | 35 | def test_execute_command_line_process_normal_mode(mock_start_command_line, mock_argv): | CODE |
| LOW | tests/test_http_utils.py | 4 | def test_toolserver_timeout_allows_slow_node_startup(): | CODE |
| LOW | tests/test_file_utils.py | 4 | def test_write_binary_file_creates_destination_directory(tmp_path): | CODE |
| LOW | tests/test_serialization.py | 8 | def test_to_json_compatible_serializes_dates_recursively(): | CODE |
| LOW | tests/test_serialization.py | 22 | def test_parse_serialized_value_preserves_predecoded_object(): | CODE |
| LOW | tests/test_serialization.py | 28 | def test_parse_serialized_value_decodes_text(): | CODE |
| LOW | XAgentServer/interaction.py | 81 | def register_toolserver_interface(self, toolserver_interface: ToolServerInterface): | CODE |
| LOW | XAgentServer/database/interface/interaction.py | 103 | def search_interaction_by_user_id(cls, | CODE |
| LOW | XAgentServer/database/interface/interaction.py | 242 | def update_interaction_status(cls, | CODE |
| LOW | XAgentServer/database/interface/interaction.py | 273 | def update_interaction_parameter(cls, | CODE |
| LOW | XAgentServer/application/main.py | 135 | async def validation_exception_handler(request: Request, exc: RequestValidationError): | STRING |
| LOW | XAgentServer/application/routers/conv.py | 285 | async def update_interaction_parameter(user_id: str = Depends(user_is_available), | CODE |
| LOW | XAgentServer/application/routers/conv.py | 314 | async def update_interaction_description(user_id: str = Depends(user_is_available), | CODE |
| LOW⚡ | XAgentServer/application/websockets/common.py | 68 | def handle_workspace_filelist(file_list): | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 140 | def search_interaction_by_user_id(cls, | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 198 | def update_interaction_status(cls, | CODE |
| LOW | XAgentServer/application/cruds/interaction.py | 227 | def update_interaction_parameter(cls, | CODE |
| LOW | XAgentWeb/src/directives/click-outside.ts | 86 | export function setupClickOutsideDirective(app: App) { | CODE |
| LOW | XAgent/summarization_system.py | 29 | def add_father_child_relation(cls, father, child): | CODE |
| LOW | XAgent/summarization_system.py | 137 | def get_summarzation_message_all(cls, father_summarize_node: SummarizationNode, message_list: List[Message]) -> List | CODE |
| LOW | XAgent/summarization_system.py | 155 | def get_summarzation_message_recursive(cls, father_summarize_node: SummarizationNode, new_message: Message): | STRING |
| LOW | XAgent/core.py | 136 | def register_toolserver_interface(self, param: XAgentParam): | CODE |
| LOW | XAgent/core.py | 149 | def register_function_handler(self, config): | CODE |
| LOW | XAgent/core.py | 161 | def register_working_memory_function(self): | CODE |
| LOW | XAgent/core.py | 171 | def register_agent_dispatcher(self, param: XAgentParam): | CODE |
| LOW | XAgent/core.py | 182 | def register_vector_db_interface(self): | CODE |
| LOW | XAgent/http_utils.py | 1 | def toolserver_request_timeout(config) -> tuple[float, float]: | CODE |
| LOW | XAgent/function_handler.py | 83 | def change_subtask_handle_function_enum(self, function_name_list: List[str]): | CODE |
| LOW⚡ | XAgent/toolserver_interface.py | 263 | def get_json_schema_for_tools(self, command_names): | CODE |
| LOW | XAgent/ai_functions/request/function_call_utils.py | 26 | def recover_function_call_from_content(content: str, functions: list[dict]): | CODE |
| LOW | XAgent/ai_functions/request/obj_generator.py | 81 | def _get_chatcompletion_request_func(self, request_type:str): | CODE |
| LOW | XAgent/ai_functions/request/obj_generator.py | 135 | def load_args_with_schema_validation(self,function_schema:dict,args:str,messages:list=[],*,return_response=False,res | CODE |
| LOW | XAgent/agent/plan_refine_agent/prompt.py | 72 | def get_examples_for_dispatcher(): | STRING |
| LOW | XAgent/agent/tool_agent/agent.py | 75 | def change_tool_call_description(message:dict,reverse:bool=False): | CODE |
| LOW | XAgent/agent/tool_agent/prompt.py | 85 | def get_examples_for_dispatcher(): | STRING |
| LOW | XAgent/agent/reflect_agent/prompt.py | 32 | def get_examples_for_dispatcher(): | CODE |
| LOW | XAgent/agent/dispatcher_agent/agent.py | 111 | def extract_prompts_from_response(self, message): | CODE |
| LOW | XAgent/agent/plan_generate_agent/prompt.py | 44 | def get_examples_for_dispatcher(): | CODE |
| LOW | XAgent/workflow/working_memory.py | 27 | def get_working_memory_function(cls): | CODE |
| LOW | XAgent/workflow/plan_exec.py | 19 | def plan_function_output_parser(function_output_item: dict) -> Plan: | CODE |
| LOW | XAgent/workflow/plan_exec.py | 187 | def plan_iterate_based_on_memory_system(self): | CODE |
| LOW | XAgentGen/xgen/parser/function_parser.py | 49 | def create_function_call_model(cls): | CODE |
| LOW | XAgentGen/xgen/parser/function_parser.py | 270 | def create_all_functions_model(self,extra_arguments:Dict[str,Any]=None,functions:list=None,function_call:Dict[st | CODE |
| LOW | Markdown_Docs/XAgent/utils.md | 233 | def plan_function_output_parser(function_output_item: dict) -> Plan: | CODE |
| LOW | Markdown_Docs/XAgent/agent/base_agent.md | 242 | def change_tool_call_description(message:dict,reverse:bool=False): | CODE |
| LOW | Markdown_Docs/XAgentGen/xgen/parser/function_parser.md | 103 | def create_function_call_model(cls): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | command_input.py | 28 | except: | CODE |
| HIGH | ToolServer/ToolServerNode/main.py | 31 | except: | CODE |
| HIGH | ToolServer/ToolServerNode/core/envs/pycoding.py | 90 | except CellExecutionError as e: | CODE |
| HIGH | XAgentServer/application/websockets/common.py | 63 | except Exception: | CODE |
| HIGH | XAgentServer/application/websockets/common.py | 53 | except Exception: | CODE |
| HIGH | XAgent/vector_db.py | 102 | except: | CODE |
| HIGH | XAgent/function_handler.py | 137 | except ValueError: | CODE |
| HIGH | XAgent/toolserver_interface.py | 327 | except: | CODE |
| HIGH | XAgent/toolserver_interface.py | 290 | except: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | command.py | 201 | # Create a new raw data to record | COMMENT |
| MEDIUM | ToolServer/ToolServerManager/connections.py | 19 | # Create an instance of AsyncIOMotorClient for asynchronous MongoDB operations. | COMMENT |
| MEDIUM | ToolServer/ToolServerManager/connections.py | 28 | # Define a Docker client object | COMMENT |
| MEDIUM | XAgentServer/loggers/logs.py | 50 | # Create a handler for console which simulate typing | COMMENT |
| MEDIUM | XAgentServer/loggers/logs.py | 55 | # Create a handler for console without typing simulation | COMMENT |
| MEDIUM | XAgentServer/loggers/logs.py | 178 | # Create a handler for JSON files | COMMENT |
| MEDIUM | XAgentServer/application/websockets/base.py | 248 | # Create a new raw data to record | COMMENT |
| MEDIUM | XAgent/logs.py | 51 | # Create a handler for console which simulate typing | COMMENT |
| MEDIUM | XAgent/logs.py | 56 | # Create a handler for console without typing simulation | COMMENT |
| MEDIUM | XAgent/logs.py | 187 | # Create a handler for JSON files | COMMENT |
| MEDIUM | XAgent/message_history.py | 310 | # Create a copy of the new_events list to prevent modifying the original list | COMMENT |
| MEDIUM | XAgent/global_vars.py | 2 | # Importing necessary modules | COMMENT |
| MEDIUM | XAgent/global_vars.py | 9 | # Creating the instances of the classes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | command_input.py | 95 | CODE | |
| LOW | ToolServer/ToolServerNode/core/register/wrapper.py | 85 | CODE | |
| LOW | ToolServer/ToolServerNode/core/register/wrapper.py | 94 | CODE | |
| LOW | ToolServer/ToolServerNode/core/register/register.py | 172 | CODE | |
| LOW | ToolServer/ToolServerNode/core/envs/web.py | 96 | CODE | |
| LOW | ToolServer/ToolServerNode/utils/retriever.py | 61 | CODE | |
| LOW | ToolServer/ToolServerNode/utils/response.py | 38 | CODE | |
| LOW | XAgentServer/server.py | 31 | CODE | |
| LOW | XAgentServer/application/routers/conv.py | 114 | CODE | |
| LOW | XAgentServer/application/websockets/replayer.py | 52 | CODE | |
| LOW | XAgentServer/application/websockets/recorder.py | 58 | CODE | |
| LOW | XAgentServer/application/websockets/recorder.py | 282 | CODE | |
| LOW | XAgentServer/application/websockets/common.py | 24 | CODE | |
| LOW | XAgentServer/application/websockets/share.py | 52 | CODE | |
| LOW | XAgentServer/application/websockets/base.py | 81 | CODE | |
| LOW | XAgentServer/application/websockets/base.py | 344 | CODE | |
| LOW | XAgent/running_recorder.py | 338 | CODE | |
| LOW | XAgent/recorder.py | 321 | CODE | |
| LOW | XAgent/function_handler.py | 181 | CODE | |
| LOW | XAgent/message_history.py | 288 | CODE | |
| LOW | XAgent/toolserver_interface.py | 263 | CODE | |
| LOW | XAgent/toolserver_interface.py | 305 | CODE | |
| LOW | XAgent/ai_functions/request/openai.py | 34 | CODE | |
| LOW | XAgent/ai_functions/request/openai.py | 114 | CODE | |
| LOW | XAgent/agent/dispatcher.py | 112 | CODE | |
| LOW | XAgent/agent/base_agent.py | 77 | CODE | |
| LOW | XAgent/workflow/plan_exec.py | 208 | CODE | |
| LOW | XAgent/inner_loop_search_algorithms/ReACT.py | 199 | CODE | |
| LOW | XAgentGen/xgen/server/message_formater.py | 100 | CODE | |
| LOW | XAgentGen/xgen/parser/function_parser.py | 75 | CODE | |
| LOW | XAgentGen/xgen/parser/function_parser.py | 109 | CODE | |
| LOW | XAgentGen/xgen/parser/function_parser.py | 131 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 94 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 95 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 96 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 98 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 99 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 101 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 121 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 122 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 123 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 124 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 130 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 131 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 143 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 144 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 146 | CODE | |
| MEDIUM | ToolServer/ToolServerNode/utils/retriever.py | 147 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …olServer/ToolServerNode/extensions/tools/calculator.py | 41 | COMMENT | |
| LOW | …olServer/ToolServerNode/extensions/tools/calculator.py | 61 | # # Do further cleaning to retain only the input and result pods | COMMENT |
| LOW | XAgentWeb/types/router-type.ts | 1 | import { RouteMeta, RouteRecordRaw } from 'vue-router' | COMMENT |
| LOW | XAgentWeb/src/composables/useSSE.ts | 1 | // var useSSE = function (url: string, options: any) { | COMMENT |
| LOW | XAgentWeb/src/composables/useSSE.ts | 21 | COMMENT | |
| LOW | XAgentWeb/src/composables/useSSE.ts | 41 | COMMENT | |
| LOW | XAgentWeb/src/composables/useSSE.ts | 61 | COMMENT | |
| LOW | XAgentWeb/src/composables/useSSE.ts | 81 | // var event = new CustomEvent('readystatechange') | COMMENT |
| LOW | XAgentWeb/src/composables/useSSE.ts | 101 | // return | COMMENT |
| LOW | XAgentWeb/src/composables/useSSE.ts | 121 | // this.chunk = '' | COMMENT |
| LOW | XAgentWeb/src/composables/useSSE.ts | 141 | // if (!chunk || chunk.length === 0) { | COMMENT |
| LOW | XAgentWeb/src/composables/useSSE.ts | 161 | // var value = line.substring(index + 1).trimLeft() | COMMENT |
| LOW | XAgentWeb/src/composables/useSSE.ts | 181 | // if (this.xhr.readyState === XMLHttpRequest.DONE) { | COMMENT |
| LOW | XAgentWeb/src/composables/useSSE.ts | 201 | // } | COMMENT |
| LOW | XAgentWeb/src/composables/useSensitive.ts | 1 | COMMENT | |
| LOW | XAgentWeb/src/composables/useSensitive.ts | 21 | // map.set(ch, nextMap) | COMMENT |
| LOW | XAgentWeb/src/composables/useSensitive.ts | 41 | // if (currentMap.get('isEnd') === true) { | COMMENT |
| LOW | XAgentWeb/src/utils/throttle.ts | 1 | // const throttle = (fn: Function, delay: number) => { | COMMENT |
| LOW | …entWeb/src/views/playground/components/Inferencing.vue | 161 | COMMENT | |
| LOW | …entWeb/src/views/playground/components/Inferencing.vue | 181 | innerNumber: innerNumber.value, | COMMENT |
| LOW | …entWeb/src/views/playground/components/Inferencing.vue | 201 | COMMENT | |
| LOW | …gentWeb/src/views/playground/components/FileUpload.vue | 61 | // let allowList:any = [],allowTag = true,tipFileName = `` | COMMENT |
| LOW | …Web/src/views/playground/components/HistorySidebar.vue | 201 | // if (isShouldRefreshHistory.value) queryHistoryData() | COMMENT |
| LOW | XAgentWeb/src/views/playground/components/Setting.vue | 121 | // // 0.6: { | COMMENT |
| LOW | XAgentWeb/src/views/login/login.vue | 161 | const changePhone = async () => { | COMMENT |
| LOW | XAgentWeb/src/views/login/login.vue | 241 | COMMENT | |
| LOW | XAgentWeb/src/views/login/component/ApplyForm.vue | 261 | // content: attr(data-label); | COMMENT |
| LOW | XAgent/global_vars.py | 1 | COMMENT | |
| LOW | XAgent/agent/tool_agent/agent.py | 141 | message (dict): Dictionary of message data containing content, function call and arguments. | COMMENT |
| LOW | XAgent/agent/dispatcher_agent/prompt.py | 1 | # SYSTEM_PROMPT = """Your task is to devise an appropriate role-based name (_GPT) and a clear prompt for an autonomous a | COMMENT |
| LOW | Markdown_Docs/XAgent/data_structure/node.md | 101 | print(json_data) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | command.py | 63 | CODE | |
| LOW | ToolServer/ToolServerManager/main.py | 269 | CODE | |
| LOW | ToolServer/ToolServerNode/main.py | 94 | CODE | |
| LOW | ToolServer/ToolServerNode/main.py | 116 | CODE | |
| LOW | XAgentServer/models/user.py | 9 | CODE | |
| LOW | XAgentServer/models/interaction.py | 9 | CODE | |
| LOW | XAgent/toolserver_interface.py | 122 | CODE | |
| LOW | XAgent/toolserver_interface.py | 159 | CODE | |
| LOW | XAgent/ai_functions/request/xagent.py | 32 | CODE | |
| LOW | XAgent/workflow/reflection.py | 62 | CODE | |
| LOW | XAgentGen/xgen/server/message_formater.py | 38 | CODE | |
| LOW | XAgentGen/xgen/text/generate/regex.py | 20 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | command.py | 250 | # and you can change the wait_seconds | COMMENT |
| MEDIUM | XAgentServer/application/websockets/base.py | 302 | # and you can change the wait_seconds | COMMENT |
| MEDIUM | assets/config.yml | 8 | # you can use any kwargs supported by openai.ChatCompletion here | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | XAgent/agent/plan_refine_agent/agent.py | 29 | """ Parses information in order to refine the existing plan. | STRING |
| MEDIUM | XAgent/agent/dispatcher_agent/agent.py | 100 | # TODO: Make it more robust. Here we assume only the first message is system prompt | COMMENT |
| MEDIUM | XAgent/workflow/plan_exec.py | 164 | # TODO: not robust. dispatcher generated prompt may not contain these specified placeholders? | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | XAgentWeb/types/talk-type.ts | 26 | isLatest?: boolean // Is this the latest message generated by AI | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | XAgentGen/xgen/parser/function_parser.py | 86 | new_prop["type"] = "List[null]" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ToolServer/ToolServerManager/node_checker.py | 20 | # Check if each node exists in Docker | COMMENT |
| LOW | ToolServer/ToolServerManager/node_checker.py | 50 | # Check if node is running | COMMENT |