Patentable/Patents/US-11256590
US-11256590

Agent profiler to monitor activities and performance of software agents

PublishedFebruary 22, 2022
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

In one embodiment, a software agent profiler process attaches to an application and a primary instrumentation interface for the application, and discovers one or more software agents associated with the application. The software agent profiler process may then launch the one or more software agents within an encapsulated container environment of the software agent profiler process by configuring each of the one or more software agents, respectively, to point to a proxy instrumentation interface of the software agent profiler process instead of the primary instrumentation interface for the application. As such, the software agent profiler process may receive calls from the one or more software agents on the proxy instrumentation interface of the software agent profiler process, and can manage the calls from the one or more application agents prior to the calls being passed to the primary instrumentation interface for the application.

Patent Claims
20 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A method, comprising: attaching, by a software agent profiler process, to an application and a primary instrumentation interface for the application; discovering, by the software agent profiler process, one or more software agents associated with the application; launching, by the software agent profiler process, the one or more software agents within an encapsulated container environment of the software agent profiler process by configuring each of the one or more software agents, respectively, to point to a proxy instrumentation interface of the software agent profiler process instead of the primary instrumentation interface for the application; receiving, by the software agent profiler process, calls from the one or more software agents on the proxy instrumentation interface of the software agent profiler process; and managing, by the software agent profiler process, the calls from the one or more application agents prior to the calls being passed to the primary instrumentation interface for the application.

Plain English Translation

The field of software profiling involves monitoring and analyzing software agents to optimize performance and behavior. A challenge in this domain is managing interactions between multiple software agents and an application's instrumentation interface, which can lead to inefficiencies or conflicts. This invention addresses this problem by providing a method for profiling software agents in a controlled environment. The method involves a software agent profiler process that attaches to an application and its primary instrumentation interface. The profiler discovers associated software agents and launches them within an encapsulated container environment. Each agent is configured to communicate with a proxy instrumentation interface of the profiler instead of the application's primary interface. The profiler receives calls from the agents through this proxy interface and manages these calls before forwarding them to the application's primary interface. This approach allows centralized control over agent interactions, enabling monitoring, modification, or filtering of calls to improve performance and security. The encapsulated environment ensures isolation, preventing conflicts between agents or unintended interference with the application. This method is particularly useful in complex systems where multiple agents interact with a shared application, requiring coordinated profiling and management.

Claim 2

Original Legal Text

2. The method as in claim 1 , wherein attaching comprises: performing a javaagent switch operation.

Plain English Translation

A method for attaching a Java agent to a running Java virtual machine (JVM) process involves performing a Javaagent switch operation. This operation dynamically loads and attaches the agent to the JVM without requiring a restart of the process. The method addresses the challenge of integrating monitoring, profiling, or debugging tools into a live JVM environment, where traditional approaches often necessitate process termination and restart. By leveraging the Javaagent switch operation, the method enables seamless agent attachment, allowing for real-time analysis and intervention. The technique is particularly useful in production environments where downtime is undesirable. The method may also include additional steps such as verifying the JVM's compatibility with the agent, handling attachment errors, and ensuring proper initialization of the agent within the target JVM. This approach enhances system reliability and operational efficiency by minimizing disruptions while enabling dynamic agent integration.

Claim 3

Original Legal Text

3. The method as in claim 1 , wherein discovering comprises: reading a configuration file of the application.

Plain English Translation

A system and method for application configuration management involves dynamically discovering and managing application configurations to ensure proper deployment and operation. The method addresses the challenge of maintaining consistent and accurate application configurations across different environments, such as development, testing, and production. This is particularly important in modern software development where applications often run in distributed systems with varying configurations. The method includes a step of discovering application configurations by reading a configuration file of the application. The configuration file contains settings and parameters required for the application to function correctly. By reading this file, the system can identify the necessary configurations, validate them, and apply them as needed. This ensures that the application is deployed with the correct settings, reducing errors and improving reliability. The method may also include additional steps such as validating the discovered configurations against predefined rules or policies, applying the configurations to the application environment, and monitoring the application to ensure the configurations remain valid and effective. This approach helps maintain consistency and reduces the risk of misconfigurations, which can lead to application failures or security vulnerabilities. The system can be integrated into continuous integration and continuous deployment (CI/CD) pipelines to automate configuration management, further enhancing efficiency and reliability in software development and deployment processes.

