LangChain Middleware API


AgentMiddleware 基底クラスのフックメソッド

メソッドシグネチャ実行頻度戻り値
before_agent(state, runtime) → dict または None1回状態更新または None
abefore_agent(state, runtime) → dict または None1回状態更新または None
before_model(state, runtime) → dict または Noneループごと状態更新または None
abefore_model(state, runtime) → dict または Noneループごと状態更新または None
wrap_model_call(request, handler) → ModelResponse または AIMessageループごとモデル呼び出しの結果
awrap_model_call(request, handler) → ModelResponse または AIMessageループごとモデル呼び出しの結果
after_model(state, runtime) → dict または Noneループごと状態更新または None
aafter_model(state, runtime) → dict または Noneループごと状態更新または None
wrap_tool_call(request, handler) → ToolMessage または Commandツール呼び出しごとツール実行結果
awrap_tool_call(request, handler) → ToolMessage または Commandツール呼び出しごとツール実行結果
after_agent(state, runtime) → dict または None1回状態更新または None
aafter_agent(state, runtime) → dict または None1回状態更新または None

デコレータ一覧

デコレータパラメータ説明
@before_agentstate_schema, tools, can_jump_to, nameAgent 開始前に実行
@after_agentstate_schema, tools, can_jump_to, nameAgent 終了後に実行
@before_modelstate_schema, tools, can_jump_to, nameモデル呼び出し前に実行
@after_modelstate_schema, tools, can_jump_to, nameモデル呼び出し後に実行
@wrap_model_callstate_schema, tools, nameモデル実行をインターセプト
@wrap_tool_calltools, nameツール実行をインターセプト
@dynamic_prompt无システムプロンプトを動的に生成

ModelRequest の主要プロパティ

プロパティ型説明
modelBaseChatModel現在のモデル
messageslist[AnyMessage]メッセージリスト(system message を含まない)
system_messageSystemMessage または None現在のシステムメッセージ
toolslist利用可能なツールリスト
tool_choiceAnyツール選択戦略
response_formatResponseFormat または None構造化出力フォーマット
statedictAgent の現在の状態
runtimeRuntimeランタイムコンテキスト

ModelRequest の override() メソッドは、変更を加えた新しいリクエストを作成するために使用します:

例

new_request = request.override(
    model=different_model,
    system_message=SystemMessage(content="新しいプロンプト"),
    tools=[new_tool],
)

ModelResponse の構造

プロパティ型説明
resultlist[BaseMessage]モデルが返したメッセージリスト
structured_responseAny または None構造化出力結果

特殊な戻り値 ExtendedModelResponse

プロパティ説明
model_response基盤となる ModelResponse
commandオプションの Command オブジェクト。追加の状態更新に使用
その他の拡張