_find_token_based_cutoff() — langchain Function Reference
Architecture documentation for the _find_token_based_cutoff() function in summarization.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 82390de3_387f_3a0a_61c0_4eb09524c027["_find_token_based_cutoff()"] a622f56b_f697_966d_5bc7_095699ccca34["SummarizationMiddleware"] 82390de3_387f_3a0a_61c0_4eb09524c027 -->|defined in| a622f56b_f697_966d_5bc7_095699ccca34 1de03e59_b58a_edd7_ef83_95d7ab3cd1da["_determine_cutoff_index()"] 1de03e59_b58a_edd7_ef83_95d7ab3cd1da -->|calls| 82390de3_387f_3a0a_61c0_4eb09524c027 65ce74ec_3821_4fcb_dac2_deac6f30763f["_get_profile_limits()"] 82390de3_387f_3a0a_61c0_4eb09524c027 -->|calls| 65ce74ec_3821_4fcb_dac2_deac6f30763f 6bd2bf47_a4ef_fe6f_a2a2_89f8125a4eaa["_find_safe_cutoff_point()"] 82390de3_387f_3a0a_61c0_4eb09524c027 -->|calls| 6bd2bf47_a4ef_fe6f_a2a2_89f8125a4eaa style 82390de3_387f_3a0a_61c0_4eb09524c027 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/langchain/agents/middleware/summarization.py lines 427–474
def _find_token_based_cutoff(self, messages: list[AnyMessage]) -> int | None:
"""Find cutoff index based on target token retention."""
if not messages:
return 0
kind, value = self.keep
if kind == "fraction":
max_input_tokens = self._get_profile_limits()
if max_input_tokens is None:
return None
target_token_count = int(max_input_tokens * value)
elif kind == "tokens":
target_token_count = int(value)
else:
return None
if target_token_count <= 0:
target_token_count = 1
if self.token_counter(messages) <= target_token_count:
return 0
# Use binary search to identify the earliest message index that keeps the
# suffix within the token budget.
left, right = 0, len(messages)
cutoff_candidate = len(messages)
max_iterations = len(messages).bit_length() + 1
for _ in range(max_iterations):
if left >= right:
break
mid = (left + right) // 2
if self._partial_token_counter(messages[mid:]) <= target_token_count:
cutoff_candidate = mid
right = mid
else:
left = mid + 1
if cutoff_candidate == len(messages):
cutoff_candidate = left
if cutoff_candidate >= len(messages):
if len(messages) == 1:
return 0
cutoff_candidate = len(messages) - 1
# Advance past any ToolMessages to avoid splitting AI/Tool pairs
return self._find_safe_cutoff_point(messages, cutoff_candidate)
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does _find_token_based_cutoff() do?
_find_token_based_cutoff() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/middleware/summarization.py.
Where is _find_token_based_cutoff() defined?
_find_token_based_cutoff() is defined in libs/langchain_v1/langchain/agents/middleware/summarization.py at line 427.
What does _find_token_based_cutoff() call?
_find_token_based_cutoff() calls 2 function(s): _find_safe_cutoff_point, _get_profile_limits.
What calls _find_token_based_cutoff()?
_find_token_based_cutoff() is called by 1 function(s): _determine_cutoff_index.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free