
条件チェック関数の定義
router
は、ワークフローの次のステップを決定するための条件チェック関数です。評価者
がツールを使うか否かを判定します。
def router(state: AgentState) -> str:
"""ワークフローの次のステップを決定するルータ関数。"""
messages = state["messages"]
last_message = messages[-1]
if last_message.tool_calls:
return "call_tool"
return "continue"
router
関数は状態を受け取り、最後のメッセージがツール呼び出しを含む場合は
"call_
tool"
を、そうでない場合は
"continue"
を返します。
ワークフローの定義
最後に、
StateGraph
を使ってワークフローを定義します。
# ワークフロー定義
workflow = StateGraph(AgentState)
workflow.add_node("Leader", leader_node)
workflow.add_node("Evaluator", evaluator_node)
workflow.add_node("Tool", ToolNode([evaluate]))
workflow.add_node("Programmer", programmer_node)
workflow.add_node("TestWriter", tester_node)
workflow.add_conditional_edges( ...