fix subagent max iteration limit

This commit is contained in:
hanyuanling
2026-04-30 13:45:40 +08:00
committed by Xubin Ren
parent f8fd9f0011
commit 3c20d16117
5 changed files with 165 additions and 5 deletions
+8 -2
View File
@@ -20,7 +20,7 @@ from nanobot.agent.tools.shell import ExecTool
from nanobot.agent.tools.web import WebFetchTool, WebSearchTool
from nanobot.bus.events import InboundMessage
from nanobot.bus.queue import MessageBus
from nanobot.config.schema import ExecToolConfig, WebToolsConfig
from nanobot.config.schema import AgentDefaults, ExecToolConfig, WebToolsConfig
from nanobot.providers.base import LLMProvider
from nanobot.utils.prompt_templates import render_template
@@ -81,6 +81,7 @@ class SubagentManager:
exec_config: "ExecToolConfig | None" = None,
restrict_to_workspace: bool = False,
disabled_skills: list[str] | None = None,
max_iterations: int | None = None,
):
self.provider = provider
self.workspace = workspace
@@ -91,6 +92,11 @@ class SubagentManager:
self.exec_config = exec_config or ExecToolConfig()
self.restrict_to_workspace = restrict_to_workspace
self.disabled_skills = set(disabled_skills or [])
self.max_iterations = (
max_iterations
if max_iterations is not None
else AgentDefaults().max_tool_iterations
)
self.runner = AgentRunner(provider)
self._running_tasks: dict[str, asyncio.Task[None]] = {}
self._task_statuses: dict[str, SubagentStatus] = {}
@@ -202,7 +208,7 @@ class SubagentManager:
initial_messages=messages,
tools=tools,
model=self.model,
max_iterations=15,
max_iterations=self.max_iterations,
max_tool_result_chars=self.max_tool_result_chars,
hook=_SubagentHook(task_id, status),
max_iterations_message="Task completed but no final response was generated.",