Nous.Session.Config (nous v0.13.3)

View Source

Configuration for managed agent sessions.

Provides turn limits, token budgets, and compaction thresholds for higher-level session management (e.g. Nous.AgentServer or custom GenServers). This is separate from Agent.Context.max_iterations which controls the inner agent loop.

Usage

config = %Nous.Session.Config{
  max_turns: 20,
  max_budget_tokens: 500_000,
  compact_after_turns: 15
}

case Nous.Session.Guardrails.check_limits(config, turn_count, in_tokens, out_tokens) do
  :ok -> proceed_with_turn()
  {:error, :max_turns_reached} -> stop_session()
  {:error, :max_budget_reached} -> stop_session()
end

Summary

Functions

Creates a config from a keyword list.

Types

t()

@type t() :: %Nous.Session.Config{
  compact_after_turns: pos_integer(),
  max_budget_tokens: pos_integer(),
  max_turns: pos_integer()
}

Functions

new(opts \\ [])

@spec new(keyword()) :: t()

Creates a config from a keyword list.

Examples

config = Nous.Session.Config.new(max_turns: 50, max_budget_tokens: 1_000_000)