LangChain configuración y clases de error
Opciones de configuración de RunnableConfig
| Campo | Tipo | Descripción |
|---|---|---|
| configurable | dict | Configuración en tiempo de ejecución. La más utilizada: thread_id para Checkpointer |
| recursion_limit | int | Profundidad máxima de recursión (por defecto 9999) |
| metadata | dict | Metadatos adicionales |
| tags | list[str] | Lista de etiquetas, utilizada para filtrar y agrupar el rastreo |
| callbacks | list[BaseCallbackHandler] | Manejadores de callback |
Ejemplo
config = {
"configurable": {"thread_id": "user-001"},
"metadata": {"source": "web"},
"tags": ["production", "chat"],
}
result = agent.invoke(inputs, config=config)
"configurable": {"thread_id": "user-001"},
"metadata": {"source": "web"},
"tags": ["production", "chat"],
}
result = agent.invoke(inputs, config=config)
Clases de implementación de Checkpointer
| Clase | Ruta de importación | Persistencia |
|---|---|---|
| InMemorySaver | langgraph.checkpoint.memory | no |
| SqliteSaver | langgraph.checkpoint.sqlite | Sí |
| PostgresSaver | langgraph.checkpoint.postgres | Sí |
Ejemplo
# Memoria
from langgraph.checkpoint.memory import InMemorySaver
checkpointer = InMemorySaver()
# SQLite
from langgraph.checkpoint.sqlite import SqliteSaver
checkpointer = SqliteSaver.from_conn_string("checkpoints.db")
# PostgreSQL
# from langgraph.checkpoint.postgres import PostgresSaver
# checkpointer = PostgresSaver.from_conn_string("postgresql://...")
from langgraph.checkpoint.memory import InMemorySaver
checkpointer = InMemorySaver()
# SQLite
from langgraph.checkpoint.sqlite import SqliteSaver
checkpointer = SqliteSaver.from_conn_string("checkpoints.db")
# PostgreSQL
# from langgraph.checkpoint.postgres import PostgresSaver
# checkpointer = PostgresSaver.from_conn_string("postgresql://...")
Clases de implementación de Store
| Clase | Ruta de importación | Persistencia |
|---|---|---|
| InMemoryStore | langgraph.store.memory | no |
| PostgresStore | langgraph.store.postgres | Sí |
Ejemplo
from langgraph.store.memory import InMemoryStore
store = InMemoryStore()
store.put(("namespace",), "key", {"data": "value"})
item = store.get(("namespace",), "key")
items = store.search(("namespace",))
store.delete(("namespace",), "key")
store = InMemoryStore()
store.put(("namespace",), "key", {"data": "value"})
item = store.get(("namespace",), "key")
items = store.search(("namespace",))
store.delete(("namespace",), "key")
Clases de excepción comunes
| Excepción | Origen | Descripción |
|---|---|---|
| ToolException | langchain.tools | Excepción interna de la herramienta. El agente puede capturarla y volver a decidir. |
| ImportError | Integrado en Python | Falta un paquete de dependencia. El mensaje de error indicará el comando de instalación. |
| ValueError | Integrado en Python | Falló la validación de parámetros o error de configuración. |
| NotImplementedError | Integrado en Python | Método de middleware no implementado (por ejemplo, solo se definió síncrono, pero se llama asíncrono). |
| StructuredOutputError | langchain.agents.structured_output | Errores relacionados con la salida estructurada (formato incorrecto, múltiples salidas, etc.) |
| StructuredOutputValidationError | langchain.agents.structured_output | Falló la validación de la salida estructurada |
| MultipleStructuredOutputsError | langchain.agents.structured_output | El modelo devolvió múltiples salidas estructuradas |
| TimeoutError | Integrado en Python / SDKs | Tiempo de espera de la solicitud agotado |
Lista de verificación de configuración de LaunchDarkly
| Elemento de verificación | Comando/Método |
|---|---|
| Versión de Python | python --version (se requiere 3.10+) |
| Versión de langchain | python -c "import langchain; print(langchain.__version__)" |
| Instalación de dependencias | pip list | grep langchain |
| Configuración de API Key | python -c "import os; from dotenv import load_dotenv; load_dotenv(); print(os.getenv('DEEPSEEK_API_KEY', 'NOT SET')[:10])" |
| Conectividad del modelo | Usar init_chat_model() para enviar una solicitud simple de prueba |
Otras extensionesLa referencia de la API de este tutorial se basa en LangChain v1.3.0. Dado que LangChain aún se está desarrollando rápidamente, se recomienda consultar la documentación oficial más reciente para obtener la información más actualizada de la API.