LangChain Middleware API
AgentMiddleware 基底クラスのフックメソッド
| メソッド | シグネチャ | 実行頻度 | 戻り値 |
|---|---|---|---|
| before_agent | (state, runtime) → dict または None | 1回 | 状態更新または None |
| abefore_agent | (state, runtime) → dict または None | 1回 | 状態更新または 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 または None | 1回 | 状態更新または None |
| aafter_agent | (state, runtime) → dict または None | 1回 | 状態更新または None |
デコレータ一覧
| デコレータ | パラメータ | 説明 |
|---|---|---|
| @before_agent | state_schema, tools, can_jump_to, name | Agent 開始前に実行 |
| @after_agent | state_schema, tools, can_jump_to, name | Agent 終了後に実行 |
| @before_model | state_schema, tools, can_jump_to, name | モデル呼び出し前に実行 |
| @after_model | state_schema, tools, can_jump_to, name | モデル呼び出し後に実行 |
| @wrap_model_call | state_schema, tools, name | モデル実行をインターセプト |
| @wrap_tool_call | tools, name | ツール実行をインターセプト |
| @dynamic_prompt | 无 | システムプロンプトを動的に生成 |
ModelRequest の主要プロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
| model | BaseChatModel | 現在のモデル |
| messages | list[AnyMessage] | メッセージリスト(system message を含まない) |
| system_message | SystemMessage または None | 現在のシステムメッセージ |
| tools | list | 利用可能なツールリスト |
| tool_choice | Any | ツール選択戦略 |
| response_format | ResponseFormat または None | 構造化出力フォーマット |
| state | dict | Agent の現在の状態 |
| runtime | Runtime | ランタイムコンテキスト |
ModelRequest の override() メソッドは、変更を加えた新しいリクエストを作成するために使用します:
例
new_request = request.override(
model=different_model,
system_message=SystemMessage(content="新しいプロンプト"),
tools=[new_tool],
)
model=different_model,
system_message=SystemMessage(content="新しいプロンプト"),
tools=[new_tool],
)
ModelResponse の構造
| プロパティ | 型 | 説明 |
|---|---|---|
| result | list[BaseMessage] | モデルが返したメッセージリスト |
| structured_response | Any または None | 構造化出力結果 |
特殊な戻り値 ExtendedModelResponse
| プロパティ | 説明 |
|---|---|
| model_response | 基盤となる ModelResponse |
| command | オプションの Command オブジェクト。追加の状態更新に使用 |