mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-08-22 07:32:25 +02:00
Add state arg to modify hook
This commit is contained in:
@@ -135,7 +135,7 @@ def _make_model_request_node(
|
||||
)
|
||||
# visit middleware in order
|
||||
for mw in middleware:
|
||||
request = mw.modify_model_request(request)
|
||||
request = mw.modify_model_request(request, state)
|
||||
# prepare messages
|
||||
if request.system_prompt:
|
||||
messages = [SystemMessage(request.system_prompt)] + request.messages
|
||||
|
||||
@@ -31,7 +31,9 @@ class AgentMiddleware:
|
||||
def before_model(self, state: AgentState) -> AgentState | None:
|
||||
pass
|
||||
|
||||
def modify_model_request(self, request: ModelRequest) -> ModelRequest:
|
||||
def modify_model_request(
|
||||
self, request: ModelRequest, state: AgentState
|
||||
) -> ModelRequest:
|
||||
return request
|
||||
|
||||
def after_model(self, state: AgentState) -> AgentState | None:
|
||||
|
||||
@@ -156,6 +156,10 @@ def test_create_agent_invoke(
|
||||
def before_model(self, state):
|
||||
calls.append("NoopSeven.before_model")
|
||||
|
||||
def modify_model_request(self, request, state):
|
||||
calls.append("NoopSeven.modify_model_request")
|
||||
return request
|
||||
|
||||
def after_model(self, state):
|
||||
calls.append("NoopSeven.after_model")
|
||||
|
||||
@@ -163,6 +167,10 @@ def test_create_agent_invoke(
|
||||
def before_model(self, state):
|
||||
calls.append("NoopEight.before_model")
|
||||
|
||||
def modify_model_request(self, request, state):
|
||||
calls.append("NoopEight.modify_model_request")
|
||||
return request
|
||||
|
||||
def after_model(self, state):
|
||||
calls.append("NoopEight.after_model")
|
||||
|
||||
@@ -216,11 +224,15 @@ def test_create_agent_invoke(
|
||||
assert calls == [
|
||||
"NoopSeven.before_model",
|
||||
"NoopEight.before_model",
|
||||
"NoopSeven.modify_model_request",
|
||||
"NoopEight.modify_model_request",
|
||||
"NoopEight.after_model",
|
||||
"NoopSeven.after_model",
|
||||
"my_tool",
|
||||
"NoopSeven.before_model",
|
||||
"NoopEight.before_model",
|
||||
"NoopSeven.modify_model_request",
|
||||
"NoopEight.modify_model_request",
|
||||
"NoopEight.after_model",
|
||||
"NoopSeven.after_model",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user