Claim 4

Original Legal Text

4. The method as in claim 1 , wherein the one or more software agents comprise Java agents.

Plain English Translation

A system and method for managing software agents in a computing environment, particularly focusing on the use of Java agents to monitor and modify the behavior of applications. The technology addresses the challenge of dynamically analyzing and altering application behavior without requiring source code modifications or application restarts. Java agents, which are specialized software components, are deployed to intercept and process method calls, track application execution, and inject custom logic at runtime. These agents operate within the Java Virtual Machine (JVM) and leverage the Java Instrumentation API to attach to running applications, enabling real-time monitoring, profiling, and modification of application behavior. The system allows for dynamic instrumentation of classes, methods, and fields, facilitating tasks such as performance optimization, security enforcement, and debugging. The use of Java agents ensures compatibility with existing Java applications while providing a flexible and non-intrusive way to extend functionality or enforce policies. This approach is particularly useful in enterprise environments where applications must remain highly available and adaptable to changing requirements. The method ensures that the agents operate efficiently, minimizing overhead while providing accurate and timely insights into application behavior.

Claim 5

Original Legal Text

5. The method as in claim 1 , wherein managing comprises: determining whether to pass the call to the primary instrumentation interface for the application or to block the call from passing to the primary instrumentation interface for the application.

Plain English Translation

This invention relates to software instrumentation, specifically managing calls to instrumentation interfaces in applications. The problem addressed is ensuring controlled access to instrumentation interfaces, which are used for monitoring, debugging, or analyzing application behavior. Unrestricted access can lead to security vulnerabilities, performance degradation, or unintended modifications to application behavior. The invention provides a method for managing calls to a primary instrumentation interface of an application. The method involves intercepting calls directed to the instrumentation interface and determining whether to allow or block these calls. This decision is based on predefined criteria, such as security policies, user permissions, or application state. If the call is allowed, it is passed to the primary instrumentation interface; otherwise, it is blocked, preventing unauthorized or harmful interactions. The method ensures that only authorized and safe calls reach the instrumentation interface, enhancing security and stability. It can be applied in various software environments where instrumentation is used, such as performance monitoring, debugging tools, or security analysis. The invention helps maintain the integrity of the application while allowing legitimate instrumentation activities to proceed.

Claim 6

Original Legal Text

6. The method as in claim 1 , wherein managing comprises: auditing the one or more software agents based on the calls.

Plain English Translation

A system and method for monitoring and managing software agents in a computing environment. The technology addresses the challenge of ensuring software agents operate securely and efficiently by tracking their interactions with other system components. The method involves monitoring calls made by the software agents to external systems or internal resources, then auditing the agents based on these calls. The auditing process evaluates whether the calls comply with predefined security policies, performance thresholds, or operational rules. If deviations are detected, corrective actions such as logging, alerting, or terminating the agent may be taken. The system may also analyze call patterns to identify anomalies, unauthorized access attempts, or inefficiencies. By continuously monitoring and auditing agent behavior, the system enhances security, compliance, and system reliability. The method applies to various software agents, including automation tools, bots, or AI-driven agents that interact with databases, APIs, or other services. The solution is particularly useful in environments where agent activity must be regulated to prevent misuse or performance degradation.

Claim 7

Original Legal Text

7. The method as in claim 1 , wherein managing comprises: mitigating conflicts between a plurality of software agents of the one or more software agents.

Plain English Translation

This invention relates to conflict management in multi-agent software systems. The problem addressed is the occurrence of conflicts between multiple software agents operating within a shared environment, which can lead to inefficiencies, errors, or system failures. The invention provides a method for managing software agents by mitigating these conflicts to ensure smooth and coordinated operation. The method involves detecting potential conflicts between agents, analyzing their causes, and applying resolution strategies to prevent or resolve them. Conflict mitigation may include prioritizing agent actions, adjusting agent behaviors, or coordinating agent interactions to avoid interference. The system may also monitor agent performance and dynamically adjust conflict resolution approaches based on real-time conditions. The invention is applicable in environments where multiple autonomous or semi-autonomous software agents interact, such as in distributed computing systems, robotic control systems, or intelligent automation platforms. By reducing conflicts, the method improves system reliability, efficiency, and scalability. The approach can be customized based on the specific requirements of the agents and the operational context, ensuring adaptability across different applications.

Claim 8

Original Legal Text

8. The method as in claim 1 , further comprising: monitoring resource usage based on receiving the calls.

Plain English Translation

A system and method for managing computational resources in a distributed computing environment addresses the challenge of efficiently allocating and monitoring resources to optimize performance and cost. The invention involves a distributed computing system where multiple nodes or servers process tasks or jobs submitted by users or applications. The system dynamically allocates computational resources, such as CPU, memory, or storage, to these tasks based on demand, availability, and predefined policies. Resource allocation is adjusted in real-time to balance workload distribution, prevent overutilization, and minimize idle capacity. The method includes receiving calls or requests for computational resources from various sources, such as applications or users, and dynamically assigning resources to fulfill these requests. Resource allocation is optimized by analyzing factors like task priority, resource availability, and historical usage patterns. The system also monitors resource usage in real-time to ensure efficient utilization and detect anomalies or bottlenecks. Monitoring involves tracking metrics like CPU usage, memory consumption, and network bandwidth to identify inefficiencies or potential failures. This data is used to further refine resource allocation strategies, ensuring optimal performance and cost-effectiveness. The invention improves resource management by dynamically adjusting allocations based on real-time monitoring, reducing waste and improving system responsiveness. It is particularly useful in cloud computing, data centers, or any environment where efficient resource utilization is critical.

Claim 9

Original Legal Text

9. The method as in claim 1 , further comprising: determining whether to launch particular software agents of the one or more software agents.

Plain English Translation

This invention relates to a system for managing software agents in a computing environment, addressing the challenge of efficiently deploying and controlling multiple software agents to perform tasks while optimizing resource usage. The system includes a central controller that monitors the status of one or more software agents and dynamically adjusts their operation based on system conditions. The controller can activate, deactivate, or modify the behavior of individual agents to ensure optimal performance and resource allocation. The system also evaluates the necessity of launching specific software agents, determining whether to initiate or suspend their execution based on predefined criteria such as workload demands, system resources, or user preferences. This selective activation ensures that only essential agents are running, reducing computational overhead and improving overall system efficiency. The invention further includes mechanisms for agent communication, allowing agents to exchange data and coordinate tasks, and a feedback loop that enables the controller to adapt its decisions based on real-time performance metrics. The solution is particularly useful in environments where multiple agents must operate concurrently without overburdening system resources.

Claim 10

Original Legal Text

10. The method as in claim 1 , further comprising: generating test conditions using artificial calls to the primary instrumentation interface for the application.

Plain English Translation

This invention relates to software testing, specifically automated testing of applications using instrumentation interfaces. The problem addressed is the need for efficient and reliable test condition generation to validate application behavior without manual intervention. The solution involves generating test conditions by making artificial calls to the primary instrumentation interface of the application. This interface is a standardized mechanism for monitoring and controlling the application's internal state during execution. By simulating interactions through this interface, the system can automatically create diverse test scenarios that exercise different application functions and edge cases. The method ensures comprehensive test coverage by systematically exploring the application's behavior under various simulated conditions. This approach reduces the need for manual test case design and improves testing efficiency while maintaining accuracy. The generated test conditions can be used to validate correctness, performance, and robustness of the application in an automated manner. The technique is particularly useful for complex applications where manual testing is time-consuming and error-prone. The artificial calls mimic real-world usage patterns, allowing the system to detect potential issues before deployment. This method enhances the reliability of software testing processes by leveraging automated generation of test scenarios through the instrumentation interface.

Claim 11

Original Legal Text

11. The method as in claim 1 , further comprising: monitoring the one or more software agents for hyperactivity based on the calls; and mitigating detected hyperactivity.

