Skip to content
forked from virattt/dexter

An autonomous agent for deep financial research. Optimized for yahoo finance data sources

Notifications You must be signed in to change notification settings

rodionlim/dexter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dexter 🤖

Dexter is an autonomous financial research agent that thinks, plans, and learns as it works. It performs analysis using task planning, self-reflection, and real-time market data. Think Claude Code, but built specifically for financial research.

This repository is a fork of https://github.com/michaelh03/dexter-free. Multiple LLM providers are supported (claude/gemini/openai).

Screenshot 2025-10-14 at 6 12 35 PM

Overview

Dexter takes complex financial questions and turns them into clear, step-by-step research plans. It runs those tasks using live market data, checks its own work, and refines the results until it has a confident, data-backed answer.

Key Capabilities:

  • Intelligent Task Planning: Automatically decomposes complex queries into structured research steps
  • Autonomous Execution: Selects and executes the right tools to gather financial data
  • Self-Validation: Checks its own work and iterates until tasks are complete
  • Real-Time Financial Data: Access to income statements, balance sheets, and cash flow statements
  • Real-Time Search Engine: Access to real time macroenomic news, company sentiment and news via Tavily
  • Safety Features: Built-in loop detection and step limits to prevent runaway execution

Twitter Follow

Screenshot 2025-11-22 at 1 45 07 PM

Prerequisites

  • Python 3.13 or higher
  • uv package manager
  • One of OpenAI/Gemini/Claude API key (get here)
  • Financial Datasets API key [Optional] (get here)
  • Langsmith API key (get here)
  • Tavily API key [Optional] (get here)

Installation

  1. Clone the repository:
git clone https://github.com/rodionlim/dexter.git
cd dexter
  1. Install dependencies with uv:
uv sync
  1. Set up your environment variables:
# Copy the example environment file
cp env.example .env

# Edit .env and add your API keys
# OPENAI_API_KEY=your-openai-api-key
# FINANCIAL_DATASETS_API_KEY=your-financial-datasets-api-key

Usage

Run Dexter in interactive mode (defaults to Yahoo Finance):

uv run dexter-agent

Switch to FinancialDatasets provider when you need premium data:

uv run dexter-agent --provider financialdatasets

Example Queries

Try asking Dexter questions like:

  • "What was Apple's revenue growth over the last 4 quarters?"
  • "Compare Microsoft and Google's operating margins for 2023"
  • "Analyze Tesla's cash flow trends over the past year"
  • "What is Amazon's debt-to-equity ratio based on recent financials?"

Dexter will automatically:

  1. Break down your question into research tasks
  2. Fetch the necessary financial data
  3. Perform calculations and analysis
  4. Provide a comprehensive, data-rich answer

Architecture

Dexter uses a multi-agent architecture with specialized components:

  • Planning Agent: Analyzes queries and creates structured task lists
  • Action Agent: Selects appropriate tools and executes research steps
  • Validation Agent: Verifies task completion and data sufficiency
  • Answer Agent: Synthesizes findings into comprehensive responses

Project Structure

dexter/
├── src/
│   ├── dexter/
│   │   ├── agent.py      # Main agent orchestration logic
│   │   ├── model.py      # LLM interface
│   │   ├── tools.py      # Financial data tools
│   │   ├── prompts.py    # System prompts for each component
│   │   ├── schemas.py    # Pydantic models
│   │   ├── utils/        # Utility functions
│   │   └── cli.py        # CLI entry point
├── pyproject.toml
└── uv.lock

Configuration

Dexter supports configuration via the Agent class initialization:

from dexter.agent import Agent

agent = Agent(
    max_steps=20,              # Global safety limit
    max_steps_per_task=5       # Per-task iteration limit
)

How to Contribute

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

Important: Please keep your pull requests small and focused. This will make it easier to review and merge.

License

This project is licensed under the MIT License.

About

An autonomous agent for deep financial research. Optimized for yahoo finance data sources

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • JavaScript 0.1%