Context Engineering: Nová disciplína, která mění pravidla AI

Context Engineering: Nová disciplína, která mění pravidla AI

Jak jsem se naučil, že úspěch AI aplikací nezávisí na dokonalém promptu, ale na tom, co model "vidí" kolem něj

Před třemi lety jsem trávil hodiny ladění promptů. Psal jsem stránkové instrukce, experimentoval s různými formulacemi, testoval desítky variant. A přesto můj AI asistent zapomínal klíčové informace z předchozích konverzací, můj kódovací pomocník ztrácel přehled o architektuře projektu a RAG systém nedokázal propojit souvislosti napříč dokumenty.

Pak jsem pochopil zásadní věc: problém nebyl v tom, jak jsem se modelu ptal, ale v tom, co všechno model věděl v okamžiku, kdy odpovídal. Objevil jsem context engineering – disciplínu, která překračuje hranice prompt engineeringu a mění celou hru.

Proč prompt engineering přestal stačit

Když poprvé otevřete ChatGPT, připadá vám to jednoduché: napíšete otázku, dostanete odpověď. Jenže reality produkčních AI aplikací je jiná. Představte si, že stavíte AI asistenta pro zákaznický servis. Potřebuje:

  • Znát historii všech předchozích interakcí s klientem
  • Mít přístup k aktuálním informacím o produktech
  • Rozumět firemním procesům a pravidlům
  • Pamatovat si kontext celé konverzace
  • Umět zavolat externí API pro ověření dat

Žádný prompt, ať je sebevíc dokonalý, to sám nezvládne. Potřebujete systém, který modelu poskytne správný kontext ve správný čas. To je podstata context engineeringu.

Co je context engineering v praxi

Context engineering je disciplína navrhování a budování systémů, které orchestrují všechny informace, nástroje a paměť potřebné k tomu, aby AI dokázala řešit složité, real-world úkoly.

Nejde jen o prompt. Jde o celý informační ekosystém kolem modelu.

Reálný příklad z mé praxe

Nedávno jsem stavěl AI asistenta pro právní kancelář. Klasický přístup by byl:

Jsi právní expert. Odpovídej na otázky klientů o smluvním právu.

Context engineering přístup vypadal takto:

1. Systémový kontext:

Role: Senior právní poradce specializující se na obchodní právo
Firma: [název], 15 let praxe, focus na SaaS a tech startupy  
Regulatory environment: České právo, EU regulace

2. Dynamický retrieval:

# Při každé otázce systém:
query = user_question
relevant_cases = vector_search(query, case_database)
current_legislation = api_call("legal_updates", query)
client_history = get_client_context(client_id)
firm_templates = search_templates(query)

3. Paměťový systém:

# Kontext se skládal z:
- Dlouhodobé paměti klienta (preference, předchozí případy)
- Krátkodobé paměti konverzace (co už probrali dnes)
- Faktual knowledge base (zákony, judikáty)
- Tool access (kalkulačky poplatků, termíny soudů)
- Meta-context (urgence, složitost případu)

Výsledek? Místo obecných právních rad model poskytoval konkrétní doporučení založená na historii klienta, aktuální legislativě a firemních postupech.

Anatomie profesionálního context systému

1. Multi-layer memory architecture

Immediate context - co model "vidí" právě teď:

  • Aktuální prompt a konverzace
  • Výsledky z právě provedených nástrojů
  • Dočasný stav úkolu

Session memory - co si pamatuje během práce:

  • Historie kroků a rozhodnutí
  • Předchozí výsledky a chyby
  • Evoluce strategie řešení

Long-term memory - trvalé znalosti:

  • User profily a preference
  • Learnt patterns a insights
  • Firemní knowledge base

2. Intelligent retrieval orchestration

Nejsložitější část. Systém musí v real-time rozhodnout:

  • Které dokumenty jsou relevantní
  • Jaké externí API zavolat
  • Kolik kontextu použít (token limits)
  • V jakém pořadí informace poskytovat

Můj workflow:

def build_context(user_query, session_state):
    # 1. Analýza query
    intent = classify_intent(user_query)
    entities = extract_entities(user_query)

    # 2. Multi-source retrieval
    docs = semantic_search(user_query, weight=0.4)
    tools = suggest_tools(intent, weight=0.3) 
    memory = get_relevant_memory(session_state, weight=0.3)

    # 3. Context assembly
    context = assemble_context(
        system_prompt=get_system_prompt(intent),
        retrieved_docs=docs[:5],  # Top 5 to stay within limits
        available_tools=tools,
        conversation_memory=memory,
        user_profile=get_user_context()
    )

    return context

3. Dynamic context optimization

Context není statický. Mění se podle:

Task complexity - složité úkoly potřebují víc kontextu
User expertise - expert vs. beginner potřebuje jiné informace
Performance feedback - učení se z úspěchů a chyb
Resource constraints - tokens, latency, costs

Praktické techniky z praxe

Context Layering

Místo jednoho obřího promptu stavím kontext po vrstvách:

# Layer 1: Core identity
system_role = """
Senior business analyst s 10+ lety zkušeností
Specializace: SaaS metriky, customer analytics
Styl: Data-driven, konkrétní doporučení
"""

# Layer 2: Current task context  
task_context = f"""
Aktuální projekt: {project_name}
Deadline: {deadline}
Stakeholders: {stakeholder_list}
Previous insights: {session_memory}
"""

# Layer 3: Dynamic information
dynamic_context = f"""
Relevantní data: {retrieved_data}
Dostupné nástroje: {available_tools}
Aktuální metrics: {live_metrics}
"""

Context Chaining

