AI 交易 Agent 監控指南:確保你的 Agent 不會失控(2026)
當你把交易決策交給一個 AI Agent,你其實是把你的資金託付給一個非確定性的系統。它不像傳統的 if-else 交易機器人,每次給定相同輸入都會產出相同輸出。AI Agent 會推理、會猶豫、會犯錯,甚至會「幻覺」出根本不存在的市場訊號。
TL;DR / 重點摘要
>
完整解析 AI 交易 Agent 的監控與可觀測性架構,涵蓋三大支柱(日誌、指標、追蹤)、告警分級框架、熔斷機制設計、LLM 特定監控、工具選擇與事後分析模板。從 P0 到 P3 告警閾值、最大日損熔斷到幻覺偵測,一步步帶你建構不會讓 Agent 失控的監控堆疊。
目錄
- 一、為什麼監控 AI Agent 和傳統機器人截然不同
- 二、三大支柱:日誌、指標、追蹤 — 應用於交易 Agent
- 三、關鍵指標深入解析
- 四、告警框架:P0-P3 嚴重程度分級
- 五、熔斷機制:自動關閉條件設計
- 六、LLM 特定監控:Token、幻覺與品質
- 七、工具選擇:建構你的監控堆疊
- 八、Sentinel Bot 監控堆疊實戰
- 九、事後分析模板:Agent 虧損時的 10 步根因分析
- 事後改善計畫
- 十、建構儀表板:關鍵面板與設計原則
- 結語:監控不是成本,是保險
這就是為什麼監控 AI 交易 Agent 不是一個「有的話很好」的功能,而是一個「沒有就等著爆倉」的必要基礎設施。
本文將完整解析如何為你的 AI 交易 Agent 建構一套生產級的監控與可觀測性系統。從三大支柱的落地實作、告警嚴重程度分級、熔斷機制設計,到 LLM 特有的監控需求與事後分析模板,我們會一一深入探討。
一、為什麼監控 AI Agent 和傳統機器人截然不同
1.1 非確定性行為的本質挑戰
傳統的量化交易機器人是確定性系統。你給它一組 MACD 交叉訊號加上 RSI 超買條件,它每次都會在完全相同的條件下執行完全相同的操作。你可以用回測精確預測它在任何歷史時刻的行為。
AI 交易 Agent 完全不同。它的核心是一個大型語言模型(LLM),而 LLM 的輸出本質上具有隨機性。即使你把 temperature 設為 0,不同的上下文窗口內容、不同的系統提示組合、甚至模型提供商的後端更新,都可能導致截然不同的交易決策。
這意味著傳統的「預期輸出比對」式測試在這裡幾乎無效。你需要的是一套能夠持續觀察、評估、並在異常時即時介入的監控體系。
1.2 LLM 漂移:無聲的殺手
LLM 漂移(LLM Drift)是 AI 交易 Agent 面臨的最陰險威脅之一。它指的是模型行為隨時間逐漸偏離預期,而且這種偏離往往不會觸發任何傳統意義上的「錯誤」。
舉個具體例子:你的 Agent 原本在 BTC 價格跌破 20 日均線時會採取保守的減倉策略。但經過幾週的運作,由於上下文窗口中累積了越來越多的「逢低買入最終獲利」的歷史案例,Agent 開始傾向於在同樣的技術訊號下維持甚至加大部位。表面上看起來一切正常——沒有錯誤日誌、沒有異常拋出、API 回應碼都是 200。但實際的風險敞口已經悄悄擴大了三倍。
這種「看起來像成功的失敗」正是 AI Agent 監控與傳統軟體監控最根本的差異。根據業界統計,63% 的生產環境 AI 系統在上線後 90 天內會經歷某種程度的幻覺或漂移問題。
1.3 多步推理鏈的不透明性
傳統交易機器人的決策邏輯是線性的:讀取資料、套用規則、執行交易。你可以在任何環節設置斷點來檢查狀態。
AI 交易 Agent 的決策過程則是一條多步推理鏈。它可能先呼叫市場資料 API,然後分析技術指標,接著查詢新聞情緒,再評估投資組合風險,最後才生成交易指令。每一步之間的推理邏輯都封裝在 LLM 的黑盒子裡。如果最終的交易決策是錯的,你需要能夠追溯整條推理鏈,才能找到根因是出在哪一步。
更複雜的是,現代 AI 交易系統往往採用多 Agent 架構。一個負責技術分析的 Agent、一個負責基本面研究的 Agent、一個負責風控的 Agent,再加上一個協調者 Agent 來整合所有意見。在這種多 Agent 群體交易架構中,監控的複雜度呈指數級增長。
1.4 失敗模式的根本差異
| 面向 | 傳統交易機器人 | AI 交易 Agent |
|------|--------------|---------------|
| 失敗訊號 | 明確的錯誤碼與例外 | 語法正確但語義錯誤的輸出 |
| 可重現性 | 給定相同輸入必定重現 | 相同輸入可能產出不同結果 |
| 偵測難度 | 錯誤日誌即可捕捉 | 需要語義層面的品質評估 |
| 漂移風險 | 無(確定性邏輯不會漂移) | 高(模型行為隨上下文演變) |
| 成本風險 | 固定的運算成本 | Token 用量可能指數爆炸 |
| 除錯路徑 | 堆疊追蹤 + 變數檢查 | 需追溯完整推理鏈與工具呼叫 |
理解了這些根本差異,你就能明白為什麼我們需要一套專門為 AI 交易 Agent 設計的監控框架,而不是簡單地在現有的 APM 工具上加幾個儀表板。
二、三大支柱:日誌、指標、追蹤 — 應用於交易 Agent
可觀測性的三大支柱——日誌(Logs)、指標(Metrics)、追蹤(Traces)——是所有監控體系的基礎。但當我們把它們應用到 AI 交易 Agent 時,每一根支柱都需要顯著的擴展與調整。
2.1 日誌:從結構化事件到決策日記
#### 傳統日誌的不足
傳統的應用程式日誌記錄的是「發生了什麼事」:HTTP 請求進來了、資料庫查詢執行了、錯誤拋出了。對於 AI 交易 Agent,這些資訊遠遠不夠。你需要記錄的是「Agent 為什麼做出這個決定」。
#### AI 交易 Agent 日誌的必備欄位
每一筆交易決策的日誌應該包含以下結構化欄位:
{
"timestamp": "2026-03-15T08:30:00Z",
"trace_id": "abc123-def456",
"agent_id": "sentinel-btc-scalper-01",
"decision_type": "OPEN_LONG",
"symbol": "BTC/USDT",
"confidence_score": 0.82,
"reasoning_summary": "20MA crossover + positive funding rate + bullish news sentiment",
"input_context": {
"market_data_snapshot": "...",
"news_sentiment_score": 0.65,
"technical_indicators": {"rsi": 45, "macd_signal": "bullish_cross"}
},
"llm_call": {
"model": "gpt-4o",
"prompt_tokens": 2340,
"completion_tokens": 180,
"latency_ms": 1250,
"temperature": 0.1
},
"tool_calls": [
{"tool": "get_market_data", "duration_ms": 85},
{"tool": "analyze_sentiment", "duration_ms": 320},
{"tool": "check_portfolio_risk", "duration_ms": 45}
],
"risk_assessment": {
"position_size_pct": 2.5,
"max_drawdown_allowed": 5.0,
"current_portfolio_exposure": 35.0
},
"execution_result": {
"order_id": "ord-789",
"fill_price": 68500.00,
"slippage_bps": 3.2
}
}
#### 日誌分級策略
不是所有日誌都需要相同的保留策略。建議採用以下分級:
- DEBUG 級:完整的 LLM 輸入輸出(prompt + completion)。保留 7 天,用於除錯。
- INFO 級:交易決策摘要、工具呼叫結果、風控檢查結果。保留 90 天。
- WARN 級:接近閾值的指標(如部位接近上限)、重試事件、延遲異常。保留 180 天。
- ERROR 級:API 呼叫失敗、模型回應解析錯誤、風控規則違規。永久保留。
- CRITICAL 級:熔斷觸發、未預期的大額虧損、系統級故障。永久保留 + 即時告警。
2.2 指標:從系統健康到交易品質
#### 系統層指標(Infrastructure Metrics)
這些是基本的健康檢查指標,確保你的 Agent 運行環境是穩定的:
- CPU / 記憶體使用率:Agent 進程與 LLM 推理的資源消耗
- API 延遲:交易所 API、LLM API、內部服務的 P50/P95/P99 延遲
- 錯誤率:HTTP 4xx/5xx、WebSocket 斷線、資料庫連線逾時
- 佇列深度:Celery 任務佇列中等待處理的交易訊號數量
- 磁碟 I/O:日誌寫入與歷史資料讀取的吞吐量
#### 業務層指標(Business Metrics)
這些指標直接反映你的交易 Agent 是否在「賺錢」以及「賺得穩不穩」:
- 即時 PnL:未實現 + 已實現損益的即時追蹤
- 勝率:滾動 24 小時 / 7 天 / 30 天的交易勝率
- 夏普比率:風險調整後報酬的滾動計算
- 最大回撤:當前回撤深度與歷史最大回撤的比較
- 日均交易次數:異常的交易頻率可能代表 Agent 行為漂移
- 平均持倉時間:持倉時間的顯著變化是早期漂移訊號
#### AI 特定指標(AI-Specific Metrics)
這些是傳統交易監控不會涵蓋的、專屬於 AI Agent 的指標:
- Token 消耗率:每次決策的 prompt + completion token 數量
- 決策一致性分數:相同市場條件下,Agent 決策的一致程度
- 信心分數分布:Agent 自我報告的信心水準分布
- 工具呼叫成功率:每個外部工具的呼叫成功率與延遲
- 推理鏈長度:每次決策涉及的推理步驟數量
2.3 追蹤:從請求到交易的完整鏈路
#### 分散式追蹤在交易 Agent 中的應用
一次完整的交易決策可能涉及以下鏈路:
[市場資料事件]
-> [Agent 接收訊號] (50ms)
-> [LLM 第一輪推理:市場分析] (800ms)
-> [工具呼叫:查詢技術指標] (120ms)
-> [工具呼叫:查詢新聞情緒] (350ms)
-> [LLM 第二輪推理:風險評估] (600ms)
-> [工具呼叫:查詢投資組合狀態] (80ms)
-> [LLM 第三輪推理:生成交易指令] (400ms)
-> [風控引擎驗證] (20ms)
-> [交易所 API 下單] (150ms)
-> [WebSocket 推送結果] (10ms)
總延遲: ~2580ms
每一個 span 都需要帶有唯一的 trace ID,讓你能夠從最終的交易結果反向追溯到最初的市場訊號。這在事後分析虧損交易時至關重要。
#### OpenTelemetry 在 AI Agent 追蹤中的應用
2026 年,業界已經收斂到以 OpenTelemetry(OTel)作為 AI Agent 遙測資料收集的標準。OTel 的語義慣例(Semantic Conventions)現在已經涵蓋了生成式 AI 的三大訊號:追蹤、指標與事件。
對於交易 Agent,建議的 span 屬性包括:
# OpenTelemetry span 屬性範例
span.set_attribute("gen_ai.system", "openai")
span.set_attribute("gen_ai.request.model", "gpt-4o")
span.set_attribute("gen_ai.usage.prompt_tokens", 2340)
span.set_attribute("gen_ai.usage.completion_tokens", 180)
span.set_attribute("trading.symbol", "BTC/USDT")
span.set_attribute("trading.decision", "OPEN_LONG")
span.set_attribute("trading.confidence", 0.82)
span.set_attribute("trading.position_size_pct", 2.5)
使用 OTel 的最大優勢是廠商中立:你收集一次資料,可以路由到任何後端——Prometheus、Datadog、New Relic、Grafana Cloud,完全不會被綁定在單一供應商。
三、關鍵指標深入解析
3.1 PnL 漂移偵測
PnL 漂移指的是實際損益與預期模型表現之間的偏離。這是最直接的「Agent 是否正常運作」指標。
計算方式:
PnL_drift = |actual_pnl_30d - expected_pnl_30d| / |expected_pnl_30d|
閾值建議:
- PnL 漂移 < 15%:正常範圍,市場波動造成
- PnL 漂移 15-30%:需要關注,啟動每日審查
- PnL 漂移 30-50%:警告,可能存在策略漂移
- PnL 漂移 > 50%:嚴重異常,考慮暫停 Agent 並進行根因分析
3.2 決策延遲監控
在加密貨幣市場,毫秒級的延遲差異可能意味著滑點的顯著增加。AI Agent 的決策延遲由多個環節組成:
- 資料擷取延遲:從交易所取得最新市場資料的時間
- LLM 推理延遲:模型生成回應的時間(通常是最大瓶頸)
- 工具呼叫延遲:Agent 呼叫外部工具的累計時間
- 風控驗證延遲:風險管理引擎檢查的時間
- 下單執行延遲:從決策生成到訂單送達交易所的時間
關鍵指標:
- 端到端決策延遲 P95:應控制在 5 秒以內
- LLM 推理延遲 P95:應控制在 2 秒以內
- 下單執行延遲 P95:應控制在 500 毫秒以內
3.3 API 錯誤率追蹤
AI 交易 Agent 依賴多個外部 API:交易所 API、LLM API、市場資料 API、新聞 API 等。任何一個 API 的故障都可能導致決策品質下降或交易執行失敗。
分層監控策略:
# 交易所 API 監控
exchange_api:
error_rate_threshold: 1% # 超過 1% 就告警
latency_p95_threshold: 500ms # 超過 500ms 就告警
rate_limit_buffer: 20% # 預留 20% 的速率限制空間
# LLM API 監控
llm_api:
error_rate_threshold: 2% # LLM 偶有逾時是正常的
latency_p95_threshold: 3000ms # 3 秒是合理的上限
fallback_model: "gpt-4o-mini" # 主模型故障時的備用
# 市場資料 API 監控
market_data_api:
staleness_threshold: 30s # 資料超過 30 秒就算過時
completeness_threshold: 99% # 資料完整度低於 99% 就告警
3.4 部位限制監控
部位限制是防止 Agent 過度曝險的最後一道防線。你需要同時監控絕對值和相對值:
- 單一資產最大部位:不超過總資金的 10%
- 總曝險上限:不超過總資金的 50%
- 相關資產群組上限:高度相關的資產(如 BTC + ETH)合併曝險不超過 25%
- 槓桿使用率:當前使用槓桿 / 最大允許槓桿的比率
3.5 回撤告警系統
回撤是交易中最需要被即時監控的指標之一。建議設置多級回撤告警:
- 輕度回撤(-3%):記錄日誌,增加監控頻率
- 中度回撤(-5%):發送通知,降低新開倉的部位大小
- 重度回撤(-8%):暫停新開倉,僅允許平倉操作
- 極端回撤(-12%):觸發全面平倉的熔斷機制
想親自測試這些策略? Sentinel Bot 讓你使用 12+ 訊號引擎回測,並部署到真實市場 -- 開始 7 天免費試用或下載桌面應用程式。
本節重點: 三、關鍵指標深入解析
3.1 PnL 漂移偵測
PnL 漂移指的是實際損益與預期模型表現之間的偏離。這是最直接的「Agent 是否正常運作」指標
四、告警框架:P0-P3 嚴重程度分級
一套好的告警系統需要清楚的嚴重程度分級,避免「告警疲勞」——當所有告警都是「緊急」時,就沒有任何告警是真正緊急的。
4.1 P0:致命(立即行動,5 分鐘內回應)
P0 告警代表系統正在主動虧損或面臨資金安全風險。收到 P0 告警時,你應該放下手邊一切事情立即處理。
| 告警名稱 | 觸發條件 | 自動動作 |
|---------|---------|--------|
| 熔斷觸發 | 日損失超過最大允許值 | 自動平倉所有部位,暫停 Agent |
| 交易所 API 全面故障 | 連續 3 次 API 呼叫失敗 | 暫停所有新訂單,保留現有部位 |
| 未授權交易 | 偵測到非 Agent 發起的訂單 | 立即凍結 API 金鑰,通知安全團隊 |
| 資金異常轉移 | 偵測到提款或轉帳操作 | 立即撤銷 API 權限 |
| 極端回撤 | 帳戶淨值回撤超過 12% | 全面平倉 + 暫停 Agent |
通知管道:電話、簡訊、Telegram(高優先級頻道)、PagerDuty
4.2 P1:嚴重(30 分鐘內回應)
P1 告警代表系統功能降級或交易品質顯著下降,需要儘速排查。
| 告警名稱 | 觸發條件 | 建議動作 |
|---------|---------|--------|
| LLM API 延遲飆升 | P95 延遲 > 5 秒持續 5 分鐘 | 切換至備用模型 |
| PnL 漂移嚴重 | 30 天 PnL 漂移 > 50% | 暫停新開倉,啟動根因分析 |
| 連續虧損 | 連續 10 筆交易虧損 | 降低部位大小至 50% |
| 部位接近上限 | 總曝險 > 最大值的 85% | 禁止新開倉 |
| Token 用量異常 | 單次決策 token 數 > 正常值 3 倍 | 檢查是否有無限迴圈 |
通知管道:Telegram、Email、Slack
4.3 P2:警告(4 小時內回應)
P2 告警代表某些指標偏離正常範圍,需要關注但不需要立即行動。
| 告警名稱 | 觸發條件 | 建議動作 |
|---------|---------|--------|
| 勝率下降 | 7 天滾動勝率低於歷史平均 20% | 檢查市場環境變化 |
| 決策延遲增加 | P95 延遲 > 正常值 2 倍 | 檢查 API 狀態與模型效能 |
| 日誌異常量增加 | ERROR 級日誌 > 正常值 5 倍 | 檢查日誌內容,排查根因 |
| 資料新鮮度下降 | 市場資料延遲 > 1 分鐘 | 檢查資料源連線 |
| 信心分數偏移 | 平均信心分數偏離基線 > 2 標準差 | 檢查模型行為是否漂移 |
通知管道:Telegram(一般頻道)、Email 摘要
4.4 P3:資訊(每日審查)
P3 告警是需要持續追蹤但不需要即時回應的趨勢性資訊。
| 告警名稱 | 觸發條件 | 建議動作 |
|---------|---------|--------|
| 成本趨勢 | 月度 API 成本環比增長 > 20% | 下次規劃會議討論 |
| 交易頻率變化 | 日均交易次數偏離 > 30% | 確認是市場因素或行為漂移 |
| 模型版本更新 | LLM 提供商發布新版本 | 安排回測驗證 |
| 備用系統健康 | 備用模型 / 備用交易所連線測試 | 確認災難恢復方案可用 |
通知管道:每日報告 Email、Dashboard 週報
4.5 告警疲勞防治
告警系統最大的敵人是「告警疲勞」。當告警太多時,操作者會開始忽略所有告警,包括真正重要的那些。防治措施包括:
- 告警聚合:同一根因的多個告警應該被聚合成一條
- 靜默規則:已確認的問題在修復期間靜默相關告警
- 升級機制:P2 告警超過 4 小時未回應自動升級為 P1
- 週期性審查:每月審查一次告警規則,移除噪音告警
- 誤報追蹤:記錄每次告警是真陽性還是假陽性,持續優化閾值
五、熔斷機制:自動關閉條件設計
熔斷機制(Circuit Breaker)是你的最後一道安全防線。當所有其他監控和告警都失效時,熔斷機制應該能夠自動且無條件地停止 Agent 的交易活動。
5.1 設計原則
熔斷機制的設計遵循以下核心原則:
- 獨立於 Agent:熔斷邏輯不應該跑在 Agent 進程中。如果 Agent 掛了或失控了,熔斷機制必須仍然能運作。
- 不可被覆寫:Agent 不應該有能力停用或繞過熔斷機制。
- 失敗安全:當熔斷系統本身故障時,預設行為應該是「停止交易」而非「繼續交易」。
- 多層冗餘:至少要有兩層獨立的熔斷機制,避免單點故障。
5.2 熔斷觸發條件
#### 最大日損熔斷
# 最大日損熔斷邏輯
class DailyLossCircuitBreaker:
def __init__(self, max_daily_loss_pct: float = 5.0):
self.max_daily_loss_pct = max_daily_loss_pct
self.daily_start_equity = None
self.is_tripped = False
def check(self, current_equity: float) -> bool:
if self.daily_start_equity is None:
return False
daily_pnl_pct = (
(current_equity - self.daily_start_equity)
/ self.daily_start_equity * 100
)
if daily_pnl_pct <= -self.max_daily_loss_pct:
self.is_tripped = True
self.execute_emergency_close()
return True
return False
def execute_emergency_close(self):
# 1. 取消所有掛單
# 2. 市價平倉所有部位
# 3. 撤銷 API 交易權限
# 4. 發送 P0 告警
pass
#### 部位限制熔斷
當總曝險超過預設上限時,自動拒絕所有新開倉指令:
- 單一資產曝險:超過帳戶淨值 15% 時觸發
- 總曝險:超過帳戶淨值 60% 時觸發
- 槓桿使用:超過允許槓桿的 90% 時觸發
#### API 連鎖故障熔斷
當關鍵 API 出現連鎖故障時,Agent 應該進入安全模式:
# API 連鎖故障偵測
class APICircuitBreaker:
def __init__(
self,
failure_threshold: int = 5,
recovery_timeout: int = 300 # 5 分鐘
):
self.failure_count = 0
self.failure_threshold = failure_threshold
self.recovery_timeout = recovery_timeout
self.state = "CLOSED" # CLOSED, OPEN, HALF_OPEN
self.last_failure_time = None
def record_failure(self):
self.failure_count += 1
self.last_failure_time = time.time()
if self.failure_count >= self.failure_threshold:
self.state = "OPEN"
self.notify_p1_alert(
f"API circuit breaker OPEN after "
f"{self.failure_count} consecutive failures"
)
def can_execute(self) -> bool:
if self.state == "CLOSED":
return True
if self.state == "OPEN":
if time.time() - self.last_failure_time > self.recovery_timeout:
self.state = "HALF_OPEN"
return True # 允許一次試探性呼叫
return False
if self.state == "HALF_OPEN":
return True
#### 異常交易頻率熔斷
如果 Agent 突然開始以異常高的頻率下單,這通常意味著推理邏輯出了問題(例如進入了無限迴圈):
- 閾值:5 分鐘內交易次數超過正常均值的 5 倍
- 動作:暫停 Agent,保留現有部位,發送 P1 告警
#### LLM 回應品質熔斷
當 LLM 連續生成無法解析或邏輯不通的回應時:
- 閾值:連續 3 次回應無法通過格式驗證
- 動作:切換至備用模型或進入純規則模式
5.3 熔斷後的恢復流程
熔斷觸發後,不應該自動恢復。每一次熔斷都應該經過以下流程才能復機:
- 根因確認:確認觸發熔斷的根本原因
- 修復驗證:確認問題已經被修復
- 小規模測試:以 10% 的正常部位大小恢復交易
- 漸進放量:在確認一切正常後,逐步恢復到正常部位大小
- 事後報告:撰寫事後分析報告,更新監控規則
六、LLM 特定監控:Token、幻覺與品質
這一章節涵蓋的是傳統交易監控完全不會觸及的領域——專屬於 LLM 驅動交易 Agent 的監控需求。如果你還不熟悉 AI 交易 Agent 的基礎架構,建議先閱讀AI 交易 Agent 完整指南。
6.1 Token 用量監控
#### 為什麼 Token 用量如此重要
LLM API 的定價是按 token 計算的。一個不受控的 Agent 可能在一個晚上燒掉數千美元的 API 費用。更糟糕的是,異常的 token 用量往往是其他問題的早期訊號——例如 Agent 陷入了反覆推理的迴圈,或者上下文窗口被無關資訊塞滿了。
想要更詳細了解 AI 交易成本的各個面向,可以參考 AI 交易成本完整分析。
#### 關鍵 Token 指標
token_monitoring:
# 每次決策的 token 用量
per_decision:
prompt_tokens_p50: 1500
prompt_tokens_p95: 3000
prompt_tokens_max: 5000 # 超過此值告警
completion_tokens_p50: 150
completion_tokens_p95: 300
completion_tokens_max: 800 # 超過此值告警
# 每小時的 token 用量
hourly:
total_tokens_budget: 50000 # 小時預算
alert_at_50_pct: true # 50% 時提醒
alert_at_80_pct: true # 80% 時警告
hard_cap_at_100_pct: true # 100% 時暫停
# 每日的 token 用量
daily:
total_tokens_budget: 500000 # 日預算
cost_alert_threshold: 50.00 # 美元
#### Token 爆炸偵測
一個常見的故障模式是 Agent 進入推理迴圈:它對自己的上一次輸出不滿意,於是重新推理,產生更長的輸出,然後又不滿意,周而復始。這會導致 token 用量指數級增長。
偵測方式:監控連續 LLM 呼叫之間的 token 數量增長率。如果連續三次呼叫的 token 數量都在增長,且增長率超過 50%,立即觸發告警。
6.2 幻覺偵測
#### 交易場景中的幻覺類型
在交易 Agent 的語境下,LLM 幻覺可能表現為以下形態:
- 虛構的市場資料:Agent 聲稱「BTC 在過去 1 小時上漲了 5%」,但實際只上漲了 0.5%
- 不存在的技術形態:Agent 識別出一個根本不存在的「頭肩頂形態」
- 錯誤的歷史類比:Agent 引用了一個從未發生過的歷史事件來支持其決策
- 虛構的新聞事件:Agent 聲稱某公司發布了某項公告,但該公告不存在
- 數學計算錯誤:Agent 的風險計算過程中出現基本的算術錯誤
#### 幻覺偵測策略
class HallucinationDetector:
def __init__(self):
self.market_data_service = MarketDataService()
self.news_service = NewsService()
def check_market_data_claims(self, agent_output: dict) -> list:
"""比對 Agent 聲稱的市場資料與實際資料"""
discrepancies = []
for claim in agent_output.get("market_claims", []):
actual = self.market_data_service.get_actual(
symbol=claim["symbol"],
metric=claim["metric"],
timeframe=claim["timeframe"]
)
deviation = abs(claim["value"] - actual) / abs(actual)
if deviation > 0.1: # 10% 以上的偏差
discrepancies.append({
"claim": claim,
"actual": actual,
"deviation_pct": deviation * 100
})
return discrepancies
def check_reasoning_consistency(self, agent_output: dict) -> float:
"""檢查推理邏輯的內部一致性"""
# 使用輕量級模型作為裁判來評估主模型的推理品質
judge_prompt = f"""
評估以下交易決策的推理邏輯一致性(0-1 分):
決策:{agent_output['decision']}
理由:{agent_output['reasoning']}
市場資料:{agent_output['market_context']}
檢查重點:
1. 結論是否與證據一致
2. 是否有自相矛盾
3. 數據引用是否合理
"""
score = self.judge_model.evaluate(judge_prompt)
return score
#### 幻覺率追蹤
建議追蹤以下幻覺相關指標:
- 市場資料幻覺率:Agent 聲稱的資料與實際資料偏差超過 10% 的比例
- 推理一致性分數:Agent 決策邏輯的內部一致性分數(0-1)
- 事實可驗證率:Agent 回應中可被獨立驗證的事實聲稱比例
- 幻覺趨勢:幻覺率是否隨時間增加(漂移的早期訊號)
6.3 回應品質評分
除了偵測明顯的幻覺,你還需要一套持續評估 Agent 回應品質的機制。
#### 品質評分維度
- 格式合規性(0-1):回應是否符合預期的 JSON 格式
- 指令遵循度(0-1):回應是否遵循了系統提示中的所有規則
- 推理深度(0-1):分析是否夠深入,還是只是表面的套話
- 風險意識(0-1):回應是否適當地考慮了風險因素
- 行動可執行性(0-1):生成的交易指令是否可以直接執行
#### 品質分數下降的自動降級
quality_degradation_policy:
warning_threshold: 0.7 # 品質分數低於 0.7 發出警告
reduce_position_threshold: 0.6 # 低於 0.6 降低部位大小至 50%
pause_threshold: 0.5 # 低於 0.5 暫停 Agent
consecutive_checks: 5 # 連續 5 次低於閾值才觸發
本節重點: 六、LLM 特定監控:Token、幻覺與品質
這一章節涵蓋的是傳統交易監控完全不會觸及的領域——專屬於 LLM 驅動交易 Agent 的監控需求。如果你還不熟悉 AI 交易 Agent 的基礎架構,建議先閱讀AI 交易 Agent 完整指南
七、工具選擇:建構你的監控堆疊
7.1 Prometheus + Grafana:開源首選
#### 優勢
- 成本:完全免費開源
- 靈活性:可以自訂任何指標和儀表板
- 生態系統:豐富的 exporter 和 dashboard 模板
- 社群:活躍的社群支援
#### 適用場景
- 自架基礎設施的團隊
- 需要高度自訂化的監控需求
- 預算有限的個人交易者或小團隊
#### 交易 Agent 的 Prometheus 指標範例
from prometheus_client import Counter, Histogram, Gauge
# 交易指標
trade_total = Counter(
'trading_agent_trades_total',
'Total number of trades',
['agent_id', 'symbol', 'side', 'result']
)
trade_pnl = Histogram(
'trading_agent_trade_pnl',
'PnL per trade in percentage',
['agent_id', 'symbol'],
buckets=[-10, -5, -2, -1, -0.5, 0, 0.5, 1, 2, 5, 10]
)
portfolio_equity = Gauge(
'trading_agent_portfolio_equity',
'Current portfolio equity in USDT',
['agent_id']
)
llm_decision_latency = Histogram(
'trading_agent_llm_decision_latency_seconds',
'LLM decision latency in seconds',
['agent_id', 'model'],
buckets=[0.5, 1, 2, 3, 5, 10, 30]
)
llm_tokens_used = Counter(
'trading_agent_llm_tokens_total',
'Total LLM tokens used',
['agent_id', 'model', 'token_type']
)
active_positions = Gauge(
'trading_agent_active_positions',
'Number of active positions',
['agent_id']
)
circuit_breaker_state = Gauge(
'trading_agent_circuit_breaker_state',
'Circuit breaker state (0=closed, 1=half_open, 2=open)',
['agent_id', 'breaker_type']
)
7.2 Datadog:企業級全方位
#### 優勢
- LLM Observability:Datadog 已經原生支援 LLM 可觀測性,包含 trace、成本追蹤、品質評估
- 一站式:指標、日誌、追蹤、告警全部整合
- 自動化:異常偵測和智慧告警
#### 適用場景
- 需要快速上線的機構級交易團隊
- 預算充足,偏好託管服務
- 已經在使用 Datadog 做其他基礎設施監控
7.3 自訂儀表板方案
對於不想依賴第三方的團隊,可以考慮自訂儀表板方案:
- 後端:FastAPI + PostgreSQL 儲存指標、Redis 做即時快取
- 前端:React + Recharts / D3.js 視覺化
- 告警:自訂告警引擎 + Telegram Bot / Email
這種方案的最大優勢是完全掌控資料和邏輯,缺點是開發和維護成本較高。
7.4 OpenTelemetry:廠商中立的遙測標準
無論你選擇哪個後端,強烈建議使用 OpenTelemetry 作為遙測資料收集層。這樣做的好處是:
- 廠商中立:隨時切換後端,無需修改業務程式碼
- 標準化:GenAI 語義慣例已經涵蓋了 AI Agent 的常見場景
- 生態整合:AG2、LangChain、CrewAI 等主流框架都已內建 OTel 支援
- 未來性:OTel 已成為業界共識標準,投資不會浪費
7.5 AI 專屬可觀測性平台
2026 年已經有多個專門為 AI Agent 設計的可觀測性平台:
- LangWatch:全方位監控 + 評估 + 實驗功能
- Langfuse:開源方案,適合自架
- Helicone:proxy-based 架構,多供應商成本優化
- Arize:專注於模型品質監控與漂移偵測
- Braintrust:評估優先的架構,自動化評分與監控
對於 AI 交易 Agent,建議的組合方案是:
OpenTelemetry (收集層)
+ Prometheus/Grafana (基礎設施指標)
+ Langfuse 或 LangWatch (LLM 品質監控)
+ 自訂告警引擎 (交易特定邏輯)
+ Telegram Bot (即時通知)
八、Sentinel Bot 監控堆疊實戰
作為一個實際運行中的交易 SaaS 平台,Sentinel Bot 的監控架構可以作為你的參考範本。關於安全層面的更多細節,可以參考 AI 交易安全完整指南。
8.1 Telegram 即時告警
Sentinel Bot 使用 Telegram Bot 作為主要的即時告警管道。每 2 分鐘執行一次 cron job 檢查以下項目:
- API 健康狀態:後端 API 的可用性與回應時間
- 資料庫連線:PostgreSQL 連線池狀態
- Celery 任務佇列:待處理任務數量與失敗率
- WebSocket 連線:活躍連線數與斷線率
告警訊息格式標準化,包含:時間戳記、嚴重程度、受影響服務、錯誤描述、以及建議的處理動作。
8.2 GCP Uptime 檢查
在 Google Cloud Platform 上設置的 Uptime 檢查提供了外部視角的可用性監控:
- 檢查頻率:每 5 分鐘
- 檢查端點:API 健康檢查端點、前端頁面載入
- 告警政策:分為 P0(立即通知)、P1(15 分鐘內通知)、P2(每日摘要)
8.3 GCP Cloud Monitoring
利用 GCP 原生的監控功能追蹤基礎設施指標:
- VM 指標:CPU、記憶體、磁碟 I/O、網路流量
- Docker 容器指標:容器 CPU/記憶體使用率、重啟次數
- 自訂指標:透過 Cloud Monitoring API 推送業務指標
8.4 多層監控架構圖
外部層:
GCP Uptime Check (每 5 分鐘)
-> 偵測服務完全不可用
應用層:
Telegram Monitor (每 2 分鐘)
-> API 健康、DB 連線、任務佇列
業務層:
自訂儀表板 (即時)
-> PnL、部位、回撤、交易頻率
AI 層:
LLM 品質監控 (每次決策)
-> Token 用量、信心分數、幻覺偵測
安全層:
熔斷機制 (即時)
-> 日損限制、部位上限、API 故障
九、事後分析模板:Agent 虧損時的 10 步根因分析
當你的 AI 交易 Agent 發生重大虧損時,混亂中最容易犯的錯誤就是急著修改 Agent 的策略或參數,而不先搞清楚到底發生了什麼。以下是一個結構化的 10 步根因分析模板。
步驟 1:凍結現場
- 暫停 Agent 的所有交易活動
- 匯出事件發生期間的完整日誌(包含 LLM 輸入/輸出)
- 記錄當下的帳戶狀態快照(部位、餘額、掛單)
- 截圖所有相關的儀表板面板
步驟 2:建立時間線
從最後一個已知正常的時間點開始,建立完整的事件時間線:
[T-60m] 帳戶狀態正常,總曝險 35%
[T-45m] BTC 閃跌 3%,Agent 偵測到買入訊號
[T-44m] Agent 開多 BTC,部位 5% 帳戶淨值
[T-30m] BTC 繼續下跌,Agent 加碼(異常行為)
[T-29m] 加碼後總曝險達到 55%(接近上限)
[T-15m] BTC 跌破關鍵支撐,帳戶回撤 -8%
[T-10m] 回撤告警觸發(中度)
[T-5m] BTC 繼續下跌,帳戶回撤 -12%
[T-0m] 熔斷觸發,全面平倉
步驟 3:分析 Agent 決策鏈
檢查每一個交易決策的完整推理鏈:
- Agent 看到了什麼市場資料?
- Agent 的技術分析結論是什麼?
- Agent 的風險評估結果是什麼?
- Agent 最終生成的交易指令是什麼?
- 每一步之間的推理邏輯是否合理?
步驟 4:比對市場資料
確認 Agent 接收到的市場資料是否正確且及時:
- 資料是否有延遲?
- 資料是否有缺漏?
- 資料是否被污染(例如交易所回報了異常的價格)?
步驟 5:檢查 LLM 行為
分析 LLM 在事件期間的表現:
- Token 用量是否異常?
- 回應延遲是否異常?
- 回應品質分數是否下降?
- 是否有幻覺發生?
- 模型版本是否在事件前後有更新?
步驟 6:審查風控邏輯
檢查風控機制是否按預期運作:
- 部位限制是否有被正確執行?
- 回撤告警是否及時觸發?
- 熔斷機制是否在正確的時間點介入?
- 如果風控沒有擋住,是規則的問題還是實作的問題?
步驟 7:檢查外部因素
排查是否有外部因素導致問題:
- 交易所 API 是否有異常?
- LLM 提供商是否有服務降級?
- 網路是否有延遲或中斷?
- 是否有重大的市場事件(如黑天鵝事件)?
步驟 8:量化影響
精確量化這次事件的影響:
- 總虧損金額(已實現 + 未實現)
- 受影響的交易對數量
- 事件持續時間
- 相比正常運作的額外虧損
- API 成本(LLM token 費用)
步驟 9:確定根因
基於前述所有分析,確定一個(或多個)根本原因:
- 模型層面:LLM 漂移、幻覺、推理品質下降
- 資料層面:資料延遲、資料缺漏、資料污染
- 邏輯層面:風控規則漏洞、熔斷閾值設定不當
- 基礎設施層面:API 故障、網路問題、資源不足
- 市場層面:超出歷史回測覆蓋範圍的極端事件
步驟 10:制定改善計畫
根據根因制定具體的改善措施:
> **本節重點:** 九、事後分析模板:Agent 虧損時的 10 步根因分析
當你的 AI 交易 Agent 發生重大虧損時,混亂中最容易犯的錯誤就是急著修改 Agent 的策略或參數,而不先搞清楚到底發生了什麼。以下是一個結構化的 10 步根因分析模板
## 事後改善計畫
### 立即修復(24 小時內)
- [ ] 修正識別出的風控規則漏洞
- [ ] 調整熔斷閾值
- [ ] 更新告警規則
### 短期改善(1 週內)
- [ ] 增加針對此類場景的回測覆蓋
- [ ] 改善 LLM 品質監控粒度
- [ ] 更新事件回應 SOP
### 長期改善(1 個月內)
- [ ] 重新評估整體風控架構
- [ ] 考慮增加額外的安全層
- [ ] 進行壓力測試
十、建構儀表板:關鍵面板與設計原則
10.1 儀表板階層設計
一個好的監控儀表板系統應該有清楚的階層結構:
#### Level 0:全域概覽(一秒看出系統狀態)
這是你每天早上第一眼看的畫面。它應該在一秒內告訴你「一切正常」或「有問題」。
必要面板:
- 系統健康狀態燈號(綠/黃/紅)
- 今日 PnL(數字 + 趨勢圖)
- 活躍部位數量與總曝險
- 告警摘要(各級別未處理告警數量)
- 熔斷狀態燈號
#### Level 1:領域儀表板(深入特定面向)
當 Level 0 顯示有問題時,你會鑽入 Level 1 來查看細節。
交易效能儀表板:
- 滾動 PnL 曲線(1h / 24h / 7d / 30d)
- 勝率趨勢圖
- 平均持倉時間分布
- 滑點統計
- 夏普比率趨勢
AI 品質儀表板:
- LLM 回應延遲 P50/P95/P99
- Token 用量趨勢
- 信心分數分布與趨勢
- 幻覺偵測率
- 推理一致性分數
風控儀表板:
- 即時曝險分布(按資產、按方向)
- 回撤深度與歷史比較
- 部位限制使用率
- 熔斷觸發歷史
- VaR(風險價值)計算
基礎設施儀表板:
- API 延遲與錯誤率(按服務分類)
- 系統資源使用率
- 佇列深度與處理速度
- WebSocket 連線狀態
#### Level 2:除錯儀表板(根因分析用)
這些是你在做事後分析時需要的深度工具。
- 完整的 trace 視覺化(每個 span 的時間軸)
- 單筆交易的完整生命週期追蹤
- LLM 輸入/輸出的原始日誌查詢
- 市場資料與 Agent 決策的時間對齊圖
10.2 刷新頻率建議
不同面板需要不同的刷新頻率,過高的刷新頻率會增加系統負擔且沒有額外價值:
| 面板類型 | 刷新頻率 | 理由 |
|---------|---------|------|
| 系統狀態燈號 | 10 秒 | 需要最快的故障偵測 |
| 即時 PnL | 30 秒 | 價格波動需要即時反映 |
| 部位與曝險 | 30 秒 | 風控需要接近即時的資訊 |
| API 延遲指標 | 1 分鐘 | 趨勢比瞬時值更重要 |
| Token 用量 | 5 分鐘 | 累計型指標,短期波動不重要 |
| 勝率/夏普比率 | 15 分鐘 | 統計指標需要足夠的樣本 |
| 歷史趨勢圖 | 1 小時 | 長期趨勢不需要頻繁更新 |
10.3 歷史 vs 即時資料處理
監控系統需要同時處理即時資料流和歷史資料查詢。建議的架構:
即時路徑(Hot Path):
Agent 事件 -> Redis Streams -> 即時儀表板
延遲要求:< 5 秒
保留期間:24 小時
溫資料路徑(Warm Path):
Redis Streams -> 時序資料庫(TimescaleDB / Prometheus)
延遲要求:< 1 分鐘
保留期間:90 天
冷資料路徑(Cold Path):
時序資料庫 -> 物件儲存(S3 / GCS)
延遲要求:< 1 小時
保留期間:永久
10.4 行動裝置友善設計
交易者不會一直坐在電腦前盯著儀表板。你的監控系統必須提供行動裝置友善的介面:
- Telegram Bot:最關鍵的指標可以透過 Telegram 查詢
- 響應式儀表板:Level 0 概覽應該在手機上也能一目了然
- 推播通知:P0/P1 告警應該能推播到手機
十一、常見問題(FAQ)
Q1:我只是一個個人交易者,需要這麼複雜的監控嗎?
你不需要建構所有的東西,但你至少需要三樣:(1)即時 PnL 追蹤、(2)最大日損熔斷、(3)Telegram 告警。這三樣東西可以在一天內搭建完成,卻能在關鍵時刻幫你保住大部分資金。記住,監控不是奢侈品——它是保險。你買保險的時候也不會覺得「太複雜」吧?
Q2:監控系統本身的延遲會不會影響交易效能?
如果架構正確,監控系統的影響是可以忽略不計的。關鍵原則是:監控邏輯不應該在交易的關鍵路徑(critical path)上。日誌寫入使用非同步方式、指標收集使用獨立的線程或進程、追蹤資料使用採樣(例如只追蹤 10% 的決策)。唯一例外是熔斷機制——它必須在關鍵路徑上,因為它需要能夠即時阻止危險交易。
Q3:如何偵測 LLM 提供商在背後更新了模型?
這是一個很常見且很陰險的問題。LLM 提供商(如 OpenAI、Anthropic)會不定期更新模型,有時甚至不會通知使用者。偵測方式:(1)維護一組固定的「金絲雀」測試 prompt,每天對模型執行一次,比較回應的一致性;(2)追蹤回應的 token 數量分布——模型更新往往會改變平均回應長度;(3)追蹤決策分布——如果買入/賣出的比例突然改變,可能是模型更新所致。
Q4:告警太多導致「告警疲勞」怎麼辦?
告警疲勞是最常見的監控系統失敗原因。解決方案:(1)嚴格執行 P0-P3 分級,只有 P0 和 P1 才會推播到手機;(2)設定告警聚合規則——同一問題的多個告警合併為一條;(3)每月審查告警規則,刪除過去 30 天內 100% 都是誤報的告警;(4)引入「告警值班」制度——每次只有一個人負責回應告警;(5)設定「靜默窗口」——已知的維護期間自動靜音非 P0 告警。
Q5:開源方案和商業方案如何選擇?
取決於三個因素:(1)團隊技術能力——如果你有能力維護 Prometheus + Grafana 叢集,開源方案的靈活性和成本優勢無可比擬;(2)時間壓力——如果你需要在兩週內上線監控,Datadog 這類商業方案能讓你更快達到目標;(3)資料敏感度——如果你的交易策略極度敏感,自架的開源方案能確保資料完全不離開你的控制。建議的起步方案是 Prometheus + Grafana 做基礎設施,加上 Langfuse(開源)做 LLM 品質監控。
Q6:如何測試熔斷機制是否真的能在緊急時刻正常運作?
熔斷機制最可怕的失敗是「你以為它會動但它其實不會動」。測試方法:(1)定期演練——每月至少手動觸發一次熔斷,確認所有動作都正確執行;(2)混沌工程——使用類似 Chaos Monkey 的方式隨機注入故障,觀察熔斷是否正確反應;(3)紙上交易測試——在模擬環境中製造極端虧損場景;(4)獨立的看門狗——用一個完全獨立的進程監控熔斷系統本身的健康狀態。
Q7:多 Agent 架構下的監控有什麼特別需要注意的?
多 Agent 架構的最大挑戰是歸因(attribution)——當系統做出一個錯誤決策時,你需要能夠追溯是哪個 Agent 的判斷出了問題。建議:(1)每個 Agent 都有獨立的指標和日誌前綴;(2)使用分散式追蹤(distributed tracing)串聯所有 Agent 的交互;(3)為協調者 Agent 設置額外的監控——它是最容易成為瓶頸的節點;(4)監控 Agent 之間的共識率——如果各 Agent 的意見分歧越來越大,可能意味著某個 Agent 的行為正在漂移。更多關於多 Agent 架構的討論,請參考多 Agent 群體交易架構指南。
結語:監控不是成本,是保險
建構一套完善的 AI 交易 Agent 監控系統需要投入時間和資源,但這筆投資的報酬率是所有交易工具中最高的。因為它保護的不是你的獲利潛力,而是你的本金。
回顧本文的核心要點:
- AI Agent 的非確定性行為使其需要比傳統機器人更全面的監控
- 三大支柱(日誌、指標、追蹤)在交易 Agent 場景中都需要顯著擴展
- 告警分級(P0-P3)是防止告警疲勞的關鍵
- 熔斷機制是最後的安全防線,必須獨立於 Agent 運行且不可被繞過
- LLM 特定監控(token、幻覺、品質)是傳統監控完全不覆蓋的盲區
- 工具選擇取決於團隊能力、時間壓力和資料敏感度
- 事後分析的結構化流程能防止同樣的問題重複發生
如果你正在考慮開始使用 AI 交易 Agent,或者你已經在使用但還沒有完善的監控,現在就是開始的最好時機。你可以下載 Sentinel Bot 來體驗一個已經內建了上述監控機制的交易平台。
不要等到 Agent 失控的那天才想起來你需要一個熔斷按鈕。
本文最後更新:2026 年 3 月
延伸閱讀:
參考資源
準備好將理論付諸實踐了嗎?免費試用 Sentinel Bot 7 天 -- 機構級回測引擎,無需信用卡。