Go to file
2025-12-31 19:58:09 +08:00
core 首次提交 2025-12-31 19:58:09 +08:00
docs 首次提交 2025-12-31 19:58:09 +08:00
skills 首次提交 2025-12-31 19:58:09 +08:00
.gitignore 首次提交 2025-12-31 19:58:09 +08:00
CONFIG_GUIDE.md 首次提交 2025-12-31 19:58:09 +08:00
main.py 首次提交 2025-12-31 19:58:09 +08:00
QUICKSTART.md 首次提交 2025-12-31 19:58:09 +08:00
readme.md 首次提交 2025-12-31 19:58:09 +08:00
requirements.txt 首次提交 2025-12-31 19:58:09 +08:00
test_vector_calculation.py 首次提交 2025-12-31 19:58:09 +08:00

Macro-Narrative Driven ETF Investment Agent (MND-IA)

1. 项目概述 (Project Overview)

MND-IA 是一个基于 “宏观叙事生命周期 + 资金流向交叉验证” 的自动化 ETF 投资智能体系统。

核心哲学 (Core Philosophy)

  1. 叙事即信号 (Narrative as Signal): A 股是政策市,新闻联播及部委政策是市场趋势的先行指标。
  2. 资金即真相 (Flow as Truth): 只有资金实际流入的板块,叙事才具备可信度。
  3. 信任指数 (Trust Index): 决策基于叙事热度与资金强度的共振程度。
  4. 生命周期管理 (Lifecycle): 新闻不是孤立的脉冲,而是具有“潜伏-发酵-兑现-衰退”周期的持久对象。

2. 系统架构 (System Architecture)

本系统采用 Multi-Agent "Skills" 架构,由一个不可拆分的共享内核 (Shared Kernel) 和五个独立职能的 Agent Skills 组成。

2.1 共享内核 (Shared Kernel) - 不可拆分

这是系统的数据中心和逻辑基石,所有 Agent 必须遵循此协议。

  1. MCP World Book (世界书): 一个动态更新的 JSON 数据库,存储宏观状态、活跃叙事对象和历史经验。
  2. Asset Map (资产映射表): 连接自然语言(如“低空经济”)与金融代码(如 512XXX)的静态字典。
  3. Macro Matrix (宏观逻辑矩阵): 定义宏观因子(如利率、汇率)对各 ETF 板块的基础理论影响值 ()

2.2 Agent Skills 群 (The Squad)

Agent ID 名称 职能 (Skill) 输入 输出
Skill_A 情报分析师 (Analyst) NLP 提取、新闻分级、叙事打分 新闻文本 (News) Narrative_JSON
Skill_B 量化研究员 (Quant) 行情分析、资金流计算、异常检测 行情数据 (Akshare) Market_Data_JSON
Skill_C 宏观策略师 (Strategist) 维护世界书、判断周期、更新叙事权重 Narrative_JSON + 历史 WorldBook 更新后的 World_Book
Skill_D 基金经理 (PM) 计算信任指数、风控、生成订单 World_Book + Market_Data_JSON Trade_Orders
Skill_E 复盘审计员 (Auditor) 绩效归因、偏差修正 历史预测 vs 实际走势 Correction_Report
Skill_F 新闻联播爬虫 (Crawler) 抓取新闻联播文字稿 目标日期 新闻文本列表

3. 数据协议与 Schema (Data Protocols)

注意AI 生成代码时必须严格遵守以下 JSON 结构。

3.1 World Book Schema (世界书结构)

{
  "timestamp": "2025-10-01T09:00:00",
  "macro_cycle": {
    "status": "upward", // upward(上行) | downward(下行)
    "liquidity": "loose", // loose | neutral | tight
    "policy_wind": "stimulus" // stimulus | regulation | wait_and_see
  },
  "active_narratives": [
    {
      "id": "narrative_low_altitude_economy_202510",
      "topic": "低空经济",
      "related_etfs": ["512XXX", "159XXX"],
      "lifecycle_stage": "fermentation", // incubation | fermentation | realization | decay
      "base_score": 85, // 初始新闻强度
      "decay_factor": 0.95, // 每日衰减系数
      "current_weight": 80.75, // 动态权重
      "last_updated": "2025-10-01"
    }
  ],
  "static_matrix_snapshot": {
    // 基础宏观因子影响表 ($x$)
    "tech_etf": {"rate_cut": 8, "currency_depreciation": 2},
    "bank_etf": {"rate_cut": -5, "currency_depreciation": -1}
  }
}

3.2 Trust Index Formula (信任指数算法)

Agent D (PM) 必须使用以下逻辑计算得分:

  • Score_narrative: 来自 World Book 中 current_weight
  • Score_flow: 来自 Skill_B (Quant) 的资金净流入归一化评分。
  • Penalty_divergence:Narrative > 80Flow < 30 时,惩罚值设为 100 (一票否决)。

4. 业务流程 (Workflows)

4.1 每日批处理流程 (Daily Batch) - 08:30 AM

  1. Ingest: Skill_A 读取昨夜今晨新闻Skill_B 读取昨日行情。
  2. Cognition: Skill_C 读取 Skill_A 的结果,更新 MCP World Book增强或衰减叙事权重
  3. Decision: Skill_D 读取最新的 World Book 和 Skill_B 的资金数据,计算 Trust Index。
  4. Execution: Skill_D 输出具体的 buy/sell 指令列表。

4.2 盘中哨兵流程 (Intraday Sentinel) - 09:30 - 15:00

  1. Monitor: 系统监听快讯接口(如财联社红色资讯)。
  2. Trigger: 若检测到 Level A 级新闻(如印花税、降准)。
  3. Interrupt: 唤醒 Skill_C 临时修改 World Book 状态。
  4. Re-eval: 触发 Skill_D 重新计算当日持仓建议。

4.3 盘后复盘流程 (Post-Market Feedback) - 16:00 PM

  1. Skill_E 对比昨日的 Trade_Orders 和今日实际涨跌幅。
  2. 若偏差过大Skill_E 向 MCP 写入一条 correction_log,调整 Skill_C 未来对同类新闻的打分权重。

5. 项目结构 (Project Structure)

建议 AI 按照以下目录结构生成代码:

/mnd_agent
├── /core                # 共享内核
│   ├── world_book.py    # MCP 读写逻辑
│   ├── asset_map.json   # 资产映射字典
│   └── macro_matrix.json # 静态因子表 ($x$)
├── /skills              # Agent 能力群
│   ├── analyst.py       # Skill A: LLM Prompts for News
│   ├── quant.py         # Skill B: Akshare Data Analysis
│   ├── strategist.py    # Skill C: World Book Update Logic
│   ├── pm.py            # Skill D: Trust Index & Trade Logic
│   ├── auditor.py       # Skill E: Feedback Loop
│   └── crawler.py       # Skill F: XinwenLianbo Crawler
├── /data                # 本地存储 (Parquet/SQLite)
├── /logs                # 运行日志
├── main.py              # 主调度入口
└── README.md            # 本文件


6. 技术栈约束 (Tech Stack Constraints)

  • Language: Python 3.10+
  • LLM Interface: OpenAI SDK (兼容 GLM-4/Claude-3.5)
  • Data Source: akshare (A股行情), crawl4ai (新闻联播爬虫)
  • Data Process: pandas, numpy
  • Storage: 本地 JSON 文件模拟 MCP Server (MVP阶段)

7. 给 AI 工具的构建指令 (Instructions for AI Builder)

  1. Step 1: 首先创建 core/ 目录,定义好 WorldBook 类和 JSON 数据结构,这是所有 Skill 通信的基础。
  2. Step 2: 实现 skills/quant.py,确保能从 Akshare 获取 ETF 数据并计算“资金放量”指标。
  3. Step 3: 实现 skills/analyst.py,编写能够将新闻文本转化为 JSON 对象的 Prompt。
  4. Step 4: 实现 skills/pm.py 中的 Trust Index 算法,确保逻辑与上述公式一致。
  5. Step 5: 编写 main.py 将上述模块串联起来,完成每日一次的模拟运行。