Openbb Tools

Pull stock prices, company news, and price targets with OpenBBTools function toggles.

openbb_tools.py
"""
Openbb Tools
=============================

Demonstrates openbb tools.
"""

from agno.agent import Agent
from agno.tools.openbb import OpenBBTools

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------


# Example 1: Enable all OpenBB functions
agent_all = Agent(
    tools=[
        OpenBBTools(
            all=True,  # Enable all OpenBB financial data functions
        )
    ],
    markdown=True,
)

# Example 2: Enable specific OpenBB functions only
agent_specific = Agent(
    tools=[
        OpenBBTools(
            enable_get_stock_price=True,
            enable_search_company_symbol=True,
            enable_get_company_news=True,
            enable_get_company_profile=True,
            enable_get_price_targets=True,
        )
    ],
    markdown=True,
)

# Example 3: Default behavior with all functions enabled
agent = Agent(
    tools=[
        OpenBBTools(
            enable_get_stock_price=True,
            enable_search_company_symbol=True,
            enable_get_company_news=False,
            enable_get_company_profile=False,
            enable_get_price_targets=False,
        )
    ],
    markdown=True,
)

# Example usage with all functions enabled

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    print("=== Example 1: Using all OpenBB functions ===")
    agent_all.print_response(
        "Provide a comprehensive analysis of Apple (AAPL) including current price, historical data, news, and ratios"
    )

    # Example usage with specific functions only
    print(
        "\n=== Example 2: Using specific OpenBB functions (company info + historical data) ==="
    )
    agent_specific.print_response(
        "Get company information and historical stock data for Tesla (TSLA)"
    )

    # Example usage with default configuration
    print("\n=== Example 3: Default OpenBB agent usage ===")
    agent.print_response(
        "Get me the current stock price and key information for Apple (AAPL)"
    )

    agent.print_response("What are the top gainers in the market today?")

    agent.print_response(
        "Show me the latest GDP growth rate and inflation numbers for the US"
    )

Only five tools exist: current quote, company-symbol search, company news, company profile, and price targets. There are no historical-price, ratio, market-gainer, GDP, or inflation tools. Before running, replace the unsupported prompts with quote or symbol-search questions, or register additional functions for those datasets. The third agent explicitly enables only quote and symbol search despite its source comment.

provider="yfinance" is the default, but supported providers and credentials vary by endpoint. search_company_symbol uses OpenBB’s own default provider selection. Configure OpenBB provider defaults and any required provider keys; an OPENBB_PAT does not substitute for them. Start with the third agent’s quote/search calls before enabling provider-specific news, profile, or targets.

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno openai openbb

Export your OpenAI API key

export OPENAI_API_KEY="your_openai_api_key_here"

Run the example

Save the code above as openbb_tools.py, then run:

python openbb_tools.py

Full source: cookbook/91_tools/openbb_tools.py