have you tried extending the parent agent state via middleware, so that it forwards it into subagents?
The idiomatic pattern is to define a middleware with state_schema = YourState, where YourState extends AgentState. Deep Agents accepts extra middleware via the middleware=[...] parameter on create_deep_agent, so you can extend state there.
from langchain.agents.middleware import AgentMiddleware, AgentState
from deepagents import create_deep_agent
class MyState(AgentState):
customer_id: str
plan: str
flags: dict
class MyStateMiddleware(AgentMiddleware):
state_schema = MyState
agent = create_deep_agent(
middleware=[MyStateMiddleware()],
subagents=[...],
)
# IMPORTANT: populate those keys in the parent state before calling task()
agent.invoke({
"messages": [{"role": "user", "content": "Do the thing"}],
"customer_id": "cust_123",
"plan": "pro",
"flags": {"beta": True},
})