Home / Function/ _should_summarize() — langchain Function Reference

_should_summarize() — langchain Function Reference

Architecture documentation for the _should_summarize() function in summarization.py from the langchain codebase.

Function python LangChainCore Runnables calls 2 called by 2

Entity Profile

Dependency Diagram

graph TD
  bbfcb116_81e5_842d_5e50_6e8f55a69bc4["_should_summarize()"]
  a622f56b_f697_966d_5bc7_095699ccca34["SummarizationMiddleware"]
  bbfcb116_81e5_842d_5e50_6e8f55a69bc4 -->|defined in| a622f56b_f697_966d_5bc7_095699ccca34
  833a9d39_5a26_a8d9_09c7_26020ad85079["before_model()"]
  833a9d39_5a26_a8d9_09c7_26020ad85079 -->|calls| bbfcb116_81e5_842d_5e50_6e8f55a69bc4
  ca36a689_bbb0_72cf_124a_722e38d87df0["abefore_model()"]
  ca36a689_bbb0_72cf_124a_722e38d87df0 -->|calls| bbfcb116_81e5_842d_5e50_6e8f55a69bc4
  1f36e1d8_d79f_04de_8d83_5c3eb9e13b2e["_should_summarize_based_on_reported_tokens()"]
  bbfcb116_81e5_842d_5e50_6e8f55a69bc4 -->|calls| 1f36e1d8_d79f_04de_8d83_5c3eb9e13b2e
  65ce74ec_3821_4fcb_dac2_deac6f30763f["_get_profile_limits()"]
  bbfcb116_81e5_842d_5e50_6e8f55a69bc4 -->|calls| 65ce74ec_3821_4fcb_dac2_deac6f30763f
  style bbfcb116_81e5_842d_5e50_6e8f55a69bc4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/langchain/agents/middleware/summarization.py lines 387–413

    def _should_summarize(self, messages: list[AnyMessage], total_tokens: int) -> bool:
        """Determine whether summarization should run for the current token usage."""
        if not self._trigger_conditions:
            return False

        for kind, value in self._trigger_conditions:
            if kind == "messages" and len(messages) >= value:
                return True
            if kind == "tokens" and total_tokens >= value:
                return True
            if kind == "tokens" and self._should_summarize_based_on_reported_tokens(
                messages, value
            ):
                return True
            if kind == "fraction":
                max_input_tokens = self._get_profile_limits()
                if max_input_tokens is None:
                    continue
                threshold = int(max_input_tokens * value)
                if threshold <= 0:
                    threshold = 1
                if total_tokens >= threshold:
                    return True

                if self._should_summarize_based_on_reported_tokens(messages, threshold):
                    return True
        return False

Domain

Subdomains

Frequently Asked Questions

What does _should_summarize() do?
_should_summarize() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/middleware/summarization.py.
Where is _should_summarize() defined?
_should_summarize() is defined in libs/langchain_v1/langchain/agents/middleware/summarization.py at line 387.
What does _should_summarize() call?
_should_summarize() calls 2 function(s): _get_profile_limits, _should_summarize_based_on_reported_tokens.
What calls _should_summarize()?
_should_summarize() is called by 2 function(s): abefore_model, before_model.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free