Plain English Translation

A system and method for managing software agents in a computing environment involves monitoring the behavior of one or more software agents to detect hyperactivity, which refers to excessive or abnormal call activity that may indicate performance issues, security threats, or system instability. The method includes tracking the calls made by the software agents to identify patterns or anomalies that suggest hyperactivity. Once hyperactivity is detected, mitigation measures are applied to address the issue, such as throttling the agent's activity, terminating the agent, or triggering an alert for further investigation. The system may also include a monitoring module that continuously observes the agents' behavior and a mitigation module that implements corrective actions to prevent system degradation or security breaches. This approach ensures that software agents operate within acceptable performance and security parameters, maintaining system stability and efficiency. The method is particularly useful in environments where multiple agents interact with shared resources, such as cloud computing platforms, distributed systems, or enterprise software applications. By proactively detecting and mitigating hyperactivity, the system prevents resource exhaustion, improves system reliability, and enhances overall performance.

Claim 12

Original Legal Text

12. The method as in claim 1 , further comprising: recording and reporting class changes made within the calls.

Plain English Translation

A system and method for monitoring and analyzing telecommunication calls, particularly focusing on tracking and reporting dynamic changes in call classifications during active calls. The technology addresses the challenge of accurately categorizing calls in real-time, especially when call characteristics evolve due to factors like caller behavior, network conditions, or service interactions. The method involves capturing and logging modifications to call classifications as they occur, providing a detailed record of how a call's classification transitions over its duration. This includes detecting and documenting shifts between predefined categories, such as from a customer service call to a technical support call, or from a routine inquiry to an escalated issue. The recorded data enables post-call analysis, performance monitoring, and quality assurance by identifying patterns in classification changes and their impact on call handling efficiency. The system may integrate with existing telecommunication infrastructure, including call routing and analytics platforms, to enhance call management and improve service delivery. The method ensures transparency and traceability of call classification adjustments, supporting compliance and operational improvements in call centers and telecommunication networks.

Claim 13

Original Legal Text

13. The method as in claim 1 , further comprising: monitoring the one or more software agents for latency times based on the calls; and mitigating detected high latency.

Plain English Translation

This invention relates to software agent management in distributed computing systems, addressing the problem of latency in agent performance. The method involves deploying one or more software agents to execute tasks across a network, where these agents communicate with each other or with a central system via calls. The system monitors these agents to measure latency times associated with their calls, identifying instances where latency exceeds acceptable thresholds. When high latency is detected, the system implements mitigation strategies to reduce or eliminate the delay. These strategies may include load balancing, task redistribution, agent prioritization, or other optimization techniques. The method ensures efficient and timely execution of tasks by dynamically adjusting agent behavior based on real-time performance data. This approach is particularly useful in environments where low-latency communication is critical, such as cloud computing, IoT networks, or real-time data processing systems. By continuously monitoring and mitigating latency, the system maintains optimal performance and reliability.

Claim 14

Original Legal Text

14. The method as in claim 1 , further comprising: performing a stack sampler operation on threads of the one or more software agents, wherein the stack sampler operation is filtered to monitor only specific threads that are active transaction-based threads.

Plain English Translation

This invention relates to monitoring software agents in a computing environment, particularly focusing on transaction-based threads. The method involves tracking the execution of one or more software agents, where each agent processes transactions in a distributed system. The system identifies active transaction-based threads among the threads executed by the agents. A stack sampler operation is then performed specifically on these active transaction-based threads, filtering out other threads to reduce monitoring overhead and improve efficiency. The stack sampler captures stack traces of the monitored threads, providing insights into their execution state, performance bottlenecks, or errors. This selective monitoring helps optimize system performance by focusing on threads directly involved in transaction processing, rather than all threads indiscriminately. The method ensures that only relevant threads are sampled, minimizing resource consumption while maintaining accurate transaction tracking. This approach is particularly useful in large-scale distributed systems where transaction processing is critical, such as in financial services, e-commerce, or cloud computing environments. The invention improves monitoring efficiency by reducing unnecessary data collection and enhancing the accuracy of performance analysis.

Claim 15

Original Legal Text

