The TradingAgents project describes four analyst roles—fundamental, sentiment, news, and technical—before its debate and decision stages (official project README). That gives you a structured way to explore stock-research questions, not a promise of accurate predictions or returns. If you want to try it this week, first check the official runtime requirements, then install and configure it in an isolated environment before running one documented example.
This guide is for individual investors deciding whether TradingAgents fits their research, developers who want to install and run it, and technical users evaluating an AI Agent environment.
TradingAgents analysis versus investment decisions
TradingAgents organizes a research workflow around multiple AI roles. The analyst roles cover different viewpoints; other roles participate in debate and decision-making. The project’s research paper describes its multi-agent approach to financial analysis.
That structure can help you inspect how a conclusion is assembled. It is not the same as independent verification. A model can repeat a weak premise, use incomplete information, or produce a confident-sounding answer that does not follow from the data. Treat the output as material to review, not a trade instruction.
| What the workflow offers | What you still need to verify |
|---|---|
| Distinct analyst perspectives, including fundamental, sentiment, news, and technical analysis, as described in the project documentation | Whether the selected inputs and data sources are relevant, current, and complete |
| A process that can combine perspectives through debate and a final decision stage | Whether the final reasoning supports its conclusion; inspect intermediate output when available |
| A structured analysis result for a chosen input | Whether the result fits your research question; it does not establish future performance |
The distinction matters in practice. A ticker or analysis date is an input, not a complete investment thesis. The system’s ability to produce a report does not mean it has checked every risk, interpreted every filing correctly, or accounted for events that were not included in its data sources. Do not use a sample result as a recommendation.
Before installation: check the runtime and service access
Start with the project’s current README and its Python requirement in the project metadata. Those sources, rather than an old tutorial, determine which runtime and installation path to use. Don’t assume that a command from another version will remain valid.
You should also identify what services your intended setup needs. The project’s environment-variable example and default configuration are the right places to check which credentials and options apply. Availability can depend on the service and configuration you select; don’t assume a key is optional or required without checking the current files.
| Preparation item | What to check before you proceed | Why it matters |
|---|---|---|
| Python runtime | Compare your installed runtime with the version requirement in the project metadata | A mismatch can prevent dependency installation or execution |
| Project files | Follow the installation steps in the current official README | Repository layout and setup instructions can change |
| Model and data access | Check the environment example and default configuration | Missing credentials or unavailable services can stop analysis |
| Credential handling | Keep secret values out of source files, screenshots, logs, and public repositories | Leaked keys can be used by someone else |
A virtual environment is a useful boundary between this project’s Python dependencies and other work on your machine. Python’s virtual environment guide explains how to create and activate one. If you are using a shell or operating system with different activation syntax, follow the instructions for that environment rather than copying a command blindly.
Before you begin, make sure you can access any model or market-data services that your chosen configuration requires. If you do not yet have the necessary account or credentials, finish that setup first. Repeatedly rerunning the analysis will not fix an unavailable service.
Keep secret values out of terminal screenshots and shared logs. When asking for help, share the variable name and error message, but replace any credential value with a redaction.
Install the project in an isolated environment
The commands below show a standard local setup. Check the repository README before running them; if its current instructions differ, use the project’s instructions. The Git clone documentation explains the repository-copy command, and the pip guide to local project installs explains editable installation.
First, clone the repository and enter its folder
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
Run these commands from the parent directory where you want the project folder created. If you already have a local checkout, enter that folder and review its current branch and files rather than creating a second copy.
Next, create and activate a virtual environment
On macOS or Linux, use:
python -m venv .venv
source .venv/bin/activate
In PowerShell, activation uses a different script:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
If your shell blocks activation, follow the Python documentation for that shell’s policy. Don’t disable security controls system-wide just to get past a setup issue. You can instead use a shell where activation is permitted or follow your organization’s approved Python setup.
Then, install the project dependencies
If the current README and project metadata specify editable installation, run:
python -m pip install -e .
Using python -m pip helps ensure pip runs through the Python interpreter associated with the active environment. An editable install makes the local project available to Python without copying its source into a separate location. If the current README specifies a different dependency command, follow that documented method.
A successful command should return you to the shell without an installation error. That alone does not prove that model access, data access, or the full analysis workflow is ready. Check the active interpreter and installation output before moving on. If the command fails while resolving packages, note the first meaningful error, confirm the Python requirement, and then retry using the project’s documented setup.
Configure the model and analysis inputs
Copy or create a local environment file only if the project’s instructions call for one. Use the names in the repository’s environment example and use the default configuration to understand the available settings. Don’t invent variable names based on another agent project.
Separate the configuration into two groups:
- Credentials and service access: enter only the keys required by the workflow you intend to run. Confirm that each key is active and belongs to the service expected by the project.
- Analysis settings: review the documented defaults and change an option only when you understand its effect. Keep a note of any change so you can distinguish a configuration problem from an unexpected result.
Do not commit a populated environment file. Before sharing code, check the working tree and remove secrets from any files you plan to publish. Avoid printing the complete environment to the terminal: a debugging command that exposes credentials can create a security incident even when the analysis itself is harmless.
A good first setup keeps optional changes to a minimum. Use the documented configuration, choose an input supported by the project example, and change one setting at a time only if the baseline run works. That gives you a clearer cause to investigate when the output differs from what you expected.
Run one documented analysis and inspect the result
Use the execution path in the current README. The project’s example demonstrates constructing a TradingAgentsGraph with its default configuration and calling propagate with a stock symbol and analysis date. The excerpt below illustrates the shape of that call; check the current example for exact imports and arguments before using it.
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
agent = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG)
result = agent.propagate("NVDA", "2024-05-10")
The symbol and date above reproduce the kind of input shown in the project example. They are for demonstrating the interface, not for suggesting that you analyze or trade that security. Use a valid input that matches the documented format and the data access available in your configuration.
For a first run, watch whether the process gets beyond initialization, makes its required service calls, and returns the documented analysis result. Read the output rather than checking only whether the command exits. Look for missing sections, empty data, unexpected errors, or a conclusion that does not connect to the supporting analysis. Where the workflow exposes intermediate messages, use them to understand which role or stage produced the result.
An incomplete output is not necessarily an installation failure. It may indicate a missing credential, service access problem, input mismatch, or an upstream data issue. Check the first relevant log message and the service configuration before changing dependencies. If a result is produced, compare its claims against the cited information and independent research; a successful run means the workflow executed, not that its analysis is correct.
First-run questions and a pass-or-fix checklist
Use this order when something goes wrong: environment, dependencies, credentials, service access, input, then output. Changing several settings at once makes it harder to identify the cause. The repository’s environment example and default configuration help you distinguish documented settings from assumptions.
Common issues to check
- Dependency installation fails: verify that the active Python runtime matches the project metadata. Confirm you are in the repository directory and the intended virtual environment is active.
- A configuration value appears missing: compare the variable name with the project’s environment example. Check that the local file is loaded as the README instructs, without displaying secret values.
- A service request fails: confirm account access, key validity, and network availability for the selected model or data service. A locally installed package cannot make an unavailable service respond.
- The run completes but the output is incomplete: verify the input format and inspect the earliest relevant log message. Then check whether the required data source returned usable information.
- The result looks confident but unsupported: treat that as a research-quality issue, not proof that the program is technically broken. Check the evidence and do not turn the output into a trade decision.
Check these items before calling the first run complete
- [ ] Your Python runtime matches the requirement in the current project metadata.
- [ ] You followed the current repository installation instructions inside the intended virtual environment.
- [ ] Required credentials and settings match the project’s environment example and default configuration.
- [ ] Secret values are not committed, printed, or included in shared logs.
- [ ] The analysis reaches a result, and you have reviewed logs, data sources, and output completeness.
- [ ] You understand that the result is research assistance, not a guarantee, prediction, or substitute for your own investment judgment.
If the project still will not run, keep the first error message, the relevant non-secret configuration names, and the steps you already tried. The Hashvps help center can be a next stop for questions about available support information; it cannot replace checking the project’s own dependency and configuration requirements. If you are comparing local and remote AI Agent environments, you can also review this AI Agent environment guide, then verify that its advice applies to this project rather than assuming every agent has the same requirements.
Choose a runtime that fits the project, not the other way around
A local machine can be the simplest option when it meets the project’s documented requirements and can reach the needed services. Its trade-offs are practical: dependencies share space with other local work, the analysis depends on that machine staying available, and local credential handling is your responsibility.
A remote environment can separate the project from your everyday machine, but it adds its own setup and access decisions. You still need to confirm that the operating system, Python runtime, network access, and any model or data services match the project’s current instructions. A remote host does not make an unsupported configuration compatible, and it does not validate the analysis.
For a short experiment, use the environment you can inspect and control. If your local setup is already compatible, there is no reason to move the project just to make the first run. If you need an isolated remote workspace, compare its actual operating-system and delivery details with the project requirements before choosing it. Hashvps is worth considering only if its verified environment fits those requirements; review the available configuration and delivery details before deciding. If you need a physical interface or a stable, long-running local workload, a rented remote setup may not be the right choice.
Set Up Your Remote Research Environment with Hashvps
Run your development workflow on a dedicated Apple Silicon Mac mini with native macOS.
Connect to your cloud Mac over SSH or VNC for remote command-line work and desktop access.