Add state arg to modify hook

This commit is contained in:
Nuno Campos
2025-08-25 21:08:38 +01:00
parent a51c0bfa31
commit e1aeb24a4e
3 changed files with 16 additions and 2 deletions
+1 -1
View File
@@ -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
+3 -1
View File
@@ -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:
+12
View File
@@ -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",
]