Skip to content

Commit

Permalink
docstring args for ToolCallingAgent, CodeAgent and ManagedAgent (#335)
Browse files Browse the repository at this point in the history
* docstring args for ToolCallingAgent, CodeAgent and ManagedAgent

* Fix ToolCallingAgent and CodeAgent docstring

* Minor fix

---------

Co-authored-by: Albert Villanova del Moral <[email protected]>
  • Loading branch information
touseefahmed96 and albertvillanova authored Jan 24, 2025
1 parent 73621c9 commit b5b55a5
Showing 1 changed file with 38 additions and 3 deletions.
41 changes: 38 additions & 3 deletions src/smolagents/agents.py
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,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__(
Expand Down Expand Up @@ -776,6 +784,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*): Additional authorized imports 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__(
Expand Down Expand Up @@ -834,9 +854,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

Expand Down Expand Up @@ -949,6 +971,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,
Expand Down

0 comments on commit b5b55a5

Please sign in to comment.