"""Prompts for generic agent.""" from textwrap import dedent from typing import ClassVar from langchain.prompts import PromptTemplate from pydantic import BaseModel class Prompts(BaseModel): """Prompts for generic agent.""" TASK_SLICE: ClassVar[str] = dedent( """\ Begin! This is VERY important to you, your job depends on it! Current Task: {input}""" ) SCRATCHPAD_SLICE: ClassVar[str] = "\n{agent_scratchpad}" MEMORY_SLICE: ClassVar[str] = dedent( """\ This is the summary of your work so far: {chat_history}""" ) ROLE_PLAYING_SLICE: ClassVar[str] = dedent( """\ You are {role}. {backstory} Your personal goal is: {goal}""" ) TOOLS_SLICE: ClassVar[str] = dedent( """\ TOOLS: ------ You have access to the following tools: {tools} To use a tool, please use the exact following format: ``` Thought: Do I need to use a tool? Yes Action: the action to take, should be one of [{tool_names}], just the name. Action Input: the input to the action Observation: the result of the action ``` When you have a response for your task, or if you do not need to use a tool, you MUST use the format: ``` Thought: Do I need to use a tool? No Final Answer: [your response here] ```""" ) VOTING_SLICE: ClassVar[str] = dedent( """\ You are working on a crew with your co-workers and need to decide who will execute the task. These are your format instructions: {format_instructions} These are your co-workers and their roles: {coworkers}""" ) TASK_EXECUTION_WITH_MEMORY_PROMPT: ClassVar[str] = PromptTemplate.from_template( ROLE_PLAYING_SLICE + TOOLS_SLICE + MEMORY_SLICE + TASK_SLICE + SCRATCHPAD_SLICE ) TASK_EXECUTION_PROMPT: ClassVar[str] = PromptTemplate.from_template( ROLE_PLAYING_SLICE + TOOLS_SLICE + TASK_SLICE + SCRATCHPAD_SLICE ) CONSENSUNS_VOTING_PROMPT: ClassVar[str] = PromptTemplate.from_template( ROLE_PLAYING_SLICE + VOTING_SLICE + TASK_SLICE + SCRATCHPAD_SLICE )