Skip to content

WorkerClass Documentation

Overview

The Worker class represents an autonomous agent that can perform tasks through function calls or by running a chat. It can be used to create applications that demand effective user interactions like search engines, human-like conversational bots, or digital assistants.

The Worker class is part of the swarms.agents codebase. This module is largely used in Natural Language Processing (NLP) projects where the agent undertakes conversations and other language-specific operations.

Class Definition

The class Worker has the following arguments:

Argument Type Default Value Description
name str "Worker" Name of the agent.
role str "Worker in a swarm" Role of the agent.
external_tools list None List of external tools available to the agent.
human_in_the_loop bool False Determines whether human interaction is required.
temperature float 0.5 Temperature for the autonomous agent.
llm None None Language model.
openai_api_key str None OpenAI API key.
tools List[Any] None List of tools available to the agent.
embedding_size int 1536 Size of the word embeddings.
search_kwargs dict {"k": 8} Search parameters.
args Multiple Additional arguments that can be passed.
kwargs Multiple Additional keyword arguments that can be passed.
## Usage

Example 1: Creating and Running an Agent

from swarms import Worker

worker = Worker(
    name="My Worker",
    role="Worker",
    external_tools=[MyTool1(), MyTool2()],
    human_in_the_loop=False,
    temperature=0.5,
    llm=some_language_model,
    openai_api_key="my_key",
)
worker.run("What's the weather in Miami?")

Example 2: Receiving and Sending Messages

worker.receieve("User", "Hello there!")
worker.receieve("User", "Can you tell me something about history?")
worker.send()

Example 3: Setting up Tools

external_tools = [MyTool1(), MyTool2()]
worker = Worker(
    name="My Worker",
    role="Worker",
    external_tools=external_tools,
    human_in_the_loop=False,
    temperature=0.5,
)

Additional Information and Tips

  • The class allows the setting up of tools for the worker to operate effectively. It provides setup facilities for essential computing infrastructure, such as the agent's memory and language model.
  • By setting the human_in_the_loop parameter to True, interactions with the worker can be made more user-centric.
  • The openai_api_key argument can be provided for leveraging the OpenAI infrastructure and services.
  • A qualified language model can be passed as an instance of the llm object, which can be useful when integrating with state-of-the-art text generation engines.

References and Resources