OpenBB
Product
Commercial OpenBB Workspace Snowflake Native App Security
Open Source Open Data Platform (ODP)
Introducing OpenBB Workspace Lite for small investment teams July 21, 2026 — 6 MIN Introducing OpenBB Workspace Lite for small investment teams Read post OpenBB Workspace Demo: Portfolio Analysis, Apps Marketplace, MCP & AI Agents July 1, 2026 — 11 MIN OpenBB Workspace Demo: Portfolio Analysis, Apps Marketplace, MCP & AI Agents Watch demo
Solutions
App Showcase App Marketplace
By audience Buy-Side AI Vendor
Introducing the OpenBB App Marketplace May 12, 2026 — 5 MIN Introducing the OpenBB App Marketplace Read post Introducing Workspace MCP: agentic financial workflows, governed by design May 26, 2026 — 8 MIN Introducing Workspace MCP: agentic financial workflows, governed by design Read post
Resources
Blog Videos About Documentation
Comparison
Streamlit Tableau Power BI
OpenBB Workspace Demo: Portfolio Analysis, Apps Marketplace, MCP & AI Agents July 1, 2026 — 11 MIN OpenBB Workspace Demo: Portfolio Analysis, Apps Marketplace, MCP & AI Agents Watch demo
Pricing
Commercial
OpenBB Workspace Snowflake Native App Security
Open Source
Open Data Platform (ODP)
App Showcase App Marketplace Buy-Side AI Vendor
Resources
Blog Videos About Documentation
Comparison
Streamlit Tableau Power BI
Pricing
Back to blog
Didier Lopes Michael Struwig

Authors

Didier Lopes, Michael Struwig

SHARE

Creating an AI powered financial analyst

December 28, 2023 — 8 MIN

Creating an AI powered financial analyst

At OpenBB, we have been thinking deeply about how AI will impact the lives of analysts and quants. We recently announced the OpenBB Platform and have refactored it from the ground up to make it easier and simpler for quants/developers to access financial data. In addition, we hired a new head of AI to lead our AI efforts - you can read more about it here.

I did a 20-minute presentation at the Open Core Summit on this topic that you can watch here:

Otherwise, the following post will summarize what we presented.

AI-powered financial analyst roadmap

When discussing what tasks we wanted our AI-powered Financial Analyst to be able to perform, we arrived at the following levels (in order of complexity):

  1. Knowledge retrieval: The agent can answer general financial queries without external resources. (eg. ChatGPT "as-is"). Here, the agent relies solely on its training data to answer questions.

  2. Data retrieval: The agent can answer queries using information inserted into the context (usually as part of a separate data retrieval process that isn’t controlled by the model, such as using similarity search across a knowledge database using the user’s query).

  3. Autonomous data retrieval: The agent can answer queries by dynamically retrieving data not currently present in the context or the training data via function calling.

  4. Complex workflow execution: The agent can reason and answer queries that require a logical arrangement of knowledge retrieval, data retrieval, and autonomous data retrieval calling. It includes action planning and decision-making.

  5. Fully autonomous analyst: The agent can do all of the above but is self-directed. The agent can dynamically generate additional hypotheses, modify plans of action, and retrieve the necessary data, all while mid-workflow. The agent can make arguments for certain decisions, carry a discussion on the topic, and reason with you.

Our goal is to enable OpenBB Copilot to perform all of the above. I presented a demo of how it would work in this video:

Two types of prompts

Rather than first building an AI-powered financial analyst for the sake of it, we instead started from what we wanted to achieve. We came up with two distinct prompts and our goal was for the agent to be able to successfully perform both of these, but utilizing the same underlying “agentic” architecture.

Prompt A (on the left) - requires linear reasoning (where future answers depend on previous answers). This kind of prompt is generally deterministic, which allows us to access (and verify) the agent’s answers immediately because we can check the underlying facts and data. It also involves a few complex operations across multiple steps, such as extracting a list of tickers from an endpoint and iterating through that list using a different endpoint. Then based on those outputs, a reasoning can be made and a final answer is given.

Prompt B (on the right) - requires independent reasoning (fetching and combining different pieces of independent information). This prompt is typically less deterministic and allows us to leverage LLMs to provide alpha by uncovering insights that would be hard for a human to discover (or, at the very least, discover at scale). Instead of telling the agent what to do explicitly, we instead pose a question and expect the agent to execute an analysis and perform reasoning, without specific guidance or guardrails.