15. A tangible, non-transitory, computer-readable medium having computer-executable instructions stored thereon that, when executed by a processor on a computer, cause the computer to perform a method comprising: attaching a software agent profiler process to an application and a primary instrumentation interface for the application; discovering one or more software agents associated with the application; launching the one or more software agents within an encapsulated container environment of the software agent profiler process by configuring each of the one or more software agents, respectively, to point to a proxy instrumentation interface of the software agent profiler process instead of the primary instrumentation interface for the application; receiving calls from the one or more software agents on the proxy instrumentation interface of the software agent profiler process; and managing the calls from the one or more application agents prior to the calls being passed to the primary instrumentation interface for the application.

Plain English Translation

This invention relates to software agent management in computing systems, specifically addressing challenges in monitoring and controlling software agents that interact with applications. The system involves a software agent profiler process that attaches to an application and its primary instrumentation interface, which is the standard interface used by software agents to communicate with the application. The profiler process discovers and identifies all software agents associated with the application. These agents are then launched within an isolated, encapsulated container environment provided by the profiler process. Each agent is configured to redirect its calls from the application's primary instrumentation interface to a proxy instrumentation interface managed by the profiler process. The profiler intercepts and processes these calls before forwarding them to the application's primary interface. This approach allows for centralized management, monitoring, and control of software agent interactions, ensuring security, performance optimization, and compliance without modifying the application or its primary interface. The solution is implemented via a computer-readable medium containing executable instructions that perform these steps when executed by a processor.

Claim 16

Original Legal Text

16. The computer-readable medium as in claim 15 , wherein the method, for managing, further comprises: determining whether to pass the call to the primary instrumentation interface for the application or to block the call from passing to the primary instrumentation interface for the application.

Plain English Translation

This invention relates to software instrumentation, specifically a system for managing and controlling calls to instrumentation interfaces in applications. The problem addressed is the need to selectively allow or block calls to instrumentation interfaces, which are used for monitoring, debugging, or analyzing application behavior. Uncontrolled access to these interfaces can lead to security vulnerabilities, performance issues, or unintended modifications to application behavior. The invention provides a method for managing calls to a primary instrumentation interface of an application. The method includes intercepting a call intended for the primary instrumentation interface and determining whether to pass the call to the primary instrumentation interface or block it. This decision is based on predefined criteria, such as security policies, performance considerations, or user-defined rules. The method ensures that only authorized or safe calls reach the primary instrumentation interface, preventing unauthorized access or malicious exploitation. The system includes a secondary instrumentation interface that intercepts calls before they reach the primary interface. The secondary interface evaluates each call against a set of rules or conditions to determine whether the call should be allowed or blocked. If the call is allowed, it is forwarded to the primary instrumentation interface; otherwise, it is blocked. This approach enhances security and control over application instrumentation while maintaining the functionality of legitimate calls. The invention is implemented using a computer-readable medium containing instructions for performing the described method.

Claim 17

Original Legal Text

17. The computer-readable medium as in claim 15 , wherein the method, for managing, further comprises: mitigating conflicts between a plurality of software agents of the one or more software agents.

Plain English Translation

This invention relates to conflict management in multi-agent software systems. The technology addresses the problem of coordinating multiple autonomous software agents that may operate concurrently, potentially leading to conflicts in resource access, task execution, or goal achievement. The system includes a conflict detection mechanism that identifies when agents' actions or plans interfere with one another. Upon detection, a conflict resolution module applies predefined rules or dynamic negotiation protocols to resolve the conflicts. This may involve prioritizing agents, adjusting schedules, or reallocating resources to ensure system stability and efficiency. The solution ensures that agents can operate collaboratively without disrupting overall system performance. The invention is particularly useful in distributed computing environments, robotic control systems, or any domain where multiple autonomous agents must work together seamlessly. The conflict mitigation process is integrated into a broader agent management framework, which may also include agent deployment, monitoring, and performance optimization. The system dynamically adapts to changing conditions, ensuring continuous operation without conflicts.

Claim 18

Original Legal Text

