MINARA
贡献指南

新增方法论

编写可独立运行的投资规则,并保留证据、适用范围和审计历史

方法论是一条能够脱离原始对话或 Playbook 独立评估的投资规则。它可以描述信号、阈值、预期方向、时间周期,以及规则不适用的条件。

Minara 的方法论来自两类来源:

  • apps/agent/src/learning/methodology-seeds.ts 中的人工种子构成经过审查的初始语料库。
  • 从已评估决策和交易案例中产生的学习候选项先进入隔离区,积累足够证据后才能被使用。

进行独立性检验

把规则单独放进“分析 NVDA 趋势”这样的提示词中。如果它仍然具有明确含义、所需证据和失效条件,就适合作为方法论。如果它引用“上一步”、某个角色、Roundtable 阶段或另一条当前规则,应继续留在分析 Playbook 中。

合格示例:

当自由现金流转化率连续两个报告期低于 70%,同时应收账款增速高于收入增速时,应将盈利质量视为恶化。

依赖上下文的示例:

分析师完成第三步后,根据上面的结果降低评级。

新增人工种子

METHODOLOGY_SEEDS 中加入一条聚焦规则:

{
  stableId: "stock.earnings_quality.cash_conversion.v1",
  version: "v1",
  source: "authored",
  asset_class: "stock",
  methodology:
    "When free-cash-flow conversion stays below 70% for two reporting periods " +
    "while receivables grow faster than revenue, treat earnings quality as deteriorating.",
  thresholds: { fcf_conversion_floor_pct: 70 },
  anti_patterns: [
    "Do not apply to pre-revenue companies.",
    "Skip periods distorted by a disclosed acquisition close.",
  ],
  applies_only_to: ["stock"],
  benchmark_profile: "asset_benchmark",
},
字段贡献要求
stableId使用持久且唯一的 ID,不得将它复用于不同观点。
version规则含义或阈值发生变化时提升版本。
source使用 authoredderived_from_papercommunity。适用时在 PR 中保留来源。
asset_classasset-taxonomy.ts 选择,人工种子不得使用 unknown
methodology只写一条独立、可检验的规则,不要包含场景名和工具名。
thresholds使用稳定的 snake_case 键,让 Playbook 可以引用可调整数值。
anti_patterns高影响规则应包含一至三条简短的排除条件。
applies_only_to当相同词汇可能误匹配其他资产类别时,收窄适用范围。
benchmark_profile声明结果比较方式:absoluteasset_benchmarkbeta_adjustedmarket_neutralpair_trade

不要因为一条规则听起来合理就直接加入种子。请在 Pull Request 中说明依据和预期证据。来自论文或公共数据集的规则必须保留引用与许可证背景。

理解生命周期

人工种子通过受信任的内置种子源进入系统。未经信任的学习或导入条目以 0.1 置信度进入隔离区。候选项至少需要 10 次观察、5 次正确观察,并达到 0.55 的 Wilson 下界才能晋级。已晋级规则在使用至少 20 次后,若 Wilson 分数低于 0.40,会重新进入隔离区。

只有已晋级方法论可以通过 methodology_lookup{{methodology:...}} 占位符到达 Agent。占位符始终携带安全默认值。操作者可以分别关闭读取、案例记录或全部变更。

任何置信度、计数器或隔离状态变化都必须使用方法论仓储的生命周期契约。直接执行 SQL 会丢失原子化审计事件,不可接受。

验证贡献

pnpm --filter @minara/agent lint:methodology
pnpm --filter @minara/agent exec vitest run tests/unit/learning/methodology-seeds-lint.test.ts
pnpm --filter @minara/agent exec vitest run tests/unit/learning/methodology-store.test.ts
pnpm --filter @minara/agent typecheck

如果在机构 Playbook 中加入占位符,请同时测试默认值和方法论存储覆盖。规则改变公共行为时,需要更新四种语言的相关分析文档。

操作者无需编辑 SQLite 即可检查实时状态:

minara learning methodology explain <id>
minara learning methodology lifecycle --id <id>
minara learning methodology cases --id <id>

本页目录