v2.5.9
Followup suggestions in Agno: give users their next question
Agno agents can suggest followup questions at the end of a response. Set followups=True on an Agent or Team and you get back a list of ready-to-run prompts on response.followups, built from the user's question and the answer the agent just gave.
The problem this solves is small but constant. A response ends, the user reads it, and then they're sitting in front of an empty input box trying to work out what to ask next. Half the time they don't bother. Handing them three plausible next questions keeps things moving.
How to enable followup suggestions
Two arguments: followups turns it on, num_followups says how many you want.
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
agent = Agent(
model=OpenAIResponses(id="gpt-5.4-mini"),
followups=True,
num_followups=3,
)
response = agent.run("What is quantum computing?")
for suggestion in response.followups or []:
print(suggestion)
Under the hood, once the main response is done, Agno makes a second model call with the user input and the response, and puts the results on response.followups.
Configuration options
Using a cheaper model for suggestions
That second call isn't free. If you're generating suggestions on every turn it adds up, and writing three short questions doesn't need your best model. Point followup_model at something smaller and keep the main model on the actual work.
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
agent = Agent(
model=OpenAIResponses(id="gpt-5.4-mini"),
followups=True,
num_followups=3,
followup_model=OpenAIResponses(id="gpt-4o-mini"),
)
Followup suggestions with streaming
Streaming works the way you'd want it to. The suggestions arrive on their own event after the main content has finished, so nothing about generating them slows down the reply the user is already reading. Watch for RunEvent.followups_completed and read event.followups.
import asyncio
from agno.agent import Agent, RunEvent
from agno.models.openai import OpenAIResponses
agent = Agent(
model=OpenAIResponses(id="gpt-5.4-mini"),
followups=True,
num_followups=3,
)
async def main():
async for event in agent.arun(
"What is quantum computing?",
stream=True,
stream_events=True,
):
if event.event == RunEvent.run_content and event.content:
print(event.content, end="", flush=True)
if event.event == RunEvent.followups_completed:
print("\n\nFollowup suggestions:")
for suggestion in event.followups or []:
print(suggestion)
asyncio.run(main())
Frequently asked questions
How do I enable followup suggestions in Agno?
Pass followups=True when you build an Agent or a Team. After a run, the suggestions are on response.followups. num_followups controls how many you get back. It defaults to 3 and the minimum is 1.
How much do followup suggestions cost?
One extra model call per response. It's a short call, since all it sends is the user's question and the answer, but it's still a call. Set followup_model to a smaller model if you're running this on every turn.
Can I use a different model to generate followup suggestions?
Yes, that's what followup_model is for. Whatever you pass handles suggestion generation only and your main model keeps handling responses. Leave it as None and Agno just reuses the agent's model.
Do followup suggestions work with streaming?
They do. Suggestions come through on a separate RunEvent.followups_completed event once the main response has finished streaming, with the list on event.followups. Rendering them never blocks the reply.
Do followup suggestions work with Agno Teams?
Same setup as a single agent. Set followups=True on the Team and read the results off the response.
Do followup suggestions appear in AgentOS?
Yes. With followups=True, the suggested prompts render at the end of each response in AgentOS and users can click one to send it.
What context is used to generate the suggestions?
The user's input and the agent's response from that run. Not the full conversation history.
Read more in the Agent with Followup Suggestions docs.
