CLI tool
Alpha-Dojo/DojoAgents avatar
Alpha-Dojo/DojoAgents

DojoAgents: A Full-Market AI Copilot for Personal Investment

DojoAgents: Full-Market AI Copilot for Personal Investment

3,223 stars321 forksPythonApache-2.0

At a glance

What is it?
DojoAgents is an open-source Python framework built for individual investors who want AI-assisted analysis across A-shares, US equities, and Hong Kong stocks. Its core is a loop-driven agent engine that calls market data tools, reasons across positions, and delivers portfolio diagnosis through a web dashboard and a CLI.
Who is it for?
DojoAgents is the right tool for individual investors who want to ask cross-market questions in natural language and receive structured analysis across A-shares, US equities, and HK stocks without writing Python themselves. It is not suitable for anyone who needs deterministic, reproducible trading logic, since the agent loop interprets prompts and selects tools autonomously; two identical prompts may yield different analyses.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 7 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What DojoAgents Does and Who It Is For

DojoAgents is built for individual investors who want portfolio-aware reasoning across multiple markets without institutional-grade data subscriptions or teams of analysts. The README describes the gap it addresses: most financial AI tools produce quick outputs like news summaries, single-stock explanations, or generic market commentary. DojoAgents is designed instead for reasoning that connects a user's holdings with live market data and runs structured analysis.

The project targets investors who hold or want to analyze positions across A-shares (mainland Chinese equities), US equities, and Hong Kong stocks. It is not a trading platform and does not execute orders. The README notes that an LLM API key from one of the supported providers (OpenAI, Gemini, Anthropic, and others) is required as a runtime dependency.

Seven-Layer Architecture: From Interfaces to Infrastructure

The README describes a seven-layer architecture that runs from user interfaces down through an agent loop engine to data and infrastructure. At the top, users can interact via a CLI, a web dashboard, or chat gateways. The agent loop engine in the middle is described as the core: it deploys an autonomous reasoning agent that calls market data tools and executes multi-step analysis.

The web dashboard is built as a React SPA powered by Vite, communicating with a FastAPI backend through an OpenAI-compatible chat API. Server-Sent Events handle streaming for dynamic chart rendering. The dashboard has four pillars: a Portfolio view showing net worth curves and position tracking, a Markets view with cross-market heatmaps, a Sectors view with sector taxonomy and momentum curves, and an Equities view with price charts and financial data.

The backend Python package is distributed under the name dojoagents on PyPI at version 0.2.8. The CLI entry point is dojoagents, defined as dojoagents.cli.main:main in pyproject.toml.

Installing DojoAgents and Starting the Server

For most users, the quickest path is installing the published package directly from PyPI. The README recommends uv for dependency management. On macOS or Linux:

bash
uv venv && source .venv/bin/activate
uv pip install dojoagents

Developers who want to modify the source or build custom tools install in editable mode:

bash
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"

The PyPI install includes the pre-built dashboard frontend; no Node.js build is required. Installing from source requires Node.js 18 or above and npm 9 or above to build the frontend separately. An LLM API key must be configured before the server can run; the exact configuration mechanism is not detailed in the portion of the README available.

Runtime dependencies include FastAPI, uvicorn, pandas, APScheduler, and the MCP SDK at version 1.26 or above. The strands-agents and dojosdk packages are also required, the latter pinned above version 0.1.23.

Four Documented Use Cases in the README

The README walks through four concrete scenarios with descriptions of what the agent does in each.

For a daily market overview, the agent enters a data-gathering phase, calling market, sector, and equity tools to pull movers, strength rankings, price changes, volume shifts, and sector distribution across all three markets. The README notes that every intermediate step can be expanded to see which tools were invoked and what data was cited.

For news impact analysis, the README gives the example of Meta's AI infrastructure moves and asks which US and A-share stocks could be affected. The agent decomposes the question, then calls market, news, company, and sector tools to build its analysis.

Portfolio diagnosis accepts a holdings screenshot when using a multimodal-capable LLM. The README describes a scenario with 40 or more positions spanning A-shares, US stocks, and ETFs, where the agent recognizes each holding, groups them by market and sector, and flags over-concentration and overlapping exposure.

For simulated portfolio management, after a diagnosis the agent can propose follow-up strategies and generate a new watchlist portfolio to track continuously in the dashboard.

Limitations: Agent Output Is Not Deterministic

Because DojoAgents uses an autonomous agent loop, the analysis it produces depends on which tools the LLM selects, how it interprets the prompt, and the state of the market data at query time. Two identical prompts at different times or with different LLM temperatures will produce different outputs. This is by design for an exploration tool, but it means DojoAgents cannot be used as a reliable signal source in any automated system that requires reproducible outputs.

The README also states that omnichannel notification support through Slack, Telegram, Discord, Feishu, WeChat, and email is planned for future versions. These channels are not available in the current release.

The project requires Python 3.11 or above, which rules out environments locked to earlier Python versions. The dependency list is extensive, including pandas, pyarrow, Pillow, and pypdf, which means install times and environment sizes are non-trivial. The project has no GitHub releases; all version history is on PyPI.

DojoAgents versus Python-Based Manual Portfolio Analysis

A widely-used alternative for individual investors who can write Python is to build their own analysis pipeline using yfinance for market data, pandas for aggregation, and matplotlib or Plotly for visualization. That approach produces deterministic output: the same input always produces the same analysis, and every calculation is auditable in the code.

DojoAgents replaces that manual pipeline with an agent loop that interprets natural-language queries. The practical advantage is speed of exploration: a user can ask "why did my semiconductor holdings drop while A-shares surged" and receive a multi-step analysis without writing any code. The trade-off is opacity: the agent selects which tools to call and how to weight the results, and the user cannot inspect each step without expanding the trace.

For investors who want to understand exactly how their portfolio analysis works, a code-based pipeline is more auditable. For investors who want broad exploratory coverage and are comfortable with AI-assisted reasoning, DojoAgents handles the tooling layer and the market data connections they would otherwise need to build themselves.

Editorial conclusion

DojoAgents is the right tool for individual investors who want to ask cross-market questions in natural language and receive structured analysis across A-shares, US equities, and HK stocks without writing Python themselves. It is not suitable for anyone who needs deterministic, reproducible trading logic, since the agent loop interprets prompts and selects tools autonomously; two identical prompts may yield different analyses. Before adopting it, verify that your LLM API provider is supported, that you have Python 3.11 or above, and that you understand the project is at version 0.2.8 with no GitHub releases. The dashboard frontend requires a separate npm build if you install from source.

Frequently asked questions

What markets does DojoAgents cover?

DojoAgents covers A-shares (mainland Chinese equities), US equities, and Hong Kong stocks. The dashboard includes cross-market heatmaps and sector tracking across all three markets.

Which LLM providers does DojoAgents support?

The README lists OpenAI, Gemini, and Anthropic as examples of supported LLM API providers, and indicates other providers are also compatible. An API key for the chosen provider is required at setup time.

Can DojoAgents analyze a portfolio from a screenshot?

Yes, when using a multimodal-capable LLM. The README describes uploading a holdings screenshot with 40 or more positions and receiving a full portfolio diagnosis that groups holdings by market and sector and flags concentration risk.

Official sources

  1. Alpha-Dojo/DojoAgents on GitHub
  2. Issues
  3. License: Apache-2.0
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/alpha-dojo-dojoagents.svg)](https://hysenlabs.com/projects/alpha-dojo-dojoagents)