Skip to main content
A reasoning agent breaks problems into steps; a follow-up agent extracts a concise answer from that chain.
from praisonaiagents import Agent, Task, AgentTeam, OutputConfig

reasoner = Agent(
    name="Reasoner",
    instructions="Think step by step.",
    llm="deepseek/deepseek-reasoner",
    output=OutputConfig(reasoning_steps=True),
)

extractor = Agent(
    name="Extractor",
    instructions="Answer briefly using the prior reasoning.",
    llm="gpt-4o-mini",
)

team = AgentTeam(
    agents=[reasoner, extractor],
    tasks=[
        Task(description="How many r's in 'Strawberry'?", agent=reasoner),
        Task(description="From the reasoning, how many r's?", agent=extractor),
    ],
)

team.start()
The user asks a hard question; a reasoner thinks step-by-step and an extractor returns a concise answer.

Quick Start

1

Simple Usage

Enable reasoning output on a reasoning-capable model:
from praisonaiagents import Agent, OutputConfig

agent = Agent(
    name="Reasoner",
    instructions="Think step by step before answering.",
    llm="deepseek/deepseek-reasoner",
    output=OutputConfig(reasoning_steps=True),
)

agent.start("How many r's in 'Strawberry'?")
2

With Configuration

Chain two agents — reasoner then extractor:
from praisonaiagents import Agent, Task, AgentTeam, OutputConfig

reasoner = Agent(
    name="Reasoner",
    llm="deepseek/deepseek-reasoner",
    output=OutputConfig(reasoning_steps=True),
)
extractor = Agent(name="Extractor", llm="gpt-4o-mini")

AgentTeam(
    agents=[reasoner, extractor],
    tasks=[
        Task(description="Count r's in 'Strawberry'", agent=reasoner),
        Task(description="Give the final count only", agent=extractor),
    ],
).start()

How It Works

The reasoner surfaces chain-of-thought via OutputConfig(reasoning_steps=True), sequential tasks pass its output forward, and the extractor returns a short answer. Use a reasoning model (e.g. deepseek-reasoner, o1-mini) for the first agent and a fast model for extraction.

Configuration Options

OptionTypeDefaultDescription
reasoning_stepsboolFalseOn OutputConfig — surface reasoning content
llmstr"gpt-4o-mini"Model per agent — use reasoning models first
processstr"sequential"Task order on AgentTeam

Best Practices

Models like deepseek-reasoner or o1-mini produce structured chains; general models may skip visible reasoning.
Ask the second agent for the final answer only — avoid re-running full reasoning.
Set output=OutputConfig(reasoning_steps=True) — not a standalone agent parameter.
Use AgentTeam with ordered tasks so the extractor receives the reasoner’s output as context.

Reasoning

Single-agent reasoning patterns

Output Config

Control verbose, stream, and reasoning output