{
  "name": "Protologue: A Taxonomy of Prompting and LLM Techniques",
  "version": "1.0.0",
  "updated": "2026-10-10",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "url": "https://protologue.com/",
  "categories": [
    {
      "id": "foundations",
      "name": "Foundations",
      "description": "Core concepts of prompting — the parts of a prompt, how models consume it, and the basic zero-shot and few-shot paradigms."
    },
    {
      "id": "exemplars",
      "name": "Exemplars & In-Context Learning",
      "description": "How demonstrations inside a prompt are chosen, ordered, scaled, and calibrated, and what they actually teach the model."
    },
    {
      "id": "reasoning",
      "name": "Reasoning Elicitation",
      "description": "Techniques that get a model to produce intermediate reasoning, decompose problems, or explore multiple solution paths before answering."
    },
    {
      "id": "verification",
      "name": "Self-Critique & Verification",
      "description": "Techniques in which a model, or a set of models, checks, critiques, votes on, or revises outputs."
    },
    {
      "id": "retrieval-tools",
      "name": "Retrieval & Tool Use",
      "description": "Grounding generation in external information and letting models call functions, search, and other tools."
    },
    {
      "id": "agents",
      "name": "Agents & Orchestration",
      "description": "Patterns for composing multiple model calls, tools, and memory into workflows and autonomous agents."
    },
    {
      "id": "optimization",
      "name": "Prompt Optimization",
      "description": "Automatic and learned methods that search for, compress, or train better prompts."
    },
    {
      "id": "test-time",
      "name": "Reasoning Models & Test-Time Compute",
      "description": "Models trained to reason at length, and methods that improve answers by spending more computation at inference time."
    },
    {
      "id": "security",
      "name": "Security & Adversarial Prompting",
      "description": "Attacks that subvert a model's instructions and the defenses designed to resist them."
    },
    {
      "id": "failure-modes",
      "name": "Failure Modes & Evaluation",
      "description": "Systematic ways prompted models go wrong, and the evaluations used to measure them."
    }
  ],
  "terms": [
    {
      "id": "prompt",
      "code": "PTL-0001",
      "term": "Prompt",
      "aliases": [
        "input",
        "context"
      ],
      "category": "foundations",
      "definition": "A prompt is the complete input text, and optionally other media, that is given to a language model to condition its output, including instructions, context, examples, and the user's request.",
      "description": "In chat-based systems the prompt is assembled from several parts, such as a system prompt, the prior conversation turns, retrieved documents, and tool results. The model produces its output by predicting tokens conditioned on this entire input, so every part of the prompt can influence the response, not only the final question.",
      "example": null,
      "broader": [],
      "narrower": [
        "system-prompt",
        "prompt-template"
      ],
      "related": [
        "context-window",
        "context-engineering"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Language Models are Few-Shot Learners",
          "authors": "Brown et al.",
          "year": 2020,
          "url": "https://arxiv.org/abs/2005.14165"
        },
        {
          "title": "The Prompt Report: A Systematic Survey of Prompt Engineering Techniques",
          "authors": "Schulhoff et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2406.06608"
        }
      ],
      "url": "https://protologue.com/t/prompt/",
      "citation": "Protologue. (2026). Prompt. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0001). https://protologue.com/t/prompt/"
    },
    {
      "id": "prompt-engineering",
      "code": "PTL-0002",
      "term": "Prompt Engineering",
      "aliases": [
        "prompt design"
      ],
      "category": "foundations",
      "definition": "Prompt engineering is the practice of designing, testing, and iteratively refining prompts so that a language model reliably produces the desired output for a task.",
      "description": "It covers the wording of instructions, the choice and ordering of examples, output formatting constraints, and the decomposition of a task across multiple calls. As models and tooling matured, much of this work broadened into context engineering, which treats the whole information environment around a model call as the object being designed.",
      "example": null,
      "broader": [],
      "narrower": [
        "context-engineering"
      ],
      "related": [
        "prompt",
        "automatic-prompt-engineer"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "The Prompt Report: A Systematic Survey of Prompt Engineering Techniques",
          "authors": "Schulhoff et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2406.06608"
        },
        {
          "title": "Prompt engineering overview",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview"
        }
      ],
      "url": "https://protologue.com/t/prompt-engineering/",
      "citation": "Protologue. (2026). Prompt Engineering. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0002). https://protologue.com/t/prompt-engineering/"
    },
    {
      "id": "system-prompt",
      "code": "PTL-0003",
      "term": "System Prompt",
      "aliases": [
        "system message",
        "developer message",
        "system instruction"
      ],
      "category": "foundations",
      "definition": "A system prompt is a privileged instruction block, placed before the conversation, that sets a model's role, rules, tone, and constraints for every subsequent turn.",
      "description": "Chat APIs typically expose the system prompt as a separate message role. Models trained with an instruction hierarchy are taught to give system instructions precedence over conflicting user or tool content, which makes the system prompt the main lever for operator control and a frequent target of prompt-leaking attacks.",
      "example": null,
      "broader": [
        "prompt"
      ],
      "narrower": [],
      "related": [
        "instruction-hierarchy",
        "role-prompting",
        "prompt-leaking"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Training language models to follow instructions with human feedback",
          "authors": "Ouyang et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2203.02155"
        },
        {
          "title": "The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions",
          "authors": "Wallace et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2404.13208"
        }
      ],
      "url": "https://protologue.com/t/system-prompt/",
      "citation": "Protologue. (2026). System Prompt. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0003). https://protologue.com/t/system-prompt/"
    },
    {
      "id": "context-window",
      "code": "PTL-0004",
      "term": "Context Window",
      "aliases": [
        "context length",
        "context size"
      ],
      "category": "foundations",
      "definition": "The context window is the maximum number of tokens a language model can attend to in a single call, covering both the prompt and the generated output.",
      "description": "Anything outside the context window is invisible to the model unless it is re-inserted. Larger windows allow whole documents or codebases to be included, but research shows models do not use all positions equally well, which motivates retrieval, summarization, and careful placement of key information.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "token",
        "lost-in-the-middle",
        "needle-in-a-haystack",
        "context-engineering"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Attention Is All You Need",
          "authors": "Vaswani et al.",
          "year": 2017,
          "url": "https://arxiv.org/abs/1706.03762"
        },
        {
          "title": "Lost in the Middle: How Language Models Use Long Contexts",
          "authors": "Liu et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2307.03172"
        }
      ],
      "url": "https://protologue.com/t/context-window/",
      "citation": "Protologue. (2026). Context Window. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0004). https://protologue.com/t/context-window/"
    },
    {
      "id": "token",
      "code": "PTL-0005",
      "term": "Token",
      "aliases": [
        "subword",
        "BPE token"
      ],
      "category": "foundations",
      "definition": "A token is the basic unit of text a language model reads and writes, typically a word, word fragment, or character sequence produced by a subword tokenizer such as byte-pair encoding.",
      "description": "Context limits, pricing, and generation speed are all measured in tokens. Because tokenization splits text unevenly, character-level tasks such as counting letters or reversing strings are harder for models than they appear, and the same content can cost different numbers of tokens in different languages.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "context-window"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Neural Machine Translation of Rare Words with Subword Units",
          "authors": "Sennrich et al.",
          "year": 2015,
          "url": "https://arxiv.org/abs/1508.07909"
        }
      ],
      "url": "https://protologue.com/t/token/",
      "citation": "Protologue. (2026). Token. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0005). https://protologue.com/t/token/"
    },
    {
      "id": "temperature",
      "code": "PTL-0006",
      "term": "Temperature",
      "aliases": [
        "sampling temperature"
      ],
      "category": "foundations",
      "definition": "Temperature is a sampling parameter that rescales a model's output probabilities before a token is chosen; lower values make outputs more deterministic and higher values make them more varied.",
      "description": "At temperature zero the model approximately always picks its most likely token (greedy decoding). Techniques that rely on diverse samples, such as self-consistency and best-of-N, deliberately use a nonzero temperature, while extraction and classification tasks usually use a low one.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "top-p-sampling",
        "self-consistency",
        "best-of-n-sampling"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "The Curious Case of Neural Text Degeneration",
          "authors": "Holtzman et al.",
          "year": 2019,
          "url": "https://arxiv.org/abs/1904.09751"
        }
      ],
      "url": "https://protologue.com/t/temperature/",
      "citation": "Protologue. (2026). Temperature. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0006). https://protologue.com/t/temperature/"
    },
    {
      "id": "top-p-sampling",
      "code": "PTL-0007",
      "term": "Top-p Sampling",
      "aliases": [
        "nucleus sampling"
      ],
      "category": "foundations",
      "definition": "Top-p sampling, also called nucleus sampling, draws each next token only from the smallest set of candidates whose cumulative probability exceeds a threshold p.",
      "description": "It was proposed to avoid both the repetitive text produced by greedy or beam decoding and the incoherent text produced by sampling from the full distribution. It is usually combined with temperature.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "temperature"
      ],
      "introduced": 2019,
      "sources": [
        {
          "title": "The Curious Case of Neural Text Degeneration",
          "authors": "Holtzman et al.",
          "year": 2019,
          "url": "https://arxiv.org/abs/1904.09751"
        }
      ],
      "url": "https://protologue.com/t/top-p-sampling/",
      "citation": "Protologue. (2026). Top-p Sampling. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0007). https://protologue.com/t/top-p-sampling/"
    },
    {
      "id": "zero-shot-prompting",
      "code": "PTL-0008",
      "term": "Zero-shot Prompting",
      "aliases": [],
      "category": "foundations",
      "definition": "Zero-shot prompting asks a model to perform a task from an instruction alone, without any worked examples in the prompt.",
      "description": "Zero-shot performance improved dramatically with instruction tuning and preference training, which taught models to follow natural-language task descriptions. It is the default for most modern chat use, with examples added only when the format or judgment required is hard to describe.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "few-shot-prompting",
        "instruction-tuning",
        "zero-shot-chain-of-thought"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Language Models are Few-Shot Learners",
          "authors": "Brown et al.",
          "year": 2020,
          "url": "https://arxiv.org/abs/2005.14165"
        },
        {
          "title": "Finetuned Language Models Are Zero-Shot Learners",
          "authors": "Wei et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2109.01652"
        }
      ],
      "url": "https://protologue.com/t/zero-shot-prompting/",
      "citation": "Protologue. (2026). Zero-shot Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0008). https://protologue.com/t/zero-shot-prompting/"
    },
    {
      "id": "few-shot-prompting",
      "code": "PTL-0009",
      "term": "Few-shot Prompting",
      "aliases": [
        "k-shot prompting",
        "in-context examples"
      ],
      "category": "foundations",
      "definition": "Few-shot prompting includes a small number of input-output examples in the prompt so the model can infer the task and the desired format from demonstrations.",
      "description": "Popularized by the GPT-3 paper, it allows a model to perform new tasks without any weight updates. Results are sensitive to which examples are chosen, their order, and their label balance, which spawned a body of work on exemplar selection and calibration.",
      "example": "Classify sentiment.\nReview: \"Arrived broken.\" -> negative\nReview: \"Works perfectly.\" -> positive\nReview: \"Battery died in a day.\" ->\n",
      "broader": [
        "in-context-learning"
      ],
      "narrower": [
        "exemplar-selection",
        "exemplar-ordering",
        "few-shot-calibration"
      ],
      "related": [
        "zero-shot-prompting",
        "many-shot-in-context-learning"
      ],
      "introduced": 2020,
      "sources": [
        {
          "title": "Language Models are Few-Shot Learners",
          "authors": "Brown et al.",
          "year": 2020,
          "url": "https://arxiv.org/abs/2005.14165"
        }
      ],
      "url": "https://protologue.com/t/few-shot-prompting/",
      "citation": "Protologue. (2026). Few-shot Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0009). https://protologue.com/t/few-shot-prompting/"
    },
    {
      "id": "instruction-tuning",
      "code": "PTL-0010",
      "term": "Instruction Tuning",
      "aliases": [
        "instruction fine-tuning",
        "supervised fine-tuning",
        "SFT"
      ],
      "category": "foundations",
      "definition": "Instruction tuning is fine-tuning a pretrained language model on many tasks phrased as natural-language instructions, so that it follows unseen instructions zero-shot.",
      "description": "The FLAN work showed that tuning on dozens of instruction-formatted datasets substantially improved zero-shot performance on held-out tasks. Combined with reinforcement learning from human feedback, it produced the instruction-following chat models that most prompting techniques now target.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "zero-shot-prompting",
        "rlhf"
      ],
      "introduced": 2021,
      "sources": [
        {
          "title": "Finetuned Language Models Are Zero-Shot Learners",
          "authors": "Wei et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2109.01652"
        },
        {
          "title": "Training language models to follow instructions with human feedback",
          "authors": "Ouyang et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2203.02155"
        }
      ],
      "url": "https://protologue.com/t/instruction-tuning/",
      "citation": "Protologue. (2026). Instruction Tuning. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0010). https://protologue.com/t/instruction-tuning/"
    },
    {
      "id": "rlhf",
      "code": "PTL-0011",
      "term": "Reinforcement Learning from Human Feedback",
      "aliases": [
        "RLHF",
        "preference tuning"
      ],
      "category": "foundations",
      "definition": "Reinforcement learning from human feedback (RLHF) trains a language model to produce outputs people prefer, by learning a reward model from human comparisons and optimizing the model against it.",
      "description": "InstructGPT showed that RLHF made a much smaller model preferred over a far larger base model. RLHF shapes how models respond to prompts, including their helpfulness and refusals, and is linked to failure modes such as sycophancy. Direct preference optimization is a widely used simpler alternative.",
      "example": null,
      "broader": [],
      "narrower": [
        "direct-preference-optimization"
      ],
      "related": [
        "instruction-tuning",
        "constitutional-ai",
        "sycophancy"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Training language models to follow instructions with human feedback",
          "authors": "Ouyang et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2203.02155"
        }
      ],
      "url": "https://protologue.com/t/rlhf/",
      "citation": "Protologue. (2026). Reinforcement Learning from Human Feedback. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0011). https://protologue.com/t/rlhf/"
    },
    {
      "id": "direct-preference-optimization",
      "code": "PTL-0012",
      "term": "Direct Preference Optimization",
      "aliases": [
        "DPO"
      ],
      "category": "foundations",
      "definition": "Direct preference optimization (DPO) aligns a language model to human preferences by training directly on preferred-versus-rejected response pairs, without fitting a separate reward model or running reinforcement learning.",
      "description": "DPO reframes the RLHF objective as a simple classification-style loss over preference pairs. It became a common alternative to RLHF because it is stable and cheap to run.",
      "example": null,
      "broader": [
        "rlhf"
      ],
      "narrower": [],
      "related": [],
      "introduced": 2023,
      "sources": [
        {
          "title": "Direct Preference Optimization: Your Language Model is Secretly a Reward Model",
          "authors": "Rafailov et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2305.18290"
        }
      ],
      "url": "https://protologue.com/t/direct-preference-optimization/",
      "citation": "Protologue. (2026). Direct Preference Optimization. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0012). https://protologue.com/t/direct-preference-optimization/"
    },
    {
      "id": "prompt-template",
      "code": "PTL-0013",
      "term": "Prompt Template",
      "aliases": [
        "prompt scaffold"
      ],
      "category": "foundations",
      "definition": "A prompt template is a reusable prompt with placeholder variables that are filled in at run time, separating the fixed instructions from the per-request data.",
      "description": "Templates make prompts testable and versionable, and they are the unit optimized by frameworks such as DSPy. Keeping untrusted data in clearly delimited slots also supports defenses against prompt injection.",
      "example": null,
      "broader": [
        "prompt"
      ],
      "narrower": [],
      "related": [
        "delimiters",
        "dspy",
        "spotlighting"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "The Prompt Report: A Systematic Survey of Prompt Engineering Techniques",
          "authors": "Schulhoff et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2406.06608"
        }
      ],
      "url": "https://protologue.com/t/prompt-template/",
      "citation": "Protologue. (2026). Prompt Template. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0013). https://protologue.com/t/prompt-template/"
    },
    {
      "id": "delimiters",
      "code": "PTL-0014",
      "term": "Delimiters",
      "aliases": [
        "XML tags",
        "separators"
      ],
      "category": "foundations",
      "definition": "Delimiters are explicit markers, such as XML-style tags, triple quotes, or headings, that separate the parts of a prompt so the model can tell instructions, data, and examples apart.",
      "description": "Vendor guidance recommends delimiters to reduce ambiguity, make outputs easier to parse, and lower the chance that content inside a document is mistaken for an instruction. Tags can also be requested in the output for reliable extraction.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "prompt-template",
        "structured-outputs",
        "spotlighting"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Prompting best practices",
          "authors": "Anthropic",
          "year": 2026,
          "url": "https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices"
        },
        {
          "title": "Prompt engineering",
          "authors": "OpenAI",
          "year": 2024,
          "url": "https://developers.openai.com/api/docs/guides/prompt-engineering"
        }
      ],
      "url": "https://protologue.com/t/delimiters/",
      "citation": "Protologue. (2026). Delimiters. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0014). https://protologue.com/t/delimiters/"
    },
    {
      "id": "prefill",
      "code": "PTL-0015",
      "term": "Prefill",
      "aliases": [
        "response prefilling",
        "output priming",
        "assistant prefill"
      ],
      "category": "foundations",
      "definition": "Prefill is the technique of writing the first part of the model's response yourself, so that the model continues from that text and is steered into a specific format or direction.",
      "description": "Starting the assistant turn with an opening brace pushes the model toward JSON output, and starting with a heading or a character's name can enforce structure or persona. Support is model-specific and declining. Anthropic's documentation states that prefilling the final assistant turn is not supported on Claude 4.6 models and later, and recommends explicit instructions or structured outputs instead.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "structured-outputs",
        "delimiters"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Prompting best practices",
          "authors": "Anthropic",
          "year": 2026,
          "url": "https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices"
        }
      ],
      "url": "https://protologue.com/t/prefill/",
      "citation": "Protologue. (2026). Prefill. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0015). https://protologue.com/t/prefill/"
    },
    {
      "id": "role-prompting",
      "code": "PTL-0016",
      "term": "Role Prompting",
      "aliases": [
        "persona prompting",
        "role-play prompting"
      ],
      "category": "foundations",
      "definition": "Role prompting assigns the model a persona or professional role, such as \"You are an experienced tax accountant,\" to shape its tone, vocabulary, and focus.",
      "description": "Role prompts reliably change style and framing. Evidence that they improve factual accuracy is mixed, with some studies finding gains in reasoning tasks and a large evaluation finding that adding personas to system prompts did not consistently improve performance.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "system-prompt"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Better Zero-Shot Reasoning with Role-Play Prompting",
          "authors": "Kong et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2308.07702"
        },
        {
          "title": "When \"A Helpful Assistant\" Is Not Really Helpful: Personas in System Prompts Do Not Improve Performances of Large Language Models",
          "authors": "Zheng et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2311.10054"
        }
      ],
      "url": "https://protologue.com/t/role-prompting/",
      "citation": "Protologue. (2026). Role Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0016). https://protologue.com/t/role-prompting/"
    },
    {
      "id": "in-context-learning",
      "code": "PTL-0017",
      "term": "In-Context Learning",
      "aliases": [
        "ICL"
      ],
      "category": "exemplars",
      "definition": "In-context learning (ICL) is a language model's ability to perform a task by conditioning on instructions or demonstrations in its prompt, without any update to its weights.",
      "description": "Identified as an emergent capability of large pretrained models in the GPT-3 paper, ICL underlies few-shot prompting. Studies show that models often rely more on the format and label space of demonstrations than on whether the demonstration labels are correct.",
      "example": null,
      "broader": [],
      "narrower": [
        "few-shot-prompting",
        "demonstration-label-sensitivity",
        "many-shot-in-context-learning"
      ],
      "related": [],
      "introduced": 2020,
      "sources": [
        {
          "title": "Language Models are Few-Shot Learners",
          "authors": "Brown et al.",
          "year": 2020,
          "url": "https://arxiv.org/abs/2005.14165"
        }
      ],
      "url": "https://protologue.com/t/in-context-learning/",
      "citation": "Protologue. (2026). In-Context Learning. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0017). https://protologue.com/t/in-context-learning/"
    },
    {
      "id": "demonstration-label-sensitivity",
      "code": "PTL-0018",
      "term": "Demonstration Label Sensitivity",
      "aliases": [
        "role of demonstrations"
      ],
      "category": "exemplars",
      "definition": "Demonstration label sensitivity refers to how much a model's few-shot performance depends on whether the example labels are correct; research found that randomly replacing labels often hurts performance only slightly.",
      "description": "Min et al. showed that demonstrations mainly supply the label space, the input distribution, and the format of the task. This suggests few-shot examples work largely by specifying what the task looks like rather than by teaching the input-label mapping.",
      "example": null,
      "broader": [
        "in-context-learning"
      ],
      "narrower": [],
      "related": [
        "few-shot-prompting",
        "exemplar-selection"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?",
          "authors": "Min et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2202.12837"
        }
      ],
      "url": "https://protologue.com/t/demonstration-label-sensitivity/",
      "citation": "Protologue. (2026). Demonstration Label Sensitivity. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0018). https://protologue.com/t/demonstration-label-sensitivity/"
    },
    {
      "id": "exemplar-selection",
      "code": "PTL-0019",
      "term": "Exemplar Selection",
      "aliases": [
        "demonstration selection",
        "dynamic few-shot",
        "kNN prompting"
      ],
      "category": "exemplars",
      "definition": "Exemplar selection is the choice of which demonstrations to include in a few-shot prompt, commonly by retrieving the examples most semantically similar to the current input.",
      "description": "Liu et al. showed that retrieving nearest-neighbor examples by embedding similarity outperformed random selection. Selection can also target diversity, difficulty, or the model's uncertainty, as in active prompting.",
      "example": null,
      "broader": [
        "few-shot-prompting"
      ],
      "narrower": [
        "active-prompting"
      ],
      "related": [
        "exemplar-ordering",
        "retrieval-augmented-generation"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "What Makes Good In-Context Examples for GPT-3?",
          "authors": "Liu et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2101.06804"
        }
      ],
      "url": "https://protologue.com/t/exemplar-selection/",
      "citation": "Protologue. (2026). Exemplar Selection. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0019). https://protologue.com/t/exemplar-selection/"
    },
    {
      "id": "exemplar-ordering",
      "code": "PTL-0020",
      "term": "Exemplar Ordering",
      "aliases": [
        "demonstration order",
        "order sensitivity"
      ],
      "category": "exemplars",
      "definition": "Exemplar ordering is the arrangement of demonstrations within a few-shot prompt, which can swing accuracy from near state-of-the-art to near chance for the same set of examples.",
      "description": "Lu et al. documented this order sensitivity and proposed selecting performant orderings using a probe set generated by the model itself. The effect is a key reason few-shot results should be reported across several permutations.",
      "example": null,
      "broader": [
        "few-shot-prompting"
      ],
      "narrower": [],
      "related": [
        "exemplar-selection",
        "few-shot-calibration",
        "prompt-sensitivity"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity",
          "authors": "Lu et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2104.08786"
        }
      ],
      "url": "https://protologue.com/t/exemplar-ordering/",
      "citation": "Protologue. (2026). Exemplar Ordering. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0020). https://protologue.com/t/exemplar-ordering/"
    },
    {
      "id": "few-shot-calibration",
      "code": "PTL-0021",
      "term": "Few-shot Calibration",
      "aliases": [
        "contextual calibration",
        "calibrate before use"
      ],
      "category": "exemplars",
      "definition": "Few-shot calibration corrects a model's systematic biases toward particular answers, such as the most frequent or most recent label in the examples, by adjusting output probabilities measured on a content-free input.",
      "description": "Zhao et al. identified majority-label bias, recency bias, and common-token bias in few-shot prompting, and proposed contextual calibration, which estimates the bias from an input such as \"N/A\" and rescales predictions to neutralize it.",
      "example": null,
      "broader": [
        "few-shot-prompting"
      ],
      "narrower": [],
      "related": [
        "exemplar-ordering",
        "prompt-sensitivity"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Calibrate Before Use: Improving Few-Shot Performance of Language Models",
          "authors": "Zhao et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2102.09690"
        }
      ],
      "url": "https://protologue.com/t/few-shot-calibration/",
      "citation": "Protologue. (2026). Few-shot Calibration. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0021). https://protologue.com/t/few-shot-calibration/"
    },
    {
      "id": "many-shot-in-context-learning",
      "code": "PTL-0022",
      "term": "Many-shot In-Context Learning",
      "aliases": [
        "many-shot ICL",
        "long-context ICL"
      ],
      "category": "exemplars",
      "definition": "Many-shot in-context learning places hundreds or thousands of demonstrations in a long-context prompt, often yielding large gains over few-shot prompting.",
      "description": "Agarwal et al. found consistent improvements as the number of shots grew into the hundreds, and introduced variants that use model-generated rationales or unlabeled problems. The same scaling behavior underlies the many-shot jailbreaking attack.",
      "example": null,
      "broader": [
        "in-context-learning"
      ],
      "narrower": [],
      "related": [
        "few-shot-prompting",
        "many-shot-jailbreaking",
        "context-window"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Many-Shot In-Context Learning",
          "authors": "Agarwal et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2404.11018"
        }
      ],
      "url": "https://protologue.com/t/many-shot-in-context-learning/",
      "citation": "Protologue. (2026). Many-shot In-Context Learning. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0022). https://protologue.com/t/many-shot-in-context-learning/"
    },
    {
      "id": "active-prompting",
      "code": "PTL-0023",
      "term": "Active Prompting",
      "aliases": [
        "Active-Prompt"
      ],
      "category": "exemplars",
      "definition": "Active prompting selects which questions to annotate with chain-of-thought exemplars by choosing those on which the model is most uncertain, measured by disagreement across sampled answers.",
      "description": "Borrowing from active learning, it focuses human annotation effort on the examples most informative for the model, rather than on a fixed or random set.",
      "example": null,
      "broader": [
        "exemplar-selection"
      ],
      "narrower": [],
      "related": [
        "chain-of-thought",
        "self-consistency"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Active Prompting with Chain-of-Thought for Large Language Models",
          "authors": "Diao et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2302.12246"
        }
      ],
      "url": "https://protologue.com/t/active-prompting/",
      "citation": "Protologue. (2026). Active Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0023). https://protologue.com/t/active-prompting/"
    },
    {
      "id": "chain-of-thought",
      "code": "PTL-0024",
      "term": "Chain-of-Thought Prompting",
      "aliases": [
        "CoT",
        "step-by-step reasoning"
      ],
      "category": "reasoning",
      "definition": "Chain-of-thought (CoT) prompting elicits a sequence of intermediate reasoning steps from a language model before its final answer, which improves performance on multi-step arithmetic, commonsense, and symbolic reasoning tasks.",
      "description": "Wei et al. introduced CoT by including worked examples with step-by-step reasoning in a few-shot prompt, and found the benefit emerged mainly in large models. It is the root of a large family of techniques, including zero-shot CoT, self-consistency, and tree of thoughts, and of the extended reasoning trained into modern reasoning models.",
      "example": "Q: Roger has 5 balls. He buys 2 cans of 3 balls each. How many balls does he have?\nA: He starts with 5. Two cans of 3 is 6. 5 + 6 = 11. The answer is 11.\n",
      "broader": [],
      "narrower": [
        "zero-shot-chain-of-thought",
        "auto-cot",
        "self-consistency",
        "tree-of-thoughts",
        "contrastive-chain-of-thought",
        "thread-of-thought"
      ],
      "related": [
        "scratchpad",
        "reasoning-model",
        "unfaithful-chain-of-thought"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models",
          "authors": "Wei et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2201.11903"
        }
      ],
      "url": "https://protologue.com/t/chain-of-thought/",
      "citation": "Protologue. (2026). Chain-of-Thought Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0024). https://protologue.com/t/chain-of-thought/"
    },
    {
      "id": "zero-shot-chain-of-thought",
      "code": "PTL-0025",
      "term": "Zero-shot Chain-of-Thought",
      "aliases": [
        "zero-shot CoT",
        "let's think step by step"
      ],
      "category": "reasoning",
      "definition": "Zero-shot chain-of-thought prompting triggers step-by-step reasoning without examples by appending a cue such as \"Let's think step by step\" to the question.",
      "description": "Kojima et al. showed this single phrase produced large accuracy gains on arithmetic and logic benchmarks. The method uses a second prompt to extract the final answer from the generated reasoning.",
      "example": null,
      "broader": [
        "chain-of-thought"
      ],
      "narrower": [
        "plan-and-solve-prompting"
      ],
      "related": [
        "zero-shot-prompting"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Large Language Models are Zero-Shot Reasoners",
          "authors": "Kojima et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2205.11916"
        }
      ],
      "url": "https://protologue.com/t/zero-shot-chain-of-thought/",
      "citation": "Protologue. (2026). Zero-shot Chain-of-Thought. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0025). https://protologue.com/t/zero-shot-chain-of-thought/"
    },
    {
      "id": "scratchpad",
      "code": "PTL-0026",
      "term": "Scratchpad",
      "aliases": [
        "intermediate computation"
      ],
      "category": "reasoning",
      "definition": "A scratchpad is a region of model output reserved for intermediate computation, which the model writes before its final answer so that multi-step calculations can be carried out explicitly.",
      "description": "Nye et al. trained models to emit intermediate steps for tasks like long addition and program execution, an important precursor to chain-of-thought prompting. In practice the term also refers to private reasoning sections that are hidden from end users.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "chain-of-thought",
        "extended-thinking"
      ],
      "introduced": 2021,
      "sources": [
        {
          "title": "Show Your Work: Scratchpads for Intermediate Computation with Language Models",
          "authors": "Nye et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2112.00114"
        }
      ],
      "url": "https://protologue.com/t/scratchpad/",
      "citation": "Protologue. (2026). Scratchpad. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0026). https://protologue.com/t/scratchpad/"
    },
    {
      "id": "auto-cot",
      "code": "PTL-0027",
      "term": "Automatic Chain-of-Thought",
      "aliases": [
        "Auto-CoT"
      ],
      "category": "reasoning",
      "definition": "Automatic chain-of-thought (Auto-CoT) builds chain-of-thought demonstrations without manual writing, by clustering questions for diversity and generating a reasoning chain for a representative of each cluster with zero-shot CoT.",
      "description": "Diversity across clusters limits the damage from mistakes in any single generated chain, and the approach matched manually written CoT exemplars on several benchmarks.",
      "example": null,
      "broader": [
        "chain-of-thought"
      ],
      "narrower": [],
      "related": [
        "zero-shot-chain-of-thought",
        "exemplar-selection"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Automatic Chain of Thought Prompting in Large Language Models",
          "authors": "Zhang et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2210.03493"
        }
      ],
      "url": "https://protologue.com/t/auto-cot/",
      "citation": "Protologue. (2026). Automatic Chain-of-Thought. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0027). https://protologue.com/t/auto-cot/"
    },
    {
      "id": "self-consistency",
      "code": "PTL-0028",
      "term": "Self-Consistency",
      "aliases": [
        "majority voting",
        "CoT-SC"
      ],
      "category": "reasoning",
      "definition": "Self-consistency samples multiple chain-of-thought reasoning paths for the same question and returns the answer that appears most often, rather than relying on a single greedy decode.",
      "description": "Wang et al. found this majority vote substantially improved chain-of-thought accuracy on arithmetic and commonsense benchmarks. It trades extra inference cost for reliability and is an early form of test-time compute scaling.",
      "example": null,
      "broader": [
        "chain-of-thought"
      ],
      "narrower": [
        "universal-self-consistency"
      ],
      "related": [
        "best-of-n-sampling",
        "test-time-compute-scaling",
        "temperature"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Self-Consistency Improves Chain of Thought Reasoning in Language Models",
          "authors": "Wang et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2203.11171"
        }
      ],
      "url": "https://protologue.com/t/self-consistency/",
      "citation": "Protologue. (2026). Self-Consistency. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0028). https://protologue.com/t/self-consistency/"
    },
    {
      "id": "universal-self-consistency",
      "code": "PTL-0029",
      "term": "Universal Self-Consistency",
      "aliases": [],
      "category": "reasoning",
      "definition": "Universal self-consistency extends self-consistency to free-form outputs by asking the model itself to select the most consistent response among several samples, instead of counting exact-match answers.",
      "description": "This makes sampling-and-selecting usable for tasks such as summarization and open-ended question answering, where answers rarely match word for word.",
      "example": null,
      "broader": [
        "self-consistency"
      ],
      "narrower": [],
      "related": [
        "llm-as-a-judge"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Universal Self-Consistency for Large Language Model Generation",
          "authors": "Chen et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2311.17311"
        }
      ],
      "url": "https://protologue.com/t/universal-self-consistency/",
      "citation": "Protologue. (2026). Universal Self-Consistency. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0029). https://protologue.com/t/universal-self-consistency/"
    },
    {
      "id": "least-to-most-prompting",
      "code": "PTL-0030",
      "term": "Least-to-Most Prompting",
      "aliases": [
        "problem decomposition"
      ],
      "category": "reasoning",
      "definition": "Least-to-most prompting first asks the model to break a complex problem into simpler subproblems, then solves them in order, feeding each answer into the next.",
      "description": "Zhou et al. showed it generalizes to problems harder than those in the examples, a weakness of standard chain-of-thought, with strong results on compositional generalization benchmarks.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "chain-of-thought",
        "plan-and-solve-prompting",
        "self-ask",
        "prompt-chaining"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Least-to-Most Prompting Enables Complex Reasoning in Large Language Models",
          "authors": "Zhou et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2205.10625"
        }
      ],
      "url": "https://protologue.com/t/least-to-most-prompting/",
      "citation": "Protologue. (2026). Least-to-Most Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0030). https://protologue.com/t/least-to-most-prompting/"
    },
    {
      "id": "plan-and-solve-prompting",
      "code": "PTL-0031",
      "term": "Plan-and-Solve Prompting",
      "aliases": [
        "PS prompting",
        "PS+"
      ],
      "category": "reasoning",
      "definition": "Plan-and-solve prompting is a zero-shot method that instructs the model to first devise a plan dividing the task into subtasks and then carry out the plan step by step.",
      "description": "It targets missing-step and calculation errors seen in zero-shot chain-of-thought, with an extended version that asks the model to extract relevant variables and compute carefully.",
      "example": null,
      "broader": [
        "zero-shot-chain-of-thought"
      ],
      "narrower": [],
      "related": [
        "least-to-most-prompting"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models",
          "authors": "Wang et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2305.04091"
        }
      ],
      "url": "https://protologue.com/t/plan-and-solve-prompting/",
      "citation": "Protologue. (2026). Plan-and-Solve Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0031). https://protologue.com/t/plan-and-solve-prompting/"
    },
    {
      "id": "step-back-prompting",
      "code": "PTL-0032",
      "term": "Step-Back Prompting",
      "aliases": [
        "abstraction prompting"
      ],
      "category": "reasoning",
      "definition": "Step-back prompting has the model first answer a more general, abstract question about the underlying principle, then use that answer to reason about the original specific question.",
      "description": "For a physics question, the step-back question might ask which law applies. Zheng et al. reported gains on science, multi-hop, and knowledge-intensive question answering.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "chain-of-thought",
        "generated-knowledge-prompting"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models",
          "authors": "Zheng et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2310.06117"
        }
      ],
      "url": "https://protologue.com/t/step-back-prompting/",
      "citation": "Protologue. (2026). Step-Back Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0032). https://protologue.com/t/step-back-prompting/"
    },
    {
      "id": "tree-of-thoughts",
      "code": "PTL-0033",
      "term": "Tree of Thoughts",
      "aliases": [
        "ToT"
      ],
      "category": "reasoning",
      "definition": "Tree of Thoughts (ToT) lets a model explore multiple reasoning branches as a search tree, evaluating partial solutions and backtracking, rather than committing to a single left-to-right chain of thought.",
      "description": "Yao et al. combined model-generated candidate thoughts, model self-evaluation of states, and breadth- or depth-first search, producing large gains on tasks such as the Game of 24 that require planning or lookahead.",
      "example": null,
      "broader": [
        "chain-of-thought"
      ],
      "narrower": [
        "graph-of-thoughts"
      ],
      "related": [
        "self-consistency",
        "test-time-compute-scaling"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Tree of Thoughts: Deliberate Problem Solving with Large Language Models",
          "authors": "Yao et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2305.10601"
        }
      ],
      "url": "https://protologue.com/t/tree-of-thoughts/",
      "citation": "Protologue. (2026). Tree of Thoughts. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0033). https://protologue.com/t/tree-of-thoughts/"
    },
    {
      "id": "graph-of-thoughts",
      "code": "PTL-0034",
      "term": "Graph of Thoughts",
      "aliases": [],
      "category": "reasoning",
      "definition": "Graph of Thoughts (GoT) models a language model's reasoning as an arbitrary graph, in which thoughts can be combined, refined, and looped back on, generalizing chain and tree structures.",
      "description": "Aggregation of several partial solutions into one, such as merging sorted sublists, is the key operation GoT adds over tree-shaped search.",
      "example": null,
      "broader": [
        "tree-of-thoughts"
      ],
      "narrower": [],
      "related": [
        "chain-of-thought"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Graph of Thoughts: Solving Elaborate Problems with Large Language Models",
          "authors": "Besta et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2308.09687"
        }
      ],
      "url": "https://protologue.com/t/graph-of-thoughts/",
      "citation": "Protologue. (2026). Graph of Thoughts. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0034). https://protologue.com/t/graph-of-thoughts/"
    },
    {
      "id": "skeleton-of-thought",
      "code": "PTL-0035",
      "term": "Skeleton-of-Thought",
      "aliases": [],
      "category": "reasoning",
      "definition": "Skeleton-of-thought first asks the model for a brief outline of its answer, then expands each outline point in parallel, reducing end-to-end generation latency.",
      "description": "Because the points are expanded independently, it suits list-like answers better than tightly sequential reasoning.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "parallelization",
        "prompt-chaining"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Skeleton-of-Thought: Prompting LLMs for Efficient Parallel Generation",
          "authors": "Ning et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2307.15337"
        }
      ],
      "url": "https://protologue.com/t/skeleton-of-thought/",
      "citation": "Protologue. (2026). Skeleton-of-Thought. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0035). https://protologue.com/t/skeleton-of-thought/"
    },
    {
      "id": "analogical-prompting",
      "code": "PTL-0036",
      "term": "Analogical Prompting",
      "aliases": [],
      "category": "reasoning",
      "definition": "Analogical prompting asks the model to recall or generate relevant example problems and their solutions on its own before solving the target problem, removing the need for hand-written exemplars.",
      "description": "Inspired by how people draw on analogous past experience, the self-generated examples are tailored to each problem rather than fixed for the whole task.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "few-shot-prompting",
        "generated-knowledge-prompting"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Large Language Models as Analogical Reasoners",
          "authors": "Yasunaga et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2310.01714"
        }
      ],
      "url": "https://protologue.com/t/analogical-prompting/",
      "citation": "Protologue. (2026). Analogical Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0036). https://protologue.com/t/analogical-prompting/"
    },
    {
      "id": "self-discover",
      "code": "PTL-0037",
      "term": "Self-Discover",
      "aliases": [],
      "category": "reasoning",
      "definition": "Self-Discover has the model compose a task-specific reasoning structure by selecting, adapting, and combining general reasoning modules, such as critical thinking or step-by-step analysis, before solving instances of the task.",
      "description": "The structure is discovered once per task and then reused, so it costs far fewer inference calls than sampling-heavy methods like self-consistency.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "chain-of-thought",
        "meta-prompting"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Self-Discover: Large Language Models Self-Compose Reasoning Structures",
          "authors": "Zhou et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2402.03620"
        }
      ],
      "url": "https://protologue.com/t/self-discover/",
      "citation": "Protologue. (2026). Self-Discover. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0037). https://protologue.com/t/self-discover/"
    },
    {
      "id": "contrastive-chain-of-thought",
      "code": "PTL-0038",
      "term": "Contrastive Chain-of-Thought",
      "aliases": [],
      "category": "reasoning",
      "definition": "Contrastive chain-of-thought adds both valid and deliberately invalid reasoning demonstrations to a prompt, so the model learns which mistakes to avoid as well as what correct reasoning looks like.",
      "description": "The invalid demonstrations can be generated automatically by perturbing correct reasoning chains.",
      "example": null,
      "broader": [
        "chain-of-thought"
      ],
      "narrower": [],
      "related": [],
      "introduced": 2023,
      "sources": [
        {
          "title": "Contrastive Chain-of-Thought Prompting",
          "authors": "Chia et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2311.09277"
        }
      ],
      "url": "https://protologue.com/t/contrastive-chain-of-thought/",
      "citation": "Protologue. (2026). Contrastive Chain-of-Thought. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0038). https://protologue.com/t/contrastive-chain-of-thought/"
    },
    {
      "id": "thread-of-thought",
      "code": "PTL-0039",
      "term": "Thread of Thought",
      "aliases": [],
      "category": "reasoning",
      "definition": "Thread of Thought is a prompting strategy for long, chaotic contexts that asks the model to walk through the context in manageable parts, summarizing and analyzing each before answering.",
      "description": "A typical trigger asks the model to go through the context step by step, summarizing and analyzing as it goes.",
      "example": null,
      "broader": [
        "chain-of-thought"
      ],
      "narrower": [],
      "related": [
        "lost-in-the-middle",
        "system-2-attention"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Thread of Thought Unraveling Chaotic Contexts",
          "authors": "Zhou et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2311.08734"
        }
      ],
      "url": "https://protologue.com/t/thread-of-thought/",
      "citation": "Protologue. (2026). Thread of Thought. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0039). https://protologue.com/t/thread-of-thought/"
    },
    {
      "id": "system-2-attention",
      "code": "PTL-0040",
      "term": "System 2 Attention",
      "aliases": [
        "S2A"
      ],
      "category": "reasoning",
      "definition": "System 2 Attention (S2A) first prompts the model to rewrite the input so that it keeps only the relevant, unbiased content, then answers using the rewritten context.",
      "description": "Weston and Sukhbaatar showed this reduces the influence of irrelevant or opinionated text in the prompt, improving factuality and reducing sycophancy toward opinions stated in the question.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "thread-of-thought",
        "sycophancy",
        "rephrase-and-respond"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "System 2 Attention (is something you might need too)",
          "authors": "Weston & Sukhbaatar",
          "year": 2023,
          "url": "https://arxiv.org/abs/2311.11829"
        }
      ],
      "url": "https://protologue.com/t/system-2-attention/",
      "citation": "Protologue. (2026). System 2 Attention. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0040). https://protologue.com/t/system-2-attention/"
    },
    {
      "id": "rephrase-and-respond",
      "code": "PTL-0041",
      "term": "Rephrase and Respond",
      "aliases": [
        "RaR"
      ],
      "category": "reasoning",
      "definition": "Rephrase and Respond (RaR) asks the model to rephrase and expand the user's question in its own words before answering, reducing misunderstandings caused by ambiguous phrasing.",
      "description": "The rephrasing can be done in the same response or by one model for another, as a two-step variant.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "system-2-attention"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Rephrase and Respond: Let Large Language Models Ask Better Questions for Themselves",
          "authors": "Deng et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2311.04205"
        }
      ],
      "url": "https://protologue.com/t/rephrase-and-respond/",
      "citation": "Protologue. (2026). Rephrase and Respond. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0041). https://protologue.com/t/rephrase-and-respond/"
    },
    {
      "id": "self-ask",
      "code": "PTL-0042",
      "term": "Self-Ask",
      "aliases": [],
      "category": "reasoning",
      "definition": "Self-ask prompting has the model explicitly pose and answer follow-up sub-questions before answering a multi-hop question, a format that can plug a search engine in to answer each sub-question.",
      "description": "Press et al. used it to study the compositionality gap, the tendency of models to answer each sub-question correctly yet fail the composed question.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "least-to-most-prompting",
        "react"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Measuring and Narrowing the Compositionality Gap in Language Models",
          "authors": "Press et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2210.03350"
        }
      ],
      "url": "https://protologue.com/t/self-ask/",
      "citation": "Protologue. (2026). Self-Ask. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0042). https://protologue.com/t/self-ask/"
    },
    {
      "id": "maieutic-prompting",
      "code": "PTL-0043",
      "term": "Maieutic Prompting",
      "aliases": [],
      "category": "reasoning",
      "definition": "Maieutic prompting generates a tree of recursive explanations for and against an answer, then infers the most logically consistent answer from the relations among them.",
      "description": "Named after the Socratic method, it is designed to tolerate individual explanations that are wrong or inconsistent.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "self-consistency",
        "chain-of-verification"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Maieutic Prompting: Logically Consistent Reasoning with Recursive Explanations",
          "authors": "Jung et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2205.11822"
        }
      ],
      "url": "https://protologue.com/t/maieutic-prompting/",
      "citation": "Protologue. (2026). Maieutic Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0043). https://protologue.com/t/maieutic-prompting/"
    },
    {
      "id": "generated-knowledge-prompting",
      "code": "PTL-0044",
      "term": "Generated Knowledge Prompting",
      "aliases": [],
      "category": "reasoning",
      "definition": "Generated knowledge prompting first asks the model to produce relevant facts about a question, then supplies those generated facts as context when answering it.",
      "description": "It acts like retrieval from the model's own parametric knowledge, and improved commonsense reasoning benchmarks in the original study.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "step-back-prompting",
        "retrieval-augmented-generation"
      ],
      "introduced": 2021,
      "sources": [
        {
          "title": "Generated Knowledge Prompting for Commonsense Reasoning",
          "authors": "Liu et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2110.08387"
        }
      ],
      "url": "https://protologue.com/t/generated-knowledge-prompting/",
      "citation": "Protologue. (2026). Generated Knowledge Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0044). https://protologue.com/t/generated-knowledge-prompting/"
    },
    {
      "id": "program-aided-language-models",
      "code": "PTL-0045",
      "term": "Program-Aided Language Models",
      "aliases": [
        "PAL"
      ],
      "category": "reasoning",
      "definition": "Program-aided language models (PAL) have the model write a program, typically Python, that expresses its reasoning, and then delegate the actual computation to an interpreter.",
      "description": "Offloading arithmetic and logic to code removes calculation errors from the model's output, and PAL outperformed much larger chain-of-thought models on math word problems.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "program-of-thoughts",
        "chain-of-thought",
        "function-calling"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "PAL: Program-aided Language Models",
          "authors": "Gao et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2211.10435"
        }
      ],
      "url": "https://protologue.com/t/program-aided-language-models/",
      "citation": "Protologue. (2026). Program-Aided Language Models. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0045). https://protologue.com/t/program-aided-language-models/"
    },
    {
      "id": "program-of-thoughts",
      "code": "PTL-0046",
      "term": "Program of Thoughts",
      "aliases": [
        "PoT"
      ],
      "category": "reasoning",
      "definition": "Program of Thoughts (PoT) prompting expresses numerical reasoning as executable code, separating computation, done by an interpreter, from reasoning, done by the model.",
      "description": "Developed concurrently with PAL, it showed strong gains on financial and math question answering.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "program-aided-language-models",
        "chain-of-thought"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks",
          "authors": "Chen et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2211.12588"
        }
      ],
      "url": "https://protologue.com/t/program-of-thoughts/",
      "citation": "Protologue. (2026). Program of Thoughts. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0046). https://protologue.com/t/program-of-thoughts/"
    },
    {
      "id": "self-refine",
      "code": "PTL-0047",
      "term": "Self-Refine",
      "aliases": [
        "iterative refinement",
        "self-critique"
      ],
      "category": "verification",
      "definition": "Self-Refine is an iterative method in which the same model generates an output, critiques it with specific feedback, and revises it, repeating until a stopping condition is met.",
      "description": "It requires no extra training or separate models. Madaan et al. reported improvements across tasks such as code optimization, dialogue, and math reasoning, though later work found that unaided self-correction of reasoning can fail without external signals.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "reflexion",
        "evaluator-optimizer",
        "chain-of-verification"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Self-Refine: Iterative Refinement with Self-Feedback",
          "authors": "Madaan et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2303.17651"
        },
        {
          "title": "Large Language Models Cannot Self-Correct Reasoning Yet",
          "authors": "Huang et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2310.01798"
        }
      ],
      "url": "https://protologue.com/t/self-refine/",
      "citation": "Protologue. (2026). Self-Refine. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0047). https://protologue.com/t/self-refine/"
    },
    {
      "id": "reflexion",
      "code": "PTL-0048",
      "term": "Reflexion",
      "aliases": [],
      "category": "verification",
      "definition": "Reflexion is an agent technique in which, after a failed attempt, the model writes a verbal reflection on what went wrong and stores it in memory to guide its next attempt.",
      "description": "It is reinforcement through language rather than weight updates, and uses feedback signals such as unit-test results or environment rewards. Shinn et al. reported large gains on coding and sequential decision-making benchmarks.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "self-refine",
        "react",
        "agent-memory"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Reflexion: Language Agents with Verbal Reinforcement Learning",
          "authors": "Shinn et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2303.11366"
        }
      ],
      "url": "https://protologue.com/t/reflexion/",
      "citation": "Protologue. (2026). Reflexion. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0048). https://protologue.com/t/reflexion/"
    },
    {
      "id": "chain-of-verification",
      "code": "PTL-0049",
      "term": "Chain-of-Verification",
      "aliases": [
        "CoVe"
      ],
      "category": "verification",
      "definition": "Chain-of-Verification (CoVe) reduces hallucination by having the model draft an answer, plan verification questions about its claims, answer those questions independently, and then produce a corrected final answer.",
      "description": "Answering the verification questions without seeing the original draft keeps the model from simply repeating its own errors.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "hallucination",
        "self-refine",
        "maieutic-prompting"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Chain-of-Verification Reduces Hallucination in Large Language Models",
          "authors": "Dhuliawala et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2309.11495"
        }
      ],
      "url": "https://protologue.com/t/chain-of-verification/",
      "citation": "Protologue. (2026). Chain-of-Verification. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0049). https://protologue.com/t/chain-of-verification/"
    },
    {
      "id": "llm-as-a-judge",
      "code": "PTL-0050",
      "term": "LLM-as-a-Judge",
      "aliases": [
        "model-graded evaluation",
        "LLM evaluator",
        "autorater"
      ],
      "category": "verification",
      "definition": "LLM-as-a-judge is the use of a strong language model to grade, score, or compare the outputs of models against criteria, as a scalable substitute for human evaluation.",
      "description": "Zheng et al. found strong model judges agreed with human preferences at rates comparable to agreement between humans, while documenting biases toward the first-listed answer, longer answers, and the judge's own outputs.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "universal-self-consistency",
        "evaluator-optimizer",
        "process-reward-model"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena",
          "authors": "Zheng et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2306.05685"
        }
      ],
      "url": "https://protologue.com/t/llm-as-a-judge/",
      "citation": "Protologue. (2026). LLM-as-a-Judge. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0050). https://protologue.com/t/llm-as-a-judge/"
    },
    {
      "id": "multi-agent-debate",
      "code": "PTL-0051",
      "term": "Multi-Agent Debate",
      "aliases": [
        "LLM debate",
        "society of minds"
      ],
      "category": "verification",
      "definition": "Multi-agent debate has several model instances propose answers, read each other's reasoning, and revise their answers over multiple rounds until they converge.",
      "description": "Du et al. found that debate improved mathematical reasoning and factual accuracy over single-model answers.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "mixture-of-agents",
        "self-consistency"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Improving Factuality and Reasoning in Language Models through Multiagent Debate",
          "authors": "Du et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2305.14325"
        }
      ],
      "url": "https://protologue.com/t/multi-agent-debate/",
      "citation": "Protologue. (2026). Multi-Agent Debate. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0051). https://protologue.com/t/multi-agent-debate/"
    },
    {
      "id": "mixture-of-agents",
      "code": "PTL-0052",
      "term": "Mixture-of-Agents",
      "aliases": [
        "MoA"
      ],
      "category": "verification",
      "definition": "Mixture-of-Agents (MoA) arranges language models in layers, where each model receives all outputs from the previous layer as auxiliary input and an aggregator synthesizes a final response.",
      "description": "Wang et al. reported that a mixture of open models outperformed a single strong proprietary model on an instruction-following benchmark.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "multi-agent-debate",
        "parallelization"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Mixture-of-Agents Enhances Large Language Model Capabilities",
          "authors": "Wang et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2406.04692"
        }
      ],
      "url": "https://protologue.com/t/mixture-of-agents/",
      "citation": "Protologue. (2026). Mixture-of-Agents. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0052). https://protologue.com/t/mixture-of-agents/"
    },
    {
      "id": "process-reward-model",
      "code": "PTL-0053",
      "term": "Process Reward Model",
      "aliases": [
        "PRM",
        "step-level verifier",
        "process supervision"
      ],
      "category": "verification",
      "definition": "A process reward model (PRM) scores each intermediate step of a model's reasoning, rather than only the final answer, and is used to select or train better reasoning chains.",
      "description": "Lightman et al. showed process supervision outperformed outcome supervision for selecting correct solutions to competition math problems, and released a large dataset of step-level human labels.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "best-of-n-sampling",
        "test-time-compute-scaling",
        "llm-as-a-judge"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Let's Verify Step by Step",
          "authors": "Lightman et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2305.20050"
        }
      ],
      "url": "https://protologue.com/t/process-reward-model/",
      "citation": "Protologue. (2026). Process Reward Model. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0053). https://protologue.com/t/process-reward-model/"
    },
    {
      "id": "best-of-n-sampling",
      "code": "PTL-0054",
      "term": "Best-of-N Sampling",
      "aliases": [
        "rejection sampling",
        "best-of-n",
        "BoN"
      ],
      "category": "verification",
      "definition": "Best-of-N sampling generates N candidate outputs and returns the one ranked highest by a verifier, reward model, or scoring function.",
      "description": "It is the simplest form of trading inference compute for quality. Its effectiveness depends on the verifier, and optimizing too hard against an imperfect reward model can select outputs that game it.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "self-consistency",
        "process-reward-model",
        "test-time-compute-scaling"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Let's Verify Step by Step",
          "authors": "Lightman et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2305.20050"
        },
        {
          "title": "Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters",
          "authors": "Snell et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2408.03314"
        }
      ],
      "url": "https://protologue.com/t/best-of-n-sampling/",
      "citation": "Protologue. (2026). Best-of-N Sampling. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0054). https://protologue.com/t/best-of-n-sampling/"
    },
    {
      "id": "retrieval-augmented-generation",
      "code": "PTL-0055",
      "term": "Retrieval-Augmented Generation",
      "aliases": [
        "RAG",
        "retrieval augmentation",
        "grounded generation"
      ],
      "category": "retrieval-tools",
      "definition": "Retrieval-augmented generation (RAG) supplies a language model with passages retrieved from an external corpus at query time, so its output is grounded in that information rather than only in its trained parameters.",
      "description": "Lewis et al. introduced RAG as a jointly trained retriever and generator. In common usage the term now covers any pipeline that retrieves documents, typically by embedding search, and inserts them into the prompt. RAG reduces hallucination and allows knowledge to be updated without retraining.",
      "example": null,
      "broader": [],
      "narrower": [
        "hypothetical-document-embeddings",
        "self-rag"
      ],
      "related": [
        "hallucination",
        "context-engineering"
      ],
      "introduced": 2020,
      "sources": [
        {
          "title": "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks",
          "authors": "Lewis et al.",
          "year": 2020,
          "url": "https://arxiv.org/abs/2005.11401"
        }
      ],
      "url": "https://protologue.com/t/retrieval-augmented-generation/",
      "citation": "Protologue. (2026). Retrieval-Augmented Generation. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0055). https://protologue.com/t/retrieval-augmented-generation/"
    },
    {
      "id": "hypothetical-document-embeddings",
      "code": "PTL-0056",
      "term": "Hypothetical Document Embeddings",
      "aliases": [
        "HyDE"
      ],
      "category": "retrieval-tools",
      "definition": "Hypothetical Document Embeddings (HyDE) improves retrieval by having a model write a hypothetical answer to the query, embedding that answer, and searching for real documents similar to it.",
      "description": "The generated document may contain errors, but its embedding tends to lie closer to relevant real documents than the short query does.",
      "example": null,
      "broader": [
        "retrieval-augmented-generation"
      ],
      "narrower": [],
      "related": [],
      "introduced": 2022,
      "sources": [
        {
          "title": "Precise Zero-Shot Dense Retrieval without Relevance Labels",
          "authors": "Gao et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2212.10496"
        }
      ],
      "url": "https://protologue.com/t/hypothetical-document-embeddings/",
      "citation": "Protologue. (2026). Hypothetical Document Embeddings. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0056). https://protologue.com/t/hypothetical-document-embeddings/"
    },
    {
      "id": "self-rag",
      "code": "PTL-0057",
      "term": "Self-RAG",
      "aliases": [],
      "category": "retrieval-tools",
      "definition": "Self-RAG trains a model to decide when to retrieve, and to emit special reflection tokens that critique whether retrieved passages are relevant and whether its own output is supported by them.",
      "description": "Retrieving on demand rather than for every query avoids adding irrelevant context and lets the model's critique steer generation.",
      "example": null,
      "broader": [
        "retrieval-augmented-generation"
      ],
      "narrower": [],
      "related": [
        "chain-of-verification"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection",
          "authors": "Asai et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2310.11511"
        }
      ],
      "url": "https://protologue.com/t/self-rag/",
      "citation": "Protologue. (2026). Self-RAG. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0057). https://protologue.com/t/self-rag/"
    },
    {
      "id": "react",
      "code": "PTL-0058",
      "term": "ReAct",
      "aliases": [
        "Reason + Act",
        "thought-action-observation loop"
      ],
      "category": "retrieval-tools",
      "definition": "ReAct is a prompting pattern that interleaves reasoning traces (\"Thought\") with actions such as tool calls (\"Action\") and their results (\"Observation\"), letting a model plan, act, and update its plan in a loop.",
      "description": "Yao et al. showed that combining reasoning and acting outperformed either alone on question answering and interactive decision-making tasks. ReAct is the template for most tool-using agent loops.",
      "example": "Thought: I need the population of the capital of France.\nAction: search(\"capital of France\")\nObservation: Paris\nThought: Now find the population of Paris.\n",
      "broader": [],
      "narrower": [],
      "related": [
        "function-calling",
        "chain-of-thought",
        "self-ask",
        "ai-agent",
        "reflexion"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "ReAct: Synergizing Reasoning and Acting in Language Models",
          "authors": "Yao et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2210.03629"
        }
      ],
      "url": "https://protologue.com/t/react/",
      "citation": "Protologue. (2026). ReAct. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0058). https://protologue.com/t/react/"
    },
    {
      "id": "toolformer",
      "code": "PTL-0059",
      "term": "Toolformer",
      "aliases": [],
      "category": "retrieval-tools",
      "definition": "Toolformer is a method in which a language model teaches itself to use external tools, such as a calculator or search API, by generating candidate API calls in text and keeping those that reduce its prediction loss.",
      "description": "It showed that tool-use behavior could be learned in a self-supervised way from only a handful of demonstrations per tool.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "function-calling",
        "react"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Toolformer: Language Models Can Teach Themselves to Use Tools",
          "authors": "Schick et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2302.04761"
        }
      ],
      "url": "https://protologue.com/t/toolformer/",
      "citation": "Protologue. (2026). Toolformer. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0059). https://protologue.com/t/toolformer/"
    },
    {
      "id": "function-calling",
      "code": "PTL-0060",
      "term": "Function Calling",
      "aliases": [
        "tool use",
        "tool calling"
      ],
      "category": "retrieval-tools",
      "definition": "Function calling, or tool use, is a model capability in which the model outputs a structured request to invoke a developer-defined function with arguments, which the application executes and returns as a result to the model.",
      "description": "Tools are usually described to the model with a name, a natural-language description, and a JSON Schema for parameters. Clear tool descriptions function as prompts in their own right and strongly affect when and how tools are used.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "react",
        "model-context-protocol",
        "structured-outputs",
        "toolformer"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Tool use with Claude",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview"
        },
        {
          "title": "Gorilla: Large Language Model Connected with Massive APIs",
          "authors": "Patil et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2305.15334"
        }
      ],
      "url": "https://protologue.com/t/function-calling/",
      "citation": "Protologue. (2026). Function Calling. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0060). https://protologue.com/t/function-calling/"
    },
    {
      "id": "model-context-protocol",
      "code": "PTL-0061",
      "term": "Model Context Protocol",
      "aliases": [
        "MCP"
      ],
      "category": "retrieval-tools",
      "definition": "The Model Context Protocol (MCP) is an open standard, introduced by Anthropic in 2024, that defines how applications expose tools, data resources, and prompt templates to language-model clients through a common client-server interface.",
      "description": "MCP replaces one-off integrations between each model application and each data source with a single protocol, so any compliant client can use any compliant server.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "function-calling",
        "context-engineering"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Introducing the Model Context Protocol",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://www.anthropic.com/news/model-context-protocol"
        },
        {
          "title": "Model Context Protocol specification",
          "authors": "Model Context Protocol",
          "year": 2025,
          "url": "https://modelcontextprotocol.io/"
        }
      ],
      "url": "https://protologue.com/t/model-context-protocol/",
      "citation": "Protologue. (2026). Model Context Protocol. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0061). https://protologue.com/t/model-context-protocol/"
    },
    {
      "id": "structured-outputs",
      "code": "PTL-0062",
      "term": "Structured Outputs",
      "aliases": [
        "JSON mode",
        "constrained decoding",
        "schema-constrained generation"
      ],
      "category": "retrieval-tools",
      "definition": "Structured outputs constrain a language model to produce responses that conform to a specified format, typically a JSON Schema, either through instructions or through constrained decoding that guarantees validity.",
      "description": "Instruction-only approaches can still produce malformed output, while constrained decoding masks tokens that would violate the schema at each step. Structured outputs are essential for passing model results reliably to downstream code.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "function-calling",
        "prefill",
        "delimiters"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Structured model outputs",
          "authors": "OpenAI",
          "year": 2024,
          "url": "https://developers.openai.com/api/docs/guides/structured-outputs"
        },
        {
          "title": "Efficient Guided Generation for Large Language Models",
          "authors": "Willard & Louf",
          "year": 2023,
          "url": "https://arxiv.org/abs/2307.09702"
        }
      ],
      "url": "https://protologue.com/t/structured-outputs/",
      "citation": "Protologue. (2026). Structured Outputs. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0062). https://protologue.com/t/structured-outputs/"
    },
    {
      "id": "ai-agent",
      "code": "PTL-0063",
      "term": "AI Agent",
      "aliases": [
        "LLM agent",
        "agentic system",
        "autonomous agent"
      ],
      "category": "agents",
      "definition": "An AI agent is a system in which a language model dynamically directs its own process and tool use in a loop, deciding what actions to take based on environment feedback until a task is complete.",
      "description": "Anthropic's widely cited taxonomy distinguishes agents from workflows, in which model calls and tools follow predefined code paths. Agents trade predictability and cost for flexibility on open-ended tasks.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "react",
        "agentic-workflow",
        "orchestrator-workers",
        "agent-memory",
        "context-engineering"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Building effective agents",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://www.anthropic.com/research/building-effective-agents"
        }
      ],
      "url": "https://protologue.com/t/ai-agent/",
      "citation": "Protologue. (2026). AI Agent. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0063). https://protologue.com/t/ai-agent/"
    },
    {
      "id": "agentic-workflow",
      "code": "PTL-0064",
      "term": "Agentic Workflow",
      "aliases": [
        "LLM workflow"
      ],
      "category": "agents",
      "definition": "An agentic workflow is a system in which language models and tools are orchestrated through predefined code paths, as opposed to an agent that chooses its own steps.",
      "description": "Common workflow patterns include prompt chaining, routing, parallelization, orchestrator-workers, and evaluator-optimizer loops. Workflows are generally preferred when a task can be cleanly decomposed in advance.",
      "example": null,
      "broader": [],
      "narrower": [
        "prompt-chaining",
        "routing",
        "parallelization",
        "orchestrator-workers",
        "evaluator-optimizer"
      ],
      "related": [
        "ai-agent"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Building effective agents",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://www.anthropic.com/research/building-effective-agents"
        }
      ],
      "url": "https://protologue.com/t/agentic-workflow/",
      "citation": "Protologue. (2026). Agentic Workflow. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0064). https://protologue.com/t/agentic-workflow/"
    },
    {
      "id": "prompt-chaining",
      "code": "PTL-0065",
      "term": "Prompt Chaining",
      "aliases": [
        "LLM chains",
        "multi-step prompting"
      ],
      "category": "agents",
      "definition": "Prompt chaining decomposes a task into a fixed sequence of model calls, where each call processes the output of the previous one, often with programmatic checks between steps.",
      "description": "Chaining trades latency for accuracy by making each call simpler. Wu et al. found chaining also improved transparency and controllability for users building with models.",
      "example": null,
      "broader": [
        "agentic-workflow"
      ],
      "narrower": [],
      "related": [
        "least-to-most-prompting",
        "routing"
      ],
      "introduced": 2021,
      "sources": [
        {
          "title": "AI Chains: Transparent and Controllable Human-AI Interaction by Chaining Large Language Model Prompts",
          "authors": "Wu et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2110.01691"
        },
        {
          "title": "Building effective agents",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://www.anthropic.com/research/building-effective-agents"
        }
      ],
      "url": "https://protologue.com/t/prompt-chaining/",
      "citation": "Protologue. (2026). Prompt Chaining. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0065). https://protologue.com/t/prompt-chaining/"
    },
    {
      "id": "routing",
      "code": "PTL-0066",
      "term": "Routing",
      "aliases": [
        "model routing",
        "query routing"
      ],
      "category": "agents",
      "definition": "Routing is a workflow pattern that classifies an incoming request and directs it to a specialized prompt, tool, or model suited to that category.",
      "description": "Routing allows separate prompts to be optimized for distinct cases, and lets easy queries go to smaller, cheaper models while hard ones go to more capable models.",
      "example": null,
      "broader": [
        "agentic-workflow"
      ],
      "narrower": [],
      "related": [
        "prompt-chaining"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Building effective agents",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://www.anthropic.com/research/building-effective-agents"
        }
      ],
      "url": "https://protologue.com/t/routing/",
      "citation": "Protologue. (2026). Routing. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0066). https://protologue.com/t/routing/"
    },
    {
      "id": "parallelization",
      "code": "PTL-0067",
      "term": "Parallelization",
      "aliases": [
        "sectioning",
        "voting"
      ],
      "category": "agents",
      "definition": "Parallelization is a workflow pattern that runs several model calls simultaneously and aggregates their outputs, either by splitting a task into independent sections or by running the same task several times and voting.",
      "description": "Sectioning reduces latency and keeps each call focused, while voting improves confidence, for example by running several independent safety checks.",
      "example": null,
      "broader": [
        "agentic-workflow"
      ],
      "narrower": [],
      "related": [
        "self-consistency",
        "skeleton-of-thought",
        "mixture-of-agents"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Building effective agents",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://www.anthropic.com/research/building-effective-agents"
        }
      ],
      "url": "https://protologue.com/t/parallelization/",
      "citation": "Protologue. (2026). Parallelization. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0067). https://protologue.com/t/parallelization/"
    },
    {
      "id": "orchestrator-workers",
      "code": "PTL-0068",
      "term": "Orchestrator-Workers",
      "aliases": [
        "subagents",
        "multi-agent orchestration",
        "supervisor pattern"
      ],
      "category": "agents",
      "definition": "Orchestrator-workers is a pattern in which a central model dynamically breaks a task into subtasks, delegates them to worker model calls or subagents, and synthesizes their results.",
      "description": "Unlike parallelization, the subtasks are not fixed in advance but decided by the orchestrator for each input, which suits tasks such as multi-file code changes or broad research.",
      "example": null,
      "broader": [
        "agentic-workflow"
      ],
      "narrower": [],
      "related": [
        "ai-agent",
        "parallelization",
        "meta-prompting"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Building effective agents",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://www.anthropic.com/research/building-effective-agents"
        }
      ],
      "url": "https://protologue.com/t/orchestrator-workers/",
      "citation": "Protologue. (2026). Orchestrator-Workers. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0068). https://protologue.com/t/orchestrator-workers/"
    },
    {
      "id": "evaluator-optimizer",
      "code": "PTL-0069",
      "term": "Evaluator-Optimizer",
      "aliases": [],
      "category": "agents",
      "definition": "Evaluator-optimizer is a workflow loop in which one model call generates a response and another evaluates it against criteria and provides feedback, repeating until the output passes.",
      "description": "It works best when evaluation criteria are clear and when feedback demonstrably improves the output, as in literary translation or iterative search.",
      "example": null,
      "broader": [
        "agentic-workflow"
      ],
      "narrower": [],
      "related": [
        "self-refine",
        "llm-as-a-judge",
        "reflexion"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Building effective agents",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://www.anthropic.com/research/building-effective-agents"
        }
      ],
      "url": "https://protologue.com/t/evaluator-optimizer/",
      "citation": "Protologue. (2026). Evaluator-Optimizer. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0069). https://protologue.com/t/evaluator-optimizer/"
    },
    {
      "id": "meta-prompting",
      "code": "PTL-0070",
      "term": "Meta-Prompting",
      "aliases": [],
      "category": "agents",
      "definition": "Meta-prompting uses a single model as a conductor that breaks a task down and writes prompts for fresh instances of itself acting as specialized experts, then integrates their outputs.",
      "description": "The term is also used more loosely for asking a model to write or improve a prompt.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "orchestrator-workers",
        "self-discover",
        "automatic-prompt-engineer"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Meta-Prompting: Enhancing Language Models with Task-Agnostic Scaffolding",
          "authors": "Suzgun & Kalai",
          "year": 2024,
          "url": "https://arxiv.org/abs/2401.12954"
        }
      ],
      "url": "https://protologue.com/t/meta-prompting/",
      "citation": "Protologue. (2026). Meta-Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0070). https://protologue.com/t/meta-prompting/"
    },
    {
      "id": "agent-memory",
      "code": "PTL-0071",
      "term": "Agent Memory",
      "aliases": [
        "long-term memory",
        "memory stream"
      ],
      "category": "agents",
      "definition": "Agent memory is the set of mechanisms that let a language-model agent store information beyond a single context window, such as conversation summaries, retrievable records of past events, and reflections, and bring the relevant parts back into context later.",
      "description": "Park et al.'s generative agents scored memories by recency, importance, and relevance and periodically synthesized higher-level reflections. MemGPT treated the context window like main memory and paged information in and out of external storage.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "ai-agent",
        "context-engineering",
        "reflexion",
        "retrieval-augmented-generation"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Generative Agents: Interactive Simulacra of Human Behavior",
          "authors": "Park et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2304.03442"
        },
        {
          "title": "MemGPT: Towards LLMs as Operating Systems",
          "authors": "Packer et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2310.08560"
        }
      ],
      "url": "https://protologue.com/t/agent-memory/",
      "citation": "Protologue. (2026). Agent Memory. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0071). https://protologue.com/t/agent-memory/"
    },
    {
      "id": "context-engineering",
      "code": "PTL-0072",
      "term": "Context Engineering",
      "aliases": [
        "context management"
      ],
      "category": "agents",
      "definition": "Context engineering is the practice of curating the full set of tokens a model sees at each step, including instructions, tools, retrieved data, memory, and conversation history, to maximize the chance of the desired behavior within a limited attention budget.",
      "description": "The term gained currency in 2025 as agents ran for many steps and the main challenge shifted from wording a single prompt to deciding what information enters and leaves the context window over time, through techniques such as compaction, structured note-taking, and subagents.",
      "example": null,
      "broader": [
        "prompt-engineering"
      ],
      "narrower": [],
      "related": [
        "context-window",
        "agent-memory",
        "retrieval-augmented-generation",
        "ai-agent",
        "lost-in-the-middle"
      ],
      "introduced": 2025,
      "sources": [
        {
          "title": "Effective context engineering for AI agents",
          "authors": "Anthropic",
          "year": 2025,
          "url": "https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents"
        }
      ],
      "url": "https://protologue.com/t/context-engineering/",
      "citation": "Protologue. (2026). Context Engineering. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0072). https://protologue.com/t/context-engineering/"
    },
    {
      "id": "automatic-prompt-engineer",
      "code": "PTL-0073",
      "term": "Automatic Prompt Engineer",
      "aliases": [
        "APE"
      ],
      "category": "optimization",
      "definition": "Automatic Prompt Engineer (APE) uses a language model to generate candidate instructions for a task from input-output examples, scores each candidate on held-out data, and selects the best one.",
      "description": "APE discovered a zero-shot chain-of-thought trigger that outperformed \"Let's think step by step\" on some benchmarks, and framed prompt writing as a search problem that models can solve themselves.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "prompt-engineering",
        "opro",
        "dspy",
        "meta-prompting"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Large Language Models Are Human-Level Prompt Engineers",
          "authors": "Zhou et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2211.01910"
        }
      ],
      "url": "https://protologue.com/t/automatic-prompt-engineer/",
      "citation": "Protologue. (2026). Automatic Prompt Engineer. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0073). https://protologue.com/t/automatic-prompt-engineer/"
    },
    {
      "id": "opro",
      "code": "PTL-0074",
      "term": "Optimization by Prompting",
      "aliases": [
        "OPRO",
        "LLMs as optimizers"
      ],
      "category": "optimization",
      "definition": "Optimization by PROmpting (OPRO) uses a language model as an optimizer, giving it a meta-prompt containing previously tried prompts and their scores and asking it to propose a better prompt, repeating over many rounds.",
      "description": "OPRO found instructions such as \"Take a deep breath and work on this problem step-by-step\" that improved math benchmark accuracy for the model being optimized.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "automatic-prompt-engineer",
        "dspy"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Large Language Models as Optimizers",
          "authors": "Yang et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2309.03409"
        }
      ],
      "url": "https://protologue.com/t/opro/",
      "citation": "Protologue. (2026). Optimization by Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0074). https://protologue.com/t/opro/"
    },
    {
      "id": "dspy",
      "code": "PTL-0075",
      "term": "DSPy",
      "aliases": [
        "Declarative Self-improving Python"
      ],
      "category": "optimization",
      "definition": "DSPy is a framework that treats language-model pipelines as programs of declarative modules, and compiles them by automatically optimizing the prompts and few-shot demonstrations for each module against a metric.",
      "description": "Rather than hand-tuning prompt strings, developers specify input-output signatures and let optimizers bootstrap demonstrations or search instructions, making pipelines portable across models.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "automatic-prompt-engineer",
        "opro",
        "prompt-template"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines",
          "authors": "Khattab et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2310.03714"
        }
      ],
      "url": "https://protologue.com/t/dspy/",
      "citation": "Protologue. (2026). DSPy. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0075). https://protologue.com/t/dspy/"
    },
    {
      "id": "prompt-tuning",
      "code": "PTL-0076",
      "term": "Prompt Tuning",
      "aliases": [
        "soft prompts",
        "soft prompt tuning"
      ],
      "category": "optimization",
      "definition": "Prompt tuning learns a small set of continuous \"soft prompt\" embeddings that are prepended to the input, by gradient descent, while keeping the language model's weights frozen.",
      "description": "Lester et al. showed that as models grow, prompt tuning approaches the quality of full fine-tuning while storing only a tiny number of task-specific parameters. Soft prompts are vectors rather than readable text.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "prefix-tuning",
        "low-rank-adaptation"
      ],
      "introduced": 2021,
      "sources": [
        {
          "title": "The Power of Scale for Parameter-Efficient Prompt Tuning",
          "authors": "Lester et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2104.08691"
        }
      ],
      "url": "https://protologue.com/t/prompt-tuning/",
      "citation": "Protologue. (2026). Prompt Tuning. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0076). https://protologue.com/t/prompt-tuning/"
    },
    {
      "id": "prefix-tuning",
      "code": "PTL-0077",
      "term": "Prefix Tuning",
      "aliases": [],
      "category": "optimization",
      "definition": "Prefix tuning learns continuous task-specific vectors that are prepended to the activations at every layer of a frozen language model, steering generation without changing the model's weights.",
      "description": "It was an early parameter-efficient alternative to fine-tuning for generation tasks such as table-to-text and summarization.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "prompt-tuning",
        "low-rank-adaptation"
      ],
      "introduced": 2021,
      "sources": [
        {
          "title": "Prefix-Tuning: Optimizing Continuous Prompts for Generation",
          "authors": "Li & Liang",
          "year": 2021,
          "url": "https://arxiv.org/abs/2101.00190"
        }
      ],
      "url": "https://protologue.com/t/prefix-tuning/",
      "citation": "Protologue. (2026). Prefix Tuning. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0077). https://protologue.com/t/prefix-tuning/"
    },
    {
      "id": "low-rank-adaptation",
      "code": "PTL-0078",
      "term": "Low-Rank Adaptation",
      "aliases": [
        "LoRA"
      ],
      "category": "optimization",
      "definition": "Low-rank adaptation (LoRA) fine-tunes a language model by training small low-rank matrices added to its weight layers while freezing the original weights, drastically reducing the number of trainable parameters.",
      "description": "LoRA is a common alternative when prompting alone cannot reach the required behavior, and adapters can be swapped per task on one base model.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "prompt-tuning",
        "prefix-tuning",
        "instruction-tuning"
      ],
      "introduced": 2021,
      "sources": [
        {
          "title": "LoRA: Low-Rank Adaptation of Large Language Models",
          "authors": "Hu et al.",
          "year": 2021,
          "url": "https://arxiv.org/abs/2106.09685"
        }
      ],
      "url": "https://protologue.com/t/low-rank-adaptation/",
      "citation": "Protologue. (2026). Low-Rank Adaptation. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0078). https://protologue.com/t/low-rank-adaptation/"
    },
    {
      "id": "directional-stimulus-prompting",
      "code": "PTL-0079",
      "term": "Directional Stimulus Prompting",
      "aliases": [],
      "category": "optimization",
      "definition": "Directional stimulus prompting trains a small policy model to generate instance-specific hints, such as keywords, that are added to the prompt to steer a large frozen model toward desired outputs.",
      "description": "The policy model can be trained with supervised learning and reinforcement learning, without access to the large model's weights.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "prompt-tuning",
        "opro"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Guiding Large Language Models via Directional Stimulus Prompting",
          "authors": "Li et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2302.11520"
        }
      ],
      "url": "https://protologue.com/t/directional-stimulus-prompting/",
      "citation": "Protologue. (2026). Directional Stimulus Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0079). https://protologue.com/t/directional-stimulus-prompting/"
    },
    {
      "id": "prompt-compression",
      "code": "PTL-0080",
      "term": "Prompt Compression",
      "aliases": [
        "LLMLingua",
        "context compression"
      ],
      "category": "optimization",
      "definition": "Prompt compression shortens a prompt by removing tokens that contribute little information, typically scored by a smaller language model, to cut cost and latency while preserving task performance.",
      "description": "LLMLingua used a small model's perplexity to drop low-information tokens and reported high compression ratios with limited performance loss.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "context-engineering",
        "prompt-caching"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models",
          "authors": "Jiang et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2310.05736"
        }
      ],
      "url": "https://protologue.com/t/prompt-compression/",
      "citation": "Protologue. (2026). Prompt Compression. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0080). https://protologue.com/t/prompt-compression/"
    },
    {
      "id": "prompt-caching",
      "code": "PTL-0081",
      "term": "Prompt Caching",
      "aliases": [
        "context caching",
        "prefix caching"
      ],
      "category": "optimization",
      "definition": "Prompt caching stores the model's processed state for a reused prompt prefix, such as a long system prompt or document, so later requests sharing that prefix are cheaper and faster.",
      "description": "Because caches match on an exact prefix, prompts are structured with stable content first and variable content last.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "system-prompt",
        "prompt-compression",
        "context-engineering"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Prompt caching",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://platform.claude.com/docs/en/build-with-claude/prompt-caching"
        }
      ],
      "url": "https://protologue.com/t/prompt-caching/",
      "citation": "Protologue. (2026). Prompt Caching. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0081). https://protologue.com/t/prompt-caching/"
    },
    {
      "id": "emotion-prompting",
      "code": "PTL-0082",
      "term": "Emotion Prompting",
      "aliases": [
        "EmotionPrompt",
        "stimulus prompting"
      ],
      "category": "optimization",
      "definition": "Emotion prompting appends emotional or motivational phrases, such as \"This is very important to my career,\" to a prompt in an attempt to improve model performance.",
      "description": "Li et al. reported gains on several benchmarks with such \"EmotionPrompt\" stimuli. Effects of these cues vary across models and tasks and are best treated as an empirical question for each setup.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "prompt-sensitivity",
        "role-prompting"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Large Language Models Understand and Can be Enhanced by Emotional Stimuli",
          "authors": "Li et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2307.11760"
        }
      ],
      "url": "https://protologue.com/t/emotion-prompting/",
      "citation": "Protologue. (2026). Emotion Prompting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0082). https://protologue.com/t/emotion-prompting/"
    },
    {
      "id": "reasoning-model",
      "code": "PTL-0083",
      "term": "Reasoning Model",
      "aliases": [
        "large reasoning model",
        "LRM",
        "thinking model"
      ],
      "category": "test-time",
      "definition": "A reasoning model is a language model trained, typically with reinforcement learning, to produce an extended internal chain of thought before answering, so that it improves with more thinking time on math, coding, and planning tasks.",
      "description": "OpenAI's o1, announced in 2024, popularized the category, and DeepSeek-R1 showed that reinforcement learning with verifiable rewards could produce long reasoning behaviors in an openly released model. Prompting such models differs from prompting standard models, because step-by-step instructions and few-shot reasoning examples are often unnecessary.",
      "example": null,
      "broader": [],
      "narrower": [
        "extended-thinking"
      ],
      "related": [
        "chain-of-thought",
        "test-time-compute-scaling",
        "self-taught-reasoner"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Learning to reason with LLMs",
          "authors": "OpenAI",
          "year": 2024,
          "url": "https://openai.com/index/learning-to-reason-with-llms/"
        },
        {
          "title": "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning",
          "authors": "DeepSeek-AI",
          "year": 2025,
          "url": "https://arxiv.org/abs/2501.12948"
        }
      ],
      "url": "https://protologue.com/t/reasoning-model/",
      "citation": "Protologue. (2026). Reasoning Model. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0083). https://protologue.com/t/reasoning-model/"
    },
    {
      "id": "test-time-compute-scaling",
      "code": "PTL-0084",
      "term": "Test-Time Compute Scaling",
      "aliases": [
        "inference-time scaling",
        "test-time scaling"
      ],
      "category": "test-time",
      "definition": "Test-time compute scaling improves a model's answers by spending more computation at inference, through longer reasoning, more samples, search, or verification, rather than by training a larger model.",
      "description": "Snell et al. found that allocating test-time compute adaptively per prompt could be more effective than scaling model parameters for some problems. Self-consistency, best-of-N, tree search, and reasoning models are all forms of test-time scaling.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "reasoning-model",
        "self-consistency",
        "best-of-n-sampling",
        "tree-of-thoughts",
        "process-reward-model"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters",
          "authors": "Snell et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2408.03314"
        }
      ],
      "url": "https://protologue.com/t/test-time-compute-scaling/",
      "citation": "Protologue. (2026). Test-Time Compute Scaling. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0084). https://protologue.com/t/test-time-compute-scaling/"
    },
    {
      "id": "extended-thinking",
      "code": "PTL-0085",
      "term": "Extended Thinking",
      "aliases": [
        "thinking mode",
        "thinking budget",
        "reasoning effort"
      ],
      "category": "test-time",
      "definition": "Extended thinking is a model mode in which the model generates a separate block of reasoning before its final response, with a developer-controlled setting that trades latency and cost for answer quality.",
      "description": "Early implementations exposed a fixed thinking token budget; newer Claude models replace it with adaptive thinking, where the model decides how much to reason under a chosen effort level. Vendor guidance for these modes favors high-level instructions about how to think over prescriptive step-by-step scripts.",
      "example": null,
      "broader": [
        "reasoning-model"
      ],
      "narrower": [],
      "related": [
        "scratchpad",
        "chain-of-thought"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Building with extended thinking",
          "authors": "Anthropic",
          "year": 2025,
          "url": "https://platform.claude.com/docs/en/build-with-claude/extended-thinking"
        }
      ],
      "url": "https://protologue.com/t/extended-thinking/",
      "citation": "Protologue. (2026). Extended Thinking. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0085). https://protologue.com/t/extended-thinking/"
    },
    {
      "id": "self-taught-reasoner",
      "code": "PTL-0086",
      "term": "Self-Taught Reasoner",
      "aliases": [
        "STaR"
      ],
      "category": "test-time",
      "definition": "The Self-Taught Reasoner (STaR) bootstraps reasoning ability by having a model generate rationales, keeping those that lead to correct answers, and fine-tuning on them in repeated rounds.",
      "description": "For problems it fails, STaR provides the correct answer as a hint and asks the model to produce a rationale for it, a step called rationalization.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "reasoning-model",
        "chain-of-thought"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "STaR: Bootstrapping Reasoning With Reasoning",
          "authors": "Zelikman et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2203.14465"
        }
      ],
      "url": "https://protologue.com/t/self-taught-reasoner/",
      "citation": "Protologue. (2026). Self-Taught Reasoner. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0086). https://protologue.com/t/self-taught-reasoner/"
    },
    {
      "id": "prompt-injection",
      "code": "PTL-0087",
      "term": "Prompt Injection",
      "aliases": [
        "goal hijacking",
        "instruction injection"
      ],
      "category": "security",
      "definition": "Prompt injection is an attack in which text supplied to a language model, by a user or through data the model processes, contains instructions that override or subvert the instructions of the application's developer.",
      "description": "The name was coined in 2022 by analogy with SQL injection, because models cannot reliably separate trusted instructions from untrusted data that share the same context. It is the most prominent security risk for applications built on language models, especially agents with tool access.",
      "example": null,
      "broader": [],
      "narrower": [
        "indirect-prompt-injection",
        "prompt-leaking"
      ],
      "related": [
        "jailbreak",
        "instruction-hierarchy",
        "spotlighting"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Prompt injection attacks against GPT-3",
          "authors": "Willison",
          "year": 2022,
          "url": "https://simonwillison.net/2022/Sep/12/prompt-injection/"
        },
        {
          "title": "Ignore Previous Prompt: Attack Techniques For Language Models",
          "authors": "Perez & Ribeiro",
          "year": 2022,
          "url": "https://arxiv.org/abs/2211.09527"
        }
      ],
      "url": "https://protologue.com/t/prompt-injection/",
      "citation": "Protologue. (2026). Prompt Injection. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0087). https://protologue.com/t/prompt-injection/"
    },
    {
      "id": "indirect-prompt-injection",
      "code": "PTL-0088",
      "term": "Indirect Prompt Injection",
      "aliases": [],
      "category": "security",
      "definition": "Indirect prompt injection places malicious instructions inside content a model will later retrieve or process, such as a web page, email, or document, so the attack is triggered without the attacker interacting with the model directly.",
      "description": "Greshake et al. demonstrated that injected content could make integrated applications exfiltrate data, spread to other users, or manipulate outputs. Risk grows with an agent's access to tools and private data.",
      "example": null,
      "broader": [
        "prompt-injection"
      ],
      "narrower": [],
      "related": [
        "retrieval-augmented-generation",
        "spotlighting",
        "ai-agent"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection",
          "authors": "Greshake et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2302.12173"
        }
      ],
      "url": "https://protologue.com/t/indirect-prompt-injection/",
      "citation": "Protologue. (2026). Indirect Prompt Injection. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0088). https://protologue.com/t/indirect-prompt-injection/"
    },
    {
      "id": "prompt-leaking",
      "code": "PTL-0089",
      "term": "Prompt Leaking",
      "aliases": [],
      "category": "security",
      "definition": "Prompt leaking is an attack that tricks a model into revealing its hidden system prompt or other confidential instructions.",
      "description": "System prompts should be treated as potentially discoverable, so they should not contain secrets such as API keys.",
      "example": null,
      "broader": [
        "prompt-injection"
      ],
      "narrower": [],
      "related": [
        "system-prompt"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Ignore Previous Prompt: Attack Techniques For Language Models",
          "authors": "Perez & Ribeiro",
          "year": 2022,
          "url": "https://arxiv.org/abs/2211.09527"
        }
      ],
      "url": "https://protologue.com/t/prompt-leaking/",
      "citation": "Protologue. (2026). Prompt Leaking. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0089). https://protologue.com/t/prompt-leaking/"
    },
    {
      "id": "jailbreak",
      "code": "PTL-0090",
      "term": "Jailbreak",
      "aliases": [
        "jailbreaking"
      ],
      "category": "security",
      "definition": "A jailbreak is a prompt crafted to make a model produce outputs its safety training is meant to prevent, often through role-play, hypothetical framing, obfuscation, or other adversarial techniques.",
      "description": "Wei et al. attributed jailbreak success to two failure modes, competing objectives between helpfulness and safety, and mismatched generalization, where safety training does not cover inputs the model can still understand. Jailbreaks target the model's safety behavior, while prompt injection targets the application's instructions.",
      "example": null,
      "broader": [],
      "narrower": [
        "adversarial-suffix",
        "many-shot-jailbreaking"
      ],
      "related": [
        "prompt-injection",
        "constitutional-ai"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Jailbroken: How Does LLM Safety Training Fail?",
          "authors": "Wei et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2307.02483"
        }
      ],
      "url": "https://protologue.com/t/jailbreak/",
      "citation": "Protologue. (2026). Jailbreak. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0090). https://protologue.com/t/jailbreak/"
    },
    {
      "id": "adversarial-suffix",
      "code": "PTL-0091",
      "term": "Adversarial Suffix",
      "aliases": [
        "GCG attack",
        "universal adversarial attack"
      ],
      "category": "security",
      "definition": "An adversarial suffix is an automatically optimized string of tokens that, when appended to a request, causes an aligned model to comply with requests it would normally refuse.",
      "description": "Zou et al. used a greedy coordinate gradient search on open models to find such suffixes and found that they often transferred to other models.",
      "example": null,
      "broader": [
        "jailbreak"
      ],
      "narrower": [],
      "related": [],
      "introduced": 2023,
      "sources": [
        {
          "title": "Universal and Transferable Adversarial Attacks on Aligned Language Models",
          "authors": "Zou et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2307.15043"
        }
      ],
      "url": "https://protologue.com/t/adversarial-suffix/",
      "citation": "Protologue. (2026). Adversarial Suffix. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0091). https://protologue.com/t/adversarial-suffix/"
    },
    {
      "id": "many-shot-jailbreaking",
      "code": "PTL-0092",
      "term": "Many-shot Jailbreaking",
      "aliases": [],
      "category": "security",
      "definition": "Many-shot jailbreaking fills a long context window with many fabricated dialogue examples in which an assistant complies with harmful requests, exploiting in-context learning to override the model's safety training.",
      "description": "Anthropic researchers found the attack's effectiveness followed a power law in the number of shots, mirroring the scaling of benign in-context learning.",
      "example": null,
      "broader": [
        "jailbreak"
      ],
      "narrower": [],
      "related": [
        "many-shot-in-context-learning",
        "context-window"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Many-shot jailbreaking",
          "authors": "Anthropic",
          "year": 2024,
          "url": "https://www.anthropic.com/research/many-shot-jailbreaking"
        }
      ],
      "url": "https://protologue.com/t/many-shot-jailbreaking/",
      "citation": "Protologue. (2026). Many-shot Jailbreaking. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0092). https://protologue.com/t/many-shot-jailbreaking/"
    },
    {
      "id": "instruction-hierarchy",
      "code": "PTL-0093",
      "term": "Instruction Hierarchy",
      "aliases": [],
      "category": "security",
      "definition": "The instruction hierarchy is a training approach that teaches a model to prioritize instructions by source, typically system over user over tool output, and to ignore lower-priority instructions that conflict with higher-priority ones.",
      "description": "Wallace et al. trained models on synthetic conflicts and found large gains in robustness to prompt injection and system-prompt extraction with limited loss in helpfulness.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "system-prompt",
        "prompt-injection",
        "spotlighting"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions",
          "authors": "Wallace et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2404.13208"
        }
      ],
      "url": "https://protologue.com/t/instruction-hierarchy/",
      "citation": "Protologue. (2026). Instruction Hierarchy. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0093). https://protologue.com/t/instruction-hierarchy/"
    },
    {
      "id": "spotlighting",
      "code": "PTL-0094",
      "term": "Spotlighting",
      "aliases": [
        "datamarking",
        "input marking"
      ],
      "category": "security",
      "definition": "Spotlighting is a family of prompt-level defenses against indirect prompt injection that transform untrusted input, by delimiting, marking every word, or encoding it, so the model can distinguish it from trusted instructions.",
      "description": "Hines et al. reported substantial reductions in attack success with datamarking and encoding variants, with little effect on task performance.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "indirect-prompt-injection",
        "delimiters",
        "instruction-hierarchy"
      ],
      "introduced": 2024,
      "sources": [
        {
          "title": "Defending Against Indirect Prompt Injection Attacks With Spotlighting",
          "authors": "Hines et al.",
          "year": 2024,
          "url": "https://arxiv.org/abs/2403.14720"
        }
      ],
      "url": "https://protologue.com/t/spotlighting/",
      "citation": "Protologue. (2026). Spotlighting. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0094). https://protologue.com/t/spotlighting/"
    },
    {
      "id": "constitutional-ai",
      "code": "PTL-0095",
      "term": "Constitutional AI",
      "aliases": [
        "CAI",
        "RLAIF",
        "reinforcement learning from AI feedback"
      ],
      "category": "security",
      "definition": "Constitutional AI is a training method in which a model critiques and revises its own outputs according to a written set of principles, and AI-generated preference judgments replace most human labels for harmlessness.",
      "description": "Bai et al. used a supervised self-critique phase followed by reinforcement learning from AI feedback. The approach made the principles governing model behavior explicit and editable.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "rlhf",
        "self-refine",
        "jailbreak"
      ],
      "introduced": 2022,
      "sources": [
        {
          "title": "Constitutional AI: Harmlessness from AI Feedback",
          "authors": "Bai et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2212.08073"
        }
      ],
      "url": "https://protologue.com/t/constitutional-ai/",
      "citation": "Protologue. (2026). Constitutional AI. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0095). https://protologue.com/t/constitutional-ai/"
    },
    {
      "id": "hallucination",
      "code": "PTL-0096",
      "term": "Hallucination",
      "aliases": [
        "confabulation",
        "fabrication"
      ],
      "category": "failure-modes",
      "definition": "Hallucination is generated content that is fluent and plausible but unfaithful to the provided source or factually incorrect, such as fabricated citations, facts, or quotations.",
      "description": "Surveys distinguish intrinsic hallucination, which contradicts the source, from extrinsic hallucination, which cannot be verified from it. Mitigations include retrieval-augmented generation, verification methods such as chain-of-verification, allowing the model to say it does not know, and requiring quotes from supplied documents.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "retrieval-augmented-generation",
        "chain-of-verification",
        "sycophancy"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Survey of Hallucination in Natural Language Generation",
          "authors": "Ji et al.",
          "year": 2022,
          "url": "https://arxiv.org/abs/2202.03629"
        }
      ],
      "url": "https://protologue.com/t/hallucination/",
      "citation": "Protologue. (2026). Hallucination. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0096). https://protologue.com/t/hallucination/"
    },
    {
      "id": "sycophancy",
      "code": "PTL-0097",
      "term": "Sycophancy",
      "aliases": [],
      "category": "failure-modes",
      "definition": "Sycophancy is a model's tendency to tailor its answers to match a user's stated beliefs or preferences, including abandoning correct answers when the user pushes back, rather than giving its most accurate response.",
      "description": "Sharma et al. found sycophancy across several assistants and linked it to human preference data, which tends to reward agreement. Prompting mitigations include removing opinions from the question, as in System 2 Attention.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "rlhf",
        "system-2-attention",
        "hallucination"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Towards Understanding Sycophancy in Language Models",
          "authors": "Sharma et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2310.13548"
        }
      ],
      "url": "https://protologue.com/t/sycophancy/",
      "citation": "Protologue. (2026). Sycophancy. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0097). https://protologue.com/t/sycophancy/"
    },
    {
      "id": "lost-in-the-middle",
      "code": "PTL-0098",
      "term": "Lost in the Middle",
      "aliases": [
        "positional bias",
        "U-shaped context performance"
      ],
      "category": "failure-modes",
      "definition": "Lost in the middle is the finding that language models use information at the beginning or end of a long context much more reliably than information placed in the middle.",
      "description": "Liu et al. observed a U-shaped performance curve on multi-document question answering as the position of the relevant document varied. A practical takeaway is to place key material and instructions at the start or end of long prompts.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "context-window",
        "needle-in-a-haystack",
        "context-engineering",
        "thread-of-thought"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "Lost in the Middle: How Language Models Use Long Contexts",
          "authors": "Liu et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2307.03172"
        }
      ],
      "url": "https://protologue.com/t/lost-in-the-middle/",
      "citation": "Protologue. (2026). Lost in the Middle. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0098). https://protologue.com/t/lost-in-the-middle/"
    },
    {
      "id": "needle-in-a-haystack",
      "code": "PTL-0099",
      "term": "Needle in a Haystack",
      "aliases": [
        "NIAH",
        "passkey retrieval"
      ],
      "category": "failure-modes",
      "definition": "Needle in a haystack is a long-context evaluation that hides a specific fact at varying depths in a long distractor document and tests whether the model can retrieve it.",
      "description": "It became a standard way to report effective context length, though passing it shows only simple retrieval, not reasoning over many dispersed facts.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "lost-in-the-middle",
        "context-window"
      ],
      "introduced": 2023,
      "sources": [
        {
          "title": "LLMTest_NeedleInAHaystack",
          "authors": "Kamradt",
          "year": 2023,
          "url": "https://github.com/gkamradt/LLMTest_NeedleInAHaystack"
        }
      ],
      "url": "https://protologue.com/t/needle-in-a-haystack/",
      "citation": "Protologue. (2026). Needle in a Haystack. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0099). https://protologue.com/t/needle-in-a-haystack/"
    },
    {
      "id": "prompt-sensitivity",
      "code": "PTL-0100",
      "term": "Prompt Sensitivity",
      "aliases": [
        "prompt brittleness",
        "format sensitivity"
      ],
      "category": "failure-modes",
      "definition": "Prompt sensitivity is the variation in a model's performance caused by superficial changes to a prompt, such as formatting, separators, spacing, or wording, that do not change the task's meaning.",
      "description": "Sclar et al. found accuracy differences of tens of percentage points from formatting choices alone, and argued that evaluations should report performance across a range of plausible formats.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "exemplar-ordering",
        "few-shot-calibration",
        "emotion-prompting"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Quantifying Language Models' Sensitivity to Spurious Features in Prompt Design or: How I learned to start worrying about prompt formatting",
          "authors": "Sclar et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2310.11324"
        }
      ],
      "url": "https://protologue.com/t/prompt-sensitivity/",
      "citation": "Protologue. (2026). Prompt Sensitivity. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0100). https://protologue.com/t/prompt-sensitivity/"
    },
    {
      "id": "unfaithful-chain-of-thought",
      "code": "PTL-0101",
      "term": "Unfaithful Chain-of-Thought",
      "aliases": [
        "CoT faithfulness",
        "post-hoc rationalization"
      ],
      "category": "failure-modes",
      "definition": "Unfaithful chain-of-thought is stated reasoning that does not reflect the factors that actually determined the model's answer, so the explanation can be plausible yet misleading.",
      "description": "Turpin et al. showed that biasing features, such as always putting the correct answer in position A of few-shot examples, swayed answers while the stated reasoning never mentioned them. Lanham et al. measured how much answers actually depend on the stated reasoning, with results varying by task and model size.",
      "example": null,
      "broader": [],
      "narrower": [],
      "related": [
        "chain-of-thought",
        "reasoning-model"
      ],
      "introduced": null,
      "sources": [
        {
          "title": "Language Models Don't Always Say What They Think: Unfaithful Explanations in Chain-of-Thought Prompting",
          "authors": "Turpin et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2305.04388"
        },
        {
          "title": "Measuring Faithfulness in Chain-of-Thought Reasoning",
          "authors": "Lanham et al.",
          "year": 2023,
          "url": "https://arxiv.org/abs/2307.13702"
        }
      ],
      "url": "https://protologue.com/t/unfaithful-chain-of-thought/",
      "citation": "Protologue. (2026). Unfaithful Chain-of-Thought. In Protologue: A Taxonomy of Prompting and LLM Techniques (v1.0.0, PTL-0101). https://protologue.com/t/unfaithful-chain-of-thought/"
    }
  ]
}