> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# YFinance Agent

> Yahoo Finance data retrieval tools for AI agents.

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent
from praisonaiagents import get_stock_price, get_stock_info

agent = Agent(
    name="MarketAnalyst",
    tools=[get_stock_price, get_stock_info],
)
agent.start("What is NVDA trading at and what is its market cap?")
```

The user asks about a ticker; the agent pulls live quotes and fundamentals with yfinance tools.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph LR
    U[Input] --> A[Agent]
    A --> T[Tool]
    T --> O[Output]

    classDef agent fill:#8B0000,color:#fff
    classDef tool fill:#189AB4,color:#fff

    class A agent
    class U,O tool
    class T tool
```

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sequenceDiagram
    participant User
    participant Agent
    participant Feature as YFinance Agent

    User->>Agent: Request
    Agent->>Feature: Process request
    Feature-->>Agent: Result
    Agent-->>User: Response
```

<Note>
  **Prerequisites**

  * Python 3.10 or higher
  * PraisonAI Agents package installed
  * PraisonAI Tools package installed
  * `yfinance` package installed
</Note>

## YFinance Tools

Use YFinance Tools to retrieve and analyze financial data with AI agents.

<Steps>
  <Step title="Install Dependencies">
    First, install the required packages:

    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    pip install praisonaiagents praisonai-tools yfinance
    ```
  </Step>

  <Step title="Import Components">
    Import the necessary components:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    from praisonaiagents import Agent, Task, AgentTeam
    from praisonai_tools import get_stock_price, get_stock_info, get_historical_data
    ```
  </Step>

  <Step title="Create Agent">
    Create a financial data agent:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    finance_agent = Agent(
        name="FinanceAnalyst",
        role="Financial Data Specialist",
        goal="Retrieve and analyze financial data efficiently.",
        backstory="Expert in financial data analysis and market research.",
        tools=[get_stock_price, get_stock_info, get_historical_data],
        reflection=False
    )
    ```
  </Step>

  <Step title="Define Task">
    Define the financial analysis task:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    finance_task = Task(
        description="Analyze stock performance and market trends.",
        expected_output="Detailed financial analysis with market insights.",
        agent=finance_agent,
        name="market_analysis"
    )
    ```
  </Step>

  <Step title="Run Agent">
    Initialize and run the agent:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    agents = AgentTeam(
        agents=[finance_agent],
        tasks=[finance_task],
        process="sequential"
    )
    agents.start()
    ```
  </Step>
</Steps>

## Understanding YFinance Tools

<Card title="What are YFinance Tools?" icon="question">
  YFinance Tools provide financial data capabilities for AI agents:

  * Real-time stock prices
  * Detailed company information
  * Historical market data
  * Financial metrics and ratios
  * Market performance analysis
</Card>

## Key Components

<CardGroup cols={2}>
  <Card title="Finance Agent" icon="user-robot">
    Create specialized finance agents:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    Agent(tools=[get_stock_price, get_stock_info, get_historical_data])
    ```
  </Card>

  <Card title="Finance Task" icon="list-check">
    Define finance tasks:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    Task(description="finance_query")
    ```
  </Card>

  <Card title="Process Types" icon="arrows-split-up-and-left">
    Sequential or parallel processing:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    process="sequential"
    ```
  </Card>

  <Card title="Finance Options" icon="sliders">
    Customize data parameters:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    period="1y", interval="1d"
    ```
  </Card>
</CardGroup>

## Available Functions

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonai_tools import get_stock_price
from praisonai_tools import get_stock_info
from praisonai_tools import get_historical_data
```

## Examples

### Basic Financial Data Agent

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, Task, AgentTeam
from praisonai_tools import get_stock_price, get_stock_info, get_historical_data

# Create finance agent
finance_agent = Agent(
    name="MarketAnalyst",
    role="Financial Data Specialist",
    goal="Analyze market data efficiently and accurately.",
    backstory="Expert in financial analysis and market research.",
    tools=[get_stock_price, get_stock_info, get_historical_data],
    reflection=False
)

# Define finance task
finance_task = Task(
    description="Analyze tech sector performance and trends.",
    expected_output="Comprehensive market analysis report.",
    agent=finance_agent,
    name="sector_analysis"
)

# Run agent
agents = AgentTeam(
    agents=[finance_agent],
    tasks=[finance_task],
    process="sequential"
)
agents.start()
```

### Advanced Market Analysis with Multiple Agents

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, Task, AgentTeam
from praisonai_tools import get_stock_price, get_stock_info, get_historical_data

# Create data retrieval agent
data_agent = Agent(
    name="DataCollector",
    role="Market Data Collector",
    goal="Retrieve financial data systematically.",
    tools=[get_stock_price, get_historical_data],
    reflection=False
)

# Create analysis agent
analysis_agent = Agent(
    name="Analyst",
    role="Market Analyst",
    goal="Analyze market trends and patterns.",
    backstory="Expert in financial market analysis.",
    tools=[get_stock_info],
    reflection=False
)

# Define tasks
data_task = Task(
    description="Collect historical market data for analysis.",
    agent=data_agent,
    name="data_collection"
)

analysis_task = Task(
    description="Analyze collected market data for insights.",
    agent=analysis_agent,
    name="trend_analysis"
)

# Run agents
agents = AgentTeam(
    agents=[data_agent, analysis_agent],
    tasks=[data_task, analysis_task],
    process="sequential"
)
agents.start()
```

## Best Practices

<AccordionGroup>
  <Accordion title="Agent Configuration">
    Configure agents with clear finance focus:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    from praisonai_tools import get_stock_price, get_stock_info, get_historical_data

    Agent(
        name="FinanceAnalyst",
        role="Market Analysis Specialist",
        goal="Analyze financial data accurately and efficiently",
        tools=[get_stock_price, get_stock_info, get_historical_data]
    )
    ```
  </Accordion>

  <Accordion title="Task Definition">
    Define specific analysis objectives:

    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    Task(
        description="Analyze market trends and generate insights",
        expected_output="Detailed market analysis"
    )
    ```
  </Accordion>
</AccordionGroup>

## Common Patterns

### Market Analysis Pipeline

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, Task, AgentTeam
from praisonai_tools import get_stock_price, get_stock_info, get_historical_data

# Data agent
collector = Agent(
    name="Collector",
    role="Data Collector",
    tools=[get_stock_price, get_historical_data]
)

# Analysis agent
analyst = Agent(
    name="Analyst",
    role="Market Analyst",
    tools=[get_stock_info]
)

# Define tasks
collect_task = Task(
    description="Collect market data",
    agent=collector
)

analyze_task = Task(
    description="Analyze market trends",
    agent=analyst
)

# Run workflow
agents = AgentTeam(
    agents=[collector, analyst],
    tasks=[collect_task, analyze_task]
)
```

## Related

<CardGroup cols={2}>
  <Card title="Custom Tools" icon="wrench" href="/docs/tools/custom">
    Build your own agent tools
  </Card>

  <Card title="Tools Overview" icon="toolbox" href="/docs/tools/tools">
    Browse PraisonAI tool documentation
  </Card>
</CardGroup>
