Alpaca Multi-Agent Trading Workbench
Run a multi-role research workflow and connect its stock and crypto decisions to Alpaca accounts.
- Source repo
- huygiatrng/AlpacaTradingAgent
- Stars
- ★ 277
- Last updated
- 11d ago
- License
- Apache-2.0
- Primary language
- Python
- FA score
- 48/100 · Major gaps
At a glance
- How it runs
- Works with
- Portable with changesOpenAI APIClaude API (Partial support)
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A quantitative researcher wants several analyst roles to examine market, news, fundamental, and macro signals for a stock such as NVDA.
- Not a fit if
- Users unwilling to configure Alpaca and financial data API credentials
- Teams seeking unattended real-money trading without human review
- Source review
- 48/100 · Major gaps 1 safety controls not found
What does this agent do, and when should you use it?
AlpacaTradingAgent is a LangGraph-based multi-agent trading framework for users who want to connect to Alpaca accounts for equities and crypto. Its components include five analysts, bullish and bearish researchers, a Trader, and risk and portfolio management roles; analysts can run in parallel across market, social sentiment, news, fundamental, and macro inputs. Use it as a Python package, through the CLI, or in a Dash web UI; Docker Compose is also documented for launching the UI. It supports Alpaca paper and live accounts, recurring analysis, and optional automatic execution. It requires Alpaca plus relevant data and model-provider credentials, and the repository says it is for education and research, not investment advice.
Provide a ticker or crypto symbol such as BTC/USD and an analysis date through the CLI, Web UI, or Python interface. TradingAgentsGraph.propagate uses the configuration to call market data, news, social sentiment, fundamental, and macro sources; five analysts can run in parallel, researchers debate the findings, and the Trader produces a BUY/HOLD/SELL or LONG/NEUTRAL/SHORT decision. With Alpaca credentials configured, the interface can show positions and orders, place trades, or liquidate positions; scheduled analysis and optional auto-execution are available. Completed decisions can be written to a Markdown memory log, and failed LangGraph runs can optionally resume from SQLite checkpoints.
- A quantitative researcher wants several analyst roles to examine market, news, fundamental, and macro signals for a stock such as NVDA.
- An Alpaca user wants to analyze a mixed portfolio of equities and crypto such as BTC/USD in a paper account.
- A developer wants to call TradingAgentsGraph.propagate from a Python program and consume its decision output.
- A trader wants a Dash interface for per-symbol progress, reports, charts, current positions, and recent orders.
- A user who needs recurring market-hours analysis wants to schedule runs and choose whether recommendations may execute automatically.
How do you install or deploy this agent?
You need a Python environment and the relevant API credentials. The README identifies Alpaca for trading, Finnhub for stock news and data, FRED for macro analysis, and CoinDesk/CryptoCompare for crypto news. LLM choices include cloud providers and local OpenAI-compatible endpoints. Clone the project, install dependencies, and create the environment file:
git clone https://github.com/huygiatrng/AlpacaTradingAgent.git
cd AlpacaTradingAgent
pip install -r requirements.txt
cp env.sample .envFill in the required keys in .env; set ALPACA_USE_PAPER=True for paper trading. Without valid Alpaca keys, the app falls back to demo mode without trading capabilities. To build and launch the Web UI with Docker Compose after configuring .env:
docker compose up -d --buildHow do you use this agent?
Start the CLI:
python -m cli.mainStart the Dash Web UI:
python run_webui_dash.pyThe CLI prompts for assets and supports provider, model, and provider-specific settings. A first Python call looks like this:
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)Use the BTC/USD format for crypto. Configure Alpaca credentials and the account mode before trading in either a paper or live account; automatic execution is optional.
What are this agent's strengths and limitations?
- Five analyst roles cover market conditions, social sentiment, news, fundamentals, and macro data, with parallel execution available.
- Analyzes equities and crypto, including mixed symbol inputs in one session.
- Offers CLI, Python usage, and a Dash UI, with Alpaca paper and live trading integration.
- Documents several cloud LLM providers and local OpenAI-compatible endpoints, plus custom model IDs.
- The full data and trading workflow depends on external services and credentials such as Alpaca, Finnhub, FRED, and CoinDesk/CryptoCompare.
- A run makes calls across multiple analyst roles and data APIs; the README notes model and API costs may apply.
- Live trading, margin, and auto-execution create real trading risk; the project does not guarantee performance or provide investment advice.
- The README provides no independent performance benchmark or live-return evidence, and notes outcomes can vary with models, data, and nondeterminism.
How does this agent compare with similar options?
The project says it is an independent enhancement inspired by Tauric Research's TradingAgents, adding real-time Alpaca integration, crypto support, automated trading capabilities, and a web interface.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Alpaca Multi-Agent Trading Workbench This agent | 48 · Major gaps | CLIFree + model costs | ★ 277 | 11d ago | Python | OpenAI API |
| Blave Agent | 87 · Good | Desktop appFreemium | ★ 113 | today | Python | Codex · Claude Code |
| Lumibot Trading Framework | 57 · Major gaps | Library / SDKFree + model costs | ★ 2.1k | today | Python | Codex · Claude Code |
| QuantDinger AI Trading OS | 89 · Good | Self-hosted serviceFree + model costs | ★ 13k | today | Python | Codex · Claude Code · OpenAI API |
How does FollowAgents rate this agent?
Why each dimension lost points
The README documents paper/live modes, API configuration, trading, auto-execution, liquidation, and external data/LLM services, making some data flows traceable; it also credits the upstream TradingAgents project. The supplied evidence does not explain least-privilege scopes, detailed secret protection, or per-order confirmation, while the UI supports auto-execution and one-click liquidation and no undo/recovery path is shown. The dependency list gives version ranges but no vulnerability review or security policy.
The README describes parallel agents, checkpoint resume, and structured-output fallback. The workflow specifies read-only repository permissions and pytest on Python 3.11/3.12, and the supplied tests cover backtest boundaries. However, the README gives inconsistent default model names (gpt-5.4-nano/mini versus a package-use recommendation of gpt-5-nano), and several dependencies are not pinned, so consistency, availability, and failure messaging earn only partial credit. No successful execution is inferred.
The materials identify Alpaca research/education users and cover stocks, crypto, paper and live trading, multiple LLM providers, CLI, Web UI, and several configuration and path boundaries. Trigger scope is mostly stated as product and UI capabilities; the evidence does not sufficiently define when analysis should start, exactly when auto-trading triggers, or unsuitable scenarios, so trigger precision is only partial.
The README provides navigation, installation, configuration, CLI/Web UI instructions, Python examples, prompt customization, and limitations; LICENSE contains the Apache-2.0 text. There is no version history or changelog. Contribution and upstream-credit sections exist, but the evidence does not identify a maintenance owner, support commitment, or update path. Inconsistent model naming in the README limits naming stability.
Multi-asset analysis, analyst debate, structured trading decisions, reports, checkpointing, and backtest-related materials indicate practical value for the stated workflow, with readable reports and BUY/HOLD/SELL or LONG/NEUTRAL/SHORT decisions. Cost-benefit earns partial credit: the README notes many API calls and suggests lower-cost models, but supplies no cost estimates, performance results, or evidence of trading returns.
Several feature claims have matching details in README configuration, commands, examples, and CI/test materials; the tests include backtest and memory-teaching boundary cases, and CI says the suite is intended to run offline. The materials also state that performance and trading outcomes vary and that hypothetical evaluation is not realized account profit. Many product capabilities remain README claims, however, and static evidence cannot establish runtime behavior.
- Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
- The materials describe live trading, automatic order execution, and one-click liquidation. Start in paper mode and verify account settings and confirmation controls before enabling live or automatic execution.
- Do not treat model decisions or historical/hypothetical backtest returns as investment advice or realized account performance; the README says trading is risky and outcomes depend on models, data, and time periods.
- API keys are configured through a local environment file; the supplied materials do not describe encryption, access controls, or rotation.
FAQ
Can I try it without connecting an Alpaca account?
What costs should I expect?
How do I keep tests from using real money?
ALPACA_USE_PAPER=True for Alpaca paper trading. Set it to False for live trading with real money.