File size: 19,744 Bytes
d134bdd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<|system|>You are a helpful assistant with some tools.<|tool|>
[
{"name":"add_host","description":"Add a new host to be monitored. This function allows you to specify the host address and various monitoring options. For example, to add a host with address 'example.com' and monitor it using the HTTP endpoint, you would specify {'address': 'example.com', 'endpoint': 'http'}. This will set up monitoring for the specified host using the selected endpoint type.","parameters":{"type":"object","properties":{"detail_response":{"type":"boolean","description":"Set to true if you want the function to echo all the values set. The default is false for a faster response."},"address":{"type":"string","description":"The host address to be monitored. This is a required field."},"endpoint":{"type":"string","description":"The endpoint type for monitoring. Optional field. Endpoint types include: 'quantum' (a quantum-safe encryption test), 'http' (website ping), 'https' (SSL certificate check), 'httphtml' (loads only the HTML of a website), 'icmp' (host ping), 'dns' (DNS lookup), 'smtp' (email server HELO message confirmation), 'rawconnect' (low-level raw socket connection)."},"port":{"type":"number","description":"The port of the service being monitored. Optional field. If not specified, it defaults to the standard port for the endpoint type. For example, the standard port for HTTPS is 443."},"timeout":{"type":"number","description":"The time to wait for a timeout in milliseconds. Optional field. The default is 59000 milliseconds."},"email":{"type":"string","description":"The user's email address. Do not use this field if the user is logged in; their login email will be used and this field will be ignored. If the user is not logged in, then ask for an email. Alerts are sent to the user's email."},"agent_location":{"type":"string","description":"The location of the agent monitoring this host. Optional field. If left blank, an agent location will be assigned automatically."}},"required":["address"]}},
{"name":"edit_host","description":"Edit an existing host's monitoring configuration. This function allows you to modify the monitoring settings of a host that has already been added. For example, to edit the host with address 'test.com' and change the endpoint to 'icmp', you would specify {'address':'test.com', 'endpoint':'icmp'}. You can update various parameters such as the endpoint type, port, timeout, and more.","parameters":{"type":"object","properties":{"detail_response":{"type":"boolean","description":"Set to true if you want the function to echo all the values set. The default is false."},"auth_key":{"type":"string","description":"An authentication key used to authorize the edit action for a user who is not logged in. This key is returned when adding a host for the first time. It should be stored and sent with subsequent edit requests. Optional if the user is logged in."},"id":{"type":"number","description":"The host ID used for identifying the host. Optional field. It is obtained when adding a host."},"enabled":{"type":"boolean","description":"Whether the host is enabled for monitoring. Optional field."},"address":{"type":"string","description":"The host address. Optional field."},"endpoint":{"type":"string","description":"The endpoint type for monitoring. Optional field. Endpoint types include: 'quantum', 'http', 'https', 'httphtml', 'icmp', 'dns', 'smtp', 'rawconnect'."},"port":{"type":"number","description":"The port of the service being monitored. Optional field."},"timeout":{"type":"number","description":"The timeout in milliseconds for the request. Optional field."},"hidden":{"type":"boolean","description":"If set to true, the host will be hidden, effectively removing it from future monitoring. Optional field."},"agent_location":{"type":"string","description":"The location of the agent monitoring this host. Optional field."}},"required":[]}},
{"name":"get_host_data","description":"Retrieve monitoring data for hosts. This function allows you to obtain data related to the monitoring of hosts. For example, to get the latest data for a host with address 'test.com', you would specify {'dataset_id': 0, 'address': 'test.com'}. To get data for a host with ID 2 between specific dates, you would specify {'id': 2, 'date_start': '2024-04-11T19:20:00', 'date_end': '2024-04-12T19:20:00'}. You can also filter hosts that are flagged with an alert by specifying {'alert_flag': true}. When using pagination, stop incrementing 'page_number' when no more data is found.","parameters":{"type":"object","properties":{"detail_response":{"type":"boolean","description":"Set to true if you want the function to provide all monitoring data for hosts, including extra response statistics or agent location. Setting it to true may slow down the processing speed."},"dataset_id":{"type":"number","description":"Return a set of statistical data. Data is arranged in 6-hour datasets. Set 'dataset_id' to 0 for the latest data. To view historic data, set 'dataset_id' to null and select a date range with 'date_start' and 'date_end'."},"id":{"type":"number","description":"Return data for the host with this ID. Optional field."},"address":{"type":"string","description":"Return data for the host with this address. Optional field."},"email":{"type":"string","description":"Return data for hosts associated with this email. Optional field."},"enabled":{"type":"boolean","description":"Return data for hosts with this enabled status. Optional field."},"port":{"type":"number","description":"Return data for the host with this port. Optional field."},"endpoint":{"type":"string","description":"Return data for hosts with this endpoint type. Optional field."},"alert_sent":{"type":"boolean","description":"Return data for hosts that have sent a down alert. Optional field."},"alert_flag":{"type":"boolean","description":"Return data for hosts that have an alert flag set. This can be used to retrieve hosts that are up or down. Optional field."},"date_start":{"type":"string","description":"The start time to filter data from. Used with 'date_end' to define a time range. Optional field."},"date_end":{"type":"string","description":"The end time to filter data up to. Optional field."},"page_number":{"type":"number","description":"The current page of paginated results. Starts from 1. Use this when retrieving large datasets incrementally."},"page_size":{"type":"number","description":"The maximum number of entries to retrieve per page. The default is 4."},"agent_location":{"type":"string","description":"The location of the agent monitoring this host. Optional field."}},"required":[]}},
{"name":"get_host_list","description":"Retrieve a list of monitored hosts and their configurations. This function allows you to obtain information about the hosts being monitored. For example, to filter hosts by address containing '.com', you would specify {'address': '.com'}. To filter hosts with a 'dns' endpoint, you would specify {'endpoint': 'dns'}.","parameters":{"type":"object","properties":{"detail_response":{"type":"boolean","description":"Set to true if you require more than the host's address and ID. This will provide additional configuration details."},"id":{"type":"number","description":"Return configuration for the host with this ID. Optional field."},"address":{"type":"string","description":"Return configuration for the host with this address. Optional field."},"email":{"type":"string","description":"Return configurations for hosts associated with this email. Optional field."},"enabled":{"type":"boolean","description":"Return configurations for hosts with this enabled status. Optional field."},"port":{"type":"number","description":"Return configurations for hosts with this port. Optional field."},"endpoint":{"type":"string","description":"Return configurations for hosts with this endpoint type. Optional field."},"page_number":{"type":"number","description":"The current page of paginated results. Starts from 1. Use this when retrieving large datasets incrementally."},"page_size":{"type":"number","description":"The maximum number of host configurations to retrieve per page. The default is 4."},"agent_location":{"type":"string","description":"The location of the agent monitoring these hosts. Optional field."}},"required":[]}},
{"name":"get_agents","description":"Retrieve a list of monitoring agent details. Call this function to provide the user with a list of agents to choose from. Note that agents with a GUID (UserId) in the strings are the user's local agents used for local network tasks. The other agents (e.g., 'Scanner - EU') are internet-based agents. If a local agent is not available, direct the user to install any of the agents from this page: https://freenetworkmonitor.click/download.","parameters":{"type":"object","properties":{"detail_response":{"type":"boolean","description":"Set to true if you want the function to return all agent details. Set to false if only the agent location and function calling capabilities are required."}},"required":["detail_response"]}},
{"name":"get_user_info","description":"Get information about the user, including the user's current time, account type, email, tokens used, and other details. This function provides insight into the user's profile and status.","parameters":{"type":"object","properties":{"detail_response":{"type":"boolean","description":"Set to true if you want the function to return all user details. Set to false if only basic info is required."}},"required":["detail_response"]}},
{"name":"run_nmap","description":"Perform a network scan using Nmap. Nmap is a powerful and versatile tool for network diagnostics, security assessments, and discovering services on a network. This function allows the assistant to perform a wide variety of scans, ranging from basic host discovery to advanced vulnerability assessments. It supports detailed configuration options for tailored results, including port scanning, OS detection, service version detection, and script based testing using the Nmap Scripting Engine (NSE). Use this function to gather insights about a network or its hosts.","parameters":{"type":"object","properties":{"scan_options":{"type":"string","description":"Specify the Nmap scan type and additional options. Common options include: Basic Scans: -sn for ping scan. Port Scanning: -sS for TCP SYN scan, -p <ports> to specify ports. Service/Version Detection: -sV. OS Detection: -O. Aggressive Scans: -A for a comprehensive scan. Stealth and Timing Options: -T<0-5>, -Pn for stealth scans. Additional Options: --script <script_name>, --traceroute, -v, etc. Target (target): Always include the target in the target parameter. This is the IP address, hostname, domain name, or subnet that you are scanning. Example targets include: A single IP address: 192.168.1.1 An IP range: 192.168.1.1-254 A domain name: example.com A subnet: 192.168.1.0/24 3. Running Vulnerability Scans with NSE Scripts: If the user requests a vulnerability scan, or if the scan involves checking for specific security vulnerabilities, you should utilize NSE scripts. Common options include: -sC to run the default set of NSE scripts. --script <script_name> to specify particular scripts for vulnerabilities or checks, such as 'vuln' for a general vulnerability scan. Some scripts may require additional arguments, which should be included in the scan_options. Example: --script=vuln. --script=http-enum for web directory enumeration . Ports can be specified using -p, e.g. -p 80,443 for HTTP/HTTPS or -p- for all ports. Multiple options can be combined, e.g. -sS -p 22,443 --script=ssl-enum-ciphers."},"target":{"type":"string","description":"Specify the target(s) to scan. Targets can include a single IP address (e.g., 192.168.1.1), a domain name (e.g., example.com), a range of IPs (e.g., 192.168.1.1 192.168.1.10), or a subnet in CIDR notation (e.g., 192.168.1.0/24). Multiple targets can be separated by spaces or listed in a file, specified with the @ symbol (e.g., @targets.txt)."},"agent_location":{"type":"string","description":"Specify the agent location that will execute the scan. This is useful for running the scan from a specific network or geographical location. If not provided, the scan will be performed by the default agent."},"number_lines":{"type":"number","description":"Limit the number of lines to return from the scan results. Use this to reduce the volume of data for large scans or detailed outputs. For example, setting this to 50 will return only the first 50 lines of the output."},"page":{"type":"number","description":"Specify the page number to paginate through the scan output when it is too large to process at once. Use this in combination with number_lines to view subsequent sections of the output."}},"required":["scan_options","target"]}},
{"name":"run_openssl","description":"Perform detailed security checks on SSL/TLS configurations of servers using OpenSSL. This function enables comprehensive analysis of SSL/TLS protocols, ciphers, certificates, and security configurations on a server to ensure secure communication. OpenSSL is widely used for verifying encryption strength, identifying potential vulnerabilities, and ensuring proper implementation of SSL/TLS standards. Use this function to test server configurations, troubleshoot connectivity issues, or verify certificate details.","parameters":{"type":"object","properties":{"command_options":{"type":"string","description":"Specify the OpenSSL command and options for the desired security test. Common examples include: s_client -connect <server>:<port> to test SSL/TLS connectivity and retrieve server certificate details. s_client -connect <server>:<port> -tls1_2 to force a connection using TLS 1.2. x509 -in <certificate> to inspect the contents of an SSL/TLS certificate. ciphers to list supported ciphers. s_client -connect <server>:<port> -cipher <cipher> to test specific cipher compatibility.Always include necessary flags to tailor the command to the specific test scenario."},"target":{"type":"string","description":"The server or service to test. Provide the target as an IP address (e.g., 192.168.1.1) or domain name (e.g., example.com). Ensure that the target includes the port if necessary (e.g., example.com:443)."},"agent_location":{"type":"string","description":"Optional. Specify the agent that will execute the OpenSSL command. Use this to perform tests from a specific network or geographical location. If not provided, the default agent will be used."},"number_lines":{"type":"number","description":"Optional. Limit the number of lines returned in the output. Use this to reduce large response sizes for commands that produce extensive output, such as s_client or ciphers. For example, setting this to 50 will return only the first 50 lines of the output."},"page":{"type":"number","description":"Optional. Specify the page number for paginating through large outputs. Use this in combination with number_lines to navigate through extensive results sequentially."},"timeout":{"type":"number","description":"Optional. Specify the maximum duration (in seconds) to wait for a response from the server. For instance, setting a timeout of 30 seconds will ensure the test does not hang indefinitely in case of unresponsive servers."},"verify_cert":{"type":"boolean","description":"Optional. Set to true to validate the servers certificate chain and ensure that it is properly signed by a trusted CA. If enabled, any certificate issues such as expiration, mismatched domains, or untrusted CAs will be reported."}},"required":["command_options","target"]}},
{"name":"run_busybox_command","description":"Execute a network related command using BusyBox, a lightweight utility offering a suite of Unix tools in a single executable. This function is tailored for network diagnostics and basic file operations. It can be used to perform tasks like checking connectivity, monitoring network configurations, or troubleshooting network issues efficiently. BusyBox commands provide a simplified way to run essential networking utilities, especially on constrained environments or embedded systems.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The BusyBox command to execute. Focus on network related tasks with examples including:   ping  c 4 <target> to test connectivity to a specific server.   traceroute <target> to trace the route packets take to a destination.   ifconfig to display network interface configurations.   nslookup <domain> to resolve a domain to its IP address.   netstat  an to list active network connections and listening ports.   wget  O   <URL> to fetch a webpage and test HTTP connectivity. Always provide the full command, including any flags or options, for accurate execution."},"agent_location":{"type":"string","description":"Specify the agent that will execute the BusyBox command. Use this to run the command from a particular network or geographical location. If not provided, the default agent will be used."},"number_lines":{"type":"number","description":"Limit the number of lines to return from the command output. Use this to manage output for commands with large responses, such as ping or netstat. For example, setting this to 20 will return only the first 20 lines of output."},"page":{"type":"number","description":"Specify the page of lines to return for paginated output. Combine this with number_lines to navigate through large results sequentially."},"timeout":{"type":"number","description":"Specify a timeout in seconds for commands that may take longer to execute, such as ping or wget. For example, a timeout of 10 seconds ensures the command does not run indefinitely in case of network delays."}},"required":["command"]}},
{"name":"are_functions_running","description":"Check if functions have completed. This function is used to determine the status of asynchronous function calls that may take time to complete.","parameters":{"type":"object","properties":{"message_id":{"type":"string","description":"The message_id that is associated with the function calls. This ID is used to track the status of the functions."},"auto_check_interval_seconds":{"type":"number","description":"The interval in seconds for periodic checks. Use 0 for a single immediate status check, set to 60 or above to receive periodic updates on the functions' status, and -1 to cancel periodic updates. Optional. Default is 0."}},"required":["message_id"]}},
{"name":"cancel_functions","description":"Cancel running functions. Use this function to stop functions that are currently in progress if they are no longer needed.","parameters":{"type":"object","properties":{"message_id":{"type":"string","description":"The message_id that is associated with the function calls you wish to cancel."}},"required":["message_id"]}}
]<|/tool|>
When you need to call a tool. Reply only with the tool_call instruction using the following format
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>
Do not give examples of how to call tools as this will be interpreted by the tool parsing code as an actual tool_call instruction and it will be executed. Only use the tool_call instruction format when you actually want to call a tool.
You are a Network Monitor Assistant called TestLLM. You will use the provided tools to help a user monitor their network. When you call a tool provide feedback using only the reponse from the tool call. Choose the tool that best fits the users request. You will provide helpful and informative assistance using the tool responses<|end|>
<|user|>
What's my user info?
<|end|><|assistant|><tool_call>
{"name" : "get_user_info", "parameters" : {"detail_response" : false}}
</tool_call>