diff --git a/src/smolagents/agents.py b/src/smolagents/agents.py index 690dd232..b7bc1042 100644 --- a/src/smolagents/agents.py +++ b/src/smolagents/agents.py @@ -655,6 +655,14 @@ def planning_step(self, task, is_first_step: bool, step: int) -> None: class ToolCallingAgent(MultiStepAgent): """ This agent uses JSON-like tool calls, using method `model.get_tool_call` to leverage the LLM engine's tool calling capabilities. + + Args: + tools (`list[Tool]`): [`Tool`]s that the agent can use. + model (`Callable[[list[dict[str, str]]], ChatMessage]`): Model that will generate the agent's actions. + system_prompt (`str`, *optional*): System prompt that will be used to generate the agent's actions. + planning_interval (`int`, *optional*): Interval at which the agent will run a planning step. + **kwargs: Additional keyword arguments. + """ def __init__( @@ -761,6 +769,18 @@ def step(self, log_entry: ActionStep) -> Union[None, Any]: class CodeAgent(MultiStepAgent): """ In this agent, the tool calls will be formulated by the LLM in code format, then parsed and executed. + + Args: + tools (`list[Tool]`): [`Tool`]s that the agent can use. + model (`Callable[[list[dict[str, str]]], ChatMessage]`): Model that will generate the agent's actions. + system_prompt (`str`, *optional*): System prompt that will be used to generate the agent's actions. + grammar (`dict[str, str]`, *optional*): Grammar used to parse the LLM output. + additional_authorized_imports (`list[str]`, *optional*): List of additional imports that are authorized for the agent. + planning_interval (`int`, *optional*): Interval at which the agent will run a planning step. + use_e2b_executor (`bool`, default `False`): Whether to use the E2B executor for remote code execution. + max_print_outputs_length (`int`, *optional*): Maximum length of the print outputs. + **kwargs: Additional keyword arguments. + """ def __init__( @@ -819,9 +839,11 @@ def initialize_system_prompt(self): super().initialize_system_prompt() self.system_prompt = self.system_prompt.replace( "{{authorized_imports}}", - "You can import from any package you want." - if "*" in self.authorized_imports - else str(self.authorized_imports), + ( + "You can import from any package you want." + if "*" in self.authorized_imports + else str(self.authorized_imports) + ), ) return self.system_prompt @@ -934,6 +956,19 @@ def step(self, log_entry: ActionStep) -> Union[None, Any]: class ManagedAgent: + """ + ManagedAgent class that manages an agent and provides additional prompting and run summaries. + + Args: + agent (`object`): The agent to be managed. + name (`str`): The name of the managed agent. + description (`str`): A description of the managed agent. + additional_prompting (`Optional[str]`, *optional*): Additional prompting for the managed agent. Defaults to None. + provide_run_summary (`bool`, *optional*): Whether to provide a run summary after the agent completes its task. Defaults to False. + managed_agent_prompt (`Optional[str]`, *optional*): Custom prompt for the managed agent. Defaults to None. + + """ + def __init__( self, agent,