Pro komplexní úkoly rozdělím práci do kroků, kde výstup jednoho kroku se stává kontextem pro další:

# Krok 1: Analýza problému
problem_analysis = llm_call(
    context=base_context + user_problem,
    task="Analyzuj problém a identifikuj klíčové otázky"
)

# Krok 2: Sběr dat s kontextem z kroku 1
data_context = base_context + problem_analysis
retrieved_data = gather_data(problem_analysis.key_questions)

# Krok 3: Řešení s full kontextem
solution = llm_call(
    context=data_context + retrieved_data,
    task="Navrhni řešení založené na analýze a datech"
)

Adaptive Context Compression

Když se blížím k token limitu, používám kompresní strategie:

def compress_context(context_items, max_tokens):
    if calculate_tokens(context_items) <= max_tokens:
        return context_items

    # Prioritizace podle důležitosti
    prioritized = rank_by_relevance(context_items)

    # Postupná komprese
    compressed = []
    token_budget = max_tokens

    for item in prioritized:
        if item.type == "critical":
            compressed.append(item)  # Vždy zahrnout
        elif item.type == "supporting":
            if token_budget > estimate_tokens(item):
                compressed.append(summarize(item))  # Komprese

    return compressed

Časté problémy a jejich řešení

Context Poisoning

Problém: Chyba se dostane do kontextu a pak se propaguje dál.

Řešení z praxe:

def validate_context(context_item):
    # Fact-checking pro kritické informace
    if context_item.type == "factual":
        confidence = fact_check(context_item.content)
        if confidence < 0.8:
            context_item.add_disclaimer("Unverified information")

    # Timestamp check pro časově citlivé info
    if context_item.age > MAX_STALENESS:
        refresh_data(context_item)

    return context_item

Context Overload

Problém: Příliš mnoho informací rozptyluje model.

Mé řešení:

  • Používám "attention hints" - explicitně říkám, na co se zaměřit
  • Strukturuji kontext hierarchicky (nejdůležitější nahoře)
  • Implementuji "context budgeting" - každý typ info má limit
context_budget = {
    "system_instructions": 500,   # tokens
    "user_input": 1000,
    "retrieved_docs": 2000,
    "tool_outputs": 1500,
    "memory": 1000
}

Tool Confusion

Problém: Model si vybírá špatné nástroje.

Moje strategie:

def smart_tool_selection(user_intent, available_tools):
    # Jen relevantní nástroje pro daný typ úkolu
    if user_intent == "data_analysis":
        return [tools.python_executor, tools.data_visualizer]
    elif user_intent == "web_research":
        return [tools.web_search, tools.summarizer]

    # Nikdy nedávat všechny nástroje najednou
    return filter_tools_by_relevance(available_tools, max_count=5)

Frameworky a nástroje

LangChain/LangGraph

Skvělé pro orchestraci workflows, ale pozor na over-engineering:

from langgraph import StateGraph

# Definuji workflow s explicitním context flow
workflow = StateGraph()
workflow.add_node("analyze", analyze_with_context)
workflow.add_node("retrieve", smart_retrieval) 
workflow.add_node("synthesize", synthesize_response)

# Context se propaguje mezi kroky
workflow.add_edge("analyze", "retrieve")
workflow.add_edge("retrieve", "synthesize")

LlamaIndex

Exceluje v knowledge management:

from llama_index import VectorStoreIndex, ContextBuilder

# Automatické budování kontextu
context_builder = ContextBuilder()
context_builder.add_memory_layer(user_profile)
context_builder.add_retrieval_layer(document_index)
context_builder.add_tool_layer(available_functions)

Anthropic MCP

Nejnovější standard pro propojení AI s externí systémy:

# MCP server pro firemní data
mcp_server = MCPServer()
mcp_server.register_resource("customer_db", CustomerDatabase())
mcp_server.register_tool("send_email", EmailTool())

# AI má strukturovaný přístup k firemním systémům

Budoucnost context engineeringu

Vidím tři hlavní trendy:

1. Automated Context Assembly
AI začíná samo rozpoznávat, jaký kontext potřebuje. Experiments s "self-reflective agents" ukazují zajímavé výsledky.

2. Multi-Modal Context Integration
Kombinace textu, obrázků, audio, video do jednotného kontextu. Pracuji na projektu, kde AI analyzuje video cally a extrahuje kontext pro další rozhodnutí.

3. Collaborative Context Networks
Více AI agentů sdílí kontext a buduje kolektivní "paměť" týmu.

Co si odnést domů

Context engineering není jen technická disciplína – je to nový způsob myšlení o AI aplikacích. Moje klíčová doporučení:

1. Začněte s auditem kontextu
Podívejte se na vaše současné AI aplikace. Co všechno model "nevidí", ale měl by?

2. Investujte do memory systémů
Dlouhodobá paměť je game-changer. AI, které si pamatuje vaše preference a zkušenosti, je kvalitativně jiné.

3. Experimentujte s context compression
Naučte se čistit a komprimovat kontext. Méně může být více.

4. Měřte context effectiveness
Trackujte, které části kontextu model skutečně používá. Optimalizujte na základě dat.

5. Myslĕte systémově
Context engineering je systémová disciplína. Nejde o izolované prompty, ale o architekturu informačních toků.

A především: context engineering je budoucnost AI aplikací. Kdo ho zvládne dřív, získá obrovskou výhodu.


Po několika letech experimentování s LLM si myslím, že context engineering je nejdůležitější skill pro AI builders. Není to jen o tom dát modelu správné informace – je to o pochopení toho, jak AI "myslí" a jak navrhnout systémy, které s tímto myšlením spolupracují. Je to fascinující kombinace software architecture, cognitive science a trochy magie.

Loading