For stock/industry/macro questions, automatically dispatch 11 information sources for parallel collection, use Gemini to organize, use the War Room to debate and verify, and outputConsensus / Divergence / To Be Verifiedthree-zone report.
Information Source Routing Table
Layer Zero: First-hand data verification (Tushare MCP, called directly by the main Agent)
No script needed, called directly via MCP tool, used to obtainfirst-hand announcements and news flashes of listed companiesas the factual baseline.
| Information Source | Areas of Expertise | MCP Tool | Key Parameters |
|---|---|---|---|
| Company Announcements | Original first-hand announcements such as financial reports, major matters, increases/decreases in holdings, equity changes, etc. | tushare_anns |
ts_code={TICKER}, start_date, end_date |
| News Flashes | Multi-source news (Sina/Wallstreetcn/THS/East Money/Yuncaijing) | tushare_news |
start_date, end_date, src(optional source filtering) |
When to Use: Not needed every time. When the verification question involves specific company facts (financial report data, major matters, management changes) or when it is necessary to verify whether a piece of news is true, prioritize obtaining evidence from original announcements and news flashes.
Layer One: Core investment research (main Agent performs capture)
| Information Source | Areas of Expertise | Skills | Typical Commands |
|---|---|---|---|
| Gangdisi | Quickly and comprehensively obtain marginal market information (research reports/announcements/meeting minutes/indicators) | capture-gangtise |
python3 {gangtise}/scripts/query_kb.py "{query}" |
| AlphaPAI | Comprehensive A-share information (institutional hot discussions/roadshow minutes/commentary/AI Q&A) | capture-alphapai |
python3 {alphapai}/scripts/alphapai_api.py search "{query}" --save |
| AceCamp | Core market expert meeting minutes content | capture-acecamp |
python3 {acecamp}/scripts/acecamp_fetch.py fetch "{query}" --limit 5 |
| AlphaEngine | Foreign bank reports (Morgan Stanley/Goldman Sachs/UBS, etc.) | capture-alphaengine |
python3 {alphaengine}/scripts/alphaengine_api.py search "{query}" --save |
Layer Two: Public sentiment (executable by Gemini CLI)
| Information Source | Areas of Expertise | Skills | Typical Commands |
|---|---|---|---|
| Overseas investor discussions, tech and political public sentiment | capture-reddit-search |
{reddit}/scripts/reddit-search search "{query}" 10 |
|
| X/Twitter | Real-time public opinion, KOL views | capture-search-x |
node {searchx}/scripts/search.js --days 7 "{query}" |
Layer Three: News (executable by Gemini CLI)
| Information Source | Areas of Expertise | Skills | Typical Commands |
|---|---|---|---|
| NewsAPI | Search across 5,000+ global news sources | news-newsapi-search |
node {newsapi}/scripts/search.js "{query}" --days 7 |
| News Aggregation | 8 sources including HN/36Kr/Wallstreetcn/Weibo, etc. | news-aggregator-skill |
python3 {aggregator}/scripts/fetch_news.py --source all --limit 10 --keyword "{query}" --deep |
Path Description:
{gangtise}etc. are the{skillDir}paths of each skill; during actual execution, replace them with the absolute path where the skill is installed.
Phase 1: Intent Parsing
Before doing anything, first parse the user's question:
输入:"贵州茅台最近怎么了"
拆解:
SUBJECT = "贵州茅台"
TICKER = "600519.SH"(如能识别)
DIMENSIONS = [基本面, 市场情绪, 行业动态]
QUERY_KEYWORDS = ["贵州茅台", "茅台", "白酒行业"]
ENGLISH_KEYWORDS = ["Kweichow Moutai", "baijiu"](用于海外源)
URGENCY = normal | urgent(影响信息源选取数量)
Dimension Mapping Rules:
| Question Type | Core Dimensions | Priority Information Sources |
|---|---|---|
| Individual stock fundamentals | Financial reports, valuation, business | tushare announcements + gangtise + alphapai + acecamp |
| Industry trends | Industry landscape, policy | gangtise + aggregator + newsapi |
| Event-driven | M&A, policy, crisis | tushare announcements + news + newsapi + X + alphapai |
| Overseas perspective | Foreign views, global allocation | alphaengine + reddit + X |
| Public sentiment assessment | Market sentiment, retail/institutional divergence | X + reddit + alphapai(hot-stock) |
| Announcement/news verification | Whether a certain piece of news is true | tushare announcements + news(primary sources preferred) + gangtise |
Phase 2: Parallel Information Collection
Division of labor principles
- Main Agent (Claude) executes: capture tasks that require authentication tokens (gangtise / alphapai / acecamp / alphaengine)
- Gemini CLI executes: simple searches with no authentication requirements (reddit / X / newsapi / news-aggregator)
Wave A: Core investment research (executed by Claude)
Execute selectively by dimension; it is not necessary to call all of them every time:
# 0. Tushare MCP——一手数据核查(按需,涉及具体公司事实时优先调用)
# 直接通过 MCP tool 调用,无需脚本
# 公司公告:tushare_anns(ts_code="{TICKER}", start_date="YYYYMMDD", end_date="YYYYMMDD")
# 新闻快讯:tushare_news(start_date="YYYYMMDD", end_date="YYYYMMDD")
# ↑ 作为事实基准,后续 capture 结果与公告/新闻原文对比验证
# 1. 岗底斯——快速获取边际信息
python3 {gangtise}/scripts/query_kb.py "{QUERY_KEYWORDS[0]}" --top 10
# 如有 ticker,补充盈利预测
python3 {gangtise}/scripts/forecast.py {TICKER}
# 2. AlphaPAI——机构视角
python3 {alphapai}/scripts/alphapai_api.py search "{QUERY_KEYWORDS[0]}" --save
python3 {alphapai}/scripts/alphapai_api.py roadshow-search "{QUERY_KEYWORDS[0]}" --save --limit 5
# 3. AceCamp——专家纪要
python3 {acecamp}/scripts/acecamp_fetch.py fetch "{QUERY_KEYWORDS[0]}" --limit 3
# 4. AlphaEngine——外资行(仅海外视角维度时)
python3 {alphaengine}/scripts/alphaengine_api.py search "{ENGLISH_KEYWORDS[0]}" --save
After each capture command is executed, save the returned content to the working directory:
output/sources/
├── tushare_anns.md # 公司公告原文(按需,作为事实基准)
├── tushare_news.md # 新闻快讯(按需,用于舆情核查)
├── gangtise_kb.md # 岗底斯知识库搜索结果
├── gangtise_forecast.md # 盈利预测(如有)
├── alphapai_search.md # AlphaPAI 综合搜索
├── alphapai_roadshow.md # 路演纪要
├── acecamp_articles/ # AceCamp 纪要全文
│ ├── 001_标题.md
│ └── 002_标题.md
└── alphaengine_reports.md # 外资行报告摘要
Wave B: Public sentiment + news (executed by Gemini CLI)
Execute via Gemini CLI or mcp__gemini__gemini-query , suitable for simple tasks:
# 方式一:直接用 gemini CLI
gemini -m gemini-2.5-flash "
请帮我执行以下搜索命令,并将结果整理为 markdown:
1. Reddit 搜索:
运行 {reddit}/scripts/reddit-search search '{ENGLISH_KEYWORDS[0]}' 10
2. X/Twitter 搜索:
运行 node {searchx}/scripts/search.js --days 7 '{ENGLISH_KEYWORDS[0]}'
3. 新闻搜索:
运行 node {newsapi}/scripts/search.js '{QUERY_KEYWORDS[0]}' --days 7
将每个来源的结果整理成以下格式保存到 output/sources/sentiment.md:
## [来源名]
- 主要观点 1(附来源链接)
- 主要观点 2
...
"
# 方式二:通过 Gemini MCP(更可控)
# 用 mcp__gemini__gemini-query,model=flash,thinkingLevel=low
Fallback plan when Gemini cannot execute capture: the main Agent executes the Wave B commands serially.
Phase 3: Information Review (executed by Gemini)
After all collection is complete, use Gemini to read and structurally organize all files under output/sources/ :
通过 Gemini MCP(mcp__gemini__gemini-query,model=pro,thinkingLevel=high):
prompt: |
你是一名资深卖方分析师助理。请阅读以下多个信息源的原始内容,
按以下维度整理成结构化摘要。
信息源文件:
[将 output/sources/ 下所有文件内容粘贴]
请按以下结构输出:
## 一、事实层(各源的客观数据)
| 数据点 | tushare公告 | gangtise | alphapai | acecamp | alphaengine | 新闻 | 舆情 |
|--------|-----------|---------|---------|---------|------------|------|------|
| 最新营收 | ✅(一手) | ... | ... | - | ... | - | - |
| 估值水平 | - | ... | ... | - | ... | - | - |
| ... | | | | | | | |
## 二、观点层(各源的判断和推理)
| 议题 | 看多观点(来源) | 看空观点(来源) | 中性/不确定(来源) |
|------|--------------|--------------|----------------|
| ... | | | |
## 三、信号层(异常/分歧/矛盾)
- 数据矛盾:...
- 逻辑分歧:...
- 信息缺口:...
## 四、信息源可信度权重
| 来源 | 类型 | 时效性 | 独立性 | 建议权重 |
|------|------|--------|--------|---------|
| gangtise | 券商研报 | 高 | 中 | 0.25 |
| ... | | | | |
Save the review results to output/organized/structured_summary.md。
Phase 4: War Room Cross-Validation
Core step. Call swarm-war-room to conduct a multi-agent debate and compare which claims are true and which are false.
Initialize War Room
bash {warroom}/scripts/init_war_room.sh cross-verify-{SUBJECT}
Filling in BRIEF.md
# 交叉验证任务
## 标的:{SUBJECT}({TICKER})
## 核心问题:{用户原始问题}
## 信息源摘要:见 output/organized/structured_summary.md
## 验证目标:
1. 各信息源的事实是否一致?数据冲突如何解释?
2. 各方的推理逻辑是否自洽?有无逻辑谬误?
3. 看多/看空的结论分歧根源是什么?
4. 哪些信息可以交叉确认为高可信度?哪些存疑?
Role configuration
| Role | Responsibility | Key dimensions |
|---|---|---|
| BULL(bull advocate) | Extract from the information all evidence chains supporting a bullish view | Growth logic, catalysts, evidence of undervaluation |
| BEAR(bear advocate) | Extract from the information all evidence chains supporting a bearish view | Risk factors, evidence of overvaluation, logical flaws |
| FACT-CHECKER(fact-checker) | Verify item by item whether the data from each source matches, and flag contradictions | Data consistency, timestamps, source reliability |
| CHAOS(devil's advocate) | Attack the arguments of all roles and find fatal blind spots | Contrarian thinking, black swans, possibility of information manipulation |
Execute Wave protocol
Wave 1:BULL + BEAR 并行——各自从 structured_summary.md 提取己方证据链
→ CHAOS 影子审查(攻击双方逻辑薄弱环节)
Wave 2:FACT-CHECKER 逐条核对 Wave 1 中 BULL 和 BEAR 引用的数据点
→ CHAOS 影子审查(质疑核查标准是否足够严格)
Consolidation:合并四方输出,生成交叉验证报告
Comparison dimensions (checked item by item by FACT-CHECKER)
┌─ 信息异同 ────────────────────────────┐
│ 哪些事实各源都报道了(高可信度)? │
│ 哪些事实仅单一源提及(需二次验证)? │
│ 哪些重要信息某些源有意/无意遗漏? │
└─────────────────────────────────────┘
┌─ 数据异同 ────────────────────────────┐
│ 同一数据点各源报告值是否一致? │
│ 不一致时,偏差来源是什么(口径/时间/计算)?│
│ 哪些数字可交叉确认? │
└─────────────────────────────────────┘
┌─ 逻辑异同 ────────────────────────────┐
│ 各源的推理链条是否自洽? │
│ 是否存在"用结论推数据"的循环论证? │
│ 各方假设的前提条件是否明确? │
└─────────────────────────────────────┘
┌─ 结论异同 ────────────────────────────┐
│ 看多/看空/中性各有几个源支持? │
│ 分歧的根源是事实分歧还是框架分歧? │
│ 是否存在信息不对称导致的结论差异? │
└─────────────────────────────────────┘
Phase 5: Output Cross-Validation Report
Final report template:
# {SUBJECT} 交叉验证报告
**验证时间**:{datetime}
**核心问题**:{用户原始问题}
**信息源数量**:{N} 个({列出实际使用的源})
---
## 🟢 共识区(高可信度)
各信息源交叉确认的事实和结论:
1. [事实/结论](来源:gangtise + alphapai + acecamp,3源确认)
2. ...
## 🟡 分歧区(需判断)
各信息源存在不同观点或数据的领域:
### 分歧 1:[议题]
| 立场 | 核心论据 | 来源 | CHAOS 评估 |
|------|---------|------|-----------|
| 多方 | ... | ... | SURVIVE / WOUNDED / KILLED |
| 空方 | ... | ... | SURVIVE / WOUNDED / KILLED |
**FACT-CHECKER 判定**:数据[一致/有X%偏差],逻辑[自洽/存在Y缺陷]
### 分歧 2:...
## 🔴 待验证区(信息不足)
单一来源提及、尚无法交叉确认的信息:
1. [信息](仅来源:X)——建议验证方式:...
2. ...
## 📊 信息源可信度矩阵
| 来源 | 本次覆盖 | 时效性 | 独立性 | 与其他源一致率 | 综合权重 |
|------|---------|--------|--------|-------------|---------|
| ... | ✅/❌ | 高/中/低 | 高/中/低 | X% | 0.XX |
## 💡 结论与建议
[基于共识区和分歧区的综合研判,以及后续应关注的催化剂/风险点]
Save the report to output/report_{SUBJECT}_{date}.md。
Quick mode vs Deep mode
| Mode | Skip | Time required | Applicable scenarios |
|---|---|---|---|
Quick mode(--quick) |
Skip War Room; output a preliminary synthesis directly after P3 review | 3-5 minutes | Daily quick verification |
| Deep mode(default) | Complete P1→P5 | 10-20 minutes | Important investment decisions |
Focused mode(--focus [源]) |
Use only specified information sources | 1-3 minutes | Quickly check a single perspective |
In quick mode, Phase 4 is skipped, and the Phase 3 output is the final report (no debate verification).
Execution Example
用户:帮我交叉验证一下贵州茅台最近的情况
Agent:
P1 → 解析:SUBJECT=贵州茅台, TICKER=600519.SH, DIMENSIONS=[基本面, 市场情绪]
P2 → 并行执行:
[Claude] tushare_anns 拉取 600519.SH 近期公告(事实基准)
[Claude] tushare_news 拉取近 7 天新闻快讯
[Claude] gangtise 搜索"贵州茅台" + 盈利预测
[Claude] alphapai 搜索"贵州茅台" + 路演纪要
[Claude] acecamp 搜索"贵州茅台"
[Gemini] newsapi 搜索"贵州茅台"
[Gemini] X 搜索"Kweichow Moutai"
P3 → Gemini 读取 output/sources/ 全部文件,输出 structured_summary.md
P4 → War Room: BULL+BEAR+FACT-CHECKER+CHAOS 辩论
P5 → 输出交叉验证报告
Notes
- Token Management: The authentication status of each capture skill is managed independently, and does not need to be handled in this skill before execution
- Fallback Strategy: If an information source API returns an error, mark it as "not covered this time" and continue execution without interrupting the process
- Gemini Invocation: Prefer
mcp__gemini__gemini-query(model=pro), fall back togeminiCLI - Information Timeliness: All information is marked with its acquisition time; data older than 7 days is marked with ⚠️ in the report
- Security: This skill does not store any credentials; all authentication is managed by each sub-skill itself