Module atomic_agents.lib.base.base_tool
Classes
class BaseTool (config: BaseToolConfig = BaseToolConfig(title=None, description=None))
-
Base class for tools within the Atomic Agents framework.
Attributes
input_schema
:Type[BaseIOSchema]
- Schema defining the input data.
output_schema
:Type[BaseIOSchema]
- Schema defining the output data.
tool_name
:str
- The name of the tool, derived from the input schema's title.
tool_description
:str
- Description of the tool, derived from the input schema's description or overridden by the user.
Initializes the BaseTool with an optional configuration override.
Args
config
:BaseToolConfig
, optional- Configuration for the tool, including optional title and description overrides.
Expand source code
class BaseTool: """ Base class for tools within the Atomic Agents framework. Attributes: input_schema (Type[BaseIOSchema]): Schema defining the input data. output_schema (Type[BaseIOSchema]): Schema defining the output data. tool_name (str): The name of the tool, derived from the input schema's title. tool_description (str): Description of the tool, derived from the input schema's description or overridden by the user. """ input_schema: Type[BaseIOSchema] output_schema: Type[BaseIOSchema] def __init__(self, config: BaseToolConfig = BaseToolConfig()): """ Initializes the BaseTool with an optional configuration override. Args: config (BaseToolConfig, optional): Configuration for the tool, including optional title and description overrides. """ self.tool_name = config.title or self.input_schema.model_json_schema()["title"] self.tool_description = config.description or self.input_schema.model_json_schema()["description"] def run(self, params: Type[BaseIOSchema]) -> BaseIOSchema: """ Executes the tool with the provided parameters. Args: params (BaseIOSchema): Input parameters adhering to the input schema. Returns: BaseIOSchema: Output resulting from executing the tool, adhering to the output schema. Raises: NotImplementedError: If the method is not implemented by a subclass. """ raise NotImplementedError("Subclasses should implement this method")
Class variables
var input_schema : Type[BaseIOSchema]
-
The type of the None singleton.
var output_schema : Type[BaseIOSchema]
-
The type of the None singleton.
Methods
def run(self, params: Type[BaseIOSchema]) ‑> BaseIOSchema
-
Executes the tool with the provided parameters.
Args
params
:BaseIOSchema
- Input parameters adhering to the input schema.
Returns
BaseIOSchema
- Output resulting from executing the tool, adhering to the output schema.
Raises
NotImplementedError
- If the method is not implemented by a subclass.
class BaseToolConfig (**data: Any)
-
Configuration for a tool.
Attributes
title
:Optional[str]
- Overrides the default title of the tool.
description
:Optional[str]
- Overrides the default description of the tool.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class BaseToolConfig(BaseModel): """ Configuration for a tool. Attributes: title (Optional[str]): Overrides the default title of the tool. description (Optional[str]): Overrides the default description of the tool. """ title: Optional[str] = None description: Optional[str] = None
Ancestors
- pydantic.main.BaseModel
Class variables
var description : Optional[str]
-
The type of the None singleton.
var model_config
-
The type of the None singleton.
var title : Optional[str]
-
The type of the None singleton.