Agente de deepresearch historico especializado en la epoca visigoda

🧩 Propósito general
Este script define un workflow de investigación histórica usando LangGraph y modelos LLM (Deepseek y GPT‑4o). La idea es:
- Planificar pasos de investigación.
- Ejecutar cada paso con un agente que usa herramientas externas (Wikipedia, noticias, RAG).
- Replanificar si hace falta, hasta llegar a una respuesta final.
- Registrar todo en archivos Markdown y opcionalmente visualizar el grafo del flujo.
🔎 Partes principales del código
1. Imports y configuración
- Usa
asynciopara ejecución asíncrona. loggingpara registrar eventos.langchain,langgraphypydanticpara definir agentes, prompts y estructuras de datos.- Intenta importar herramientas personalizadas (
wikipedia_tool,ddg_news_tool,agent_tools, etc.). Si no existen, crea dummy definitions para que compile.
2. Carga de modelos y herramientas
- Llama a
get_model("Deepseek")yget_model("gpt-4o"). - Si ambos modelos están disponibles, prepara una lista de herramientas (
planner_tools) que incluyen:- Wikipedia, noticias, feedback humano.
- Agentes RAG especializados en historia (visigodos, íberos, celtas, etc.).
- Si no se cargan, usa solo herramientas básicas o un dummy agent.
3. Estructuras de datos (Pydantic)
Define clases para estructurar la información:
Plan: lista de pasos de investigación.Response: respuesta final al usuario.Act: puede ser unPlano unaResponse.PlanExecute: estado compartido del workflow (input, plan, pasos pasados, respuesta, logs).
4. Agentes y prompts
- planner_agent: ejecuta pasos del plan con herramientas.
- planner_runnable: genera un plan inicial enfocado en la época visigoda.
- replanner_runnable: revisa el plan y decide si continuar o dar respuesta final.
Los prompts están diseñados para que el agente actúe como investigador histórico y se enfoque en evidencias arqueológicas, cronológicas y culturales.
5. Funciones de nodos
plan_step: genera un plan inicial.execute_step: ejecuta el primer paso del plan.replan_step: decide si continuar o responder.log_to_file: guarda cada salida en un archivo Markdown (../informes_trace/trace_YYYYMMDD_HHMMSS.md).should_end: condición de finalización (si ya hay respuesta o plan vacío).
6. Construcción del workflow
Usa StateGraph de LangGraph:
- Flujo inicial:
START → planner → log_plan → agent. - Bucle:
agent → log_exec → replan → log_replan → (agent o END).
Esto asegura que el agente planifica, ejecuta, replanifica y registra cada paso hasta terminar.
7. Ejecución
- Función
run_planner_agent(question)ejecuta el flujo asíncrono. - Captura la respuesta final y la imprime.
- En
__main__, define una pregunta de investigación sobre Sant Martí de les Tombetes (Vall d’Àger) y ejecuta el workflow. - Intenta además generar una visualización del grafo con Graphviz.
📌 Resumen conceptual
Este código es un pipeline de investigación histórica automatizado:
- Planifica → qué pasos seguir.
- Ejecuta → cada paso con agentes y herramientas.
- Replanifica → si falta información.
- Responde → con una síntesis final.
- Loggea → todo en archivos Markdown y opcionalmente genera un grafo visual.







Sant Marti de les tombetes en la vall d Ager – sanchezpares.com
[…] Agente de deepresearch historico especializado en la epoca visigoda […]
Yacimiento de els Altimiris – sanchezpares.com
[…] Agente de deepresearch historico especializado en la epoca visigoda […]