fix(context): raise max messages fallback cap

Treat max_messages as a last-resort replay guard now that consolidation and idle auto-compact own normal history reduction. Raising the default avoids frequent sliding-window prefix churn in moderate conversations without adding a new cache-policy knob.
This commit is contained in:
chengyongru
2026-06-29 14:23:55 +08:00
committed by Xubin Ren
parent 7dc45ff94e
commit c8638dee46
4 changed files with 7 additions and 7 deletions
+2 -2
View File
@@ -201,7 +201,7 @@ class AgentLoop:
timezone: str | None = None,
session_ttl_minutes: int = 0,
consolidation_ratio: float = 0.5,
max_messages: int = 120,
max_messages: int = 500,
hooks: list[AgentHook] | None = None,
unified_session: bool = False,
disabled_skills: list[str] | None = None,
@@ -292,7 +292,7 @@ class AgentLoop:
llm_wall_timeout_for_session=lambda sk: runner_wall_llm_timeout_s(self.sessions, sk),
)
self._unified_session = unified_session
self._max_messages = max_messages if max_messages > 0 else 120
self._max_messages = max_messages if max_messages > 0 else 500
self._running = False
self._mcp_servers = mcp_servers or {}
self._mcp_stacks: dict[str, AsyncExitStack] = {}
+2 -2
View File
@@ -155,9 +155,9 @@ class AgentDefaults(Base):
serialization_alias="idleCompactAfterMinutes",
) # Auto-compact idle threshold in minutes (0 = disabled)
max_messages: int = Field(
default=120,
default=500,
ge=0,
) # Max messages to replay from session history (0 = use default 120, respects token budget)
) # Last-resort max messages to replay from session history (0 = use default 500)
consolidation_ratio: float = Field(
default=0.5,
ge=0.1,
+2 -2
View File
@@ -132,7 +132,7 @@ class Session:
def get_history(
self,
max_messages: int = 120,
max_messages: int = 500,
*,
max_tokens: int = 0,
extend_to_user: bool = False,
@@ -143,7 +143,7 @@ class Session:
token budget from the tail (``max_tokens``) when provided.
"""
unconsolidated = self.messages[self.last_consolidated:]
max_messages = max_messages if max_messages > 0 else 120
max_messages = max_messages if max_messages > 0 else 500
start_idx = recent_message_start_index(
unconsolidated,
max_messages,
+1 -1
View File
@@ -13,7 +13,7 @@ from nanobot.bus.queue import MessageBus
from nanobot.providers.base import LLMResponse
from nanobot.session.manager import Session
DEFAULT_MAX_MESSAGES = 120
DEFAULT_MAX_MESSAGES = 500
def _make_loop(tmp_path: Path, max_messages: int = DEFAULT_MAX_MESSAGES) -> AgentLoop: