
6
ここでは、
messages
フィールドを持つ
AgentState
型を定義しています。
messages
はエージェ
ント間の会話を保存するためのフィールドです。
ノード関数の定義
次に、各ノードの処理を定義します。ここでは、二つのエージェントの共通処理を関数とし
て定義し、それを部分適用することで各エージェント用のノード関数を定義しています。
def agent_node(state, agent, name):
result = agent.invoke(state)
message = AIMessage(**result.model_dump(exclude={"type", "name"}), name=name)
print(f"{name}: {message.content}")
return {"messages": [message]}
<中略>
salesman_node = functools.partial(agent_node, agent=salesman_agent, name="Salesman")
shed_node = functools.partial(agent_node, agent=shed_agent, name="SHED")
agent_node
関数は、エージェントノードの処理を実装しています。エージェントの状態を
受け取り、チェーンを呼び出して次のメッセージを生成します。生成されたメッセージを
AIMessage
オブジェクトに変換し、名前を付けて返します ...