OpenBB Platform

Getting started with our Platform is extremely easy (docs here). All you need is pip install openbb and you are ready to access 100+ different datasets.

We standardize the data so that you can read our docs once and interact with the Platform the same way, regardless of the type of data you are looking at.

In addition, using the OpenBB Hub, you can set up your API keys which we can manage on your behalf, and all you need to access data via OpenBB is a Personal Access Token.

Crucially, we use Pydantic for all of our endpoints. This ensures that we have both structured inputs and structured outputs. This is extremely important as we feed these models into our agent so that it understands both the input schema during function calling, but also the output schema of the resulting function call. This is standardized across multiple data vendors across the OpenBB Platform.

OpenBB Tools

From having 100+ different data endpoints that you can access using Python, we created “tools” that an agent “understands” and can use. This is extremely important since this collection of tools will give real-time data to the agent based on the prompt asked.

Since the OpenBB Platform has high-quality documentation, we use each function’s docstring as well as the output field names (with some basic preprocessing). This tweak allows the agent to know where to get the market cap information from, even if it’s within a differently-named endpoint (for example the equity.fundamentals.overview endpoint).

Each of these tool descriptions is converted into embeddings that can be retrieved later on based on the query the user provides. This allows our agent to pick the right tools for the job - i.e. if I want to have access to Apple’s market cap, I want to get the tool equity.fundamentals.overview because I know that by providing the symbol AAPL I can get the market cap value.

Architecture

So, we create a vector store using FAISS (Facebook AI Similarity Search) and OpenAIEmbeddings, although any vector store with similarity search would also work.

OpenBB Agent architecture

Architecture

This is the overall architecture that our agent will follow, and below we will talk about each of these components individually.

Task Decomposition

First of all, we don’t want to tackle the user query in one go. This is because LLMs have limited context. Plus, we want the agent to retrieve all the necessary tools to answer the query. But the vector’s store similarity search doesn’t work with one prompt that needs multiple different tools. Additionally, similar to human analysts, breaking a larger question up into smaller manageable subquestions leads to better analysis and results.

So, we break the user’s main query into:

  • List of simpler tasks: self-explanatory

  • List of tasks dependency: does the current subtask need a prior subtask to tackle the current subtask?

  • List of “tool search” keywords associated with each subtask: instead of using the subtask question itself to directly retrieve the correct selection of tools using the embeddings in the vector store, empirically we found that if the LLM could select the most important keywords associated with the task using keyword search. This ended up resulting in a big jump in retrieval performance. This is expected since we are effectively reducing the noise. E.g. “What are Tesla peers” → “peers”.

This is the system message we are utilizing:

Architecture

To ensure that we have a structured output with the format specified, we create a Pydantic Data model to be used as format in the instruction:

Architecture

This is what the code looks like, and you can see that the PydanticOutputParser goes into the format_instructions:

Architecture

Tool Retrieval

This is the function that the agent uses to retrieve the right subset of tools to answer each of the subtasks. Empirically, we found good results by using the similarity score threshold of 0.65. In other words, we retrieve all tools with descriptions that return a better similarity score than that value. In the case where the search yields less than two tools, we return the 2 tools with the highest similarity score instead.

As previously mentioned, you can see that we are not using the subtask query itself but the keywords associated with it. The embeddings of the keywords are (from experimentation) closer to the embeddings of the correct docstring by focusing solely on a few keywords rather than the entire sentence.

Subtask Agents

Each subtask agent is provided with the original query from the user, one of the subtasks from the task decomposition step, the output from another subtask agent IF there was a subtask dependency AND a set of retrieved tools necessary to answer the subtask.

Architecture

This is what the agent looks like:

Architecture

Final Agent

We then combine the entire context from subquestions and outputs to be given to the final agent:

Architecture

Finally, we give the final agent the main prompt and the list of tasks from task decomposition and that’s it!

Architecture

OpenBB Results

Prompt A

"Check what are TSLA peers. From those, check which one has the highest market cap. Then, on the ticker that has the highest market cap get the most recent price target estimate from an analyst, and tell me who it was and on what date the estimate was made."

The output can be seen here:

Since this is a deterministic workflow, we can look at the raw data to check whether the output is correct or not - which we can validate below.

Prompt B

“Perform a fundamentals financial analysis of AMZN using the most recently available data. What do you find that’s interesting?”

