Finance Agent

Summarize stock fundamentals with a YFinance analyst agent on LangDB.

finance_agent.py
"""Run `uv pip install yfinance` to install dependencies."""

from agno.agent import Agent
from agno.models.langdb import LangDB
from agno.tools.yfinance import YFinanceTools

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

agent = Agent(
    model=LangDB(id="llama3-1-70b-instruct-v1.0"),
    tools=[YFinanceTools()],
    description="You are an investment analyst that researches stocks and helps users make informed decisions.",
    instructions=["Use tables to display data where possible."],
    markdown=True,
)

# agent.print_response("Share the NVDA stock price and analyst recommendations", stream=True)
agent.print_response("Summarize fundamentals for TSLA", stream=True)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------

if __name__ == "__main__":
    pass

The source enables only the stock-price tool. Enable fundamentals before running the TSLA request.

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 yfinance

Configure LangDB access

Create a LangDB project and API key, and enable the provider access required by your selected model. Set the current API host; Agno appends the project ID and /v1.

export LANGDB_API_BASE_URL="https://api.langdb.ai"
export LANGDB_API_KEY="your_langdb_api_key"
export LANGDB_PROJECT_ID="your_langdb_project_id"

Check your project's model catalog for the exact ID and required capabilities, such as vision, tool calling or structured output. Gateway aliases and access can vary by project.

Enable the fundamentals tool

Save the source as finance_agent.py and replace YFinanceTools() with YFinanceTools(enable_stock_fundamentals=True). To run the commented analyst-recommendation prompt too, also set enable_analyst_recommendations=True.

Run the example

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

python finance_agent.py

Full source: cookbook/90_models/langdb/finance_agent.py