.. _taskgen-function-guide: TaskGen Function Usage Guide ============================ This guide details how to define and utilize functions within TaskGen agents, enabling them to execute tasks efficiently. Define a LLM Function --------------------- To enable your agent to interact with a large language model (LLM), define a function specifying how the agent should communicate with the LLM. .. code-block:: python def llm(system_prompt: str, user_prompt: str) -> str: """ Interacts with a specified LLM using system and user prompts to generate a response. :param system_prompt: A string that provides the context or instruction for the LLM. :param user_prompt: A string that represents the user's input or question. :return: A string response generated by the LLM. """ from openai import ChatCompletion response = ChatCompletion.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_prompt} ] ) return response.choices[0].message.content Using Functions in Agents ------------------------- Once functions are defined, they can be assigned to agents to carry out specific tasks. 1. **Creating an Agent**: Initialize an agent and assign it a function for interaction. .. code-block:: python from taskgen import Agent my_agent = Agent(name='HelperBot', description='A versatile helper agent.', llm=llm) 2. **Assigning Tasks**: Assign tasks to the agent using the defined functions, and specify the number of subtasks if necessary. .. code-block:: python task_output = my_agent.run(task="Schedule a meeting", num_subtasks=3) print(task_output) 3. **Interacting with Tasks**: Use the agent's capabilities to interact dynamically with ongoing tasks. .. code-block:: python response = my_agent.interact(user_query="Reschedule the meeting to a later date.") print(response) Advanced Function Usage ----------------------- Define advanced behaviors and interactions by leveraging the full capabilities of TaskGen functions. .. code-block:: python def advanced_interaction(system_prompt: str, user_input: str) -> str: """ An advanced function to handle more complex interactions and provide detailed responses based on the context. :param system_prompt: Contextual prompt for the LLM. :param user_input: User's specific query or command. :return: Detailed response from the LLM based on the interaction. """ response = llm(system_prompt, user_input) return response # Modify or process the response as needed for the task Conclusion ---------- Utilizing these functions within your TaskGen agents allows for flexible, powerful task management and response generation tailored to specific user needs and contexts.