You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
swarms/swarms/prompts/agent_prompts.py

151 lines
6.6 KiB

def generate_agent_role_prompt(agent):
"""Generates the agent role prompt.
Args: agent (str): The type of the agent.
Returns: str: The agent role prompt.
"""
prompts = {
"Finance Agent": (
"You are a seasoned finance analyst AI assistant. Your primary goal"
" is to compose comprehensive, astute, impartial, and methodically"
" arranged financial reports based on provided data and trends."
),
"Travel Agent": (
"You are a world-travelled AI tour guide assistant. Your main"
" purpose is to draft engaging, insightful, unbiased, and"
" well-structured travel reports on given locations, including"
" history, attractions, and cultural insights."
),
"Academic Research Agent": (
"You are an AI academic research assistant. Your primary"
" responsibility is to create thorough, academically rigorous,"
" unbiased, and systematically organized reports on a given"
" research topic, following the standards of scholarly work."
),
"Default Agent": (
"You are an AI critical thinker research assistant. Your sole"
" purpose is to write well written, critically acclaimed, objective"
" and structured reports on given text."
),
}
return prompts.get(agent, "No such agent")
def generate_report_prompt(question, research_summary):
"""Generates the report prompt for the given question and research summary.
Args: question (str): The question to generate the report prompt for
research_summary (str): The research summary to generate the report prompt for
Returns: str: The report prompt for the given question and research summary
"""
return (
f'"""{research_summary}""" Using the above information, answer the'
f' following question or topic: "{question}" in a detailed report --'
" The report should focus on the answer to the question, should be"
" well structured, informative, in depth, with facts and numbers if"
" available, a minimum of 1,200 words and with markdown syntax and apa"
" format. Write all source urls at the end of the report in apa format"
)
def generate_search_queries_prompt(question):
"""Generates the search queries prompt for the given question.
Args: question (str): The question to generate the search queries prompt for
Returns: str: The search queries prompt for the given question
"""
return (
"Write 4 google search queries to search online that form an objective"
f' opinion from the following: "{question}"You must respond with a list'
' of strings in the following format: ["query 1", "query 2", "query'
' 3", "query 4"]'
)
def generate_resource_report_prompt(question, research_summary):
"""Generates the resource report prompt for the given question and research summary.
Args:
question (str): The question to generate the resource report prompt for.
research_summary (str): The research summary to generate the resource report prompt for.
Returns:
str: The resource report prompt for the given question and research summary.
"""
return (
f'"""{research_summary}""" Based on the above information, generate a'
" bibliography recommendation report for the following question or"
f' topic: "{question}". The report should provide a detailed analysis'
" of each recommended resource, explaining how each source can"
" contribute to finding answers to the research question. Focus on the"
" relevance, reliability, and significance of each source. Ensure that"
" the report is well-structured, informative, in-depth, and follows"
" Markdown syntax. Include relevant facts, figures, and numbers"
" whenever available. The report should have a minimum length of 1,200"
" words."
)
def generate_outline_report_prompt(question, research_summary):
"""Generates the outline report prompt for the given question and research summary.
Args: question (str): The question to generate the outline report prompt for
research_summary (str): The research summary to generate the outline report prompt for
Returns: str: The outline report prompt for the given question and research summary
"""
return (
f'"""{research_summary}""" Using the above information, generate an'
" outline for a research report in Markdown syntax for the following"
f' question or topic: "{question}". The outline should provide a'
" well-structured framework for the research report, including the"
" main sections, subsections, and key points to be covered. The"
" research report should be detailed, informative, in-depth, and a"
" minimum of 1,200 words. Use appropriate Markdown syntax to format"
" the outline and ensure readability."
)
def generate_concepts_prompt(question, research_summary):
"""Generates the concepts prompt for the given question.
Args: question (str): The question to generate the concepts prompt for
research_summary (str): The research summary to generate the concepts prompt for
Returns: str: The concepts prompt for the given question
"""
return (
f'"""{research_summary}""" Using the above information, generate a list'
" of 5 main concepts to learn for a research report on the following"
f' question or topic: "{question}". The outline should provide a'
" well-structured frameworkYou must respond with a list of strings in"
' the following format: ["concepts 1", "concepts 2", "concepts 3",'
' "concepts 4, concepts 5"]'
)
def generate_lesson_prompt(concept):
"""
Generates the lesson prompt for the given question.
Args:
concept (str): The concept to generate the lesson prompt for.
Returns:
str: The lesson prompt for the given concept.
"""
prompt = (
f"generate a comprehensive lesson about {concept} in Markdown syntax."
f" This should include the definitionof {concept}, its historical"
" background and development, its applications or uses in"
f" differentfields, and notable events or facts related to {concept}."
)
return prompt
def get_report_by_type(report_type):
report_type_mapping = {
"research_report": generate_report_prompt,
"resource_report": generate_resource_report_prompt,
"outline_report": generate_outline_report_prompt,
}
return report_type_mapping[report_type]