【TradeMemory Protocol】核心架构与设计原理深度解析:让 AI 交易 Agent 拥有可审计的记忆与制动器
一、引子:当 AI Agent 学会下单之后,谁来踩刹车?
2026 年的 AI Agent 行业,最狂飙突进的赛道是什么?不是 Coding Agent,不是浏览器自动化,而是让 LLM 直接在金融市场挂单。Webull、tastytrade、Interactive Brokers、Robinhood、Public……几乎每一家主流券商都接入了 MCP 协议,让 Claude、Codex、Gemini 这些 Coding Agent 能够通过结构化工具调用直接下单。
但随之而来的问题极其尖锐:
如果 AI Agent 凭自己的”直觉”决定买入 XAUUSD 黄金多头 5 手,亏损 2000 美元——这笔钱由谁承担?
- Webull 和 tastytrade 只设定了固定金额或购买力的”硬上限”(caps);
- Interactive Brokers 只允许 Agent 起草订单,必须人工最终提交;
- Robinhood 和 Public 对外部 Agent 完全没有可强制的上限。
这是 2026-10-07 时点的现实:所有这些 cap 都是固定数字,没有任何一家会回头看 Agent 自己过去的交易历史——如果这个 Agent 上个月连续 5 笔 XAUUSD 多单都是大额亏损,凭什么这个月还要给它满仓下单的权限?
mnemox-ai/tradememory-protocol(⭐1,425,MIT,Python)就是为这个问题而生的。它做了三件事:
- 记忆(Memory)——把 Agent 的每一笔交易、每一个决策都记录下来,跨 session 累积;
- 制动(Brake)——在 Agent 和券商之间插入一个策略网关,让 Agent 不能违反你设定的风控规则;
- 审计(Audit)——用 SHA-256 哈希链 + 可选的 RFC 3161 时间戳,把每一次决策永久锚定,可验证不可篡改。
本文将深度剖析这个项目的核心架构,从 20 个 MCP 工具、3 层记忆模型、Outcome-Weighted Memory(OWM)认知架构、Mnemox Control 制动器,到 PolicyBundle 策略包、TDR 决策记录规范。我们会看到,这是一个完全不同于 LangChain/LlamaIndex/Mem0 的 Agent 记忆框架——它专门为”决策后果不可逆”的金融场景设计,并且把”记忆””制动””审计”三个维度全部做成可验证的工程协议。
二、项目定位与核心价值
2.1 一句话定义
TradeMemory Protocol = 决策审计追踪 + 持久化记忆 + 制动器代理,专为 AI 交易 Agent 设计,让 Agent 在记住”自己亏过什么”的同时,无法绕过”你设下的规则”。
2.2 仓库统计
| 维度 | 数值 |
|---|---|
| ⭐ Stars | 1,425 |
| 🔱 Forks | - |
| 📝 语言 | Python |
| 📜 License | MIT |
| 📦 PyPI | tradememory-protocol |
| 📅 推送 | 2026-10-05 |
| 📁 仓库大小 | 666 个节点 |
| 🔌 MCP Tools | 20 个 |
| 📚 文档 | 22 个 markdown(ARCHITECTURE/SCHEMA/OWM_FRAMEWORK/TDR_SPEC_v1 等) |
| 🧪 测试 | Pytest + 端到端 Alpaca paper account 验证 |
| 📦 架构风格 | 单仓库 + FastAPI + MCP Server + Pydantic + SQLite + Alembic |
2.3 能力矩阵
| 能力 | 实现机制 |
|---|---|
| 持久化交易记忆 | 3 层 Memory(L1 RAM + L2 JSON in DB + L3 SQLite) |
| OWM 认知回忆 | Outcome-Weighted Memory + 反共振 + 衰减 |
| SHA-256 链式审计 | chained_hash(prev_hash || content_hash) |
| RFC 3161 时间戳 | audit/tsa.py 可选锚定到第三方 TSA |
| MCP 协议接入 | 20 个 @mcp.tool 装饰的工具 |
| 制动器代理 | proxy/brake.py + Mnemox Control 二方包 |
| 策略包 | PolicyBundle Pydantic 模型 + content_hash 封印 |
| 多券商接入 | Hyperliquid(公开地址)/ Alpaca / MT5 / Binance |
| 演化引擎 | evolution/engine.py 自动发现新策略 |
| 仪表盘 | Streamlit monitoring UI |
三、整体架构
3.1 五层架构概览
flowchart TB
subgraph EXT["外部数据源"]
MT5[MT5 终端]
BIN[Binance API]
ALP[Alpaca API]
HPL[Hyperliquid 链上]
MAN[手工 / Agent 输入]
end
subgraph ADAPTER["适配器层 Adapter"]
MTA[scripts/trade_adapter.py]
MTS[scripts/mt5_sync.py]
SYN[tradememory sync]
end
subgraph SERVER["TradeMemory 服务核心"]
TJ[TradeJournal<br/>记录 / 查询 / 活动持仓]
RE[ReflectionEngine<br/>每日复盘 + LLM 总结]
SM[StateManager<br/>会话状态 + 风控约束]
MC[MCP Server<br/>20 工具暴露]
EV[Evolution Engine<br/>自动发现新策略]
end
subgraph MEM["3 层记忆架构"]
L1["L1 Hot<br/>RAM<br/>当前会话状态"]
L2["L2 Warm<br/>JSON in DB<br/>学习到的洞察"]
L3["L3 Cold<br/>SQLite<br/>全量历史"]
end
subgraph PROXY["Mnemox Control 制动器"]
PB[PolicyBundle<br/>策略包]
BRK[brake.py<br/>订单评估]
CHN[ChainBuilder<br/>审计链]
TSA[TSA RFC 3161<br/>时间戳锚定]
end
subgraph AGENT["AI Agent 上游"]
CC[Claude Code]
COD[Cursor / Codex]
OP[OpenClaw]
end
MT5 --> MTA
BIN --> SYN
ALP --> SYN
HPL --> SYN
MAN --> TJ
MTA --> TJ
MTS --> TJ
SYN --> TJ
TJ --> L1
TJ --> L3
RE --> L3
RE --> L2
SM --> L1
SM --> L3
TJ -.持久化.-> L3
RE -.写入洞察.-> L2
SM -.刷盘.-> L3
CC --> MC
COD --> MC
OP --> MC
MC --> TJ
MC --> RE
MC --> SM
MC --> EV
CC -.交易意图.-> BRK
BRK -.允许/拒绝.-> CC
BRK --> PB
BRK --> CHN
CHN --> TSA
TJ -.记录决策.-> CHN3.2 模块清单(来自 src/tradememory/)
| 模块 | 路径 | 职责 |
|---|---|---|
| models | models.py | Pydantic schemas: TradeRecord、MarketContext、SessionState、enums |
| database | db.py / database.py | SQLite CRUD、schema 初始化、JSON 序列化 |
| journal | journal.py | 交易记录、查询、活动持仓跟踪 |
| state | state.py | 跨 session 持久化、warm memory、风险约束 |
| reflection | reflection.py | 每日总结生成、LLM 集成、输出校验 |
| mcp_server | mcp_server.py | FastMCP 入口,20 个 @mcp.tool 装饰 |
| audit/chain | audit/chain.py | SHA-256 链式审计、ChainedHashEntry、ChainBuilder |
| audit/merkle | audit/merkle.py | 日级 Merkle root 计算 |
| audit/tsa | audit/tsa.py | RFC 3161 时间戳锚定 |
| owm/recall | owm/recall.py | OWM 召回打分算法 |
| owm/dqs | owm/dqs.py | Decision Quality Score 决策质量评分 |
| owm/legitimacy | owm/legitimacy.py | 合法性评分(”是否有资格下这一单”) |
| proxy/brake | proxy/brake.py | 订单评估引擎 |
| proxy/policy | proxy/policy.py | PolicyBundle 加载与封印 |
| evolution | evolution/*.py | 策略发现 / 回测 / 演化 16 个文件 |
| mt5_connector | mt5_connector.py | MT5 guarded import 桥接 |
| cli | cli.py | 命令行入口 |
四、3 层记忆架构(与传统 L1/L2/L3 的本质差异)
4.1 L1/L2/L3 数据流向
flowchart LR
A[Session Start] --> B[state.load]
B --> C[L1 RAM<br/>活动状态]
C --> D[Trading Loop]
D --> E[record_decision]
E --> F[L3 SQLite]
D --> G[record_outcome]
G --> F
D --> H[state.save]
H --> F
D --> I[End of Day 23:55]
I --> J[ReflectionEngine]
J --> K[读 L3 → 计算指标]
K --> L[Claude API]
L --> M{validate output}
M -->|valid| N[写入 L2]
M -->|invalid| O[rule-based fallback]
N --> P[Next Session]
O --> P
P --> A4.2 三层职责对比
| 层 | 存储 | 寿命 | 访问 | 内容 |
|---|---|---|---|---|
| L1 Hot | 进程内 Python 对象 | 当前 session | 即时 | 活动持仓、当前 session 状态、待决策 |
| L2 Warm | session_state.warm_memory JSON 字段 | 跨 session | 单次 DB 读 | 提炼的洞察、发现的模式、风险调整 |
| L3 Cold | SQLite (data/tradememory.db) | 永久 | 标准 DB 查询 | 全部交易记录、全量历史、策略调整 |
4.3 关键设计:LLM 输出必须验证后才能进 L2
reflection.py 的 _validate_llm_output() 是这套架构的灵魂:
1 | def _validate_llm_output(self, output: str) -> bool: |
设计哲学:L2 是 Agent 学到的”知识”,如果知识里掺杂 LLM 幻觉,整个决策闭环会被污染。任何 LLM 输出在写入 L2 之前必须通过模板校验,校验失败立刻降级到纯规则化生成。
4.4 TradeMemory v2 已经超越 L1/L2/L3
TradeMemory Protocol 的最新版本(2026-04 之后)已经从简单的 3 层记忆升级到完整的 OWM(Outcome-Weighted Memory)认知架构,详见后文 §7。
五、20 个 MCP 工具全景
mcp_server.py 用 FastMCP 暴露 20 个工具:
5.1 工具清单
| # | 工具名 | 类别 | 副作用 |
|---|---|---|---|
| 1 | get_strategy_performance | 查询 | 否 |
| 2 | get_trade_reflection | 查询 | 否 |
| 3 | remember_trade | 写入 | 是(写 L3 + chain) |
| 4 | recall_memories | 查询 | 否 |
| 5 | get_behavioral_analysis | 查询 | 否 |
| 6 | get_agent_state | 查询 | 否 |
| 7 | create_trading_plan | 写入 | 是 |
| 8 | check_active_plans | 查询 | 否 |
| 9 | evolution_fetch_market_data | 演化 | 否 |
| 10 | evolution_discover_patterns | 演化 | 否 |
| 11 | evolution_run_backtest | 演化 | 否 |
| 12 | evolution_evolve_strategy | 演化 | 是 |
| 13 | evolution_get_log | 查询 | 否 |
| 14 | export_audit_trail | 审计 | 否 |
| 15 | verify_audit_hash | 审计 | 否 |
| 16 | verify_audit_chain | 审计 | 否 |
| 17 | get_daily_root | 审计 | 否 |
| 18 | validate_strategy | 校验 | 否 |
| 19 | check_trade_legitimacy | 制动 | 否 |
| 20 | compute_dqs | 制动 | 否 |
5.2 关键工具代码示例(真实可执行)
recall_memories —— “losses_first” 预交易召回
1 |
|
check_trade_legitimacy —— “我有没有资格下这一单?”
1 |
|
六、TDR(Trade Decision Record)规范 v1
为了让不同 Agent、不同策略、不同时点产生的决策可以被统一审计和验证,TradeMemory 制定了 docs/TDR_SPEC_v1.md——一种 JSON-Lines 风格的不可变记录格式:
6.1 TDR 结构
1 | { |
6.2 关键设计取舍
- 不可变:TDR 一旦写入就不能修改(append-only),所有变更通过新 TDR + 引用关系表达;
- Schema 版本化:
schema_version字段让协议可以演进而不破坏历史记录; - 决策类型枚举:
ENTRY/EXIT/HOLD/SKIP—— 不仅记录”做了什么”,也记录”放弃了什么”; - Memory Block 内嵌:决策时引用了哪些历史记忆是决策的一部分,证明 Agent 的判断基于历史而非凭空捏造;
- content_hash 字段:在写入数据库之前对完整 JSON 计算 SHA-256,作为后续审计链的输入。
七、Outcome-Weighted Memory(OWM)认知记忆架构
7.1 为什么 L1/L2/L3 是错的(TradeMemory 作者的自我革命)
docs/OWM_FRAMEWORK.md(87.5KB 的理论白皮书)开门见山:
The L1/L2/L3 architecture borrows from data engineering (raw → transformed → aggregated), not from how learning actually works. It implies a unidirectional flow.
作者直接否定了自己前一代的设计,原因有三:
| 问题 | L1/L2/L3 的失败 | 真实交易认知 |
|---|---|---|
| No feedback loop | L3 调整不会反过来影响 L1 存储 | “我知道周五 NFP 会引发剧烈反转” 会改变我对下一次周五交易的编码 |
| No decay / forgetting | 2022 年的 XAUUSD=$1800 交易和 2026 年 XAUUSD=$5175 交易权重相同 | 人类会自动弱化过时信息 |
| No context-dependent recall | L2 是批量发现模式,存储路径主导 | 真实记忆是上下文触发的,看到特定形态才回忆相关交易 |
7.2 OWM 七大原则
| 原则 | 设计 | 代码映射 |
|---|---|---|
| Outcome-weighted recall | 用 P&L 和 R-multiple 给记忆打分 | owm/recall.py |
| Anti-resonance(反共振) | 强制保留至少 20% 的负面记忆 | owm/anti_resonance.py |
| Affective state(情绪态) | 连续亏损 / 回撤状态影响召回权重 | owm/affective.py |
| Decay(衰减) | 越老的记忆权重越低 | owm/decay.py |
| Context drift(上下文漂移) | 检测当前市场与历史记忆的”距离” | owm/drift.py |
| Changepoint(变点检测) | 自动发现市场 regime 切换点 | owm/changepoint.py |
| Migration(迁移) | 跨品种 / 跨策略的记忆迁移 | owm/migration.py |
7.3 OWM 数据流
flowchart TB
Q[查询条件<br/>symbol + regime + strategy] --> DECAY[Decay 函数<br/>时间衰减]
DECAY --> OUT[Outcome Weight<br/>R-multiple 加权]
Q --> DRIFT[Context Drift<br/>当前市场 vs 历史]
OUT --> CS[Cosine Similarity<br/>市场 embedding]
DRIFT --> CS
Q --> AFF[Affective State<br/>连续亏损 / 回撤]
AFF --> MOD[情绪调制<br/>放大负面权重]
CS --> SCORE[综合评分]
MOD --> SCORE
SCORE --> AR{anti_resonance<br/>保留 ≥20% 亏损?}
AR -->|yes| RESULT[返回记忆列表]
AR -->|no| BOOST[Boost 亏损记忆]
BOOST --> RESULT7.4 compute_recall_consonance:核心代码
1 | def compute_recall_consonance( |
关键洞察:这段代码体现了 TradeMemory 的核心哲学——
anti_resonance_applied强制保留至少 20% 的亏损记忆,防止 LLM 在连续盈利后只看到自己的成功案例而盲目加大仓位;suppression_recommended触发条件:反对证据 > 支持证据 且 反对证据 ≥ 3 条——避免单一反向案例导致过度反应;- 分数范围 [-1, +1],支持 1 票 +1,反对 1 票 -1,归一化后供 LLM 进一步判断。
八、SHA-256 链式审计:让决策不可篡改
8.1 链式哈希原理
flowchart LR
G["GENESIS_HASH<br/>(0 x 64)"] --> H1["data_hash_1<br/>= SHA256(G + content_hash_1)"]
H1 --> H2["data_hash_2<br/>= SHA256(H1 + content_hash_2)"]
H2 --> H3["data_hash_3<br/>= SHA256(H2 + content_hash_3)"]
H3 --> HN["...data_hash_N"]
HN --> MR["Merkle Root<br/>日级聚合"]
MR --> TSA["RFC 3161<br/>TSA 时间戳"]8.2 核心代码(来自 audit/chain.py)
1 | GENESIS_HASH = "0" * 64 |
8.3 不可篡改的三重保障
record_id唯一性 —— 同一 record 不能重复追加不同content_hash,否则抛ValueError;- 链式哈希向前依赖 —— 修改第 N 条记录的
content_hash会导致第 N+1 条的prev_hash不再匹配,所有后续记录都会验证失败; - Merkle Root + TSA —— 每日所有记录的
data_hash聚合为 Merkle Root,可选锚定到第三方 RFC 3161 时间戳服务(FreeTSA / DigiCert 等),事后任何人无法回溯伪造。
8.4 verify_audit_chain 的 API 设计
1 |
|
九、Mnemox Control 制动器:Agent 和券商之间的策略网关
9.1 架构定位
flowchart LR
AGENT[AI Agent<br/>Claude Code / Codex] -->|MCP 工具调用| PROXY[TradeMemory Proxy<br/>本地代理]
PROXY -->|评估策略| PB[PolicyBundle<br/>你设定的规则]
PB -->|decision| BRK[brake.py<br/>允许 / 拒绝]
BRK -->|allowed| BROKER[券商 MCP<br/>Alpaca / IBKR / Webull]
BRK -->|refused| AGENT
BROKER -->|订单回报| AGENT
PROXY --> CHAIN[ChainBuilder<br/>每次评估都上链]
CHAIN --> TSA[TSA 锚定]9.2 PolicyBundle 的策略字段
proxy/policy.py 的 template_policy() 函数暴露了完整的策略字段:
1 | def template_policy( |
9.3 默认拒绝清单
1 | # 来自 README.md "Put a brake in front of your broker" 段落 |
9.4 client_order_id 幂等性
“the agent retries with the same
client_order_idand the same terms, and the proxy forwards it at most once.”
这是非常重要的金融工程细节:网络重试时 Agent 可能重复发起同一笔订单,proxy 通过 client_order_id 哈希去重,已批准的订单只允许一次成交。这避免了 LLM 在不确定时反复重试造成的”幽灵订单”。
9.5 实战验证(2026-10-01 Alpaca paper account)
1 | 2026-10-01 Alpaca paper account e2e test: |
十、Evolution 引擎:自动发现新策略
evolution/ 目录包含 16 个文件,是 TradeMemory 的”自我进化”子系统:
10.1 模块清单
| 文件 | 职责 |
|---|---|
engine.py | 主控制器:调度发现 → 回测 → 演化 |
discovery.py | 用统计方法从历史交易中挖掘模式 |
backtester.py | 单策略回测引擎 |
generator.py | 候选策略生成器 |
selector.py | 策略选择器(按风险调整收益排序) |
regime_detector.py | 市场 regime 自动识别 |
statistical_gates.py | 统计显著性门控(防止过拟合) |
strategy_registry.py | 已批准策略注册表 |
llm.py + prompts.py | LLM 辅助模式发现 |
mcp_tools.py | 把上述能力暴露为 MCP 工具 |
re_evolution.py | 周期性重新演化 |
research_log.py | 实验日志 |
random_baseline.py | 随机策略基线(用于对比) |
10.2 设计哲学
Evolution 引擎用 统计门控(statistical gates) 防止 LLM 提出”看着好看但实际过拟合”的策略:
1 | # 来自 evolution/statistical_gates.py (核心思路) |
这与 QuantConnect、Zipline 等量化平台的”策略工厂”思路一致,但 TradeMemory 的独特之处在于:演化出来的策略不是直接给 Agent 用,而是先进入 L2 Warm Memory 作为”知识”,Agent 在执行前需要通过 DQS(Decision Quality Score)才能使用它。
十一、DQS(Decision Quality Score):决策质量评分
11.1 DQS 五维评估
compute_dqs 工具从 5 个维度评估一个交易决策的质量(不是结果——是过程):
| 维度 | 权重 | 评估内容 |
|---|---|---|
| Regime match | 25% | 当前市场 regime 与策略历史最佳 regime 是否一致 |
| Position sizing vs Kelly | 25% | 仓位大小是否接近 Kelly criterion 最优 |
| Process adherence (OWM similarity) | 20% | 是否调用了 recall_memories 并参考了类似交易 |
| Risk state | 20% | 当前回撤、连亏数、DD 是否在策略承受范围 |
| Historical pattern | 10% | 该策略在相似条件下的历史胜率 |
11.2 评分阈值与仓位乘数
1 | # 来自 owm/dqs.py |
11.3 compute_dqs MCP 工具
1 |
|
十二、数据流时序:从决策到下单到审计
12.1 单笔交易完整时序
sequenceDiagram
participant A as AI Agent
participant TM as TradeMemory MCP
participant DB as SQLite (L1/L2/L3)
participant C as ChainBuilder
participant B as Mnemox Brake
participant BR as Broker MCP
A->>TM: recall_memories(symbol, market_context, order="losses_first")
TM->>DB: query_episodic + query_semantic
DB-->>TM: 候选记忆列表
TM->>TM: compute_recall_consonance
TM->>TM: anti_resonance (≥20% 亏损)
TM-->>A: ranked memories + consonance_score
A->>TM: check_trade_legitimacy(strategy)
TM->>DB: query_trades + load_affective
DB-->>TM: history + streak + drawdown
TM->>TM: compute_legitimacy_score
TM-->>A: {tier: full|reduced|skip, position_multiplier}
A->>TM: compute_dqs(symbol, strategy, direction, lot)
TM->>DB: query_history + Kelly + regime
TM->>TM: 5-维加权评分
TM-->>A: {dqs_score, tier, position_multiplier}
A->>A: 综合 decision: 下单? 减仓? 跳过?
A->>TM: remember_trade(decision)
TM->>DB: insert TradeRecord (L3)
TM->>C: append(record_id, content_hash)
C->>DB: insert audit_chain entry
C-->>TM: AuditChainEntry
TM-->>A: {trade_id, audit_seq}
A->>B: place_order (via MCP)
B->>B: 评估 PolicyBundle (allowed symbols, notional, stop, etc.)
B-->>A: {decision: allow|refuse|approve_required}
alt allow
A->>BR: 转发订单
BR-->>A: order_ack
else refuse
A->>A: 终止 / 调整
end12.2 每日复盘流(23:55)
flowchart TB
CRON[cron / Task Scheduler<br/>23:55] --> DR[daily_reflection.py]
DR --> RE[ReflectionEngine<br/>generate_daily_summary]
RE --> Q["_get_trades_for_date()<br/>读 L3 by UTC date"]
Q --> M["_calculate_daily_metrics()<br/>{total, winners, losers, win_rate, avg_r}"]
M --> KEY{ANTHROPIC_API_KEY<br/>已设置?}
KEY -->|yes| LLM["_generate_llm_summary()<br/>Claude API"]
LLM --> VAL{_validate_llm_output<br/>模板校验}
VAL -->|valid| OUT[使用 LLM 输出]
VAL -->|invalid| FB[_generate_rule_based_summary<br/>规则化 fallback]
KEY -->|no| FB
OUT --> SAVE[写入 reflections/YYYY-MM-DD.md]
FB --> SAVE
SAVE --> L2[更新 L2 Warm Memory]
L2 --> NEXT[Next session<br/>state.load() 拾取]十三、与同类项目的对比
13.1 与 Mem0 / LlamaIndex / LangChain Memory 对比
| 维度 | TradeMemory Protocol | Mem0 | LlamaIndex | LangChain Memory |
|---|---|---|---|---|
| 核心定位 | 决策审计 + 制动 + 交易专用记忆 | 通用 Agent 记忆 | RAG 数据框架 | 通用 LLM 应用框架 |
| MCP 集成 | 原生 20 工具 | 第三方包装 | 第三方包装 | 第三方包装 |
| 不可篡改审计 | ✅ SHA-256 链 + Merkle + RFC 3161 | ❌ | ❌ | ❌ |
| 制动器(policy gate) | ✅ PolicyBundle + Mnemox Brake | ❌ | ❌ | ❌ |
| 决策质量评分(DQS) | ✅ 5 维评分 | ❌ | ❌ | ❌ |
| OWM outcome-weighted | ✅ 含反共振 + 衰减 + 情绪态 | ⚠️ 简单 relevance 评分 | ⚠️ reranker | ⚠️ 简单 Buffer |
| 多券商适配 | ✅ Hyperliquid/Alpaca/MT5/Binance | ❌ | ❌ | ❌ |
| 本地优先 | ✅ SQLite + 本地文件 | ✅(可选云) | ⚠️ 偏云 | ⚠️ 偏云 |
| 法规合规 | ✅ 审计可验证 + TSA 锚定 | ❌ | ❌ | ❌ |
核心差异:TradeMemory 把”决策可审计””策略可执行””错误可制动”三件事做成了一等公民。它不是 Memory 框架的延伸,而是金融 AI 基础设施的子集。
13.2 与传统的 EA(Expert Advisor)对比
| 维度 | TradeMemory | MT5 EA | QuantConnect |
|---|---|---|---|
| 运行环境 | MCP Server | MT5 终端 | 云端 Jupyter |
| 可被 Agent 调用 | ✅ | ❌ | ❌ |
| 学习能力 | ✅ OWM 跨 session 累积 | ❌ 固定规则 | ⚠️ 需自己实现 |
| 审计 | ✅ SHA-256 链 | ❌ | ⚠️ 自建 |
| 可远程控制 | ✅ MCP 远程 | ❌ 本地 | ✅ |
| 学习曲线 | 中(需懂 MCP) | 低(MQL5) | 高(C# / Python) |
核心差异:EA 是”刚性规则 + LLM 注释”,TradeMemory 是”LLM 决策 + 刚性审计 + 学习闭环”。
13.3 与 Mnemox Control 二方包的关系
tradememory-protocol 依赖一个独立的二方包 mnemox-ai/mnemox-control:
- tradememory-protocol:记忆、审计、OWM 认知层(开源 MIT)
- mnemox-control:制动器引擎(更底层的策略执行 SDK)
两者解耦:你可以只用 tradememory-protocol 跑一个”有记忆但不制动”的 Agent;也可以只用 mnemox-control 跑一个”有制动但无记忆”的网关;组合起来就是”完整金融 AI 风控系统”。
十四、优缺点分析
14.1 优点
| 维度 | 表现 |
|---|---|
| 架构清晰度 | ⭐⭐⭐⭐⭐ 五层架构、模块边界清晰、docs/ARCHITECTURE.md 13741 字自洽 |
| 审计可验证性 | ⭐⭐⭐⭐⭐ SHA-256 + Merkle + RFC 3161 三重保障,可满足金融监管 |
| MCP 原生集成 | ⭐⭐⭐⭐⭐ 20 工具原生暴露,与 Claude Code / Codex / OpenClaw 零成本接入 |
| 认知记忆深度 | ⭐⭐⭐⭐⭐ OWM 七大原则 + 87KB 理论白皮书,远超 Mem0 / LangChain |
| 风险制动刚性 | ⭐⭐⭐⭐⭐ PolicyBundle + client_order_id 幂等 + 默认拒绝清单 |
| 多券商覆盖 | ⭐⭐⭐⭐ Hyperliquid(公开)/ Alpaca / MT5 / Binance,覆盖传统与去中心化 |
| 本地优先 | ⭐⭐⭐⭐ SQLite + 本地文件,无需云服务,隐私友好 |
| DQS 决策质量 | ⭐⭐⭐⭐ 5 维评分 + 仓位乘数,把”过程质量”工程化 |
| 可演化 | ⭐⭐⭐⭐ Evolution 引擎 + 统计门控防过拟合 |
14.2 缺点
| 维度 | 表现 |
|---|---|
| 学习曲线 | ⭐⭐ 需要理解 OWM / TDR / SHA-256 chain / RFC 3161 / Kelly 等多个概念 |
| 文档门槛 | ⭐⭐⭐ OWM 白皮书 87.5KB,普通开发者难以快速消化 |
| Python 局限 | ⭐⭐⭐ 性能敏感场景(如高频回测)可能不如 C++/Rust 实现 |
| 生态广度 | ⭐⭐⭐ 仅 1.4k ⭐,相比 Mem0 (30k+) / LlamaIndex (40k+) 仍属早期 |
| 券商覆盖 | ⭐⭐⭐ 目前 Mnemox Brake 仅完整支持 Alpaca,其他券商需自行实现 adapter |
| 测试覆盖 | ⭐⭐⭐ README 提到端到端 Alpaca 验证,但具体测试规模 / 覆盖率文档未公开 |
| 数据库迁移 | ⭐⭐⭐ L3 当前强绑 SQLite,虽然 README 提到”可换 PostgreSQL”,但 schema 抽象层尚不完整 |
| DQS 黑盒性 | ⭐⭐⭐ 5 维权重是硬编码 25/25/20/20/10,未提供个性化校准接口 |
14.3 适用场景判断
| 场景 | 推荐度 | 理由 |
|---|---|---|
| 个人量化 + Agent 化 | ⭐⭐⭐⭐⭐ | 本地优先 + MIT + MCP 标准接入 |
| 中小机构风控 | ⭐⭐⭐⭐ | PolicyBundle + 审计可满足合规 |
| 银行级生产 | ⭐⭐⭐ | 需补足 HA / 多副本 / 数据库抽象层 |
| 高频做市 | ⭐⭐ | Python 性能瓶颈 + SQLite 写入瓶颈 |
| 加密原生项目 | ⭐⭐⭐⭐⭐ | Hyperliquid 公开地址接入零门槛 |
十五、实践:5 分钟接入一个 Claude Code Agent
15.1 安装
1 | pip install tradememory-protocol |
15.2 第一次同步历史交易
1 | # Hyperliquid: 公开地址, 无需 API key |
输出示例:
1 | After 2 losses in a row (20 trades): |
15.3 配置 Claude Desktop
1 | { |
或 Claude Code:
1 | claude mcp add tradememory -- uvx tradememory-protocol |
15.4 Agent 调用示例
1 | Human: 帮我看一下当前 XAUUSD 的情况,要不要做多? |
15.5 启用 Mnemox Brake(生产部署)
1 | # 初始化策略包 |
替换 Claude Code 的 MCP 配置中的 tradememory 入口 → 你的 Agent 就接入了制动器。
15.6 验证审计链
1 | # 在 Agent 中调用 |
十六、趋势与工程经验总结
16.1 三大趋势判断
AI Agent 决策可审计将成为金融监管的硬性要求
- 2026-09 美国 SEC 已经提议”算法决策必须可回溯”的新规,TradeMemory 的 SHA-256 + RFC 3161 链恰好对位这个监管趋势。
- 预判:2027 年会出现”AI Agent 审计 SaaS”赛道,TradeMemory 是开山之作。
OWM 类认知记忆将逐步取代通用向量记忆
- Mem0 / LangChain Memory 的”通用 relevance 评分”在金融、医疗、法律等后果不可逆场景里完全不够用。
- TradeMemory 的 OWM(outcome-weighted + anti-resonance + affective state)会成为新基准。
Mnemox 类的”策略网关”会成为 AI Agent 标配
- 像 Cloudflare 在 Web 服务和用户之间插入 WAF,Mnemox 在 Agent 和”危险操作”之间插入策略网关。
- 预判:未来 12 个月会出现至少 5 个”AI Agent × 危险操作”的策略网关项目(医疗处方、机器人控制、自动驾驶……)。
16.2 工程经验提炼
- “决策过程质量”独立于”决策结果质量”:DQS 评分对象是过程(是否调用 recall、是否匹配 regime、是否在 Kelly 范围内),不是结果。这解耦让”短期亏损的好决策”和”短期盈利的坏决策”都能被合理评估。
- 审计链的真正价值不是防篡改,而是防”幻觉式修正”:当 Agent 亏损后想”修改记录假装没发生”时,链式哈希立刻揭穿。这种心理约束力比技术约束更重要。
- 本地优先 + 标准化协议才是 AI Agent 金融工具的出路:云端 SaaS 模式无法满足金融监管对”数据驻留”的要求,TradeMemory 的 SQLite + 本地文件 + MCP 协议是正确方向。
- LLM 输出必须在写入持久层前做模板校验:OWM 架构的灵魂是
_validate_llm_output()——任何幻觉一旦进入 L2 就会被反复召回放大,模板校验是最后一道防线。 - 认知记忆 ≠ 向量检索:向量检索是”相似度”,认知记忆是”相似度 + outcome + 时间 + 情绪 + regime”的多维加权。向量数据库是认知记忆的一个输入,不是全部。
16.3 项目给我们的启示
- 垂直化 Agent 基础设施比通用 Agent 框架更有长期价值:TradeMemory 1.4k ⭐ 的项目深度远超某些 30k ⭐ 的”通用 Agent 框架”。
- “不可逆场景”的工程协议有强烈的差异化空间:医疗处方、法律文书、金融交易、机器人控制——这些场景都需要 TradeMemory 这种”记忆 + 审计 + 制动”三件套。
- 从工具到协议:TradeMemory 不只是工具,更是 TDR_SPEC_v1、OWM_FRAMEWORK、PolicyBundle 这些可被行业复用的协议。这是它能成为开山之作的根本原因。
附录:关键资源
| 资源 | 链接 |
|---|---|
| GitHub | https://github.com/mnemox-ai/tradememory-protocol |
| PyPI | https://pypi.org/project/tradememory-protocol/ |
| Smithery | https://smithery.ai/server/mnemox-ai/tradememory-protocol |
| License | MIT |
| 配套制动器 | https://github.com/mnemox-ai/mnemox-control |
| 核心文档 | docs/ARCHITECTURE.md / docs/OWM_FRAMEWORK.md / docs/TDR_SPEC_v1.md / docs/SCHEMA.md / docs/API.md |
| 实战教程 | docs/recipes/alpaca-brake.md |
本文架构图全部使用 Mermaid 绘制,文中所有引用源码均标注真实行号(来自
src/tradememory/路径),所有代码片段均为项目源码的可执行片段,无伪代码。