The output can be seen here:

ArchitectureArchitecture

As can be seen above, the results are extremely impressive. We achieved this with a couple of weeks of work, but there are still a lot of areas that we can improve and in which we are currently working on. However, the current results make this an extremely exciting space to be.

All this work is open source and can be found on GitHub here.

We are just getting started.

Overview

  • Task Decomposition
  • Tool Retrieval
  • Subtask Agents
  • Final Agent
  • Prompt A
  • Prompt B

Recommended For You

OpenBB belongs to everyone
August 25, 2026 — 8 MIN

OpenBB belongs to everyone

Read more
SnapTrade brings connected brokerage account data into OpenBB
August 5, 2026 — 5 MIN

SnapTrade brings connected brokerage account data into OpenBB

Read more
Carbon Arc brings card spend, web traffic, and more into OpenBB
July 23, 2026 — 7 MIN

Carbon Arc brings card spend, web traffic, and more into OpenBB

Read more

Analysts shouldn't need a data scientist to get an answer

The firms that fix that first will have a structural advantage

Start now
OpenBB
OpenBB Workspace Snowflake Native App Security Open Data Platform (ODP)
App Showcase App Marketplace Buy-Side AI Vendor
Blog Videos About Documentation Streamlit Tableau Power BI
Pricing Open Startup Support Contact Sitemap
Product
OpenBB Workspace Snowflake Native App Security
Open Data Platform (ODP)
Solutions
App Showcase App Marketplace Buy-Side AI Vendor
Resources
Blog Videos About Documentation Streamlit Tableau Power BI
Other
Pricing Open Startup Support Contact Sitemap

Copyright © 2026 OpenBB Inc. All rights reserved.
Privacy Policy Terms Trust Center OSS Friends

August 25, 2026

OpenBB belongs to everyone

Didier Lopes

Founder & CEO, OpenBB


TL;DR: We are open-sourcing the entire OpenBB product suite under a permissive open source license

Today is bittersweet.

On December 20, 2020, over the Christmas holidays, I wrote the first lines of Gamestonk Terminal, what would eventually become OpenBB. My flight home to visit my parents had been cancelled because of COVID, so I stayed in London and started building a tool to streamline my own investment research process.

At the time, the idea was simple: individuals (and firms) should be able to own their research platforms. They shouldn't have to adapt their workflows to whatever a data or software vendor decided to build. They should own the entire experience - from the data they connect to, to the interface analysts and PMs use every day, to the APIs, models, skills, tools and AI agents that increasingly form part of the investment process.

Over the last almost six years, OpenBB evolved far beyond anything I imagined when writing those first lines of code. We started as an open-source terminal and went on to build the SDK (now Open Data Platform), the OpenBB Bot, the OpenBB Workspace, the OpenBB Copilot, the Excel Add-in, and an ecosystem of applications created by our team, our partners and the community.

We kept innovating and being at the forefront of what user experience should be. I was prepared to die on the hill that if we were to become the financial infrastructure software for the buy-side and sell-side, then we could not monetize data. Monetizing data would have made us a data vendor. The margins would have been higher, but the incentive would have shifted from offering a better UI/UX to selling more datasets. Selling an infrastructure platform is incredibly challenging, for many reasons. And so we died on that hill. Along the way, we built an incredible community, reached millions of people through our open-source project, worked with some of the largest financial institutions in the world and assembled a team that consistently built far beyond what should have been possible for a company of 10 people. There is a lot to be proud of.

But despite all of that, we couldn't find the product-market fit needed to build a sustainable business around this vision within the time we had.

As a founder, I've always bet the house on the next customer, the next feature or the next launch to change the trajectory of the company. Until even just last weeks, when we announced self-serve Workspace Lite. If we were ever going to close doors, then we never wanted to look back and think "what if".

In hindsight, we could obviously have made different decisions - e.g., surrounding data, or going more vertical with clients and their workflows. But short-term monetization was not something I was prioritizing over where I thought the industry was heading. Ultimately, I wanted us to stand for something.

In the last phase of the company, I explored many paths to give OpenBB a better home. We spoke with larger companies that shared parts of our vision and tried to find a home where the products, and ideally the team behind them, could continue to grow. Ultimately, we weren't able to make that happen.

