Skip to content

what is expected behavior of SummarizationMiddleware when summarization is disabled? #33701

@ccurme

Description

@ccurme

Privileged issue

  • I am a LangChain maintainer, or was asked directly by a LangChain maintainer to create an issue here.

Issue Content

SummarizationMiddleware has a max_tokens_before_summary parameter that says "If None, summarization is disabled":

max_tokens_before_summary: Token threshold to trigger summarization.
If `None`, summarization is disabled.

there is a test case against this here:

# Test when summarization is disabled
middleware_disabled = SummarizationMiddleware(model=model, max_tokens_before_summary=None)
state = {"messages": [HumanMessage(content="Hello"), AIMessage(content="Hi")]}
result = middleware_disabled.before_model(state, None)
assert result is None

but the number of messages (two) in the test is below the default messages_to_keep of 20. if you pass in more messages, summarization happens— I've pushed up a failing test case at 0c2def8.

What is the expected behavior when we set max_tokens_before_summary=None, but the number of input messages exceeds messages_to_keep?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions