add max_steps
This commit is contained in:
parent
e6e31a2c13
commit
31c7e69faf
@ -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
|
|
||||||
|
@ -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}"
|
||||||
)
|
)
|
||||||
|
@ -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):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user