Chain-of-Thought (CoT) Prompting: 1. State the complex problem clearly. 2. Append a phrase like 'Let's think step by step.' or 'Work this out in a step-by-step manner.' to your prompt. 3. The LLM will generate intermediate reasoning steps before providing the final answer. 4. Evaluate the thought process for logical coherence and accuracy.
Tree-of-Thought (ToT) Prompting: 1. Define the problem and desired output format. 2. Instruct the LLM to generate multiple 'thought steps' or 'reasoning paths' (e.g., 'Generate three distinct approaches to solve this problem.'). 3. For each thought step, ask the LLM to evaluate its viability or generate subsequent steps. 4. Select the most promising path or combine insights from different paths to form a final solution. This often requires iterative prompting.
Self-Consistency Techniques: 1. Generate multiple independent Chain-of-Thought responses to the same prompt. 2. Do this by either running the same CoT prompt multiple times or by slightly varying the 'think step by step' phrasing. 3. Compare the final answers from all generated responses. 4. The most frequently occurring answer across the different reasoning paths is considered the most reliable and consistent solution.
ReAct (Reasoning and Acting) Framework: 1. Define the AI agent's goal and available tools (e.g., search engine, calculator). 2. Prompt the LLM with a template that encourages it to alternate between 'Thought' (internal reasoning about the next step) and 'Action' (using a tool with specific inputs). 3. The LLM generates a Thought, then an Action. The tool's observation is fed back to the LLM. 4. This cycle continues until the LLM generates a 'Final Answer' or achieves the goal.
Program-Aided Language Models (PAL): 1. Present the LLM with a problem requiring precise computation or logical manipulation (e.g., complex math, data processing). 2. Instruct the LLM to write code (e.g., Python) to solve the problem, rather than directly providing the answer. 3. Execute the generated code in a secure environment. 4. Use the output of the executed code as the final answer or as input for further LLM reasoning. This separates reasoning from calculation.