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.
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.
It’s not just another chatbot. It’s an agent that plans ahead, verifies its progress, and keeps iterating until the job is done.
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
- Safety Features: Built-in loop detection and step limits to prevent runaway execution
- Python 3.10 or higher
- uv package manager
- OpenAI API key
- Financial Datasets API key (get one at financialdatasets.ai)
- Clone the repository:
git clone https://github.com/virattt/dexter.git
cd dexter
- Install dependencies with uv:
uv sync
- 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
Run Dexter in interactive mode:
uv run dexter-agent
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:
- Break down your question into research tasks
- Fetch the necessary financial data
- Perform calculations and analysis
- Provide a comprehensive, data-rich answer
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
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
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
)
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
Important: Please keep your pull requests small and focused. This will make it easier to review and merge.
This project is licensed under the MIT License.