Agent with Followup Suggestions
Generate followup prompts after agent responses.
Set followups=True to generate prompt suggestions when a run returns content. Agno makes a second model call using the user input and response.
Create a Python file
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?")
print(response.content)
print("\nFollowup suggestions:")
for i, suggestion in enumerate(response.followups or [], 1):
print(f" {i}. {suggestion}")Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno openaiExport your OpenAI API key
export OPENAI_API_KEY="your_openai_api_key_here"Run Agent
python followup_suggestions.pyOptions
| Parameter | Type | Default | Description |
|---|---|---|---|
followups | bool | False | Enable followup suggestion generation |
num_followups | int | 3 | Number of suggestions to generate (minimum 1) |
followup_model | Model | None | None | Model used for followups. None reuses the agent's model. |
Streaming
Followup suggestions are available via events when streaming. The FollowupsCompleted event carries the suggestions after the main response finishes.
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 i, suggestion in enumerate(event.followups or [], 1):
print(f" {i}. {suggestion}")
asyncio.run(main())The current implementation requires a model instance for followup_model. A model-name string is accepted by the constructor annotation but is not resolved before followup generation. Use the instance form shown below.
Using a separate model
Use followup_model to run followup generation with a separate model.
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"),
)