FastAPI 0.147.0 reads every bool form field a client leaves out as False, whatever default the endpoint declares, and Agno's AgentOS routes now look at the raw form and restore their own default whenever a field is missing. Agno doesn't cap its fastapi dependency, so any fresh install of agno[os] picked up the new behaviour.
Three fields changed meaning. An omitted stream (default True) turned the agent, team and workflow run and continue routes into JSON endpoints. An omitted monitor on the team run route was logged as False. An omitted replace_original (default unset) on the agent and team continue routes arrived as False, so every continue without regenerate=true failed with a 400, and a regenerate left the original response visible.
We ran both routes through FastAPI's TestClient on FastAPI 0.157.0 for both releases, with a stub model standing in for a real one:
# earlier releases
POST /agents/helper/runs (stream omitted) -> 200 application/json
POST /agents/helper/runs/{run_id}/continue (regenerate omitted) -> 400 `replace_original` only makes sense with `regenerate=True`.
# this release
POST /agents/helper/runs (stream omitted) -> 200 text/event-stream
POST /agents/helper/runs/{run_id}/continue (regenerate omitted) -> 200 status=COMPLETED content='done: and then?'A value the client sends on purpose, like stream=false, still wins. On FastAPI releases before 0.147.0 an omitted field already matched its default, so nothing changes there. AgentOSClient, RemoteAgent, RemoteTeam and RemoteWorkflow always send stream, so callers using them never hit the bug.
Learn more about streaming run events in the documentation.
Frequently asked questions
FastAPI 0.147.0 started reading any boolean form field a client leaves out as False, so an omitted stream field turned streaming off. Upgrade Agno and POST /agents/{agent_id}/runs streams Server-Sent Events by default again.
On FastAPI 0.147.0 and later, an omitted replace_original arrived as False, which the agent and team continue routes reject unless regenerate=true is set. The fixed routes treat a missing replace_original as unset, so a plain continue succeeds.
stream on the agent, team and workflow run and continue routes, monitor on the team run route, and replace_original on the agent and team continue routes. Fields that default to False, such as background, fork and regenerate, read the same on every FastAPI version.
No. Agno checks whether the client actually sent each field and restores the declared default when it did not, and a value the client sends explicitly, such as stream=false, is kept as sent.


