Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Chain-of-Thought Prompting

19. 09. 2025 5 Min. Lesezeit intermediate

Chain-of-Thought Prompting ist eine revolutionaere Technik, die es Sprachmodellen ermoeglicht, komplexe Aufgaben schrittweise zu loesen. Diese Methode verbessert dramatisch die Faehigkeit von KI-Systemen zu logischem Denken und Problemloesung.

Chain-of-Thought Prompting: Revolution im logischen Denken der KI

Chain-of-Thought (CoT) Prompting stellt einen bahnbrechenden Ansatz fuer die Arbeit mit grossen Sprachmodellen dar, der deren Faehigkeit zur Loesung komplexer Aufgaben, die logisches Denken erfordern, dramatisch verbessert. Anstatt einfacher Frage und Antwort zwingt es das Modell, sein Denken explizit Schritt fuer Schritt zu zeigen.

Grundprinzipien von Chain-of-Thought

The traditional prompting approach works on the input → output principle. CoT introduces an intermediate reasoning step, transforming the process to input → reasoning → output. The model must verbalize its thought process, leading to better results especially for mathematical tasks, logical problems, and complex decision-making.

Wesentliche Vorteile of CoT prompting:

  • Improved accuracy - model makes fewer errors on complex tasks
  • Transparency - we can see how the model reached its answer
  • Debuggability - we can identify where the reasoning went wrong
  • Consistency - model produces more stable results

Few-Shot CoT-Implementierung

The simplest way to implement CoT is through few-shot learning with demonstration examples. We show the model how to “think” on concrete cases:

def create_cot_prompt(question):
    examples = """
Question: There were 23 apples in the store. They sold 16 apples and then brought in 45 more. How many apples are in the store now?

Reasoning: 
1. At start: 23 apples
2. After sale: 23 - 16 = 7 apples  
3. After delivery: 7 + 45 = 52 apples

Answer: 52 apples

---

Question: Tom is 3 years older than Paul. The sum of their ages is 27. How old is Paul?

Reasoning:
1. Let Paul's age be x
2. Tom's age is x + 3
3. Sum: x + (x + 3) = 27
4. Simplify: 2x + 3 = 27
5. Solve: 2x = 24, so x = 12

Answer: Paul is 12 years old

---

Question: {question}

Reasoning:"""

    return examples.format(question=question)

Zero-Shot CoT mit magischer Phrase

A surprisingly effective technique is zero-shot CoT, where we simply add the phrase “Think step by step” or “Let’s think step by step”. This simple instruction is often enough to activate reasoning mode:

def zero_shot_cot(question):
    prompt = f"""
{question}

Think step by step and show your reasoning.
"""
    return prompt

# Usage
question = "A company has 150 employees. 60% work in IT, of which 25% are seniors. How many senior IT workers does the company have?"
cot_prompt = zero_shot_cot(question)

Programmatische CoT-Implementierung

Fuer den Produktiveinsatz, we can integrate CoT into our applications using a structured approach:

class CoTReasoner:
    def __init__(self, llm_client):
        self.llm = llm_client

    def solve_with_reasoning(self, problem, domain="general"):
        system_prompt = self._get_system_prompt(domain)
        user_prompt = self._format_problem(problem)

        response = self.llm.chat([
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": user_prompt}
        ])

        return self._parse_response(response)

    def _get_system_prompt(self, domain):
        prompts = {
            "math": "You are a math expert. Always show detailed solution steps one by one.",
            "logic": "Analyze logical problems systematically. Break down complex tasks into smaller parts.",
            "general": "When solving complex tasks, always show your reasoning step by step."
        }
        return prompts.get(domain, prompts["general"])

    def _format_problem(self, problem):
        return f"""
{problem}

Proceed as follows:
1. Identify key information
2. Decide what steps are needed
3. Perform calculations/analysis step by step
4. Verify the result
5. Formulate final answer

Reasoning:
"""

    def _parse_response(self, response):
        # Parse response to extract reasoning and final answer
        lines = response.split('\n')
        reasoning = []
        final_answer = None

        in_reasoning = False
        for line in lines:
            if 'Reasoning:' in line or 'Reasoning:' in line:
                in_reasoning = True
                continue
            elif 'Answer:' in line or 'Answer:' in line:
                final_answer = line.split(':', 1)[1].strip()
                break
            elif in_reasoning:
                reasoning.append(line.strip())

        return {
            "reasoning_steps": [r for r in reasoning if r],
            "final_answer": final_answer,
            "full_response": response
        }

Fortgeschrittene CoT-Techniken

For even better results, we can use advanced CoT variants:

Self-Consistency CoT

We let the model solve the task several times in different ways and select the most common answer:

def self_consistency_cot(problem, num_iterations=5):
    answers = []

    for i in range(num_iterations):
        prompt = f"""
{problem}

Solve this problem step by step. Use a different approach than usual.
Reasoning:
"""

        response = llm_client.generate(prompt)
        parsed = parse_final_answer(response)
        if parsed:
            answers.append(parsed)

    # Find most common answer
    from collections import Counter
    most_common = Counter(answers).most_common(1)

    return {
        "consensus_answer": most_common[0][0] if most_common else None,
        "confidence": most_common[0][1] / len(answers) if most_common else 0,
        "all_answers": answers
    }

Tree of Thoughts

Extension of CoT where the model explores multiple possible solution paths simultaneously:

def tree_of_thoughts(problem, depth=3, branches=3):
    def explore_branch(current_thought, remaining_depth):
        if remaining_depth == 0:
            return [current_thought]

        # Generate possible next steps
        prompt = f"""
Current reasoning: {current_thought}

Suggest {branches} different ways to continue solving:
1.
2.
3.
"""

        response = llm_client.generate(prompt)
        next_steps = parse_numbered_list(response)

        all_paths = []
        for step in next_steps:
            new_thought = current_thought + " → " + step
            paths = explore_branch(new_thought, remaining_depth - 1)
            all_paths.extend(paths)

        return all_paths

    initial_thought = f"Problem: {problem}"
    all_solution_paths = explore_branch(initial_thought, depth)

    # Evaluate each path and select the best
    best_path = evaluate_paths(all_solution_paths)
    return best_path

Praktische Tipps fuer den Einsatz

When implementing CoT in real applications, follow these best practices:

  • Specific instructions - Define precisely what type of reasoning you expect
  • Structured outputs - Use templates for consistent formatting
  • Step validation - Implement logical consistency checks
  • Fallback strategies - Switch to simpler prompts if CoT fails
  • Monitoring - Track reasoning quality in der Produktion
def production_cot_wrapper(problem, max_retries=2):
    for attempt in range(max_retries + 1):
        try:
            if attempt == 0:
                # Try full CoT
                result = complex_cot_reasoning(problem)
            elif attempt == 1:
                # Try simpler CoT
                result = simple_cot_reasoning(problem)
            else:
                # Fallback to basic prompt
                result = basic_reasoning(problem)

            # Validate result
            if validate_reasoning_quality(result):
                return result

        except Exception as e:
            log_reasoning_error(e, attempt, problem)
            continue

    return {"error": "Failed to find valid solution", "attempts": max_retries + 1}

Zusammenfassung

Chain-of-Thought prompting represents a fundamental advance in working with LLMs that significantly improves response quality for complex tasks. The combination of few-shot examples, structured prompts, and advanced techniques like self-consistency enables achieving near-human level reasoning. Fuer den Produktiveinsatz, it’s crucial to implement robust validation, monitoring, and fallback strategies. CoT thus becomes an indispensable part of the modern AI toolkit for applications requiring logical reasoning.

cotreasoningprompting
Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.