Hầu hết anh em chạy trading agent đều gặp cùng một bài toán: làm sao để agent tự động ra quyết định giao dịch mà mình vẫn kiểm soát được rủi ro một cách chặt chẽ? Một thành viên trong cộng đồng Hermes vừa chia sẻ toàn bộ kiến trúc quản trị (governance) anh ta đã xây dựng cho trading agent chạy trên IBKR – kèm cả bằng chứng giao dịch thật đầu tiên. Dưới đây là bản phân tích và rút gọn để anh em tham khảo, điều chỉnh cho hệ thống của mình.
Tổng quan hệ thống
Hệ thống gồm 7 script/agent chạy song song, tổng chi phí vận hành chỉ $6–12/tháng. Tất cả thay đổi code đều được commit lên GitHub private repo thông qua Claude Code CLI, tạo audit trail đầy đủ cho từng lần chỉnh sửa. Đây là nền tảng bắt buộc trước khi bất kỳ cơ chế governance nào có thể hoạt động.
Tác nhân giao dịch chính chạy MNQ futures và BTC CFD (paper trading) trên IBKR.
4 thành phần cốt lõi
1. Telegram Governance Bot – phân loại rủi ro 4 tầng
Đây là trái tim của hệ thống. Một script Python chạy polling liên tục trên Telegram. Mỗi khi research loop sinh ra một đề xuất thay đổi, governance bot phân loại vào một trong 4 tầng rủi ro:
| Tầng | Mô tả | Cơ chế phê duyệt |
|---|---|---|
| CRITICAL | Thay đổi broker, credentials, kill switch, go-live | Không có nút bấm – bắt buộc manual session |
| HIGH | Position sizing, stop loss, loss limits | Phải chạy simulator thành công thì nút Approve mới xuất hiện |
| MEDIUM | RSI thresholds, regime filters, cooldown | 3 nút: Approve / Reject / Explain |
| LOW | Logging, formatting, thay đổi không ảnh hưởng rủi ro | 3 nút tương tự, rủi ro thấp |
Mỗi đề xuất còn kèm AI recommendation (APPROVE / REJECT / DEFER) với confidence level và lý do – mình thấy kết quả này trước cả khi nhìn thấy nút bấm.
Điểm quan trọng: phân loại tầng rủi ro là rule-based, không phải AI. Điều này ngăn một proposal "thông minh" thao túng hệ thống để tự nâng quyền.
2. Autonomous Executor – triển khai tự động sau phê duyệt
Script executor chạy mỗi 5 phút. Khi mình nhấn Approve cho một proposal MEDIUM hoặc LOW:
- Executor gọi Claude Code CLI để implement thay đổi
- Tự động commit lên GitHub
- Restart các launchd agent bị ảnh hưởng
- Nếu Claude Code không khả dụng → fallback sang Anthropic API trực tiếp
Trước khi execute, executor kiểm tra protected patterns – một số chuỗi nhất định trong diff sẽ abort toàn bộ run, bất kể đã được approve hay chưa. Đây là lớp phòng vệ cuối cùng.
3. Real Backtesting Simulator – bắt buộc với HIGH risk
Với các proposal tầng HIGH, nút Approve chỉ xuất hiện sau khi simulator chạy xong. Simulator replay tham số đề xuất mới trên dữ liệu lịch sử thật từ SQLite, mô phỏng:
- Vị thế được mở
- Stop management
- Daily loss limits
- Cooldown logic
Đầu ra: win rate, P&L, avg R, max drawdown, và kết luận SAFE TO APPROVE / DO NOT APPROVE / DEFER. Simulator được gắn trực tiếp vào governance callback – nhấn nút Simulate là nó tự chạy và post kết quả về Telegram.
4. Emergency Monitor + Manual Close – 7 điều kiện kiểm tra
Monitor script chạy mỗi 5 phút, kiểm tra 7 điều kiện:
- Tuổi của vị thế đang mở (position age)
- Strategy silence – không có check nào được kích hoạt
- Unrealized loss vượt ngưỡng
- Số lần thua liên tiếp
- Khoảng cách đến daily loss limit
- Kết nối gateway
- Trạng thái kill switch
Khi điều kiện nguy cấp kích hoạt, monitor gửi Telegram alert kèm AI assessment (thesis, key risk, HOLD vs CLOSE bias) và một nút Close Now.
Script closer chạy độc lập với một clientId riêng, đảm bảo không bao giờ xung đột với connection của strategy chính. Mỗi lần close đều được log vào SQLite và flag để review trong research loop cuối tuần.
Bằng chứng thực tế đầu tiên
Bài test đầu tiên diễn ra cùng ngày đăng bài. Monitor phát hiện một lệnh MNQ LONG mở được 19.8 giờ. AI assessment khuyến nghị đóng. Nhấn nút Close Now, market order khớp:
- Entry: $29,305
- Exit: $29,314.50
- P&L: +$19.00 (paper account)
Con số nhỏ, nhưng toàn bộ vòng lặp governance → monitor → close đã chạy end-to-end không lỗi.
Những điểm mình rút ra cho anh em
Nếu anh em đang muốn xây dựng lớp governance cho agent của mình, đây là những nguyên tắc cốt lõi từ hệ thống này:
Audit trail là nền tảng – không có Git history đầy đủ thì mọi cơ chế kiểm soát đều vô nghĩa. Claude Code CLI tích hợp GitHub là một lựa chọn gọn và hiệu quả.
Phân loại rủi ro phải rule-based, không phải AI – để AI quyết định mức độ nguy hiểm của chính proposal nó tạo ra là một lỗ hổng thiết kế nghiêm trọng.
CRITICAL changes không bao giờ được tự động – broker credentials, kill switch logic, go-live phải luôn cần manual session.
Simulator là mandatory gate, không phải optional – trước khi thay đổi position sizing hay stop loss, bắt buộc replay trên dữ liệu lịch sử.
Closer chạy trên clientId riêng – đừng để script đóng lệnh chia sẻ connection với strategy, một lỗi kết nối sẽ vô hiệu hóa cả hai.
Protected patterns là lớp phòng vệ cuối – một số chuỗi trong code diff (ví dụ: hardcoded credentials, thay đổi kill switch) phải luôn luôn abort, bất kể approval status.
Alert phải có nút hành động, không chỉ là thông báo – Telegram message "có vấn đề" là vô ích nếu mình không thể hành động ngay từ chính tin nhắn đó.
Hệ thống này đang trong giai đoạn paper trading, research loop với dữ liệu giao dịch thật đầu tiên sẽ chạy vào cuối tuần. Đây sẽ là bài test governance thực sự đầu tiên. Nếu anh em quan tâm đến chi tiết kỹ thuật của bất kỳ thành phần nào, bài gốc bên dưới có phần hỏi đáp khá sôi nổi.
Top comments (0)