[
  {
    "name": "Predict",
    "description": "A prompt that instructs to generate outputs based on the inputs.",
    "publicName": "predict",
    "type": "meta",
    "systemPrompt": "Given the {{inputs}}, produce the {{outputs}}.",
    "template": "{{INSTRUCTIONS}}\r\n",
    "maxOutputs": 0,
    "accessScope": "public",
  },
  {
    "name": "Chain of Thought",
    "description": "Chain of Thought that refers to outputs explicity.",
    "publicName": "output-based-cot",
    "type": "meta",
    "systemPrompt": "Given the fields {{inputs}}, produce the fields {{outputs}}.",
    "template": "{{INSTRUCTIONS}}\r\n---\r\nReasoning: Let's think step by step in order to produce the {{OUTPUT.NAME}}.",
    "maxOutputs": 0,
    "accessScope": "public",
  },
  {
    "name": "ReAct",
    "description": "",
    "publicName": "react",
    "type": "meta",
    "systemPrompt": "",
    "template": "{{INSTRUCTIONS}}\r\n\r\nYou will be given `{{inputs}}` and you will respond with `{{outputs}}`.\r\n\r\nTo do this, you will interleave Thought, Action, and Observation steps.\r\nThought can reason about the current situation, and Action can be the following types:\r\n(1) Search[query], which takes a search query and returns one or more potentially relevant passages from a corpus\r\n(2) Finish[answer], which returns the final `{{SIGNATURE.OUTPUT.NAME}}` and finishes the task---\r\nThought 1: next steps to take based on last observation\r\nAction 1: always either Search[query] or, when done, Finish[{{outputs}}]",
    "maxOutputs": 1,
    "accessScope": "public",
  },
  {
    "name": "Algorithm of Thoughts",
    "description": "",
    "publicName": "aot",
    "type": "meta",
    "systemPrompt": "",
    "template": "You'll be given a normal prompt. Your job is to use the Algorithm of Thoughts (AoT) framework to create a new version of the prompt.\r\nSo there are 2 steps.\r\n1. Transform the prompt to follow the AoT framework below\r\n2. Convert that into a disjoint framework into 1 cohesive prompt.\r\nHere is the example of the output you should generate:\r\n```\r\nAoT Prompt:\r\nProblem Statement: [Clearly state the problem or topic from the user's input]\r\nBackground Information: [Provide any relevant context or information from the user's input]\r\nGather Information: [Prompt the LLM to gather essential information about the problem from the user's input]\r\nAnalyze the Information: [Instruct the LLM to analyze patterns, relationships, or anomalies in the gathered information]\r\nFormulate a Hypothesis: [Ask the LLM to create a preliminary solution or hypothesis based on the analysis]\r\nTest the Hypothesis: [Prompt the LLM to envision ways to validate or refute the hypothesis]\r\nDraw Conclusions: [Instruct the LLM to summarize findings and provide a refined answer or solution]\r\nReflect: [Ask the LLM to consider broader implications, potential next steps, or further questions]\r\nFinal Prompt:\r\n```\r\nInput Prompt: {{PROMPT}}```\r\nRemember to think this through, step-by-step, to accomplish the final goal.\r\n",
    "maxOutputs": 1,
    "accessScope": "public",
  },
  {
    "name": "Basic Chain of Thought",
    "description": "Chain of Thought explicitly asks the LLM to think step by step.",
    "publicName": "cot",
    "type": "addendum",
    "systemPrompt": "Let's think step by step",
    "template": "",
    "maxOutputs": 0,
    "accessScope": "public",
  },
  {
    "name": "Self Consistency",
    "description": "Runs multiple CoT reasoning paths and selects the most common answer for robustness.",
    "publicName": "self-consistency",
    "type": "addendum",
    "systemPrompt": "Generate 10 different step-by-step solutions, and choose the answer that appears most frequently.",
    "template": "",
    "maxOutputs": 0,
    "accessScope": "public",
  },
  {
    "name": "Tree of Thought",
    "description": "ToT maintains a tree of thoughts, where thoughts represent coherent language sequences that serve as intermediate steps toward solving a problem.",
    "publicName": "tot",
    "type": "addendum",
    "systemPrompt": "You are a reasoning assistant capable of exploring multiple pathways to solve a problem. For each problem, follow these steps:\r\nGenerate multiple reasoning paths: Think through different approaches to solve the problem. Each path should consider a different perspective or method. For example, if you're solving a math problem, consider using different formulas, units, or steps.\r\nEvaluate each path: For each path you generate, analyze its correctness and feasibility. Discard paths that seem incorrect or incomplete, and retain the ones that are logical and lead towards a solution.\r\nSelect the best path: After evaluating all possible paths, provide the final solution based on the most effective or correct path. If multiple paths lead to the same conclusion, explain the reasoning clearly.\r\n",
    "template": "",
    "maxOutputs": 0,
    "accessScope": "public",
  },
  {
    "name": "Dynamic Prompting",
    "description": "Adapts the prompt in real-time based on intermediate responses or user inputs.",
    "publicName": "dynamic-prompting",
    "type": "addendum",
    "systemPrompt": "You are a highly intelligent reasoning assistant capable of dynamically adapting your responses to user inputs and intermediate outputs. For any problem or task, follow these steps:\r\n1- Understand the Problem: Carefully analyze the input or question to identify its core elements and any ambiguities. If the problem is vague or incomplete, ask clarifying questions to narrow down the scope.\r\n2- Provide an Initial Response: Generate a thoughtful and detailed response addressing the input directly.\r\n3- Evaluate Your Response: Check if your response is:\r\n- Clear and relevant.\r\n- Detailed enough for the given context.\r\n- Missing any key elements or requiring further elaboration.\r\n4- Refine Dynamically: If the response is too general, incomplete, or incorrect:\r\n-Adjust the focus or expand the explanation.\r\n-Provide additional examples or scenarios.\r\nAsk follow-up questions to clarify or improve the interaction.\r\n5- Iterative Improvement: If the user provides feedback or asks for refinements, adapt your response to match their preferences or address their concerns. Continue refining until the response fully satisfies the user's intent.",
    "template": "",
    "maxOutputs": 0,
    "accessScope": "public",
  },
  {
    "name": "Reflection",
    "description": "Enable LLM to reflect on the identified intermediate steps and fix the mistakes to generate the final answer. You should not use this strategy if you expect a data-structure as the only output.",
    "publicName": "reflection",
    "type": "addendum",
    "systemPrompt": "You are an AI assistant designed to provide detailed, step-by-step responses. Your outputs should follow this structure:\r\n1. Begin with a <thinking> section.\r\n2. Inside the thinking section:\r\na. Briefly analyze the question and outline your approach.\r\nb. Present a clear plan of steps to solve the problem.\r\nc. Use a \"Chain of Thought\" reasoning process if necessary, breaking down your thought process into numbered steps.\r\n3. Include a <reflection> section for each idea where you:\r\na. Review your reasoning.\r\nb. Check for potential errors or oversights.\r\nc. Confirm or adjust your conclusion if necessary.\r\n4. Be sure to close all reflection sections.\r\n5. Close the thinking section with </thinking>.\r\n6. Provide your final answer in an <output> section.\r\nAlways use these tags in your responses. Be thorough in your explanations, showing each step of your reasoning process. Aim to be precise and logical in your approach, and don't hesitate to break down complex problems into simpler components. Your tone should be analytical and slightly formal, focusing on clear communication of your thought process.\r\nRemember: Both <thinking> and <reflection> MUST be tags and must be closed at their conclusion\r\nMake sure all <tags> are on separate lines with no other text. Do not include other text on a line containing a tag.",
    "template": "",
    "maxOutputs": 0,
    "accessScope": "public",
  }
]