Skip to main content
Reasoning capabilities provide advanced analytical thinking for complex financial scenarios. This feature builds upon reflection to offer sophisticated “Act-then-Analyze” loops, making it ideal for strategic banking analysis, complex risk assessment, and multi-faceted financial decision making.

Enabling Reasoning

Reasoning requires both thinking and reasoning tools to be enabled:
from upsonic import Agent

# Enable reasoning for advanced financial analysis
agent = Agent(
    name="StrategicBankingAnalyst",
    enable_thinking_tool=True,      # Required for reasoning
    enable_reasoning_tool=True,     # Enables advanced reasoning
    debug=True
)
Warning: enable_reasoning_tool requires enable_thinking_tool to be True. Setting reasoning without thinking will raise a ValueError.

How Reasoning Works

Reasoning follows an advanced “Act-then-Analyze” pattern:
  1. Strategic Planning: Create initial high-level strategy
  2. Tactical Execution: Execute one step at a time
  3. Mandatory Analysis: Analyze each step’s outcome
  4. Dynamic Adaptation: Revise strategy based on results
  5. Final Synthesis: Comprehensive conclusion

Reasoning vs. Reflection

FeatureReflection (enable_thinking_tool)Reasoning (enable_reasoning_tool)
PurposeBasic step-by-step financial analysisAdvanced risk and compliance analysis
ComplexitySimple to moderate financial problemsComplex, multi-faceted banking scenarios
OutputClear financial explanationsStructured analysis with regulatory recommendations
Use CasesInterest calculations, basic risk assessmentStrategic banking planning, complex compliance analysis

Reasoning Configuration

Agent-Level Reasoning

# Enable reasoning for all tasks
agent = Agent(
    name="BankingRiskAnalyst",
    enable_thinking_tool=True,
    enable_reasoning_tool=True
)

Task-Level Reasoning

from upsonic import Task

# Override agent settings for specific task
task = Task(
    description="Complex credit risk analysis with multiple variables",
    enable_thinking_tool=True,
    enable_reasoning_tool=True
)

result = agent.print_do(task)

Mixed Configuration

# Agent with reasoning enabled
agent = Agent(
    name="FinancialAdvisor",
    enable_thinking_tool=True,
    enable_reasoning_tool=True
)

# Simple task without reasoning
simple_task = Task(
    description="What is the current interest rate?",
    enable_thinking_tool=True,   # Keep thinking
    enable_reasoning_tool=False  # Disable reasoning
)

# Complex task with reasoning
complex_task = Task(
    description="Strategic portfolio optimization with risk constraints",
    enable_thinking_tool=True,
    enable_reasoning_tool=True
)

Advanced Reasoning Use Cases

Reasoning is ideal for:
  • Strategic banking and fintech analysis
  • Complex financial data interpretation
  • Multi-variable risk assessment
  • Regulatory compliance and risk mitigation
  • Portfolio optimization and investment strategies

Example: Strategic Banking Analysis

from upsonic import Agent, Task

# Create agent with reasoning capabilities
agent = Agent(
    name="StrategicBankingAnalyst",
    enable_thinking_tool=True,
    enable_reasoning_tool=True,
    debug=True
)

# Create a complex strategic banking task
task = Task(
    description="""
    Analyze the following banking scenario and provide strategic recommendations:
    
    A regional bank has $1B in assets across 3 business lines. Commercial lending has 40% of assets,
    retail banking has 35%, and wealth management has 25%. The bank wants to implement
    new risk management policies that affect each business line differently. Commercial lending
    will see a 20% reduction in default risk, retail banking will see a 15% reduction, and wealth
    management will see a 10% reduction. Calculate the overall risk impact and provide
    recommendations for implementation and regulatory compliance.
    """,
    enable_thinking_tool=True,
    enable_reasoning_tool=True
)

# Execute with advanced reasoning
result = agent.print_do(task)

Reasoning Output Structure

When reasoning is enabled, the agent provides:
  1. Financial Problem Decomposition: Breaking complex banking scenarios into components
  2. Risk Analysis: Step-by-step risk assessment and logical reasoning
  3. Regulatory Evidence Evaluation: Assessing compliance requirements and financial data
  4. Financial Synthesis: Combining insights into coherent banking recommendations
  5. Actionable Recommendations: Specific next steps for implementation and compliance

Performance Considerations

Warning: Reasoning capabilities consume more tokens and processing time than basic reflection. Monitor your usage and costs when using reasoning for production applications.
# Monitor performance with debug mode
agent = Agent(
    name="StrategicAnalyst",
    enable_thinking_tool=True,
    enable_reasoning_tool=True,
    debug=True  # Shows detailed execution metrics
)

Best Practices

  1. Use for Complex Scenarios: Enable reasoning for strategic banking analysis and complex risk assessment
  2. Requires Thinking: Always enable enable_thinking_tool when using reasoning
  3. Monitor Performance: Use debug mode to understand token usage and costs
  4. Clear Instructions: Provide detailed, specific instructions for better strategic planning
  5. Tool Availability: Ensure all required tools are available for the planned sequence
  6. Memory Integration: Combine with memory for context-aware strategic analysis
  7. Reliability Layer: Use reliability layer for critical financial decisions
  8. Caching: Enable caching for repeated strategic analysis tasks
Reasoning provides the most sophisticated analytical capabilities for complex financial scenarios, making it essential for strategic banking applications that require deep analysis and adaptive decision-making.
I