from langgraph.graph import StateGraph, START, END from agent_state import AgentState from tools.transcriber import transcribe_fast from tools.news_reporter import create_news_report from tools.saver import save_summary # In your workflow.py # ... (imports and node definitions for transcribe, create_news_report, save_summary) def build_graph(): workflow = StateGraph(AgentState) workflow.add_node("transcriber", transcribe_fast) workflow.add_node("news_reporter", create_news_report) # Renamed for clarity workflow.add_node("saver", save_summary) # This is the conditional logic based on human approval def check_approval(state: AgentState): return "saver" if state.approved else "news_reporter" # Define the graph's structure workflow.add_edge(START, "transcriber") workflow.add_edge("transcriber", "news_reporter") # The conditional edge for the loop/save decision workflow.add_conditional_edges( "news_reporter", check_approval, { "saver": "saver", "news_reporter": "news_reporter" # This allows looping back if feedback is given } ) workflow.add_edge("saver", END) return workflow.compile()