from langgraph.graph import StateGraph, END, START
from langgraph.checkpoint.memory import MemorySaver
@observe(name="langchain_graph_workflow")
async def create_and_run_graph():
workflow = StateGraph(AgentState)
workflow.add_node("research_node", research_step)
workflow.add_node("analysis_node", analysis_step)
workflow.add_node("recommendation_node", recommendation_step)
workflow.add_edge(START, "research_node")
workflow.add_edge("research_node", "analysis_node")
workflow.add_edge("analysis_node", "recommendation_node")
workflow.add_edge("recommendation_node", END)
memory = MemorySaver()
app = workflow.compile(checkpointer=memory)
config = {"configurable": {"thread_id": "demo-thread"}}
final_state = await app.aget_state(config)
return final_state