Class ResourceQuota

java.lang.Object
com.tnsai.thread.ResourceQuota

public final class ResourceQuota extends Object
Resource limits for an AgentThread.

Defines constraints for:

  • Token usage (input + output)
  • Tool/function call count
  • Execution time
  • Memory usage
  • Child thread count

Example:


 ResourceQuota quota = ResourceQuota.builder()
     .maxTokens(100_000)
     .maxToolCalls(50)
     .maxDuration(Duration.ofMinutes(30))
     .maxChildThreads(5)
     .build();
 
Since:
0.0.2
  • Field Details

    • DEFAULT_MAX_TOKENS

      public static final long DEFAULT_MAX_TOKENS
      Default: 100K tokens
      See Also:
    • DEFAULT_MAX_TOOL_CALLS

      public static final int DEFAULT_MAX_TOOL_CALLS
      Default: 100 tool calls
      See Also:
    • DEFAULT_MAX_DURATION

      public static final Duration DEFAULT_MAX_DURATION
      Default: 1 hour
    • DEFAULT_MAX_CHILD_THREADS

      public static final int DEFAULT_MAX_CHILD_THREADS
      Default: 10 child threads
      See Also:
    • DEFAULT_MAX_MEMORY_BYTES

      public static final long DEFAULT_MAX_MEMORY_BYTES
      Default: 100MB memory
      See Also:
  • Method Details

    • defaults

      public static ResourceQuota defaults()
      Create with default limits.
    • unlimited

      public static ResourceQuota unlimited()
      Create with unlimited resources (use carefully).
    • minimal

      public static ResourceQuota minimal()
      Create a minimal quota for testing.
    • builder

      public static ResourceQuota.Builder builder()
    • getMaxTokens

      public long getMaxTokens()
    • getMaxToolCalls

      public int getMaxToolCalls()
    • getMaxDuration

      public Duration getMaxDuration()
    • getMaxChildThreads

      public int getMaxChildThreads()
    • getMaxMemoryBytes

      public long getMaxMemoryBytes()
    • getMaxConcurrentTools

      public int getMaxConcurrentTools()
    • isTokenLimitExceeded

      public boolean isTokenLimitExceeded(long usedTokens)
      Check if token limit is exceeded.
    • isToolCallLimitExceeded

      public boolean isToolCallLimitExceeded(int usedToolCalls)
      Check if tool call limit is exceeded.
    • isDurationExceeded

      public boolean isDurationExceeded(Duration elapsed)
      Check if duration limit is exceeded.
    • remainingTokens

      public long remainingTokens(long usedTokens)
      Calculate remaining tokens.
    • remainingToolCalls

      public int remainingToolCalls(int usedToolCalls)
      Calculate remaining tool calls.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object