跳到主要内容

ADR-023 · 方案 Z 对 martin-FinClaw 立场修正

背景

「方案 Z」是早期一份决议的代号(无独立定义文档,仅在 CURRENT-MILESTONE 与个人域 memory finbayes_repos.md 被引用)。它对第三方开源金融 agent martinpmm-Finclaw 的原始结论是 「只读、不复用」——可以读它的代码长见识,但 FinBayes 自己从头建,不借鉴、不集成其实现。

这个结论在 2026-06-04 被 owner 判定为错,原因有两层:

  1. 它建立在一个错误的自我判断上:方案 Z 默认 FinBayes 已经是个能与 martin 平起平坐的真智能体,"不复用"只是技术路线选择。但 2026-06-04 对 martin 的解剖暴露出——FinBayes 当时根本不是真智能体,而是一个"一次性问答函数"(见 CURRENT-MILESTONE §0):没有主回路、没有工具系统、没有真实数据接地、没有主动性。在这个前提下"不复用一个已验证的真 agent",等于主动放弃唯一的现成参照,闷头自我摸索。
  2. martin 是经真实使用验证、能力远高于裸模型直出的真智能体:放着这样一个一级参照不研究、不借鉴,是把"自建"误当成了"必须从零自创"。真正该守的边界不是"不碰 martin",而是"不直接 rebase 它的约 1.8 万行单体"——前者是自废武功,后者才是合理的工程谨慎。

决定

把方案 Z 对 martin 的立场从「只读不复用」修正为「研究 / 借鉴 / 集成,直到 FinBayes 在能力与质量上与之齐平」。

具体口径:

  1. 研究:以 martin 为一级参照解剖其 agent 骨架(主回路 / 工具系统 / 真实数据层 / 主动性 / 多渠道 / 护栏),产出对照分析,作为 FinBayes 建造的依据。
  2. 借鉴:借它已验证的形状与模式(如双层主回路、薄的每源适配器、心跳 skip/run 结构化判定),而非它的具体代码行。
  3. 集成:在设计 / 模式层把这些借鉴融进 FinBayes 自己的实现,干净重写,融入既有认知核与状态层。
  4. 守住的边界不直接 rebase martin 的单体——它是 1.8 万行、自成体系的工程,整体搬进来会带进无关耦合且无法维护。借形不搬码。

已发生的借鉴 / 集成(audit trail,Phase 0→3)

本 ADR 是追认 + 记录,下列是修正口径落地的实际证据(供审计,回答"是否真参考过、不是黑盒自我摸索"):

  • 蓝图本身是三个参考 agent 的对照解剖金融真智能体骨架蓝图 由 9 个子代理的对比研究综合产出(一级样本 Claude Code / Hermes / martin-FinClaw),14 组件骨架是逐组件列三样本各自有无(yes/partial/no)再判定抽出的。Phase 0→3 全部依此蓝图推进。
  • 方向纠正的诊断来自解剖 martin:「FinBayes 不是真 agent」这一判断(CURRENT-MILESTONE §0)由对 martin 的解剖逼出。
  • 逐组件可追到 martin:主回路「借 martin 双层结构 + Hermes 四件分立」(蓝图建造顺序 1);护栏组件明确点出「martin 只有工具边界、缺输出自检」并据此要求 FinBayes 补足(蓝图组件 11)。
  • 代码级引用痕迹src/finbayes/agent/instrument.py 注释直接引用 martin 的 _stooq_symbol 形状与 OpenBB / CCXT 行业惯例;阶段 3 第四切片(市场感知标的解析)由 3 个子代理并行查 martin / 行业 / 本地参照后定稿,并据此否掉了最初过度设计的中央注册表方案

范围与诚实限度

  • 参考是前置集中 + 局部再查,不是每刀都回源:最深的一次参考是蓝图(9 子代理对照),它前置承载了大部分研究;之后阶段 3 四刀里,只有第四切片每刀单独回 martin 源码查证。第 1–3 刀(runtime 入口 / 信号投递 / 工具白名单)主要照蓝图的 martin 派生组件规格 + 闭内部审计缺口推进,未每刀重翻源码。这是合理的——蓝图已把研究做在前面。
  • 蓝图之前的半年(M0→M2)是反例:那段确实是闷头优化"单次回答质量"的自我摸索,martin 当时正被方案 Z 标着"不复用",缺口直到 owner 逼着做 martin 对比才翻出。本 ADR 修正的正是那段的根因。

其它参考项目的处置

  • CurvatureLabs/finclaw(早期 FinBayes 半成品):按 owner 2026-06-04 定,在对 martin 的研究 / 借鉴 / 集成完成并齐平前暂不作主参照。例外:阶段 3 第四切片曾挖用其 asset_resolver.py 的别名表形状(如"大饼→BTC"),属一次性局部取用,非主参照。
  • 行业标准(OpenBB / CCXT / CoinGecko / yfinance 系):作模式佐证使用(如"原生符号 + 数据源搜索 + 薄适配器、不建中央表"的一致结论),不集成其代码。
  • 许可:martin-Finclaw 为 MIT 开源;借鉴其形状与模式不构成许可问题,且本决定明确不搬运其代码。

连带影响

  • CURRENT-MILESTONE §2「方案 Z」行 + §4 连带过期项第 2 条「待补轻量 ADR」→ 标为已落地(本 ADR)
  • 个人域 memory finbayes_repos.md 已反映此修正(martin 从"只读不复用"改为"研究/借鉴/集成"),与本 ADR 一致,无需再改。
  • ADR 索引 §1 增列 ADR-023。
  • 不影响任何不变量或字段契约:本 ADR 是参考策略层决定,不动代码契约、不动 INV-NN。