18. The computer-readable medium as in claim 15 , wherein the method further comprises: generating test conditions using artificial calls to the primary instrumentation interface for the application.

Plain English Translation

This invention relates to software testing, specifically automated testing of applications using instrumentation interfaces. The problem addressed is the need for efficient and reliable test condition generation to validate application behavior without manual intervention. The solution involves a computer-readable medium storing instructions for a method that generates test conditions by making artificial calls to a primary instrumentation interface of the application. The primary instrumentation interface is a standardized interface that allows external systems to interact with the application for testing purposes. The method includes steps to analyze the application's behavior in response to these artificial calls, thereby simulating real-world usage scenarios. The generated test conditions are used to verify the application's functionality, performance, and robustness. The artificial calls can be dynamically adjusted based on the application's responses to ensure comprehensive test coverage. This approach reduces the need for manual test case creation and improves the efficiency of automated testing processes. The method may also include additional steps such as logging test results, identifying defects, and generating reports to assist in debugging and quality assurance. The overall goal is to enhance the reliability and effectiveness of software testing through automated, intelligent test condition generation.

Claim 19

Original Legal Text

19. The computer-readable medium as in claim 15 , wherein the method further comprises: performing a stack sampler operation on threads of the one or more software agents, wherein the stack sampler operation is filtered to monitor only specific threads that are active transaction-based threads.

Plain English Translation

This invention relates to software monitoring systems, specifically methods for analyzing and optimizing the performance of software agents in transaction-based environments. The problem addressed is the inefficiency of traditional monitoring techniques that capture data from all threads indiscriminately, leading to unnecessary overhead and noise in the collected data. The invention provides a computer-implemented method for monitoring software agents, where the monitoring process is optimized by selectively sampling only the threads involved in active transactions. This is achieved through a stack sampler operation that filters out non-transactional threads, reducing computational overhead and improving the accuracy of performance analysis. The method involves deploying one or more software agents within a computing environment, where these agents execute tasks and generate transactional data. The stack sampler operation periodically captures stack traces of the active transaction-based threads, allowing for detailed analysis of thread behavior during critical operations. By focusing only on transactional threads, the system avoids processing irrelevant data, enhancing efficiency and providing more precise insights into system performance. This selective monitoring approach is particularly useful in high-throughput environments where minimizing overhead is crucial. The invention ensures that performance metrics are derived from the most relevant threads, leading to better decision-making for optimization and troubleshooting.

Claim 20

Original Legal Text

20. An apparatus, comprising: one or more network interfaces to communicate with a network; a processor coupled to the network interfaces and configured to execute one or more processes; and a memory configured to store a process executable by the processor, the process, when executed, configured to: attach a software agent profiler process to an application and a primary instrumentation interface for the application; discover one or more software agents associated with the application; launch the one or more software agents within an encapsulated container environment of the software agent profiler process by configuring each of the one or more software agents, respectively, to point to a proxy instrumentation interface of the software agent profiler process instead of the primary instrumentation interface for the application; receive calls from the one or more software agents on the proxy instrumentation interface of the software agent profiler process; and manage the calls from the one or more application agents prior to the calls being passed to the primary instrumentation interface for the application.

Plain English Translation

This invention relates to software agent management in computing systems, specifically addressing challenges in monitoring and controlling interactions between applications and their associated software agents. The system includes a profiler process that attaches to an application and its primary instrumentation interface, which is the standard interface used by software agents to interact with the application. The profiler process discovers all software agents linked to the application and launches them within an isolated container environment. Each agent is configured to redirect its calls from the application's primary interface to a proxy interface managed by the profiler process. The profiler then intercepts and processes these calls before forwarding them to the application's primary interface. This approach allows for centralized management, monitoring, and modification of agent interactions without altering the application itself. The solution improves security, debugging, and performance analysis by providing a controlled environment for agent operations. The system is particularly useful in complex applications where multiple agents may need coordinated management or where agent behavior requires strict oversight.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

September 27, 2019

Publication Date

February 22, 2022

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Agent profiler to monitor activities and performance of software agents” (US-11256590). https://patentable.app/patents/US-11256590

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/US-11256590. See llms.txt for full attribution policy.