deep-research
npx skills add https://github.com/feiskyer/claude-code-settings --skill deep-research
Agent 安装分布
Skill 文档
Deep Researchï¼æ·±åº¦è°ç ç¼æå·¥ä½æµï¼
æ”æ·±åº¦è°ç ”å½ä½ä¸ä¸ªå¯å¤ç¨ãå¯å¹¶è¡çç产æµç¨æ¥æ§è¡ï¼ä¸»æ§è´è´£æ¾æ¸ ç®æ ãæè§£åç®æ ãè°åº¦åè¿ç¨ãèåä¸ç²¾ä¿®ï¼åè¿ç¨è´è´£éé/æ½å/å±é¨åæå¹¶è¾åºç»æå Markdown ç´ æï¼æç»äº¤ä»ç©å¿ é¡»æ¯ç¬ç«æåæä»¶è䏿¯è天贴æã
å ³é®çº¦æï¼å¿ é¡»éµå®ï¼
- ä¿æé»è®¤æ¨¡åä¸é ç½®ä¸åï¼ä¸è¦æ¾å¼è¦ç模åæç¨é¢å¤åæ°è¦åé»è®¤æ¨¡å/æ¨ç设置ï¼åªæå¨ç¨æ·æç¡®æææ¶æè°æ´ç¸å ³é ç½®ã
- é»è®¤æå°æéï¼åè¿ç¨éè¿
--allowedToolsæ§å¶å¯ç¨å·¥å ·ï¼ä» å¨å¿ è¦æ¶å¯ç¨ç½ç»çæéã - èç½ä¼å
èµ° skillsï¼å
¶æ¬¡ MCPï¼ä¼å
使ç¨å·²å®è£
skillsï¼è¥å¿
é¡»ä½¿ç¨ MCPï¼åä¼å
firecrawlï¼å ¶æ¬¡exaï¼ç¡®å®æ æ³æ»¡è¶³æ¶åèè WebFetch/WebSearchã - é交äºå¼å好ï¼åè¿ç¨ä¸ä½¿ç¨ plan å·¥å ·ï¼ä¸ä¸ç¨æ·”ç确认/çå馔å¼äºå¨ï¼ä»¥æä»¶è½å°ãæ¥å¿å¯è¿½æº¯ä¸ºä¸»ã
- æä»¶äº¤ä»ä¼å ï¼æç»äº¤ä»ç©å¿ é¡»è½å°ä¸ºç¬ç«æä»¶ï¼ç¦æ¢å¨è天ä¸è´´åºå®æ´æç¨¿ã
- æ¯ä¸æ¥è¾åºå³çä¸è¿åº¦æ¥å¿ï¼å°¤å ¶å¨æåãè°åº¦ãèåã精修ã交ä»åã
- ä»»å¡è§æ¨¡å¤æé¨æ§ï¼åç®æ æ°é â¥3 æ¶å¿
é¡»å¯å¨
claude -påè¿ç¨ï¼<3 个åç®æ æ¶å¯ç±ä¸»è¿ç¨ç´æ¥æ§è¡ï¼ä½ä»éè®°å½å®æ´ç®å½ç»æååå§æ°æ®ã - å¿ é¡»çå¾ ç¨æ·ç¡®è®¤ï¼æ¸åºå®æåï¼å¿ é¡»æç¡®è¯¢é®ç¨æ·”æ¯å¦å¼å§æ§è¡ï¼”ï¼å¨ç¨æ·å夔æ§è¡/å¼å§/go/yes”çè¯å®è¯åä¸å¾è¿å ¥ä¸ä¸æ¥ã
ä»»å¡ç®æ
- ä»ç¨æ·çé«å±ç®æ æ¨å¯¼åºå¯å¹¶è¡çåç®æ éåï¼å¦é¾æ¥æ¸ åãæ°æ®åçãæ¨¡ååè¡¨ãæ¶é´åççï¼ã
- 为æ¯ä¸ªåç®æ å¯å¨ç¬ç«ç
claude -påè¿ç¨ï¼å¹¶ä¸ºå ¶åé åéæéï¼éè¿--allowedToolsåæ°ï¼ã - å¹¶è¡æ§è¡å¹¶äº§åºåæ¥åï¼èªç¶è¯è¨ Markdownï¼å¯å«å°è/è¡¨æ ¼/å表ï¼ï¼å¤±è´¥æ¶è¾åºå¸¦åå çé误说æä¸åç»å»ºè®®ã
- ç¨èæ¬æé¡ºåºèååè¾åºï¼çæç»ä¸çåºç¡ç¨¿ã
- 对åºç¡ç¨¿åçæºæ£æ¥ä¸æå°åä¿®å¤ï¼ç¶åç»åºæç» artefact è·¯å¾ä¸å ³é®åç°æè¦ã
äº¤ä»æ å
- 交ä»ç©å¿ é¡»æ¯ç»æåãæ´å¯é©±å¨çæ´ä½æåï¼ç¦æ¢æåä»»å¡ Markdown ç´æ¥æ¼æ¥å½ä½æç»ç¨¿ã
- éè¦ä¿çåä»»å¡åææ¶ï¼å°å
¶å¦å为å
鍿件ï¼ä¾å¦
.research/<name>/aggregated_raw.mdï¼ï¼å¨æåä¸ä» 叿¶å ³é®æ´å¯/è¯æ®ã - 润è²ä¸ä¿®è®¢è¦æç« èéæ®µè¿ä»£ï¼ä¸å¾æ´ç¯å é¤å䏿¬¡æ§éåï¼æ¯æ¬¡ä¿®æ¹åæ ¸å¯¹å¼ç¨ãæ°æ®ä¸ä¸ä¸æï¼ä¿è¯å¯è¿½æº¯ã
- é»è®¤äº¤ä»è¯¦å®ãæ·±å ¥çåæåæ¥åã
- 交ä»åå”åé使£è´¨æ£”ï¼
- æ£æ¥æ¯å¦ççæ¯”åç« èãå¤è½®æ´å”产åºï¼è¥åªæ¯ä¸æ¬¡æ§çæï¼éåæç« èéåã
- è¯ä¼°æ¯å¦è¶³å¤ç»è´ï¼è¥ååèï¼å å¤ææ¯”åä»»å¡ç´ æä¸è¶³”è¿æ¯”ç»ç¨¿æ¶å缩è¿åº¦”ï¼åè 驱å¨è¡¥å /追å è°ç ï¼åè 卿¢æç´ æä¸ç»§ç»æ©å±æ¶¦è²ï¼ç´è³è¾¾å°è¯¦ç»æ åã
ä»»å¡è§æ¨¡åçº§ä¸æ§è¡è·¯å¾
æ ¹æ®åç®æ æ°ééæ©æ§è¡è·¯å¾ï¼
| è§æ¨¡ | åç®æ æ° | æ§è¡æ¹å¼ | ç®å½è¦æ± |
|---|---|---|---|
| å¾®å | 1-2 | 主è¿ç¨ç´æ¥æ§è¡ | ä»é raw/ãlogs/ãfinal_report.md |
| å°å | 3-5 | å¯å¨åè¿ç¨ï¼ä¸²è¡æå°éå¹¶è¡ | 宿´ç®å½ç»æ |
| ä¸å | 6-15 | å¹¶è¡åè¿ç¨ï¼é»è®¤ 8 å¹¶åï¼ | 宿´ç®å½ç»æ + è°åº¦èæ¬ |
| 大å | >15 | GNU Parallel + åæ¹è°åº¦ | 宿´ç®å½ç»æ + å¤é¶æ®µè°åº¦ |
注æï¼å³ä½¿æ¯å¾®åä»»å¡ï¼ä¹å¿ é¡»ï¼
- å°åå§æç´¢ç»æä¿åå°
raw/ç®å½ - è®°å½æ§è¡æ¥å¿å°
logs/dispatcher.log - çå¾ ç¨æ·ç¡®è®¤ååæ§è¡ï¼é¤éç¨æ·æç¡®è¯´”ç´æ¥æ§è¡”ï¼
端å°ç«¯æµç¨ï¼ä¸¥æ ¼æåºæ§è¡ï¼
-
颿§è¡è§å䏿¸åºï¼å¿ åï¼ä¸»æ§äº²èªå®æï¼
- å æ¾æ¸ ç®æ ãé£é©ãèµæº/æé约æï¼å¹¶è¯å«åç»æ©æ£ä¾èµçæ ¸å¿ç»´åº¦ï¼ä¸»é¢ç°ã人ç©/ç»ç»ãå°åãæ¶é´åççï¼ã
- è¥åå¨å ¬å¼ç®å½/ç´¢å¼ï¼æ ç¾é¡µãAPI å表çï¼ï¼ç¨æå°åæ¹å¼æåç¼åå¹¶ç»è®¡æ¡ç®ï¼è¥ä¸åå¨ï¼å”æ¡å¤´è°ç ”è·åç宿 ·æ¬ï¼æ°é»ãèµæãæ°æ®éçï¼ï¼è®°å½æ¥æº/æ¶é´/è¦ç¹ä½ä¸ºè¯æ®ã
- å½¢ææ¸ ååè³å°å±ç¤ºä¸æ¬¡ç宿£ç´¢ææµè§çä»£è¡¨æ ·æ¬ï¼åªé ç»éªæ¨æµä¸ç®å®ææ¸åºã
- æ¸åºé¶æ®µå¿
é¡»è³å°éè¿ä¸æ¬¡”å¯è¿½æº¯çå·¥å
·é¾”æ¿å°ç宿 ·æ¬å¹¶è®°å½å¼ç¨ï¼ä¼å
使ç¨å·²å®è£
skillsï¼è¥éè¦ MCPï¼åä¼å
firecrawlï¼å ¶æ¬¡exaï¼è¥é½ä¸å¯ç¨ï¼è®°å½åå å¹¶éæ©æ¿ä»£æ¹æ¡ï¼å¿ è¦æ¶åéçº§å° WebFetch/WebSearchï¼ã - è¾åºåæ¥ï¼æèæï¼æ¸ åï¼ååºåç°ç维度ãåç»´åº¦å·²ææ¡çéé¡¹åæ ·æ¬ãè§æ¨¡ä¼°ç®ï¼å¹¶æ 注ä¸ç¡®å®æ§/缺å£ãè¥å°æªè·å¾ç宿 ·æ¬ï¼å è¡¥é½è°ç ï¼ç¦æ¢è¿å ¥ä¸ä¸æ¥ã
- 便®ä¸è¿°ç»æè¡¥å ¨å¯æ§è¡è®¡åï¼æåãèæ¬/å·¥å ·ãè¾åºæ ¼å¼ãæéãè¶ æ¶çç¥çï¼ï¼ç¨ç¨æ·è¯è¨æ±æ¥ç»´åº¦ç»è®¡ä¸è®¡åå 容ï¼å¨å¾å°æç¡®”æ§è¡/å¼å§”ååºåä¿æçå¾ ã
-
åå§å䏿»ä½è§å
- æç¡®ç®æ ã颿è¾åºæ ¼å¼ä¸è¯ä»·æ åã
- æ ¹æ®å½åä»»å¡çæä¸ä¸ªè¯ä¹åä¸ä¸éå¤çåå
nameï¼å»ºè®®ï¼<YYYYMMDD>-<çé¢>-<éæºåç¼>ï¼å ¨å°åãçæ¨ªçº¿åéãæ ç©ºæ ¼ï¼ã - å建è¿è¡ç®å½
.research/<name>/ï¼å¹¶æææäº§ç©é½ä¿åå°è¯¥ç®å½ä¸ï¼åç®å½å¦prompts/ãlogs/ãchild_outputs/ãraw/ãcache/ãtmp/ï¼ã - ä¿æé»è®¤æ¨¡åä¸é ç½®ä¸åï¼éè¦è°æ´ä»»ä½æ¨¡å/æ¨ç/æéç¸å ³è®¾ç½®æ¶å å¾å¾ç¨æ·åæï¼å¹¶å¨æ¥å¿ä¸æ³¨æåæ´åå ä¸å½±åèå´ã
-
åç®æ è¯å«
- éè¿èæ¬/å½ä»¤æåææé åç®æ å表ã
- æºæ°æ®ä¸è¶³æ¶ï¼ä¾å¦é¡µé¢åªç»ä¸¤ä¸ªä¸»é¾æ¥ï¼ï¼å¦å®è®°å½åå ï¼ç¶åç±ä¸»è¿ç¨ç´æ¥æ¥æå®æå©ä½å·¥ä½ã
-
çæè°åº¦èæ¬
- å建è°åº¦èæ¬ï¼ä¾å¦
.research/<name>/run_children.shï¼ï¼è¦æ±ï¼- æ¥æ¶åç®æ å表ï¼å¯å JSON/CSVï¼å¹¶é项è°åº¦ã
- 为æ¯ä¸ªåç®æ æé
claude -pè°ç¨ï¼æ¨èè¦ç¹ï¼- æ¨èå½¢å¼ï¼
claude -p "prompt" --allowedTools "Read,Write,Edit,Bash,WebFetch,WebSearch,mcp__firecrawl__*"ï¼ä»¥claude --help为åï¼ã - å¨ prompt ä¸å£°æï¼ä¸åèç½éæ±ä¼å
使ç¨å·²å®è£
skillsï¼æè½ä¼å
ï¼ï¼è¥å¿
须走 MCPï¼åä¼å
firecrawlï¼å ¶æ¬¡exaï¼ç¡®å®æ²¡åæ³æç¨ WebFetch/WebSearchï¼ä¸ä½¿ç¨ plan å·¥å ·ä¸”äººå·¥äº¤äºçå¾ ”ã - éç»ç¨æ·è¦æ±ä¸ä¼ 模ååæ°ã
- 为åè¾åºæå®è½çè·¯å¾ï¼ä¾å¦
.research/<name>/child_outputs/<id>.mdï¼ã - å¯å¼ç¨å¦ä¸è°ç¨æ¨¡æ¿ï¼ä»
æ¼ç¤ºåæ°ï¼ä¸æ¶åå¹¶è¡ï¼ï¼
timeout 600 claude -p "$(cat "$prompt_file")" \ --allowedTools "Read,Write,Edit,Bash,Glob,Grep,WebFetch,WebSearch,mcp__firecrawl__firecrawl_scrape,mcp__firecrawl__firecrawl_search" \ --output-format json \ > "$output_file" 2>&1 - è¥éè¦è®©åè¿ç¨æ§è¡æ´å¤å·¥å
·ï¼å¨
--allowedToolsä¸è¿½å 对åºå·¥å ·åã - 便®ä»»å¡è§æ¨¡è®¾ç½®è¶
æ¶ï¼å°ä»»å¡å
ç» 5 åéï¼
timeout 300ï¼ï¼è¾å¤§ä»»å¡å¯æ¾å®½å°æå¤ 15 åéï¼timeout 900ï¼ï¼éè¿å¤é¨timeoutå½ä»¤å åºã馿¬¡å½ä¸ 5 åéè¶ æ¶æ¶ï¼ç»åä»»å¡å®é 夿æ¯å¦æå/æ¹åæ°åéè¯ï¼15 åé仿ªå®æåè§ä¸º prompt ææµç¨éè¦ææ¥ã - å°è§æ¨¡ä»»å¡ï¼<8 个ï¼ç¨å¾ªç¯ + åå°ä»»å¡ï¼æéåæ§å¶ï¼å®ç°å¹¶è¡ï¼é¿å
å½ä»¤è¡é¿åº¦éå¶å¯¼è´å¤±è´¥ï¼å¤§è§æ¨¡ä»»å¡ç¨
xargs/GNU Parallelï¼ä½å¿ é¡»å ç¨å°è§æ¨¡éªè¯åæ°å±å¼ãé»è®¤å¹¶è¡ 8 个ï¼å¯æç¡¬ä»¶æé é¢è°æ´ã - ä¸è¦ç¨”串è¡ä¸ä¸ªä¸ªè·”æ¥æ¿ä»£å¹¶è¡ï¼ä¹ä¸è¦ç¨”主è¿ç¨éä¾¿ææ”çæ¹å¼ç»è¿æ¢å®æµç¨ã
- æè·æ¯ä¸ªåè¿ç¨éåºç 并忥å¿å°è¿è¡ç®å½ï¼ç¨
stdbuf -oL -eL claude -p ⦠2>&1 | tee .research/<name>/logs/<id>.logçæ¹å¼ä¿è¯å®æ¶å·æ°ï¼ä¾¿äºtail -fè§å¯è¿åº¦ã
- æ¨èå½¢å¼ï¼
- æ°æ®éè¶³å¤æ¶ï¼ä¸»æ§å°½éä¸äº²èªæ¿æ ä¸è½½/è§£æçéæ´»ï¼æè¿äºå·¥ä½äº¤ç»åè¿ç¨å®æï¼ä¸»æ§ä¸æ³¨äº promptãæ¨¡æ¿ä¸ç¯å¢åå¤ã
- å建è°åº¦èæ¬ï¼ä¾å¦
-
设计åè¿ç¨ Prompt
- å¨æçæ prompt 模æ¿ï¼è³å°å
å«ï¼
- åç®æ æè¿°ãè¾å ¥æ°æ®ã约æè¾¹çã
- è§åé¶æ®µéå¶èç½æ£ç´¢/æ½åçæ»è½®æ°ä¸è¶
è¿ Xï¼æå¤æåº¦éæ©ï¼é常建议 10ï¼ï¼ä¿¡æ¯è¶³å¤å°±æ¶æç»æï¼å·¥å
·ä¼å
级ï¼skills â MCPï¼
firecrawlâexaï¼â WebFetch/WebSearchã - ç»æè¾åºä¸ºèªç¶è¯è¨ Markdownï¼å å«ç»è®ºãå ³é®è¯æ®å表ãå¼ç¨é¾æ¥ï¼åºç°é误æ¶ç»åº Markdown å½¢å¼çé误说æä¸åç»å»ºè®®ã
- çæå®é
prompt æä»¶æ¶ï¼ä¼å
ç¨
printf/éè¡åå ¥æ³¨å ¥åéï¼é¿å Bash 3.2 å¨å¤åèåç¬¦åºæ¯ä¸cat <<EOFæªæåéçå·²ç¥é®é¢ã
- å°æ¨¡æ¿åå
¥æä»¶ï¼ä¾å¦
.research/<name>/child_prompt_template.mdï¼ä»¥ä¾¿å®¡è®¡ä¸å¤ç¨ã - å¨å¯å¨è°åº¦èæ¬åï¼éä¸å¿«é审é
çæç prompt æä»¶ï¼ä¾å¦
cat .research/<name>/prompts/<id>.mdï¼ï¼ç¡®è®¤åéæ¿æ¢æ£ç¡®ãæä»¤å®æ´ååæ´¾åä»»å¡ã
- å¨æçæ prompt 模æ¿ï¼è³å°å
å«ï¼
-
å¹¶è¡æ§è¡ä¸çæ§
- è¿è¡è°åº¦èæ¬ã
- è®°å½æ¯ä¸ªåè¿ç¨çå¼å§/ç»ææ¶é´ãèæ¶ä¸ç¶æã
- 对失败/è¶
æ¶åè¿ç¨åæç¡®å³çï¼æ è®°ãéè¯ãæå¨æç»æ¥åä¸è¯´æï¼è§¦å 15 åéè¶
æ¶ä¸éæ¶è®°å½ prompt/æµç¨å¾
ææ¥ãé¿ä»»å¡æ§è¡ä¸å¯æç¤ºç¨æ·ç¨
tail -f .research/<name>/logs/<id>.logè¿½è¸ªå®æ¶è¾åºã
-
ç¨åºåèåï¼çæåºç¡ç¨¿ï¼
- ç¨èæ¬ï¼ä¾å¦
.research/<name>/aggregate.pyï¼è¯»å.research/<name>/child_outputs/䏿æ Markdownï¼æé¢è®¾é¡ºåºèå为åçä¸»ææ¡£ï¼ä¾å¦.research/<name>/final_report.mdï¼ã
- ç¨èæ¬ï¼ä¾å¦
-
解读èåç»æå¹¶è®¾è®¡ç»æ
- é读
.research/<name>/final_report.mdä¸å ³é®åè¾åºã - 设计精修æ¥åç« èå¤§çº²ä¸”ç´ ææ å°”ï¼ä¾å¦
.research/<name>/polish_outline.mdï¼ï¼æç¡®ç®æ åä¼ãç« è顺åºä¸æ¯ç« æ ¸å¿è®ºç¹ã
- é读
-
åç« ç²¾ä¿®ä¸åºç¨¿
- æ°å»ºç²¾ä¿®ç¨¿ï¼ä¾å¦
.research/<name>/polished_report.mdï¼ï¼æå¤§çº²éç« æ°åï¼æ¯åå®ä¸ç« ç«å»èªæ¥äºå®ãå¼ç¨ä¸è¯è¨è¦æ±ï¼å¿ è¦æ¶å溯åç¨¿æ ¸å®ã - é¿å 䏿¬¡æ§å ¨ç¯éåï¼åæ”æç« è¿ä»£”以维æä¸è´æ§å¹¶éä½éæ¼é£é©ï¼åæ¶è®°å½æ¯ç« 亮ç¹ãé®é¢ä¸å¤çæ¹å¼ã
- 对éå¤ä¿¡æ¯ãå¼ç¨æ ¼å¼ãå¾ ç¡®è®¤æ¡ç®åç»ä¸æ´çï¼åæ¶ä¿çæ ¸å¿äºå®ä¸éåæ°æ®ã
- æ°å»ºç²¾ä¿®ç¨¿ï¼ä¾å¦
-
è½å°äº¤ä»
- ç¡®è®¤ç²¾ä¿®ç¨¿æ»¡è¶³äº¤ä»æ åï¼ç»æå®æ´ãè¯æ°ç»ä¸ãå¼ç¨åç¡®ï¼ï¼ä»¥è¯¥æåä½ä¸ºå¯¹å¤æ¥åã
- æç»äº¤ä»ç©å¿
é¡»è½å°ä¸ºç¬ç«æä»¶ï¼ä½äº
.research/<name>/ï¼ï¼éè¿æä¾æä»¶è·¯å¾ä¸å¿ è¦æè¦åç¨æ·åæ¥ï¼ç¦æ¢å¨è天ä¸è´´åºå®æ´æç¨¿ã - 卿ç»çå¤ä¸æ¦è¿°æ ¸å¿ç»è®ºä¸å¯æ§è¡å»ºè®®ï¼å¿ è¦æ¶è¡¥å å¾ ç¡®è®¤äºé¡¹çè·è¿æ¹å¼ã
- ä¸å¯¹å¤é带ä¸é´ç¨¿æå é¨ç¬è®°ï¼ç¡®ä¿ç¨æ·çå°çæ¯é«è´¨éæåã
注æäºé¡¹
- ä¿ææµç¨å¹çï¼æ¯æ¬¡è¿è¡é½çææ°ç
.research/<name>/ï¼é¿å è¦çæ§æä»¶ã - ææç»æåè¾åºå¿ é¡»æ¯åæ³ UTF-8 ææ¬ã
- ä» å¨å¾å°æææç¡®æå¿ è¦æ¶æåæéï¼é¿å æ»¥ç¨æéã
- æ¸ ç临æ¶èµæºæ¶ä¿æè°¨æ ï¼ç¡®ä¿æ¥å¿ä¸è¾åºå¯è¿½æº¯ã
- 对失败æµç¨ç»åºå¯é级ç说æï¼æå类任å¡è³å°å°è¯ä¸¤æ¬¡ï¼ä»å¤±è´¥åå¨ Markdown 䏿°å¢”失败åå /åç»å»ºè®®”å°èï¼é¿å èåé¶æ®µåºç°ç©ºç½ã
- ç¼åä¼å
ï¼éè¿ skills/MCP è·åçåå§èµæï¼å
åå
¥
.research/<name>/raw/çç¼åç®å½ï¼åç»å¤çä¼å è¯»åæ¬å°ç¼å以åå°éå¤è¯·æ±ã - å 宿´çè§£åæ»ç»ï¼æ»ç»/æç¼åå å¤ç宿´åæï¼ä¸å¾æºæ¢°æªååºå®é¿åº¦ï¼ä¾å¦å 500 å符ï¼ãå¯åèæ¬åå ¨æè§£æãæåå ³é®å¥æçæè¦ç¹ï¼ä½ä¸å¾ä¾èµ”ç¡¬æªæ”ã
- 临æ¶ç®å½é离ï¼ä¸é´äº§ç©ï¼èæ¬æ¥å¿ãè§£æç»æãç¼åãè°è¯è¾åºçï¼æ¾å¨
.research/<name>/tmp/ã.research/<name>/raw/ã.research/<name>/cache/çåç®å½ï¼å¿ è¦æ¶å¨æµç¨ç»æåæéæ¸ çã - æç´¢æå¡ä¼å
级ï¼èç½æä½ä¼å
使ç¨å·²å®è£
skillsï¼è¥éè¦ MCPï¼å
æ¥çå¯ç¨ MCP å·¥å
·ï¼å¹¶ä¼å
éæ©
firecrawlï¼å ¶æ¬¡exaï¼ç¼ºå° MCP æ¶åéå WebFetch/WebSearchã - MCP åæ°ä¸è¾åºæ§å¶ï¼å¯¹è¿åå¯è½è¿å¤§çå·¥å ·ï¼é¿å 请汔åå§å ¨æ”ç±»åæ®µå¯¼è´ååºè¨èï¼å¿ è¦æ¶å段æ½åãå åç®å½åæéæ·±å ¥ã
- å¾åæ£ç´¢ï¼è¥ MCP æ¯æå¾åæç´¢/æè¿°ï¼é¤éç¨æ·æç¡®è¦æ±”ä» çº¯ææ¬”ï¼å¦åå¼å¯å¹¶å°å¾åçº¿ç´¢ä¸ææ¬è¯æ®ä¸èµ·åç°ã
Claude Code éäº¤äºæ¨¡å¼åè
åºæ¬ç¨æ³
# åºæ¬é交äºè°ç¨
claude -p "Your prompt here"
# æå®å
许çå·¥å
·ï¼æ é人工确认ï¼
claude -p "Your prompt" --allowedTools "Read,Write,Edit,Bash"
# JSON æ ¼å¼è¾åºï¼ä¾¿äºèæ¬è§£æï¼
claude -p "Your prompt" --output-format json
# æµå¼ JSON è¾åº
claude -p "Your prompt" --output-format stream-json
# ç»§ç»ä¸ä¸æ¬¡å¯¹è¯
claude -p "Follow up question" --continue
# ç»§ç»æå®ä¼è¯
claude -p "Follow up" --resume <session_id>
åè¿ç¨è°åº¦æ¨¡æ¿
#!/bin/bash
# åè¿ç¨è°åº¦ç¤ºä¾
prompt_file="$1"
output_file="$2"
log_file="$3"
# 读å prompt å¹¶æ§è¡
timeout 600 claude -p "$(cat "$prompt_file")" \
--allowedTools "Read,Write,Edit,Bash,Glob,Grep,WebFetch,WebSearch,mcp__firecrawl__firecrawl_scrape,mcp__firecrawl__firecrawl_search,mcp__firecrawl__firecrawl_map" \
--output-format json \
2>&1 | tee "$log_file" > "$output_file"
exit_code=${PIPESTATUS[0]}
echo "Exit code: $exit_code" >> "$log_file"
å¹¶è¡æ§è¡ç¤ºä¾
#!/bin/bash
# å¹¶è¡æ§è¡å¤ä¸ªåä»»å¡
max_parallel=8
research_dir=".research/$name"
# ä½¿ç¨ GNU Parallelï¼æ¨èï¼
cat "$research_dir/tasks.txt" | parallel -j $max_parallel \
"timeout 600 claude -p \"\$(cat $research_dir/prompts/{}.md)\" \
--allowedTools 'Read,Write,Edit,Bash,WebFetch,WebSearch' \
--output-format json > $research_dir/child_outputs/{}.json 2>&1"
# æä½¿ç¨åå°ä»»å¡
for task_id in $(cat "$research_dir/task_ids.txt"); do
(
timeout 600 claude -p "$(cat "$research_dir/prompts/$task_id.md")" \
--allowedTools "Read,Write,Edit,Bash,WebFetch,WebSearch" \
--output-format json \
> "$research_dir/child_outputs/$task_id.json" 2>&1
) &
# æ§å¶å¹¶è¡æ°é
while [ $(jobs -r | wc -l) -ge $max_parallel ]; do
sleep 1
done
done
wait # çå¾
ææåå°ä»»å¡å®æ
éç¨ç»éªä¸æä½³å®è·µ
- å
éªè¯ç¯å¢å设ï¼åè°åº¦èæ¬åç¨
realpath/test -dçç¡®è®¤å ³é®è·¯å¾ï¼å¦venvãèµæºç®å½ï¼åå¨ï¼å¿ è¦æ¶ç¨dirname "$0"æ¨å¯¼ä»åºæ ¹è·¯å¾å¹¶éè¿åæ°ä¼ å ¥ï¼é¿å 硬ç¼ç ã - 让æåé»è¾å¯é ç½®ï¼ä¸è¦å设ç½é¡µå ±äº«åä¸ DOMï¼è§£æèæ¬æä¾å¯é ç½®éæ©å¨/è¾¹çæ¡ä»¶/å¯è¯»æ§è§£æå¨ï¼è·¨ç«ç¹å¤ç¨æ¶åªéæ¹é ç½®ã
- å å°è§æ¨¡è·éåå¹¶è¡ï¼å ¨é¢å¹¶è¡åå 串è¡è· 1â2 个åç®æ éªè¯ agent é ç½®ãskills/MCP å·¥å ·é¾ä¸è¾åºè·¯å¾ï¼ç¡®è®¤é¾è·¯ç¨³å®ååæé«å¹¶åï¼é¿å ”èµ·é£åç䏿¸ é误”ã
- å屿¥å¿ä¾¿äºè¿½æº¯ï¼è°åº¦å¨å
.research/<name>/dispatcher.logï¼åä»»å¡åç¬å.research/<name>/logs/<id>.logï¼å¤±è´¥æ¶ç´æ¥tailå¯¹åºæ¥å¿å®ä½ MCP/è°ç¨ç»èã - 失败é离ä¸éè¯ï¼å¹¶è¡å¤±è´¥æ¶å
è®°å½å¤±è´¥ ID 䏿¥å¿ï¼ä¼å
对å个失败任å¡éè¯ï¼å¯ç»´æ¤
failed_idsåè¡¨å¹¶å¨æ¶å°¾é¶æ®µç»ä¸æç¤ºåç»å»ºè®®ã - é¿å
é夿åï¼éè¯åå
æ£æ¥
.research/<name>/child_outputs/<id>.mdæ¯å¦å·²åæ³åå¨ï¼åå¨åè·³è¿ï¼åå°é 颿¶èä¸éå¤è®¿é®ã - ç»å®¡ä¸æ¶¦è²ï¼äº¤ä»åå¿ é¡»å®¡é èåä¸ç²¾ä¿®ç¨¿æ¯å¦æ»¡è¶³è¯è¨è¦æ±ï¼ä¾å¦è¦æ±ä¸æåå ¨ç¨ä¸æï¼ï¼å¹¶æ ¸å¯¹å¼ç¨ä¸æ°æ®ç¹ä¸æºæä»¶ä¸è´ï¼æ¶¦è²æ¶ä¸ä¸¢å¤±å ³é®äºå®ä¸éåä¿¡æ¯ï¼è®©æåå ·å¤æ´å¯èéå äºå®ã
- å¼ç¨å°±å°åç°ï¼æ¯æ¡è¦ç¹åç´æ¥ç¨ Markdown 龿¥ç»æ¥æºï¼ä¾å¦
[æ¥æº](https://example.com)ï¼ï¼é¿å æé¾æ¥éä¸å°æ®µå°¾ï¼ä¾¿äºå³æ¶æ¥è¯ã - è¦ççæ ¡éªèæ¬ï¼æ¹éçæåç¨è½»éèæ¬ç»è®¡ç¼ºå¤±æ¡ç®ãç©ºåæ®µææ ç¾æ°éï¼ç¡®ä¿é®é¢å¨æ¥åå被åç°å¹¶è¡¥æã
- 对åè¿ç¨åè¾¹ç约æï¼å¨å prompt ä¸æç¡®å¯è®¿é®èå´ï¼ä» æå® URL/ç®å½ï¼ä¸å¯ç¨å·¥å ·ï¼éä½è¶çä¸é夿åé£é©ï¼è®©æµç¨å¨ä»»æç«ç¹é½å®å ¨å¯æ§ã
æèä¸å使å
å æèå卿ï¼è¿½æ±ææ·±åº¦ãæç¬ç«æèãè¶ åºé¢æçæ´è§ï¼ä½ä¸è¦å¨åçéæå°”æå”ï¼ï¼æ£æ©ç¨æ·ä¸ºä»ä¹ä¼é®è¿ä¸ªé®é¢ãèåçå设æ¯ä»ä¹ãææ²¡ææ´æ¬è´¨ç鮿³ï¼åæ¶æç¡®ä½ ççæ¡åºæ»¡è¶³çæåæ åï¼åå´ç»æ åç»ç»å 容ã
ä¿æåä½ï¼ä½ çç®æ 䏿¯æºæ¢°æ§è¡æä»¤ãä¹ä¸æ¯å¨ä¿¡æ¯ä¸è¶³æ¶å¼ºè¡ç»åºç¡®å®çæ¡ï¼èæ¯ä¸ç¨æ·å ±åæ¨è¿ï¼éæ¥é¼è¿æ´å¥½çé®é¢ä¸æ´å¯é çç»è®ºã
åä½é£æ ¼è¦æ±ï¼
- 䏿»¥ç¨ bullet pointsï¼æå®ä»¬å°½ééå¶å¨ top levelï¼è½ç¨èªç¶è¯è¨æ®µè½å°±ç¨æ®µè½ã
- é¤éç´æ¥å¼ç¨ï¼å¦åä¸ä½¿ç¨å¼å·ã
- å使¶ä¿æäº²åãæ·±å ¥æµ åºãçæ§å å¶çè¯æ°ã
æ§è¡æ¬æè½æ¶ï¼å¨æ¯ä¸æ¥è¾åºæ¸ æ°çå³çä¸è¿åº¦æ¥å¿ã
交ä»åèªæ£æ¸ å
å¨æäº¤æç»æ¥ååï¼å¿ é¡»æ ¸å¯¹ä»¥ä¸æ¸ åï¼
ç®å½ç»ææ£æ¥
-
.research/<name>/ç®å½å·²å建 -
logs/dispatcher.logå å«å®æ´æ§è¡è®°å½ï¼éäºåè¡¥åï¼ -
raw/ç®å½å å«åå§æç´¢/æåç»æ - åç®æ â¥3 æ¶ï¼
prompts/ãchild_outputs/ç®å½åå¨ä¸æå 容
æµç¨åè§æ£æ¥
- æ¸åºé¶æ®µå±ç¤ºäºç宿 ·æ¬ï¼éåç»éªæ¨æµï¼
- ç¨æ·æç¡®ç¡®è®¤åæå¼å§æ§è¡ï¼é¤éç¨æ·è¯´”ç´æ¥æ§è¡”ï¼
- åç®æ â¥3 æ¶å¯å¨äº
claude -påè¿ç¨ - æ¥å¿å®æ¶è®°å½ï¼èéäºåè¡¥å
æ¥åè´¨éæ£æ¥
- æ¥å比åç« èãå¤è½®æ´å”产åºï¼é䏿¬¡æ§çæ
- æ¯æ¡å ³é®ç»è®ºæå¯è¿½æº¯çå¼ç¨æ¥æº
- å¼ç¨é¾æ¥å®é 访é®è¿ï¼éæç´¢ç»ææ¨æµï¼
- æ¥åå·²è½å°ä¸ºç¬ç«æä»¶ï¼æªå¨è天ä¸è´´åºå®æ´æç¨¿
å¿«éå¤±è´¥æ£æ¥
妿以䏿 åµï¼åºå¨æ¥åä¸æç¡®è¯´æï¼
- é¨ååä»»å¡å¤±è´¥/è¶ æ¶ï¼è®°å½å¤±è´¥ ID ååå
- æ°æ®æºåé/ä¸å¯è®¿é®ï¼è®°å½å°è¯è¿çæ¿ä»£æ¹æ¡
- ä¿¡æ¯ä¸å®æ´ï¼æ æ³¨å¾ ç¡®è®¤äºé¡¹åè·è¿å»ºè®®