Nous.Plugins.Summarization (nous v0.13.3)

View Source

Plugin for managing context window size via conversation summarization.

When the conversation exceeds a configurable token threshold, this plugin summarizes older messages to free up context space while preserving important information.

Usage

agent = Agent.new("openai:gpt-4",
  plugins: [Nous.Plugins.Summarization],
  deps: %{
    summarization_config: %{
      max_context_tokens: 170_000,
      keep_recent: 10,
      summary_model: "openai:gpt-4o-mini"
    }
  }
)

Configuration (via deps)

  • :max_context_tokens - Token threshold to trigger summarization (default: 100_000)
  • :keep_recent - Number of recent messages to keep intact (default: 10)
  • :summary_model - Model string for summarization calls (default: uses same model)

Safety

  • Never splits tool_call/tool_result pairs
  • Keeps system prompt intact
  • Falls back to keeping all messages if summarization fails