角色記憶
基於已結算人工交易案例、默認 shadow 的角色級反思系統
Role Memory 為已聲明的分析角色保存成功模式和失敗模式。在統一 Trading Memory 架構中,只有案例精確關聯到已消費的人工交易 preview,且對應執行已有結算結果後,才具備學習資格。
它不是通用預測日誌,也不是賬戶歷史鏡像。Autopilot、Strategy Studio、XStrategy、workflow 執行以及來源未知的 perps 都不能生成可召回的 role case。
用戶側審計頁面參見 Trading Memory。
准入邊界
Role case 只有同時滿足以下條件才具備評分資格:
- role ID 由 reasoning skill 聲明,並存在於 role registry。
- 人工 preview 恰好被消費一次。
- 案例與執行的 decision ID、資產、方向、賬戶和市場完全一致。
- 執行來源是
manual_agent或經過驗證的manual_external。 - 結果已結算,並有足夠的評價數據。
自動標記的優先級高於表面的人工證據。未知 role 或交易來源會被隔離,而不是 fallback 到通用角色。該 fail-closed 邊界避免把自動策略行為重新解釋為人工偏好或分析角色經驗。
數據模型
role_cases 保存角色、關聯的決策和 evaluation run、情境、決策文本、結果狀態、反思、provenance、評分資格及時間戳。FTS 與可選向量索引用於檢索,但關係型的決策/評價關聯才是事實來源。
統一主鏈如下:
trading_decisions
→ trade_executions / trade_fills
→ position_lifecycles
→ evaluation_runs / evaluation_components
→ methodology_observations and role_cases案例不能獨立聲稱某筆交易發生過;這一事實必須繼承自已關聯的執行鏈。
角色聲明
分析型 skill 聲明穩定 role ID 和 reflection policy。Role registry 在啟動時驗證它們;重複或未知 ID 不會靜默映射到通用 role。角色定義控制失敗模式、成熟窗口、outcome probe 與反思提示詞。
區分 skill 和 role 是有意設計:skill 是能力集合,role 則命名其中一種決策情境。因此 valuation、momentum 和 cycle analysis 的經驗不會混在一起。
反思
符合條件的案例成熟後,reflector 首先分類結果:
logic_error:推理與當時可用證據衝突,可訓練。missing_data:本應獲取必要證據,可訓練。exogenous:結果依賴無法預見的事件;保留審計,但不形成指導。variance:結果與噪聲無法區分;不生成指導。
只有可訓練類別會得到簡短、角色特定的 lesson。反思按 role 串行執行以避免重複 LLM 調用,受預算限制,且不能調用資金操作工具。
運行模式
ROLE_MEMORY_MODE 在啟動時讀取,並在該進程內固定:
| 模式 | 寫入/評價 | 召回/注入 |
|---|---|---|
off | 不生成新案例;已有數據保留供審計 | 禁用 |
shadow(默認) | 生成並反思符合條件的人工案例 | 禁用 |
active | 與 shadow 相同 | 已反思案例可進入匹配的分析角色及 Institution Trader / PM 提示詞 |
非法值會記錄警告並回退到 shadow。Active 不會向 execution tool 注入案例文本。SOUL、靜態安全規則、權限門和用戶顯式約束始終高於召回案例。
Recall 和手動 reflect 工具只在 active 模式註冊;shadow 僅開放生成候選案例所需的 store 路徑。也就是說,shadow 不是“模型可以忽略案例”,而是模型完全無法從正式決策提示詞中檢索或接收案例。
檢索約束
Active 檢索按精確 role 過濾,並在提供時按 symbol 和 scenario 過濾。只有已反思、未隔離、具備評分資格的人工案例可被召回。排序可以使用 FTS 或 embedding,但語義相似度永遠不會放寬來源、角色或決策關聯約束。
與評價體系的關係
Role Memory 消費版本化 evaluation run。同一決策可由多個 benchmark profile 評價,重放會追加新 run。只有明確 promoted 的 primary run 才能更新下游統計。因子詳情和缺失數據質量保留在 evaluation_components;Role Memory 不會把它們壓縮成一種寫死的評分。
遷移
舊 role_memory 行遷移到 role_cases。已知角色保留原文與 provenance,未知角色進入隔離區。舊評分僅供審計,不能更新新方法論或角色統計。遷移與 Trading Memory 其他部分共用帶校驗和的備份和守恆報告。
運營檢查
- 正式注入前,使用
ROLE_MEMORY_MODE=shadow驗證生成與評價行為。 - 修改模式後必須重啟,不支持熱切換。
- 通過 doctor/audit 輸出檢查長期 pending、failed 或隔離案例。
- 案例缺失時,先驗證人工 preview 已消費並精確關聯執行,再排查反思調度。
- 不要通過手工修改評分資格來“修復”自動或未知交易。
相關實現:
apps/agent/src/memory/role-memory-mode.tsapps/agent/src/memory/role-reflector.tsapps/agent/src/memory/prompt-injection.tsapps/agent/src/tools/role-memory.tsapps/agent/src/memory/trading-memory-migration.ts