diff --git a/langgraph_agent.py b/langgraph_agent.py deleted file mode 100644 index 2b27dfa..0000000 --- a/langgraph_agent.py +++ /dev/null @@ -1,109 +0,0 @@ -""" -A minimal LangGraph agent implementation. - -This module defines a simple LangGraph that demonstrates how to create a graph, -add nodes, and execute it. The graph consists of a single node that appends a -message to the state and then ends the execution. - -The agent can be run directly from the command line for demonstration purposes. -""" - -from dataclasses import dataclass, field -from typing import List, Dict, Any - -# Import LangGraph components -try: - from langgraph.graph import StateGraph, END -except ImportError as exc: - raise ImportError( - "langgraph is not installed. Please add 'langgraph' to your requirements.txt " - "and run 'pip install -r requirements.txt'." - ) from exc - - -@dataclass -class AgentState: - """ - The state that flows through the graph. - - Attributes - ---------- - messages : List[str] - A list of messages that the agent accumulates during execution. - """ - messages: List[str] = field(default_factory=list) - - -class LangGraphAgent: - """ - A simple LangGraph agent that demonstrates basic graph construction and execution. - """ - - def __init__(self) -> None: - """ - Initialize the graph and define its nodes and edges. - """ - self.graph = StateGraph(AgentState) - - # Add nodes - self.graph.add_node("start", self._start_node) - self.graph.add_node("end", self._end_node) - - # Define the entry point and transitions - self.graph.set_entry_point("start") - self.graph.add_edge("start", "end") - self.graph.add_edge("end", END) - - # Compile the graph into a runnable function - self._graph_fn = self.graph.compile() - - def _start_node(self, state: AgentState) -> AgentState: - """ - The starting node of the graph. - - It appends a greeting message to the state's messages list. - """ - state.messages.append("Hello from LangGraph!") - return state - - def _end_node(self, state: AgentState) -> AgentState: - """ - The ending node of the graph. - - Currently, it performs no additional processing. - """ - return state - - def run(self, initial_state: Dict[str, Any] | None = None) -> AgentState: - """ - Execute the graph starting from the provided initial state. - - Parameters - ---------- - initial_state : dict or None - Optional dictionary to initialize the AgentState. If None, an empty state - is used. - - Returns - ------- - AgentState - The final state after graph execution. - """ - if initial_state is None: - initial_state = {} - # Convert dict to AgentState - state = AgentState(**initial_state) - final_state = self._graph_fn(state) - return final_state - - -if __name__ == "__main__": - """ - Example usage of the LangGraphAgent. - - Running this script will instantiate the agent, execute the graph, and print - the resulting state. - """ - agent = LangGraphAgent() - result = agent.run() - print("Final state messages:", result.messages) \ No newline at end of file