I need to learn LangGraph because of my graduation project. It’s about an LLM-based SQL tools, including features like SQL generation, explain and optimize.

This file serve as a log for my learning process.

Todo

  • Explore pydantic usage with LangGraph
  • Learn about Streaming in LangGraph (brief)

Log

2.19

It seems that we should at least use TypedDict as the basic scaffold. We need a structure that support partial update.

Maybe we could use a state wrapper like below:

class MyState(BaseModel):
    """
    The actual state class I want to use. In another word, 
    this is where the actual data stored.
    """
    pass
 
 
class State(TypedDict):
    """
    The state used by LangGraph. Serve as a wrapper.
    """
    state: 
 
def some_lang_graph_node_func(wrapper: State):
    # parse the actual state
    st = MyState(wrapper.state)
    
    # some operations
    return Command(
        update={state: st}
    )

Note

After discussing with AI, it seems pydantic will work with LangGraph. More research and experiments needed.