Hầu hết các framework LLM đa tác nhân hứa hẹn nhiều hơn những gì chúng mang lại. TradingAgents là một trong số ít ngoại lệ: được Tauric Research công bố mã nguồn mở cùng với một bài báo trên arXiv, hiện đã ở phiên bản 0.2.4 và cung cấp cách phân tách vai trò rõ ràng mà nhiều framework khác chỉ mô tả. Hệ thống mô phỏng một bàn nghiên cứu thực tế: nhà phân tích cơ bản, tâm lý thị trường, tin tức và kỹ thuật tạo báo cáo; phe Mua/Bán tranh luận; Nhà giao dịch ra kế hoạch; ủy ban Quản lý Rủi ro kiểm tra; cuối cùng là một quyết định có cấu trúc để kiểm toán.
Bài viết này đi vào cách TradingAgents hoạt động, điểm mới trong v0.2.4, cách so sánh với LangGraph/CrewAI, và cách kiểm tra lớp LLM + dữ liệu thị trường bằng Apidog. Nếu bạn đang thiết kế hợp đồng cho agent, hướng dẫn agents.md cho nhóm API là phần đọc bổ sung phù hợp.
TL;DR
- TradingAgents là framework giao dịch LLM đa tác nhân từ Tauric Research, gắn với arXiv 2412.20138, được công bố mã nguồn mở vào năm 2025 và hiện ở v0.2.4.
- Framework chia quy trình giao dịch thành các tác nhân chuyên biệt: Cơ bản, Tâm lý thị trường, Tin tức, Kỹ thuật, Nhà nghiên cứu Mua/Bán, Nhà giao dịch và Quản lý Rủi ro.
- v0.2.4 thêm output có cấu trúc, resume từ checkpoint của LangGraph, nhật ký quyết định bền vững và hỗ trợ DeepSeek, Qwen, GLM, Azure OpenAI.
- TradingAgents chạy trên các endpoint LLM tương thích OpenAI, nên có thể hoán đổi giữa cloud, local và self-hosted model.
- Dùng Apidog để mock API dữ liệu thị trường, phát lại request của provider LLM và đo chi phí khi bật reasoning/thinking mode.
- Tải Apidog để đưa các kiểm thử này vào CI trước khi bạn tin tưởng agent với tiền thật.
TradingAgents thực sự là gì
TradingAgents là một package Python + CLI. Nó tách quy trình giao dịch thành nhiều vai trò độc lập, mỗi vai trò là một LLM agent với:
- prompt mô tả nhiệm vụ;
- bộ công cụ riêng;
- dữ liệu đầu vào cụ thể;
- trạng thái được điều phối bằng LangGraph.
Luồng xử lý chính:
Thu thập dữ liệu
-> Phân tích chuyên biệt
-> Tranh luận Mua/Bán
-> Quyết định giao dịch
-> Kiểm tra rủi ro
-> Ghi nhật ký quyết định
README nhấn mạnh đây là mã nghiên cứu, không phải lời khuyên đầu tư. Vì vậy, cách dùng hợp lý là nghiên cứu workflow đa tác nhân, kiểm thử mô hình, kiểm thử dữ liệu và đánh giá quyết định — không phải triển khai ngay thành bot giao dịch production.
Điểm đáng học về mặt kỹ thuật là cách framework tách vai trò:
| Vai trò | Nhiệm vụ |
|---|---|
| Nhà phân tích Cơ bản | Đánh giá tài chính công ty |
| Nhà phân tích Tâm lý thị trường | Chấm điểm tín hiệu mạng xã hội |
| Nhà phân tích Tin tức | Theo dõi tin tức và chỉ số vĩ mô |
| Nhà phân tích Kỹ thuật | Tính chỉ báo như MACD, RSI |
| Nhà nghiên cứu Mua | Xây dựng luận điểm long/bullish |
| Nhà nghiên cứu Bán | Xây dựng luận điểm short/bearish |
| Nhà giao dịch | Tổng hợp báo cáo và tạo kế hoạch |
| Quản lý Rủi ro | Phản biện kế hoạch theo ràng buộc rủi ro |
Đây là pattern có thể tái sử dụng cho nhiều workflow agent khác: chuyên gia → tranh luận → quyết định → xác minh → ghi log.
Điểm mới trong v0.2.4
Bản phát hành tháng 4 năm 2026 quan trọng vì đưa TradingAgents gần hơn với các yêu cầu kiểm thử và vận hành thực tế.
1. Output có cấu trúc
Research Manager, Trader và Portfolio Manager hiện phát ra output có cấu trúc thông qua OpenAI Responses API hoặc tool-use channel của Anthropic.
Thay vì parse văn bản tự do, bạn có thể kiểm tra JSON:
{
"action": "BUY",
"confidence": 0.72,
"rationale": "Strong technical momentum with acceptable risk.",
"risk_notes": ["Earnings event within 7 days"]
}
Điều này giúp các bước downstream dễ kiểm thử hơn bằng JSON Schema hoặc JSONPath.
2. Resume từ checkpoint của LangGraph
Các lần chạy dài có thể pause và restart từ checkpoint đã lưu. Nếu API dữ liệu thị trường bị rate limit hoặc provider LLM trả lỗi 429, bạn không cần chạy lại toàn bộ workflow.
3. Nhật ký quyết định bền vững
Mọi quyết định của Trader được ghi vào SQLite, bao gồm:
- timestamp;
- input;
- reasoning/rationale;
- quyết định;
- metadata của lần chạy.
Đây là audit trail cần thiết nếu bạn muốn so sánh model hoặc phân tích regression.
4. Hỗ trợ nhiều provider
v0.2.4 bổ sung DeepSeek, Qwen, GLM và Azure OpenAI vào danh sách đã có OpenAI, Anthropic, Gemini và Grok.
Nếu bạn muốn tối ưu chi phí inference, có thể thử DeepSeek V4 qua endpoint tương thích OpenAI. Nếu cần context dài hoặc vision, có thể chuyển sang Gemini.
5. Docker và sửa lỗi UTF-8 trên Windows
Framework có Dockerfile và đã sửa lỗi encoding path trên Windows từ v0.2.3. Đây là thay đổi nhỏ nhưng quan trọng nếu bạn muốn chạy trong CI hoặc môi trường dev đồng nhất.
Kiến trúc tác nhân
Một lần chạy TradingAgents đầy đủ thường đi qua các bước sau:
- CLI nhận ticker và ngày phân tích.
- Nhóm Analyst chạy song song:
- Fundamental Analyst;
- Sentiment Analyst;
- News Analyst;
- Technical Analyst.
- Mỗi analyst fetch dữ liệu và viết báo cáo.
- Nhóm Research nhận các báo cáo.
- Bull Researcher viết luận điểm mua.
- Bear Researcher viết luận điểm bán.
- Hai phe tranh luận.
- Research Manager tổng hợp thành khuyến nghị.
- Trader đọc khuyến nghị, kiểm tra decision log và tạo kế hoạch giao dịch.
- Nhóm Risk Management phản biện kế hoạch:
- Aggressive Risk Analyst;
- Conservative Risk Analyst;
- Neutral Risk Analyst.
- Portfolio Manager phê duyệt hoặc yêu cầu xem xét lại.
- Quyết định cuối cùng được ghi vào SQLite.
Phần tốn token nhất thường nằm ở bước tranh luận Research và Risk Management. Đây cũng là nơi model nhỏ dễ lộ điểm yếu: câu trả lời lặp, lập luận nông và ít phản biện. Các model reasoning mạnh hơn thường tạo cuộc tranh luận có cấu trúc và hữu ích hơn.
Vì sao cần kiểm tra lớp LLM bằng công cụ API
Khi chạy TradingAgents, có hai bề mặt dễ lỗi:
- API dữ liệu thị trường: Yahoo Finance, FinnHub, Polygon, OpenBB.
- API LLM provider: OpenAI, Anthropic, DeepSeek, Gemini, v.v.
Lỗi thường gặp ở dữ liệu thị trường
Dữ liệu thị trường thường không ổn định:
- rate limit không nhất quán;
- field không được ghi tài liệu rõ;
- field bị đổi tên;
- dữ liệu cuối tuần/ngoài giờ khác nhau giữa provider;
- timezone và trading day boundary khác nhau.
Ví dụ một provider đổi field:
{
"regularMarketTime": 1714492800
}
thành:
{
"regular_market_time": 1714492800
}
Nếu parser của agent không xử lý được, toàn bộ lần chạy có thể fail hoặc tệ hơn: agent tạo ra kết luận dựa trên dữ liệu thiếu.
Lỗi thường gặp ở lớp LLM
Lớp LLM có các vấn đề khác:
- thinking/reasoning mode làm tăng chi phí;
- OpenAI Responses API có format riêng;
- Anthropic tool-use trả về content block cần parse đúng;
- model khác nhau tạo output khác nhau dù cùng prompt;
- structured output có thể bị lỗi nếu prompt hoặc schema không chặt.
Cách xử lý thực tế: lưu request chuẩn, phát lại được, có assertion. Đây là nơi Apidog hữu ích. Pattern tương tự cũng được trình bày trong sổ tay kiểm thử MCP server.
Mock API dữ liệu thị trường trong Apidog
Mục tiêu: làm cho test run của TradingAgents deterministic, không phụ thuộc vào rate limit hoặc thay đổi provider.
Bước 1: định nghĩa endpoint upstream
Trong Apidog, tạo project và thêm các endpoint mà TradingAgents gọi, ví dụ:
GET /v8/finance/chart/{symbol}
GET /quote/{symbol}
GET /company-news
GET /technical-indicator
Với mỗi endpoint:
- Lưu method, path, query params.
- Gắn sample response lấy từ response thật.
- Đặt schema cho các field mà agent đang dùng.
Ví dụ schema tối thiểu cho quote:
{
"symbol": "AAPL",
"regularMarketPrice": 189.98,
"regularMarketTime": 1714492800,
"currency": "USD"
}
Bước 2: bật mock server
Bật mock server trong Apidog, sau đó trỏ cấu hình tool/data provider của TradingAgents sang mock URL.
Ví dụ biến môi trường:
export MARKET_DATA_BASE_URL="https://mock.example.apidog.io"
Khi đó Fundamental Analyst, Technical Analyst và các agent khác sẽ chạy với dữ liệu cố định. Test không còn phụ thuộc vào Yahoo/FinnHub/Polygon trong lúc chạy CI.
Bước 3: phát hiện drift của provider
Mỗi tuần, phát lại request tới provider thật và so sánh với sample đã lưu.
Cần kiểm tra:
- field mới;
- field bị xóa;
- field đổi tên;
- type thay đổi;
- response rỗng;
- status code bất thường.
Apidog giúp highlight khác biệt cấu trúc, để bạn phát hiện drift trước khi TradingAgents fail. Đây cũng là workflow trong phát triển API theo hướng hợp đồng.
Kiểm tra lớp provider LLM
Trước khi tăng số ticker hoặc số vòng tranh luận, hãy kiểm tra ba thứ: chi phí, output và độ tương đồng giữa provider.
1. Đo chi phí theo từng vai trò
Chạy một ticker qua toàn bộ workflow, sau đó ghi lại token theo từng agent.
Ví dụ bảng theo dõi:
| Agent | Input tokens | Output tokens | Ghi chú |
|---|---|---|---|
| Fundamental Analyst | 8,200 | 1,100 | Dữ liệu tài chính dài |
| Technical Analyst | 3,400 | 900 | Chỉ báo ngắn |
| Bull Researcher | 5,100 | 1,700 | Tranh luận tốn token |
| Bear Researcher | 5,000 | 1,650 | Tranh luận tốn token |
| Trader | 2,200 | 700 | Structured output |
| Risk Team | 7,500 | 2,300 | Nhiều agent phản biện |
Trong request history của Apidog, bạn có thể lưu request/response để so sánh chi phí giữa model.
Nếu tranh luận Mua/Bán không tốn token hơn analyst, có thể workflow đang bị short-circuit hoặc prompt không kích hoạt tranh luận đúng.
2. Kiểm tra structured output
Các agent output có cấu trúc trong v0.2.4 nên luôn trả JSON hợp lệ.
Thêm assertion JSONPath trong Apidog, ví dụ:
$.action exists
$.confidence >= 0
$.confidence <= 1
$.rationale exists
Hoặc kiểm tra shape:
{
"action": "BUY|SELL|HOLD",
"confidence": "number",
"rationale": "string",
"risk_notes": "array"
}
Regression ở bước này rất nguy hiểm vì thường không lộ ngay trong UI; nó chỉ làm hỏng code downstream.
3. So sánh giữa các provider
Khi chuyển từ OpenAI sang DeepSeek V4 để tối ưu chi phí, không nên chỉ chạy một ticker rồi kết luận. Hãy chạy batch nhỏ, ví dụ 50 ticker, qua cả hai provider.
Quy trình:
- Cố định ticker list.
- Cố định ngày phân tích.
- Cố định số vòng tranh luận.
- Chạy với provider A.
- Chạy với provider B.
- So sánh decision log SQLite.
- Đo tỷ lệ lệch action: BUY/SELL/HOLD.
- Đọc các case lệch nhiều nhất.
Các quyết định riêng lẻ có thể khác nhau, nhưng kết luận tổng thể nên hội tụ nếu model có chất lượng tương đương.
Tham khảo thêm:
Chạy TradingAgents tối thiểu
Một lần chạy cơ bản theo README có dạng:
git clone https://github.com/TauricResearch/TradingAgents
cd TradingAgents
pip install -r requirements.txt
export OPENAI_API_KEY="sk-..."
export FINNHUB_API_KEY="..."
python -m tradingagents.cli \
--ticker AAPL \
--date 2026-04-30 \
--models gpt-5.5 \
--rounds 2
Hai vòng tranh luận là mức nhỏ nhất nhưng vẫn đủ ý nghĩa để quan sát hành vi multi-agent.
Output thường được lưu trong:
tradingagents/results/
bao gồm JSON và bản tóm tắt quyết định dạng Markdown.
Chuyển sang DeepSeek
Để dùng DeepSeek V4 Pro cho các vai trò cần reasoning mạnh:
export DEEPSEEK_API_KEY="sk-..."
python -m tradingagents.cli \
--ticker AAPL \
--date 2026-04-30 \
--models deepseek-v4-pro \
--provider deepseek \
--rounds 2
Pattern tương tự áp dụng cho Qwen 3.6, GLM 5 hoặc model local được serve bằng Ollama/vLLM nếu endpoint tương thích OpenAI. Xem thêm bài viết về các LLM cục bộ tốt nhất năm 2026.
Các lỗi thường gặp
1. Dùng model quá nhỏ
Một model local 7B thường tạo tranh luận Mua/Bán lặp lại và thiếu lập luận phản biện. Framework này cần model có chất lượng reasoning ít nhất ở mức trung cấp.
Các lựa chọn thực tế được nhắc đến trong bài gốc gồm DeepSeek V4 Flash, Qwen 3.6 32B, GPT-5.5 và Claude 4.5.
2. Không bật cache dữ liệu thị trường
Mỗi analyst có thể gọi lớp dữ liệu riêng. Không có cache, một lần chạy có thể tạo 4–8 request tới provider, nhanh chóng chạm rate limit.
Nếu framework hỗ trợ cache trong cấu hình của bạn, hãy bật trước khi chạy batch.
3. Coi đây là bot giao dịch
TradingAgents là mã nghiên cứu. Backtest nhạy với:
- model;
- seed/prompt;
- số vòng tranh luận;
- chất lượng dữ liệu;
- cách parse output;
- ngày phân tích.
Hãy coi output là giả thuyết để nghiên cứu, không phải chiến lược giao dịch sẵn sàng triển khai.
4. Không ghi chi phí token
Một lần chạy đơn lẻ có thể tốn từ 0.10 đến 5 USD tùy model và số vòng. Nếu debate loop bị lỗi, chi phí có thể tăng rất nhanh.
Hãy log:
- provider;
- model;
- ticker;
- date;
- rounds;
- input tokens;
- output tokens;
- tổng chi phí ước tính;
- decision cuối cùng.
Bạn có thể dùng lịch sử phát lại trong Apidog để lưu request/response và so sánh theo thời gian.
5. Hard-code một provider
v0.2.0 đã thêm hỗ trợ multi-provider để bạn có thể hoán đổi model. Đừng khóa workflow vào một provider quá sớm.
Trước khi commit:
- Chạy batch nhỏ với 2–3 provider.
- So sánh decision log.
- So sánh chi phí.
- Kiểm tra structured output.
- Chọn provider theo workload cụ thể.
Apidog nằm ở đâu trong workflow phát triển
Có ba vị trí thực tế để dùng Apidog trong dự án TradingAgents.
1. Thiết kế contract dữ liệu
Trước khi kết nối provider thật, định nghĩa từng endpoint dữ liệu thị trường trong Apidog.
Việc này buộc bạn trả lời rõ:
- agent cần field nào;
- field nào bắt buộc;
- field nào optional;
- type của từng field;
- response lỗi trông như thế nào.
Nhiều nhóm phát hiện họ trả tiền cho gói dữ liệu lớn nhưng framework chỉ dùng một phần nhỏ.
2. CI cục bộ
Mock server của Apidog có thể thay thế provider thật trong unit test/integration test.
Lợi ích:
- test chạy nhanh;
- không phụ thuộc giờ thị trường;
- không tốn quota;
- không fail vì provider rate limit;
- response deterministic.
Pattern này cũng được trình bày trong bài kiểm thử API không cần Postman.
3. Regression diffing
Hàng tuần, phát lại endpoint thật và so sánh với sample đã lưu.
Mục tiêu là phát hiện sớm tình huống:
Lớp dữ liệu bị hỏng, nhưng agent vẫn tạo ra kết luận nghe có vẻ hợp lý.
Đây là một trong những lỗi nguy hiểm nhất của hệ thống LLM: output vẫn trôi chảy dù input đã sai.
Vì sao pattern này quan trọng ngoài giao dịch
TradingAgents là một ví dụ rõ về phân tách agent theo vai trò. Pattern này có thể chuyển sang nhiều domain khác:
- Customer support triage: agent phân tích billing, technical issue, abuse, priority → tranh luận → quyết định route.
- Code review: agent bảo mật, hiệu suất, style, maintainability → aggregator viết comment PR.
- Compliance review: analyst dữ liệu, risk reviewer, policy checker → decision committee.
- Research summarization: nhiều reader chuyên biệt → tranh luận → tổng hợp kết luận.
Nếu bạn đang thiết kế workflow agent nhiều bước, hãy đọc TradingAgents như một implementation reference: vai trò rõ, tranh luận có kiểm soát, output có cấu trúc và decision log bền vững.
Trường hợp sử dụng thực tế
Một sinh viên nghiên cứu định lượng dùng TradingAgents để so sánh DeepSeek V4 với GPT-5.5 và Claude 4.5 trên cùng rổ 30 mã chứng khoán. Apidog ghi lại request/response để kết quả có thể tái tạo.
Một kỹ sư fintech lấy pattern multi-agent, không dùng phần giao dịch, để review code nội bộ. Các agent kiểm tra bảo mật, hiệu suất và naming; aggregator viết comment PR. Chi phí đánh giá mỗi PR khoảng 0,04 USD.
Một nhà phát triển độc lập chạy TradingAgents hằng đêm trên watchlist 10 ticker, ghi mọi quyết định vào Postgres để phân tích sau. Mock server Apidog thay thế provider dữ liệu thị trường thật trong các lần chạy thử cuối tuần.
Kết luận
TradingAgents là một implementation đáng đọc nếu bạn muốn xây dựng hệ thống LLM đa tác nhân tạo quyết định có cấu trúc thay vì chỉ chat. v0.2.4 bổ sung các phần quan trọng hơn cho vận hành: structured output, checkpoint, audit trail và multi-provider.
Nhưng các phần đó chỉ hữu ích nếu bạn kiểm soát được hai lớp bên dưới: dữ liệu thị trường và LLM provider. Đây là nơi Apidog giúp biến workflow thành thứ có thể mock, replay, assert và diff.
Năm điểm cần nhớ:
- TradingAgents tách giao dịch thành nhiều agent chuyên biệt với vai trò rõ ràng.
- v0.2.4 thêm structured output, checkpoint của LangGraph và provider DeepSeek/Qwen/GLM/Azure.
- Mock provider dữ liệu thị trường trong Apidog để test run deterministic.
- Kiểm tra sự tương đồng giữa LLM provider trước khi đổi model trong workflow quan trọng.
- Pattern chuyên gia → tranh luận → quyết định → ghi log có thể áp dụng cho nhiều workflow agent ngoài giao dịch.
Bước tiếp theo: clone repo, chạy một ticker với LLM bạn chọn, rồi chuyển các upstream call qua mock server Apidog. Trong khoảng một giờ, bạn sẽ biết framework này có phù hợp với workflow của mình hay không.
Câu hỏi thường gặp
TradingAgents có an toàn để dùng với tiền thật không?
Repo nêu rõ đây là mã nghiên cứu và không phải lời khuyên tài chính. Hãy coi output là giả thuyết. Việc kết nối với broker thật là rủi ro cá nhân và không phải mục tiêu được khuyến nghị của framework.
Provider LLM nào cân bằng tốt giữa chi phí và chất lượng?
Theo nội dung bài gốc, với nhiều workload đầu năm 2026, DeepSeek V4 Flash với thinking mode có chi phí thấp hơn GPT-5.5 đáng kể và chất lượng tranh luận Mua/Bán tương đương. Xem hướng dẫn API DeepSeek V4 để biết cấu trúc request.
Có thể chạy TradingAgents trên model cục bộ không?
Có. v0.2.0 thêm hỗ trợ multi-provider; Ollama, vLLM và LM Studio đều có thể serve endpoint tương thích OpenAI mà framework sử dụng. Xem bài viết về LLM cục bộ tốt nhất năm 2026 để tham khảo lựa chọn model.
Làm thế nào để mock API dữ liệu thị trường?
Định nghĩa từng endpoint provider trong Apidog, bật mock server, rồi trỏ cấu hình tool/data provider của TradingAgents đến mock URL. Pattern tương tự được mô tả trong các công cụ kiểm thử API cho kỹ sư QA.
Cấu hình phần cứng tối thiểu là gì?
Nếu dùng hosted LLM như OpenAI, Anthropic hoặc DeepSeek, một laptop có Python 3.10+ là đủ để chạy CLI. Nếu serve model local, phần cứng phụ thuộc vào model: bài gốc nhắc tới GPU 24 GB cho DeepSeek V4 Flash hoặc Qwen 3.6 32B, và GPU 8 GB cho Llama 5.1 8B. Chất lượng thường giảm với model nhỏ hơn.
Framework có hỗ trợ mô phỏng ngoài giờ và cuối tuần không?
Provider dữ liệu thị trường có thể trả dữ liệu lịch sử, nên framework có thể chạy cho ngày bạn chọn. Giao dịch trực tiếp là vấn đề khác và framework không giải quyết rõ ràng.
TradingAgents so với framework đa tác nhân khác như thế nào?
TradingAgents được thiết kế riêng cho domain giao dịch. CrewAI, AutoGen và LangGraph là framework đa năng. Nếu muốn học pattern multi-agent có vai trò, tranh luận và decision log, hãy đọc TradingAgents. Nếu muốn xây dựng hệ thống agent tổng quát, bắt đầu trực tiếp với LangGraph cũng là lựa chọn hợp lý.
Top comments (0)