ASD

Langchain Architecture

Diseña aplicaciones LLM con LangChain 1.x y LangGraph para agentes, memoria e integración de herramientas. Útil al construir agentes de IA o flujos LLM complejos.

Estrellas
38.8k

en todo el repo

Actividad
56

0–100, la ruta de este skill

Actualizado
el mes pasado

último commit aquí

Commits
2

últimos 90 días

Contexto
2k tok

50 tok en reposo

Paquete
2 archivos

19 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill langchain-architecture --agent claude-code

Se instala solo en este repositorio.

Este skill needs API credentials.

Qué hace

  • Guía el diseño de aplicaciones LLM con LangChain 1.x y LangGraph
  • Aporta patrones para agentes ReAct, plan-and-execute y multi-agente con StateGraph
  • Explica gestión de memoria, checkpointing y procesamiento de documentos
  • Incluye ejemplos de caching con Redis, batch async y pooling de conexiones

Úsalo cuando

  • Construcción de agentes de IA autónomos con acceso a herramientas
  • Implementación de flujos de trabajo LLM complejos de varios pasos
  • Gestión de memoria y estado de conversación
  • Integración de LLMs con fuentes de datos y APIs externas

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Crea un agente ReAct con LangGraph que use herramientas y memoria persistente
    • Diseña un flujo multi-agente con supervisor en LangChain
    • Ayúdame a implementar checkpointing de estado en LangGraph

    SKILL.md

    En inglés

    LangChain & LangGraph Architecture

    Master modern LangChain 1.x and LangGraph for building sophisticated LLM applications with agents, state management, memory, and tool integration.

    When to Use This Skill

    • Building autonomous AI agents with tool access
    • Implementing complex multi-step LLM workflows
    • Managing conversation memory and state
    • Integrating LLMs with external data sources and APIs
    • Creating modular, reusable LLM application components
    • Implementing document processing pipelines
    • Building production-grade LLM applications

    Package Structure (LangChain 1.x)

    langchain (1.2.x)         # High-level orchestration
    langchain-core (1.2.x)    # Core abstractions (messages, prompts, tools)
    langchain-community       # Third-party integrations
    langgraph                 # Agent orchestration and state management
    langchain-openai          # OpenAI integrations
    langchain-anthropic       # Anthropic/Claude integrations
    langchain-voyageai        # Voyage AI embeddings
    langchain-pinecone        # Pinecone vector store
    

    Core Concepts

    1. LangGraph Agents

    LangGraph is the standard for building agents in 2026. It provides:

    Key Features:

    • StateGraph: Explicit state management with typed state
    • Durable Execution: Agents persist through failures
    • Human-in-the-Loop: Inspect and modify state at any point
    • Memory: Short-term and long-term memory across sessions
    • Checkpointing: Save and resume agent state

    Agent Patterns:

    • ReAct: Reasoning + Acting with create_react_agent
    • Plan-and-Execute: Separate planning and execution nodes
    • Multi-Agent: Supervisor routing between specialized agents
    • Tool-Calling: Structured tool invocation with Pydantic schemas

    2. State Management

    LangGraph uses TypedDict for explicit state:

    from typing import Annotated, TypedDict
    from langgraph.graph import MessagesState
    
    # Simple message-based state
    class AgentState(MessagesState):
        """Extends MessagesState with custom fields."""
        context: Annotated[list, "retrieved documents"]
    
    # Custom state for complex agents
    class CustomState(TypedDict):
        messages: Annotated[list, "conversation history"]
        context: Annotated[dict, "retrieved context"]
        current_step: str
        results: list
    

    3. Memory Systems

    Modern memory implementations:

    • ConversationBufferMemory: Stores all messages (short conversations)
    • ConversationSummaryMemory: Summarizes older messages (long conversations)
    • ConversationTokenBufferMemory: Token-based windowing
    • VectorStoreRetrieverMemory: Semantic similarity retrieval
    • LangGraph Checkpointers: Persistent state across sessions

    4. Document Processing

    Loading, transforming, and storing documents:

    Components:

    • Document Loaders: Load from various sources
    • Text Splitters: Chunk documents intelligently
    • Vector Stores: Store and retrieve embeddings
    • Retrievers: Fetch relevant documents

    5. Callbacks & Tracing

    LangSmith is the standard for observability:

    • Request/response logging
    • Token usage tracking
    • Latency monitoring
    • Error tracking
    • Trace visualization

    Quick Start

    Modern ReAct Agent with LangGraph

    from langgraph.prebuilt import create_react_agent
    from langgraph.checkpoint.memory import MemorySaver
    from langchain_anthropic import ChatAnthropic
    from langchain_core.tools import tool
    import ast
    import operator
    
    # Initialize LLM (Claude Sonnet 5 recommended)
    llm = ChatAnthropic(model="claude-sonnet-5")
    
    # Define tools with Pydantic schemas
    @tool
    def search_database(query: str) -> str:
        """Search internal database for information."""
        # Your database search logic
        return f"Results for: {query}"
    
    @tool
    def calculate(expression: str) -> str:
        """Safely evaluate a mathematical expression.
    
        Supports: +, -, *, /, **, %, parentheses
        Example: '(2 + 3) * 4' returns '20'
        """
        # Safe math evaluation using ast
        allowed_operators = {
            ast.Add: operator.add,
            ast.Sub: operator.sub,
            ast.Mult: operator.mul,
            ast.Div: operator.truediv,
            ast.Pow: operator.pow,
            ast.Mod: operator.mod,
            ast.USub: operator.neg,
        }
    
        def _eval(node):
            if isinstance(node, ast.Constant):
                return node.value
            elif isinstance(node, ast.BinOp):
                left = _eval(node.left)
                right = _eval(node.right)
                return allowed_operators[type(node.op)](left, right)
            elif isinstance(node, ast.UnaryOp):
                operand = _eval(node.operand)
                return allowed_operators[type(node.op)](operand)
            else:
                raise ValueError(f"Unsupported operation: {type(node)}")
    
        try:
            tree = ast.parse(expression, mode='eval')
            return str(_eval(tree.body))
        except Exception as e:
            return f"Error: {e}"
    
    tools = [search_database, calculate]
    
    # Create checkpointer for memory persistence
    checkpointer = MemorySaver()
    
    # Create ReAct agent
    agent = create_react_agent(
        llm,
        tools,
        checkpointer=checkpointer
    )
    
    # Run agent with thread ID for memory
    config = {"configurable": {"thread_id": "user-123"}}
    result = await agent.ainvoke(
        {"messages": [("user", "Search for Python tutorials and calculate 25 * 4")]},
        config=config
    )
    

    Detailed patterns and worked examples

    Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

    Testing Strategies

    import pytest
    from unittest.mock import AsyncMock, patch
    
    @pytest.mark.asyncio
    async def test_agent_tool_selection():
        """Test agent selects correct tool."""
        with patch.object(llm, 'ainvoke') as mock_llm:
            mock_llm.return_value = AsyncMock(content="Using search_database")
    
            result = await agent.ainvoke({
                "messages": [("user", "search for documents")]
            })
    
            # Verify tool was called
            assert "search_database" in str(result)
    
    @pytest.mark.asyncio
    async def test_memory_persistence():
        """Test memory persists across invocations."""
        config = {"configurable": {"thread_id": "test-thread"}}
    
        # First message
        await agent.ainvoke(
            {"messages": [("user", "Remember: the code is 12345")]},
            config
        )
    
        # Second message should remember
        result = await agent.ainvoke(
            {"messages": [("user", "What was the code?")]},
            config
        )
    
        assert "12345" in result["messages"][-1].content
    

    Performance Optimization

    1. Caching with Redis

    from langchain_community.cache import RedisCache
    from langchain_core.globals import set_llm_cache
    import redis
    
    redis_client = redis.Redis.from_url("redis://localhost:6379")
    set_llm_cache(RedisCache(redis_client))
    

    2. Async Batch Processing

    import asyncio
    from langchain_core.documents import Document
    
    async def process_documents(documents: list[Document]) -> list:
        """Process documents in parallel."""
        tasks = [process_single(doc) for doc in documents]
        return await asyncio.gather(*tasks)
    
    async def process_single(doc: Document) -> dict:
        """Process a single document."""
        chunks = text_splitter.split_documents([doc])
        embeddings = await embeddings_model.aembed_documents(
            [c.page_content for c in chunks]
        )
        return {"doc_id": doc.metadata.get("id"), "embeddings": embeddings}
    

    3. Connection Pooling

    from langchain_pinecone import PineconeVectorStore
    from pinecone import Pinecone
    
    # Reuse Pinecone client
    pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])
    index = pc.Index("my-index")
    
    # Create vector store with existing index
    vectorstore = PineconeVectorStore(index=index, embedding=embeddings)
    

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere los paquetes langchain, langchain-core, langgraph y los integradores correspondientes (langchain-openai, langchain-anthropic, etc.).

    Variables de entorno:PINECONE_API_KEY

    Detalles

    Creador
    wshobson
    Licencia
    MIT
    Recursos incluidos
    referencias
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 180 skills. Si instalas uno, normalmente ya tienes los demás.

    Úsalo al seleccionar y colocar iconos, imágenes, SVGs, diagramas o infografías de apoyo aprobados en un PPTX editable.

    Costo de contexto al activarse
    344 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsalo al redactar o reparar una especificación JSON con coordenadas explícitas para un PPTX editable.

    Costo de contexto al activarse
    489 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para validar o reparar un PPTX editable en cuanto a geometría, accesibilidad, editabilidad nativa, linaje de fuente e integridad del paquete OOXML.

    Costo de contexto al activarse
    409 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para analizar un PPTX de referencia en modo solo lectura: estructura, tema, tipografía, ritmo de layout, diagnósticos, catálogos de plantillas derivados o inspección segura del paquete OOXML.

    Costo de contexto al activarse
    689 tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo al preparar la narrativa, las fuentes y el contexto de diseño para un nuevo deck PPTX editable.

    Costo de contexto al activarse
    415 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Skills relacionados

    Integra el procesamiento de pagos de PayPal, con soporte para express checkout, suscripciones y gestión de reembolsos en flujos de comercio electrónico.

    Costo de contexto al activarse
    1k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    desarrollo apis

    Construye sistemas RAG (Retrieval-Augmented Generation) para aplicaciones LLM con bases de datos vectoriales y búsqueda semántica, integrando conocimiento externo.

    Costo de contexto al activarse
    1.1k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    el mes pasado
    desarrollo apis

    Construye servicios backend de Node.js listos para producción con Express/Fastify, cubriendo middleware, manejo de errores, autenticación, bases de datos y diseño de APIs.

    Costo de contexto al activarse
    499 tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 2 meses
    desarrollo apis