feat(agents): enable middleware and state_schema compatibility (issue #33217) #33263
+135
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Title:
feat(agents): enable middleware and
state_schema compatibility
PR Message:
Description
Remove the artificial constraint
preventing middleware and state_schema
from being used together in
create_agent(). This enables advanced use
cases like RAG applications that need
both conversation summarization
middleware and custom state schemas for
document storage and citations.
Changes Made
constraint in react_agent.py
middleware_agent.create_agent()
automatic merging logic
RAG usage examples
schema support
Example Usage (Previously Impossible)
class RAGState(AgentState):
retrieved_documents:
NotRequired[list[dict]]
citations: NotRequired[list[str]]
agent = create_agent(
model="openai:gpt-4",
tools=[retrieval_tool],
middleware=[SummarizationMiddleware(m
odel=llm)], # For conversation
management
state_schema=RAGState, # For
document storage - now works!
)
Issue: Closes feature request for
middleware + state_schema compatibility
Dependencies: None - uses existing
infrastructure