analyze-stock
npx skills add https://github.com/jssfy/k-skills --skill analyze-stock
Agent 安装分布
Skill 文档
Analyze Stock â ä¸é®è¡ç¥¨ç»¼ååæ
è¾å ¥å ¬å¸åç§°æè¡ç¥¨ä»£ç ï¼èªå¨å¹¶è¡ééäºä¸ªç»´åº¦çæ°æ®ï¼ç»¼ååæåè¾åºæ 忥åã
When to Use
å½ç¨æ·è¯·æ±ä»¥ä¸æä½æ¶è§¦åï¼
- “åæè ¾è®¯” / “åæè´µå·è å°” / “åæ 600519”
- “analyze NVDA” / “analyze Tesla”
- “XXè¡ç¥¨æä¹æ ·” / “XXæè¿ä¸ºä»ä¹æ¶¨/è·”
- “帮æççXX” / “XXå¼å¾ä¹°å”
Phase 0: è§£æè¾å ¥
æ ¹æ®ç¨æ·è¾å ¥ï¼è¯å«ä»¥ä¸ä¿¡æ¯ï¼
-
å ¬å¸åç§°ä¸è¡ç¥¨ä»£ç
- å¦æç¨æ·ç»äºä»£ç åç´æ¥ä½¿ç¨
- å¦æç¨æ·ç»äºå ¬å¸åï¼éè¿ WebSearch æ¥è¯¢å¯¹åºä»£ç
- Aè¡ä»£ç æ ¼å¼: 6使°å (600519, 000858)
- ç¾è¡ä»£ç æ ¼å¼: è±æåæ¯ (NVDA, AAPL, TSLA)
-
è¯å«å¸åºç±»å
- 6ä½çº¯æ°å â Aè¡
- 4-5使°å æ å«
.HKåç¼ â æ¸¯è¡ - è±æåæ¯ â ç¾è¡
- å ¬å¸åå«ä¸æä¸ä¸ºä¸å½å ¬å¸ â å æç´¢ç¡®è®¤æ¯Aè¡è¿æ¯æ¸¯è¡
- å ¶ä» â ç¾è¡
-
ç¡®å®å ³é®åé (åç»ææ Agent é½éè¦ç¨å°)
{ticker}: è¡ç¥¨ä»£ç {company_name}: å ¬å¸å ¨ç§°{company_name_en}: å ¬å¸è±æå (ç¾è¡ç¨){market}: “Aè¡” æ “ç¾è¡”{industry}: æå±è¡ä¸{website}: å ¬å¸å®ç½ URL
å¦ææ æ³ç¡®å®å®ç½æè¡ä¸ï¼å ç¨ä¸æ¬¡ WebSearch å¿«éæ¥è¯¢ï¼ä¸è¦è·³è¿è¿ä¸æ¥ã
Phase 1: å¹¶è¡æ°æ®éé (5 个 Subagent)
å ³é®è¦æ±: ä»¥ä¸ 5 个 Task å¿ é¡»æ¾å¨å䏿¡æ¶æ¯ä¸ååºï¼ç¡®ä¿å¹¶è¡æ§è¡ã
æ¯ä¸ª Agent ä½¿ç¨ subagent_type: "general-purpose"ã
Agent 1: è¡ä»·æ°æ®ä¸ææ¯ææ
description: “éé{ticker}è¡ä»·æ°æ®”
prompt 模æ¿:
ä½ æ¯è¡ä»·æ°æ®åæå¸ã请è·å {company_name}({ticker}) è¿7ä¸ªäº¤ææ¥çè¡ä»·æ°æ®ï¼å¹¶**éç¹çªåºæè¿1ä¸ªäº¤ææ¥çåå**ã
ä»»å¡:
1. ä½¿ç¨ WebSearch æç´¢ "{ticker} stock price last 7 days {market}" è·åæè¿è¡æ
2. ä½¿ç¨ WebSearch æç´¢ "{ticker} stock price today" è·åææ°äº¤ææ¥è¯¦ç»æ°æ®
3. æ´ç以ä¸ä¿¡æ¯:
**æè¿1ä¸ªäº¤ææ¥ (彿¥è¡æ
):**
- å¼çä»·ãæé«ä»·ãæä½ä»·ãæ¶çä»·
- 彿¥æ¶¨è·å¹
䏿¶¨è·éé¢
- 彿¥æäº¤éä¸æäº¤é¢ï¼è¾å䏿¥æ¾é/ç¼©éæ¯ä¾
- çä¸å
³é®æ¶ç¹èµ°å¿ (å¦: å¼çå²é«åè½ãå°¾çæåç)
- 彿¥æ¯å¦æå½±åè¡ä»·ç峿¶äºä»¶
**è¿7ä¸ªäº¤ææ¥æ±æ»:**
- æ¯æ¥æ¶çä»·åæ¶¨è·å¹
- 7天累计涨è·å¹
- æäº¤éååè¶å¿ (æ¾é/缩é)
- å
³é®ææ¯ä¿¡å· (妿: å线å¤ç©ºæåãRSIè¶
ä¹°è¶
åãææ¾æ¯æä½/é»åä½)
- ä¸å¤§çåææ¶¨è·å¹
对æ¯
è¾åºè¦æ±:
- ä»¥ç»æåæ ¼å¼è¿åï¼**彿¥è¡æ
åç¬ååº**
- éç¹çªåº: 彿¥æ¶¨è·å¹
ã7天涨è·å¹
ãéä»·é
åæ
åµãææ¯é¢å
³é®ä¿¡å·
- æ§å¶å¨ 600 å以å
- ä¸è¦ç»åºæèµå»ºè®®
- **æ æ³¨æ°æ®æ¥æº**: å
³é®æ°æ®æ³¨ææ¥æºï¼å¦ä¸æ¹è´¢å¯ãéªçãYahoo FinanceãBloomberg çï¼ååå§é¾æ¥
å¦ææ¯ Aè¡ï¼ä¸ akshare å·²å®è£ ï¼å¯é¢å¤å¨ prompt ä¸æç¤º:
妿å¯ç¨ï¼æ§è¡ä»¥ä¸å½ä»¤è·åç²¾ç¡®æ°æ®:
python {baseDir}/scripts/data_fetcher.py --code {ticker} --data-type valuation
Agent 2: æ°é»è论åæ
description: “æç´¢{company_name}è¿ææ°é»”
prompt 模æ¿:
ä½ æ¯è´¢ç»æ°é»åæå¸ã请æç´¢ {company_name}({ticker}) æè¿7天çéè¦æ°é»åè论ã
ä»»å¡:
1. ä½¿ç¨ WebSearch æç´¢ä»¥ä¸å
³é®è¯ (è³å°æ2次ä¸åå
³é®è¯):
- "{company_name} ææ°æ°é»" æ "{company_name} latest news"
- "{ticker} è¡ç¥¨ æ¬å¨" æ "{ticker} stock this week"
2. ä»æç´¢ç»æä¸æé 3-5 æ¡æéè¦çæ°é»
3. ä½¿ç¨ WebFetch 访é®å
¶ä¸è³å° 2 æ¡æ°é»çåæï¼éªè¯å
容ç宿§
4. åæè论æ´ä½å¾å
è¾åºè¦æ±:
- ååº 3-5 æ¡å
³é®æ°é»ï¼æ¯æ¡å
å«: æ¥æãæ é¢ãæ¥æºåç§°ã**åæURL**ãç®è¦å
容(1-2å¥)
- æ´ä½è论å¾å夿: æ£é¢ / è´é¢ / 䏿§ï¼å¹¶è¯´æçç±
- è¯å«æ¯å¦æé大äºä»¶ (è´¢æ¥åå¸ãæ¿çååã管çå±åå¨ã产ååå¸ãè¯è®¼ç)
- æ§å¶å¨ 600 å以å
Agent 3: è¡ä¸å¯¹æ¯åæ
description: “åæ{industry}è¡ä¸æ åµ”
prompt 模æ¿:
ä½ æ¯è¡ä¸åæå¸ãè¯·åæ {company_name}({ticker}) æå¨ç {industry} è¡ä¸è¿ææ
åµã
ä»»å¡:
1. ä½¿ç¨ WebSearch æç´¢:
- "{industry} è¡ä¸ è¿æè¶å¿" æ "{industry} industry trends"
- "{company_name} ç«äºå¯¹æ" æ "{company_name} competitors"
2. æ´ç以ä¸ä¿¡æ¯:
- è¡ä¸è¿ææ´ä½è¶å¿ (ä¸å/ä¸è¡/平稳)
- å½±åè¡ä¸çå
³é®å ç´ (æ¿çãææ¯ãéæ±ç)
- 2-3 个主è¦ç«äºå¯¹æçè¿æè¡ä»·è¡¨ç°
- {company_name} å¨è¡ä¸ä¸ç大è´å°ä½
è¾åºè¦æ±:
- è¡ä¸è¶å¿æ¦è¿° (2-3å¥)
- ç«äºæ ¼å±ç®è¡¨: å
¬å¸åãè¿7天涨è·ãå
³é®å¨æ
- 该å
¬å¸çç¸å¯¹ä¼å£å¿ (1-2æ¡)
- æ§å¶å¨ 500 å以å
- **æ æ³¨æ°æ®æ¥æº**: ç«äºå¯¹ææ°æ®æ³¨ææ¥æºï¼å¦ BloombergãWindã䏿¹è´¢å¯çï¼å龿¥
Agent 4: å¸åºç¯å¢åæ
description: “åæå½åå¸åºç¯å¢”
prompt 模æ¿:
ä½ æ¯å®è§å¸åºåæå¸ã请åæå½åå
¨çå¸åºç¯å¢ï¼éç¹å
³æ³¨ä¸ {company_name}({ticker}) ç¸å
³çå¸åºå ç´ ã
ä»»å¡:
1. ä½¿ç¨ WebSearch æç´¢ææ°å¸åºæ°æ®:
- ä¸»è¦ææ°è¿æèµ°å¿: {妿Aè¡: "ä¸è¯ææ° æ·±è¯ææ å䏿¿æ æ¬å¨"; 妿ç¾è¡: "S&P 500 NASDAQ Dow Jones this week"}
- "VIX index today" (ææ
ææ°)
- è¿æé大å®è§äºä»¶æå¤®è¡å¨æ
2. è¯ä¼°:
- 大çè¶å¿æ¹å: 䏿¶¨ / ä¸è· / éè¡
- å¸åºæ
绪: Risk-on (追éé£é©) / Risk-off (è§é¿é£é©)
- VIX æ°´å¹³åå«ä¹
- æ¯å¦æé大å®è§äºä»¶å½±å
è¾åºè¦æ±:
- å¸åºç¯å¢ä¸å¥è¯æ»ç»
- å¤§çææ°è¿7å¤©è¡¨ç° (涨è·å¹
)
- VIX æ°´å¹³åæ³¢å¨ç夿
- å½±åå½åå¸åºç 1-2 个å
³é®å ç´
- æ§å¶å¨ 400 å以å
- **æ æ³¨æ°æ®æ¥æº**: åææ æ³¨ææ¥æºï¼å¦ CBOEãYahoo FinanceãMacroTrends çï¼å龿¥
Agent 5: å ¬å¸å®ç½ä¸å ¬åä¿¡æ¯
description: “æå{company_name}å®ç½ä¿¡æ¯”
prompt 模æ¿:
ä½ æ¯ä¼ä¸ä¿¡æ¯ç ç©¶åã请è·å {company_name}({ticker}) ç宿¹ææ°å¨æã
ä»»å¡:
1. ä½¿ç¨ WebFetch 访é®å
¬å¸å®ç½: {website}
- æ¥çé¦é¡µæ¯å¦æææ°å
¬åææ°é»
2. ä½¿ç¨ WebSearch æç´¢ "{company_name} æèµè
å
³ç³»" æ "{company_name} investor relations"
- æ¥æ¾è¿æå
¬åãè´¢æ¥æè¦ãä¸ç»©é¢å
3. 妿æ¯ä¸å¸å
¬å¸ï¼æç´¢æè¿çå
Œ:
- Aè¡: "{company_name} å
¬å 巨潮èµè®¯"
- ç¾è¡: "{company_name} SEC filing" æ "{company_name} earnings"
è¾åºè¦æ±:
- å
¬å¸ææ°å®æ¹å¨æ (产åãæç¥ã人äºç)
- æè¿ä¸æ¬¡è´¢æ¥/ä¸ç»©çå
³é®æ°æ® (妿)
- è¿æéè¦å
¬åæè¦ (妿)
- æ§å¶å¨ 400 å以å
- 妿å®ç½æ æ³è®¿é®ï¼è¯´ææ
åµå¹¶ä¾èµæç´¢ç»æ
- **æ æ³¨æ°æ®æ¥æº**: å
¬åãè´¢æ¥æ°æ®æ³¨ææ¥æºï¼å¦ SEC EDGARã巨潮èµè®¯ãæ¸¯äº¤ææ«é²æçï¼å龿¥
Phase 2: 综ååæ (主线ç¨)
çå¾ 5 个 Agent å ¨é¨è¿ååï¼å¨ä¸»çº¿ç¨ä¸å®æä»¥ä¸åæã
Step 1: ä¿¡æ¯æ±æ»
å° 5 个 Agent çç»ææ´åï¼è¯å«ï¼
- å维度ä¹é´ç ä¸è´æ§ä¿¡å· (å¦: è¡ä»·æ¶¨ + æ°é»å©å¥½ + è¡ä¸åä¸ = 强çå¤)
- å维度ä¹é´ç çç¾ä¿¡å· (å¦: è¡ä»·æ¶¨ä½æ°é»å©ç©º = å¯è½åå¨éæ£)
- åæ¶æ´çå Agent è¿åçæææ¥æº URLï¼æ±æ»å°æ¥æºå表ï¼ç¨äºæ¥åæ«å°¾ãåèæ¥æºãåºå
Step 2: å æå½å
åæè¡ä»·åå¨çåå ï¼æå½±ååæåºï¼
- ç´æ¥é©±å¨å ç´ : å ¬å¸å±é¢äºä»¶ (è´¢æ¥ãå ¬åã产åãè论)
- è¡ä¸ä¼ 导å ç´ : è¡ä¸æ¿çãç«äºæ ¼å±åå
- å¸åºç¯å¢å ç´ : 大çèµ°å¿ãèµéé¢ãå®è§äºä»¶
ç¹å«å ³æ³¨å½æ¥åå¨: 对æè¿1ä¸ªäº¤ææ¥çæ¶¨è·åç¬å½å åæï¼åºåæ¥å 驱å¨å ç´ ä¸ä¸æè¶å¿å ç´ ã
Step 3: è¶å¿é¢æµ
åºäºä»¥ä¸åæï¼ç»åºï¼
- çæå±æ (1-2å¨): èèææ¯é¢ä¿¡å· + å³å°å°æ¥çäºä»¶
- 䏿屿 (1-3æ): èèåºæ¬é¢ + è¡ä¸è¶å¿
- 主è¦é£é©ç¹: å¯è½å¯¼è´èµ°å¿å转çå ç´
Phase 3: è¾åºæ¥å
æä»¥ä¸ HTML æ ¼å¼è¾åºæç»æ¥åã使ç¨å è CSS ç¡®ä¿å¨æµè§å¨åé£ä¹¦ä¸åå¯è¯å¥½æ¾ç¤ºï¼
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{company_name} ({ticker}) 综ååææ¥å</title>
<style>
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; color: #1a1a1a; background: #f8f9fa; }
.report { background: #fff; border-radius: 12px; padding: 32px; box-shadow: 0 2px 12px rgba(0,0,0,0.08); }
h1 { font-size: 24px; border-bottom: 3px solid #1a73e8; padding-bottom: 12px; }
h2 { font-size: 18px; color: #1a73e8; margin-top: 28px; border-left: 4px solid #1a73e8; padding-left: 10px; }
h3 { font-size: 15px; color: #333; margin-top: 16px; }
.meta { color: #666; font-size: 13px; margin-bottom: 16px; }
.summary { background: #e8f0fe; border-radius: 8px; padding: 16px; font-size: 16px; font-weight: 500; margin: 16px 0; }
.daily-highlight { background: #fff8e1; border: 1px solid #ffcc02; border-radius: 8px; padding: 16px; margin: 16px 0; }
.daily-highlight h2 { color: #f57f17; border-left-color: #f57f17; }
table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 14px; }
th { background: #f1f3f4; text-align: left; padding: 10px 12px; font-weight: 600; border-bottom: 2px solid #ddd; }
td { padding: 8px 12px; border-bottom: 1px solid #eee; }
tr:hover td { background: #f8f9fa; }
.up { color: #d32f2f; font-weight: 600; }
.down { color: #2e7d32; font-weight: 600; }
.tag { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 500; }
.tag-positive { background: #e8f5e9; color: #2e7d32; }
.tag-negative { background: #ffebee; color: #c62828; }
.tag-neutral { background: #f5f5f5; color: #616161; }
.risk { background: #fff3e0; border-radius: 8px; padding: 12px 16px; margin: 8px 0; }
.disclaimer { margin-top: 24px; padding-top: 16px; border-top: 1px solid #eee; color: #999; font-size: 12px; }
.references { margin-top: 20px; padding: 16px; background: #f8f9fa; border-radius: 8px; border: 1px solid #e0e0e0; }
.references h2 { font-size: 15px; color: #555; border-left-color: #9e9e9e; margin-top: 0; }
.references ul { margin: 0; }
.references li { font-size: 12px; color: #666; margin: 4px 0; }
a.src { color: #1a73e8; text-decoration: none; }
a.src:hover { text-decoration: underline; }
ul, ol { padding-left: 20px; }
li { margin: 6px 0; line-height: 1.6; }
</style>
</head>
<body>
<div class="report">
<h1>{company_name} ({ticker}) 综ååææ¥å</h1>
<div class="meta">åææ¥æ: {date} | åæå¨æ: è¿7ä¸ªäº¤ææ¥ | å¸åº: {market}</div>
<div class="summary">{ä¸å¥è¯æ»ç»}</div>
<!-- 彿¥è¡æ
â é»è²é«äº®åºåï¼æ¾å¨æåé¢ -->
<div class="daily-highlight">
<h2>彿¥è¡æ
({æè¿äº¤ææ¥æ¥æ})</h2>
<table>
<tr><th>ææ </th><th>æ°å¼</th></tr>
<tr><td>å¼çä»·</td><td>...</td></tr>
<tr><td>æé« / æä½</td><td>... / ...</td></tr>
<tr><td>æ¶çä»·</td><td>...</td></tr>
<tr><td>彿¥æ¶¨è·</td><td><span class="up/down">+/-X.XX%</span> (±éé¢)</td></tr>
<tr><td>æäº¤é</td><td>XXXä¸è¡ (è¾åæ¥ +/-XX%)</td></tr>
<tr><td>çä¸èµ°å¿</td><td>ç®è¿°æ¥å
èµ°å¿ç¹å¾</td></tr>
</table>
<p><strong>彿¥åå¨å½å :</strong> ç®è¦è¯´æå½æ¥æ¶¨è·çç´æ¥åå </p>
</div>
<h2>ä¸ã7æ¥è¡ä»·æ¦è§</h2>
<table>
<tr><th>ææ </th><th>æ°å¼</th></tr>
<tr><td>å½åä»·æ ¼</td><td>Â¥/$XXX</td></tr>
<tr><td>7æ¥æ¶¨è·å¹
</td><td><span class="up/down">+/-X.XX%</span></td></tr>
<tr><td>åæå¤§ç</td><td>+/-X.XX%</td></tr>
<tr><td>æäº¤éè¶å¿</td><td>æ¾é/缩é/æå¹³</td></tr>
<tr><td>ææ¯é¢ä¿¡å·</td><td>...</td></tr>
</table>
<h2>äºãè¡ä»·åå¨åå åæ</h2>
<h3>ç´æ¥é©±å¨å ç´ </h3>
<ol><li>...</li></ol>
<h3>è¡ä¸ä¼ 导å ç´ </h3>
<ol><li>...</li></ol>
<h3>å¸åºç¯å¢å ç´ </h3>
<ol><li>...</li></ol>
<h2>ä¸ãè¿æéè¦æ°é»</h2>
<table>
<tr><th>æ¥æ</th><th>äºä»¶</th><th>æ¥æº</th><th>å½±å</th></tr>
<tr><td>...</td><td>...</td><td><a href="åæURL" class="src">æ¥æºåç§°</a></td><td><span class="tag tag-positive/negative/neutral">å©å¥½/å©ç©º/䏿§</span></td></tr>
</table>
<p>è论å¾å: <strong>æ£é¢/è´é¢/䏿§</strong></p>
<h2>åãè¡ä¸å¯¹æ¯</h2>
<table>
<tr><th>å
¬å¸</th><th>7æ¥æ¶¨è·</th><th>å
³é®å¨æ</th></tr>
<tr><td>{company_name}</td><td>...</td><td>...</td></tr>
<tr><td>ç«å¯¹A</td><td>...</td><td>...</td></tr>
<tr><td>ç«å¯¹B</td><td>...</td><td>...</td></tr>
</table>
<h2>äºãå¸åºç¯å¢</h2>
<ul>
<li>大çè¶å¿: ...</li>
<li>å¸åºæ
绪: Risk-on / Risk-off</li>
<li>VIX: XX (ä½/æ£å¸¸/é«/æé« æ³¢å¨)</li>
<li>å
³é®å®è§å ç´ : ...</li>
</ul>
<h2>å
ãè¶å¿å±æ</h2>
<h3>çæ (1-2å¨)</h3>
<ul><li>...</li></ul>
<h3>䏿 (1-3æ)</h3>
<ul><li>...</li></ul>
<h3>主è¦é£é©</h3>
<div class="risk">
<ol><li>...</li></ol>
</div>
<div class="references">
<h2>åèæ¥æº</h2>
<!-- å° 5 个 Agent è¿åçææ Sources 龿¥æç»´åº¦åç»ååºï¼ä¸å¾çç¥ï¼ä¸å¾ä½¿ç¨å ä½ç¬¦ -->
<ul>
<li><strong>è¡ä»·ä¸ææ¯é¢</strong>
<ul>
<li><a href="URL" class="src">æ é¢ â æ¥æº</a></li>
</ul>
</li>
<li><strong>æ°é»è论</strong>
<ul>
<li><a href="URL" class="src">æ é¢ â æ¥æº</a></li>
</ul>
</li>
<li><strong>è¡ä¸å¯¹æ¯</strong>
<ul>
<li><a href="URL" class="src">æ é¢ â æ¥æº</a></li>
</ul>
</li>
<li><strong>å¸åºç¯å¢</strong>
<ul>
<li><a href="URL" class="src">æ é¢ â æ¥æº</a></li>
</ul>
</li>
<li><strong>å
¬å¸å
¬å / å®ç½</strong>
<ul>
<li><a href="URL" class="src">æ é¢ â æ¥æº</a></li>
</ul>
</li>
</ul>
</div>
<div class="disclaimer">声æ: æ¬æ¥åç± AI èªå¨çæï¼ä»
ä¾åèï¼ä¸ææä»»ä½æèµå»ºè®®ãæèµæé£é©ï¼å³çéè°¨æ
ã</div>
</div>
</body>
</html>
HTML å¡«åè§å:
- 涨è·å¹
ä¸ºæ£æ¶ä½¿ç¨
class="up"ï¼çº¢è²ï¼ï¼ä¸ºè´æ¶ä½¿ç¨class="down"ï¼ç»¿è²ï¼ - æ°é»å½±åæ ç¾: å©å¥½ç¨
tag-positiveï¼å©ç©ºç¨tag-negativeï¼ä¸æ§ç¨tag-neutral - å°æ¨¡æ¿ä¸çå ä½ç¬¦æ¿æ¢ä¸ºå®é æ°æ®ï¼å 餿³¨é
- ç¡®ä¿ HTML 宿´å¯ç´æ¥å¨æµè§å¨ä¸æå¼
- ãåèæ¥æºãåºåå¿
å¡«ï¼å° 5 个 Agent è¿åç»ææ«å°¾çææ Sources 龿¥æç»´åº¦åç»å¡«å
¥ï¼æ¯æ¡æ ¼å¼ä¸º
<a href="åå§URL" class="src">æ é¢ â æ¥æºç½ç«</a>ï¼ä¸å¾çç¥ãä¸å¾ä¿çå ä½ç¬¦ URL - æ°é»è¡¨æ ¼çãæ¥æºãåé¡»å
å«å¯ç¹å»åæé¾æ¥ï¼
<a href="åæURL" class="src">æ¥æºåç§°</a>ï¼
å°æ¥åä¿å为æä»¶: {company_name}-analysis-{date}.htmlï¼ä¿åå¨å½åå·¥ä½ç®å½ã
Phase 4: çæ PDF æ¥å
åºäº Phase 3 çæç HTML æä»¶ï¼éè¿ Chrome headless æå° PDFï¼
HTML_FILE="./{company_name}-analysis-{date}.html"
PDF_FILE="./{company_name}-analysis-{date}.pdf"
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--headless --disable-gpu --no-sandbox \
--print-to-pdf="$PDF_FILE" \
--no-pdf-header-footer \
"file://$(pwd)/$HTML_FILE"
注æ: å¦æç³»ç»æ²¡æ Chromeï¼å¯ä½¿ç¨
npx -y md-to-pdf "$HTML_FILE"ä½ä¸ºå¤éæ¹æ¡ã
æç»è¾åºä¸¤ä»½æä»¶ï¼
./{company_name}-analysis-{date}.htmlâ HTML çæ¬ï¼å¯å¨æµè§å¨ä¸æå¼ï¼./{company_name}-analysis-{date}.pdfâ PDF çæ¬ï¼å¯ç´æ¥å享ï¼
Error Handling
- Agent è¶ æ¶æå¤±è´¥: 妿æä¸ª Agent æªè¿åç»æï¼å¨æ¥å䏿 注该维度为”æ°æ®ç¼ºå¤±”ï¼å ¶ä½ç»´åº¦ç §å¸¸åæ
- è¡ç¥¨ä»£ç æ æ³è¯å«: æç¤ºç¨æ·ç¡®è®¤ä»£ç æå ¬å¸åç§°
- akshare æªå®è£ (Aè¡): é级为纯 WebSearch æ¹å¼è·åæ°æ®
- å®ç½æ æ³è®¿é®: è·³è¿å®ç½æåï¼ä¾èµæç´¢å¼æç»æ
Notes
- æ¯ä¸ª Agent çè¾åºä¸¥æ ¼éå¶åæ°ï¼é²æ¢ä¸»çº¿ç¨ä¸ä¸ææº¢åº
- 综ååæé¶æ®µéå¨ äº¤åå ³èï¼èéç®åç½å
- å æåæåºåºå “ç¸å ³” ä¸ “å æ”
- è¶å¿é¢æµéæç¡®æ 注ä¸ç¡®å®æ§