4.2 共有ステート
LangGraph における共有ステート
このアプリで最も重要な LangGraph のコンセプトは、共有ステートオブジェクトです
このステートは、グラフ内のノードからノードへと移動します。
各ノードは以下を行います
- ステートから値を読み取る
- 何らかの処理を実行する
- 新しい値をステートに書き戻す
current_agentを設定して次の処理を制御する
これは LangGraph の重要なメンタルモデルですステートフルなワークフローオーケストレーション。
知識チェック
messages フィールドに使用されている構文をどのように説明しますか?
ここをクリックして回答を確認
messages: Annotated[List[AnyMessage], add_messages] は2つのことを行います。
List[AnyMessage]はフィールドの型を定義します:LangChain のメッセージオブジェクト(system、human、または AI メッセージ)のリストです。Annotated[..., add_messages]は LangGraph の動作を追加し、このフィールドの更新をどのように処理するかをグラフに指示します。
具体的には、add_messages はノードが新しいメッセージを書き込んだ際に、LangGraph が既存のリストを上書きするのではなく、追記することを意味します。
そのため、各ノードがメッセージを追加するたびに、会話履歴が増えていきます。