Home / Function/ abefore_model() — langchain Function Reference

abefore_model() — langchain Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  ca36a689_bbb0_72cf_124a_722e38d87df0["abefore_model()"]
  a622f56b_f697_966d_5bc7_095699ccca34["SummarizationMiddleware"]
  ca36a689_bbb0_72cf_124a_722e38d87df0 -->|defined in| a622f56b_f697_966d_5bc7_095699ccca34
  bfb2ef4c_03ef_fa38_3c61_04aca1af6ed5["_ensure_message_ids()"]
  ca36a689_bbb0_72cf_124a_722e38d87df0 -->|calls| bfb2ef4c_03ef_fa38_3c61_04aca1af6ed5
  bbfcb116_81e5_842d_5e50_6e8f55a69bc4["_should_summarize()"]
  ca36a689_bbb0_72cf_124a_722e38d87df0 -->|calls| bbfcb116_81e5_842d_5e50_6e8f55a69bc4
  1de03e59_b58a_edd7_ef83_95d7ab3cd1da["_determine_cutoff_index()"]
  ca36a689_bbb0_72cf_124a_722e38d87df0 -->|calls| 1de03e59_b58a_edd7_ef83_95d7ab3cd1da
  8f5f7cdc_45ed_18ec_b82b_23e574f9bd4c["_partition_messages()"]
  ca36a689_bbb0_72cf_124a_722e38d87df0 -->|calls| 8f5f7cdc_45ed_18ec_b82b_23e574f9bd4c
  53b20c8d_63b8_2f3b_a494_57f3a65b8caf["_acreate_summary()"]
  ca36a689_bbb0_72cf_124a_722e38d87df0 -->|calls| 53b20c8d_63b8_2f3b_a494_57f3a65b8caf
  92208811_f4d6_b832_02e2_b45867badb82["_build_new_messages()"]
  ca36a689_bbb0_72cf_124a_722e38d87df0 -->|calls| 92208811_f4d6_b832_02e2_b45867badb82
  style ca36a689_bbb0_72cf_124a_722e38d87df0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/langchain/agents/middleware/summarization.py lines 331–366

    async def abefore_model(
        self, state: AgentState[Any], runtime: Runtime[ContextT]
    ) -> dict[str, Any] | None:
        """Process messages before model invocation, potentially triggering summarization.

        Args:
            state: The agent state.
            runtime: The runtime environment.

        Returns:
            An updated state with summarized messages if summarization was performed.
        """
        messages = state["messages"]
        self._ensure_message_ids(messages)

        total_tokens = self.token_counter(messages)
        if not self._should_summarize(messages, total_tokens):
            return None

        cutoff_index = self._determine_cutoff_index(messages)

        if cutoff_index <= 0:
            return None

        messages_to_summarize, preserved_messages = self._partition_messages(messages, cutoff_index)

        summary = await self._acreate_summary(messages_to_summarize)
        new_messages = self._build_new_messages(summary)

        return {
            "messages": [
                RemoveMessage(id=REMOVE_ALL_MESSAGES),
                *new_messages,
                *preserved_messages,
            ]
        }

Domain

Subdomains

Frequently Asked Questions

What does abefore_model() do?
abefore_model() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/middleware/summarization.py.
Where is abefore_model() defined?
abefore_model() is defined in libs/langchain_v1/langchain/agents/middleware/summarization.py at line 331.
What does abefore_model() call?
abefore_model() calls 6 function(s): _acreate_summary, _build_new_messages, _determine_cutoff_index, _ensure_message_ids, _partition_messages, _should_summarize.

Analyze Your Own Codebase

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

Try Supermodel Free