followups on an Agno Agent or Team takes a bool or a FollowupConfig, and the config carries a count range, a separate model and instructions that Agno appends to the follow-up call's system prompt and nowhere else.
from agno.agent import Agent, FollowupConfig
from agno.models.openai import OpenAIResponses
agent = Agent(
model=OpenAIResponses(id="gpt-5.5"),
instructions="Help with Python documentation. Decline unrelated requests briefly.",
followups=FollowupConfig(
max_followups=3, # up to 3, possibly none
model=OpenAIResponses(id="gpt-5.5"),
instructions="Suggest only Python documentation questions.",
),
)| You write | You get |
|---|---|
followups=True | exactly 3 |
FollowupConfig(num_followups=5) | exactly 5 |
FollowupConfig(max_followups=3) | up to 3, possibly none |
FollowupConfig(min_followups=1, max_followups=3) | 1 to 3 |
FollowupConfig(num_followups=5, max_followups=3) | ValueError when you build it |
Picture a docs assistant that politely refuses to write a sea poem. Its old follow-ups would often offer the poem again. The default follow-up prompt now asks the model to stay inside what the answer covered, to skip anything the answer declined, to ask for sources when information is missing, and to treat the quoted conversation as data. Every agent and team with follow-ups on gets that prompt. On four refusal scenarios in the pull request's live check, suggestions pointing back at the declined topic fell from 26 of 60 to 2 of 60 on gpt-5.5.
The maximum is enforced now as well. We ran the agent offline with stub models, and the follow-up model always returned five suggestions. Each run also shows the count line Agno sent that model.
Before followups=True "Generate exactly 3 follow-up suggestions." 5 returned
Now followups=True "Generate exactly 3 follow-up suggestions." 3 returned
Now FollowupConfig(max_followups=3) "Generate at most 3 follow-up suggestions." 3 returnedThe minimum is a request in the prompt, so a model can still send back fewer. A Team takes the same forms, and code that sets followups=True with num_followups or followup_model keeps working. Mixing those top-level arguments with a FollowupConfig raises a ValueError. Follow-ups first shipped in built-in follow-up suggestions for agents and teams.
See the cookbook, and learn more about follow-up suggestions in the documentation.
Frequently asked questions
Pass followups=FollowupConfig(max_followups=3). The model may then return up to three suggestions or none, which suits an answer that declined the request. Agno drops any suggestion past the maximum.
No. FollowupConfig(instructions=...) is appended to the system prompt of the follow-up call only. The main model call, its instructions and its retrieved context stay as they were.
Yes. followups=True with the top-level num_followups and followup_model keeps returning exactly N suggestions. Combining a FollowupConfig with either top-level argument raises a ValueError, even when the values agree.
Either num_followups for an exact count or a min_followups and max_followups range. With neither you get exactly 3, and min_followups alone uses a maximum of 3. The minimum is requested in the prompt, so a model can still return fewer.





