Output Model
Regenerate the final answer with a separate output model.
The output model generates a new final answer from the preceding conversation. Agno removes the main model's final assistant message and replaces the system prompt with output_model_prompt when supplied. Earlier tool interactions can remain in the conversation, but the final main-model answer is not passed to be edited. Read the source's “refine” and “rewrite” wording with that behavior in mind.
"""
Output Model
=============================
Use a separate output model to refine the main model's response.
The output_model receives the same conversation but generates its own
response, replacing the main model's output. This is useful when you
want a cheaper model to handle reasoning/tool-use and a more capable
model to produce the final polished answer.
For structured JSON output, use ``parser_model`` instead (see parser_model.py).
"""
from agno.agent import Agent, RunOutput
from agno.models.openai import OpenAIResponses
from rich.pretty import pprint
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIResponses(id="gpt-5-mini"),
description="You are a helpful chef that provides detailed recipe information.",
output_model=OpenAIResponses(id="gpt-5.2"),
output_model_prompt="You are a world-class culinary writer. Rewrite the recipe with vivid descriptions, pro tips, and elegant formatting.",
)
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
run: RunOutput = agent.run("Give me a recipe for pad thai.")
pprint(run.content)Run the Example
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 the example
Save the code above as output_model.py, then run:
python output_model.pyFull source: cookbook/02_agents/02_input_output/output_model.py