I left London with my wife to build OpenBB and dedicated almost six years of my life to it. So did the team. We built at the intersection of finance, AI, open source and software infrastructure, often working on problems before they became obvious to the broader market.

Before MCP existed, we had created our own API protocol so agents could interact with the data and analytics widgets in the workspace. In 2023, we built askobb, which let anyone ask investment research questions in natural language that required joining multiple different datasets together.

What this team created deserves to continue existing.

More importantly, I still believe the original vision is inevitable. The future of financial software is not a single platform every firm is forced to use. It is thousands of firms building environments that reflect how they actually work - their own data, internal systems, investment processes, risk models and compliance requirements. Increasingly, their own APIs, MCP servers, models and AI agents too.

If that future is coming, then the technology we built shouldn't disappear simply because we weren't able to commercialize it successfully.

It should become available to everyone.

Today, with the support of the team and OSS Capital, we are committing to releasing the entire OpenBB product suite under a permissive license. This includes OpenBB Workspace, Open Data Platform, OpenBB Copilot and the OpenBB Excel Add-in.

These products represent over 5 years of engineering, millions of dollars invested in R&D and thousands of decisions, experiments and iterations with users. They will become a foundation that individuals, startups, data providers and financial institutions can freely use, modify and build on top of.

We will share more details about the order and timing of each release as we complete that work. In parallel, we will determine the right long-term structure to steward the projects, support contributors and preserve what made OpenBB special in the first place. Existing customers and users of the hosted products will hear from us directly about timelines.

For the partners who built applications for the OpenBB ecosystem, I hope this decision makes your products even more valuable. You already did the work of turning your datasets and analytics into applications that users can interact with. Now, those applications will be able to run inside infrastructure that firms can fully own, extend and customize, while combining them with data and tools from other providers across the ecosystem.

The same applies to the broader community. Developers will be able to use the entire OpenBB stack as a starting point rather than rebuilding the same infrastructure from scratch. Firms will be able to deploy it, adapt it to their requirements and connect it to the systems where their differentiated knowledge already lives.

Over the years, many talented people helped make OpenBB what it is today - employees, contributors, partners. Every one of them left a mark on the product.

But I want to recognize the people who carried OpenBB to the very end. Through the uncertainty and the final stretch, they kept building. They are engineers, product builders, designers and operators who have worked across financial data, AI, developer infrastructure and open source. In alphabetical order, they are:

  • Andrew Kenreich, Head of Product Engineering - LinkedIn
  • Darren Lee, Software Engineer - GitHub, LinkedIn
  • Ihsan Saracgil, CPO - LinkedIn
  • José Donato, Software Engineer - LinkedIn, X, GitHub, Website
  • Juan Alfonso, Software Engineer - GitHub, LinkedIn
  • Minh Hoang, Head of Product - LinkedIn, GitHub
  • Ogonna Nnamani, DevOps - LinkedIn, Medium
  • Rita Figueiredo, Head of Marketing - LinkedIn, Website
  • Rita Soares, Head of Design - LinkedIn, Website
  • Theodore Aptekarev, CTO - LinkedIn, GitHub

To our customers: thank you for trusting a small team with such an ambitious vision.

To our partners: thank you for building alongside us and helping create a more open financial data ecosystem. I hope the next chapter gives you even more freedom to serve your users.

To our investors: thank you for believing in us, including when OpenBB was little more than an idea being built from my living room in London. In particular, I want to thank OSS Capital and Joseph Jacks for supporting this decision and enabling the technology to live beyond the company. Two people I want to name separately: Justin Hoffman and Larry Augustin - working with both of you made me a better founder, but more importantly, a better person.

To every contributor who opened a pull request, reported a bug, wrote documentation, answered a question in Discord, built an integration or simply told someone else about OpenBB: thank you. OpenBB would not have been possible without you.

Finally, to every person who spent part of their career building OpenBB: thank you. We pushed the industry forward and proved that world-class financial infrastructure can be built in the open. The commercial outcome doesn't change the quality of the work.

OpenBB didn't become the company I imagined when I started this journey. But the mission was always larger than the company, and I still believe the ideas behind it are right.

If, ten years from now, firms around the world are using OpenBB as the foundation for software they truly own - connecting their own data, building their own workflows and deploying their own AI agents - then what we built will have achieved something that lasts far beyond us; which was my goal all along: have an impact.

Thank you for one hell of a ride.

Didier Lopes
(LinkedIn, X, GitHub)