add max_steps

This commit is contained in:
xiangjinyu 2025-03-12 20:27:14 +08:00
parent e6e31a2c13
commit 31c7e69faf
3 changed files with 11 additions and 4 deletions

View File

@ -26,11 +26,12 @@ class Manus(ToolCallAgent):
system_prompt: str = SYSTEM_PROMPT system_prompt: str = SYSTEM_PROMPT
next_step_prompt: str = NEXT_STEP_PROMPT next_step_prompt: str = NEXT_STEP_PROMPT
max_observe: int = 2000
max_steps: int = 20
# Add general-purpose tools to the tool collection # Add general-purpose tools to the tool collection
available_tools: ToolCollection = Field( available_tools: ToolCollection = Field(
default_factory=lambda: ToolCollection( default_factory=lambda: ToolCollection(
PythonExecute(), GoogleSearch(), BrowserUseTool(), FileSaver(), Terminate() PythonExecute(), GoogleSearch(), BrowserUseTool(), FileSaver(), Terminate()
) )
) )
max_steps: int = 20

View File

@ -1,5 +1,5 @@
import json import json
from typing import Any, List, Literal from typing import Any, List, Literal, Optional, Union
from pydantic import Field from pydantic import Field
@ -31,6 +31,7 @@ class ToolCallAgent(ReActAgent):
tool_calls: List[ToolCall] = Field(default_factory=list) tool_calls: List[ToolCall] = Field(default_factory=list)
max_steps: int = 30 max_steps: int = 30
max_observe: Optional[Union[int, bool]] = None
async def think(self) -> bool: async def think(self) -> bool:
"""Process current state and decide next actions using tools""" """Process current state and decide next actions using tools"""
@ -110,6 +111,10 @@ class ToolCallAgent(ReActAgent):
results = [] results = []
for command in self.tool_calls: for command in self.tool_calls:
result = await self.execute_tool(command) result = await self.execute_tool(command)
if self.max_observe:
result = result[: self.max_observe]
logger.info( logger.info(
f"🎯 Tool '{command.function.name}' completed its mission! Result: {result}" f"🎯 Tool '{command.function.name}' completed its mission! Result: {result}"
) )

View File

@ -1,7 +1,8 @@
from app.tool.base import BaseTool from app.tool.base import BaseTool
_TERMINATE_DESCRIPTION = """Terminate the interaction when the request is met OR if the assistant cannot proceed further with the task.""" _TERMINATE_DESCRIPTION = """Terminate the interaction when the request is met OR if the assistant cannot proceed further with the task.
When you have finished all the tasks, call this tool to end the work."""
class Terminate(BaseTool): class Terminate(BaseTool):