
6
なお、環境に合わせて「Linuxシェルコマンド」のOS名を書き換えてください。 例えば 、
Windowsを使う場合、「Linux」を「 Windows」に置き換えてください。
@tool
def exec_command(shell_command: str) -> str:
"""シェルコマンドを実行します。
shell_command: Linuxシェルコマンド
"""
result = subprocess.run(shell_command, shell=True, capture_output=True)
return result.stdout.decode("utf-8") + result.stderr.decode("utf-8")
ここでは、
exec_command
という名前のツールを定義しています。このツールは引数として
シェルコマンドを受け取り、そのコマンドを実行した結果を返します。ツールの定義には、
5.2で紹介した @tool デコレータを使用します。
エージェントの状態定義
次に、エージェントの状態を定義します。
class AgentState(TypedDict):
messages: Annotated[Sequence[BaseMessage], operator.add]
ここでは、
messages
というフィールドを持つ
AgentState
型を定義しています。
messages
は、
エージェントとユーザのやりとりを保存するためのフィールドです。
Annotated ...