AdaptiveWindowing

org.llm4s.agent.PruningStrategy.AdaptiveWindowing
case class AdaptiveWindowing(contextWindowSize: Int, inputCostPerToken: Option[Double], outputCostPerToken: Option[Double], preserveMinTurns: Int, costSensitivity: Double) extends PruningStrategy

Adaptive windowing strategy that automatically determines the best context window size based on the model's context size and pricing information.

This strategy optimizes for cost-quality balance:

  • Uses tier-appropriate percentage of model's context window (reserves space for outputs)
  • Adjusts ratio based on model size (larger models use larger windows)
  • Preserves minimum recent turns for conversation coherence
  • Can optionally use cost-sensitive tuning

Model tiers and window ratios:

  • Small (≤32K): 60% window to reduce costs
  • Medium (32K-100K): 70% balanced cost/quality
  • Large (100K-200K): 75% for more complex context
  • Extra large (>200K): 80% very generous window

Value parameters

contextWindowSize

The model's actual context window in tokens

costSensitivity

How aggressively to optimize for cost (0.0-1.0, default: 0.5) 0.0 = maximize quality, 1.0 = minimize cost

inputCostPerToken

Optional cost per input token (enables cost optimization)

outputCostPerToken

Optional cost per output token

preserveMinTurns

Minimum number of recent turns to always preserve (default: 3)

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

Calculate the optimal token window based on model capabilities and costs. Returns the safe upper bound for conversation tokens.

Calculate the optimal token window based on model capabilities and costs. Returns the safe upper bound for conversation tokens.

Attributes

def explanation: String

Get a human-readable explanation of the calculated window.

Get a human-readable explanation of the calculated window.

Attributes

override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
Any

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product