Missionaries And Cannibals Puzzle
Explore the missionaries and cannibals puzzle with a separate DeepSeek reasoning stage.
Demonstrates DeepSeek-backed reasoning for logic puzzle solving.
DeepSeek retired the deepseek-reasoner alias after July 24, 2026. Before running this archived example, replace DeepSeek(id="deepseek-reasoner") with DeepSeek(id="deepseek-v4-flash") in the saved program. The main OpenAI model remains a separate call, so both provider keys are required. See the DeepSeek V4 migration notice.
"""
Missionaries And Cannibals Puzzle
=================================
Demonstrates DeepSeek-backed reasoning for logic puzzle solving.
"""
from agno.agent import Agent
from agno.models.deepseek import DeepSeek
from agno.models.openai import OpenAIResponses
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
task = (
"Three missionaries and three cannibals need to cross a river. "
"They have a boat that can carry up to two people at a time. "
"If, at any time, the cannibals outnumber the missionaries on either side of the river, the cannibals will eat the missionaries. "
"How can all six people get across the river safely? Provide a step-by-step solution and show the solutions as an ascii diagram"
)
agent = Agent(
model=OpenAIResponses(id="gpt-5.6"),
reasoning_model=DeepSeek(id="deepseek-reasoner"),
markdown=True,
)
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
agent.print_response(task, stream=True, show_full_reasoning=True)An explicit reasoning_model runs as a separate, tool-free reasoning stage before the main model response. show_full_reasoning=True displays the reasoning data Agno receives; it cannot reveal a provider's private internal trace. Some adapters use the reasoning stage's answer text when separate reasoning content is unavailable. A failed reasoning stage can still be followed by a main-model answer, so a completed run alone does not prove the reasoning stage succeeded.
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 API keys
export DEEPSEEK_API_KEY="your_deepseek_api_key_here"
export OPENAI_API_KEY="your_openai_api_key_here"Run the example
Save the code above as logical_puzzle.py, then run:
python logical_puzzle.pyFull source: cookbook/10_reasoning/agents/logical_puzzle.py