tech-analysis-reporter
npx skills add https://github.com/xdrshjr/jr-openclaw-skills --skill tech-analysis-reporter
Agent 安装分布
Skill 文档
èªåªä½è½¯ä»¶åææ¥åçæå¨ï¼Agent Skillï¼
è§¦åæ¡ä»¶
å½ç¨æ·è¯´ä»¥ä¸ä»»ä¸è¯å¥æ¶ï¼å¯å¨æ¬Skillï¼
- “èªåªä½è½¯ä»¶åææ¥å”
- “çæææ¯æ¥å”
- “åæè¿ä¸ªé¡¹ç®”
- “帮æåä¸ªææ¯åæ”
- “äºè§£ä¸ä¸è¿ä¸ªå¼æºé¡¹ç®”
Agentæ§è¡æµç¨
Phase 1: 项ç®è·åï¼ç¬¬1轮对è¯ï¼
Agentå¼åºç½ï¼
ææ¥å¸®ä½ çæä¸ä¸çææ¯åææ¥åãé¦å ï¼è¯·åè¯æé¡¹ç®æ¥æºï¼
- GitHub龿¥ï¼å ¬å¼æç§æä»åºï¼
- æ¬å°é¡¹ç®è·¯å¾ï¼ç»å¯¹è·¯å¾ï¼
æ¶éä¿¡æ¯ï¼
- çå¾ ç¨æ·æä¾é¡¹ç®æ¥æº
- 妿æ¯GitHubç§æä»åºï¼è¯¢é®æ¯å¦éè¦Token
éªè¯å¯ç¨æ§ï¼
# GitHub项ç®
git clone --depth 1 <url> /tmp/analysis-repo 2>&1
# æ¬å°é¡¹ç®
ls -la <path>
妿éå°ç§æä»åºæéé®é¢ï¼
è¿ä¸ªé¡¹ç®ä¼¼ä¹æ¯ç§æçï¼ææ æ³ç´æ¥è®¿é®ãä½ å¯ä»¥ï¼
- æä¾Personal Access Token
- æè å°é¡¹ç®æå åç»æ
Phase 2: 项ç®è¯å«ä¸ç¡®è®¤ï¼ç¬¬2轮对è¯ï¼
èªå¨æ£æµé¡¹ç®ç±»åï¼
读å项ç®å ³é®æä»¶ï¼å¤æé¡¹ç®ç±»åï¼
| æ£æµä¾æ® | 项ç®ç±»å |
|---|---|
| package.json + src/pagesæroutes | Webåºç¨ |
| package.json + binåæ®µ | CLIå·¥å · |
| Python/Rust + ç®æ³ç¸å ³ç®å½ | ç®æ³åº |
| 大éé ç½®+æä»¶ç³»ç» | æ¡æ¶/å¹³å° |
| Android/iOSç®å½ | ç§»å¨ç«¯App |
| data/db/queryç¸å ³ | æ°æ®å·¥å · |
| æ æ³è¯å« | éç¨é¡¹ç® |
Agentåç¥ç¨æ·æ£æµç»æï¼
ææ£æµå°è¿æ¯ä¸ä¸ª [项ç®ç±»å] 项ç®ã
å ³é®ç¹å¾ï¼
- 主è¦è¯è¨ï¼[Python/JavaScript/Rustç]
- æ ¸å¿æ¨¡åï¼[ååºä¸»è¦ç®å½]
- ææ¯æ ï¼[ä»package.jsonçæå]
è¿ä¸ªå¤æåç¡®åï¼å¦æä¸å确请åè¯æå®é ç±»åã
çå¾ ç¨æ·ç¡®è®¤æä¿®æ£
Phase 3: æ¥åé ç½®ï¼ç¬¬3轮对è¯ï¼
è¯¢é®æ¥å模æ¿ï¼
è¯·éæ©æ¥å模æ¿ï¼
A. ç²¾ç®æ¦è§ï¼3ç« ï¼çº¦3000åï¼
- éåï¼å¿«éäºè§£é¡¹ç®
- ç« èï¼æ¦è¿° + æ¶æ + 亮ç¹
B. æ ååæï¼5ç« ï¼çº¦8000åï¼âæ¨è
- éåï¼å¸¸è§ææ¯è¯å®¡
- ç« èï¼æ¦è¿° + æ¶æ + æºå¶ + çæ + ææ¯æ
C. 深度åæï¼7ç« ï¼çº¦12000åï¼
- éåï¼æ·±åº¦ææ¯å®¡è®¡
- ç« èï¼æ å5ç« + æ§è½ + å®å ¨ + æªæ¥å±æ
D. èªå®ä¹
- ä½ æå®ç« èæ°éå主é¢
询é®å 容飿 ¼ï¼
è¯·éæ©åä½é£æ ¼ï¼
- 妿¯é£ – å¹½é»ä½ä¸¥è°¨ï¼ææ¯å»ï¼åææ¯å客
- ææ¯é£ – ç²¾åä¸ä¸ï¼æ¯è¯å¯éï¼åæ¶æææ¡£
- ç§æ®é£ – éä¿ææï¼æ äºåï¼éåéææ¯è¯»è
- åä¸é£ – ä»·å¼å¯¼åï¼ææ°æ®ï¼éåæèµåºæ¯
询é®åææ·±åº¦ï¼
è¯·éæ©åææ·±åº¦ï¼
- æ¦è¿°ï¼30%ï¼- æ¦å¿µçº§è®²è§£ï¼æ 代ç
- æ åï¼60%ï¼- éåº¦æ·±å ¥ï¼å°é伪代ç
- ä¸å®¶ï¼100%ï¼- 深度åæï¼çå®ä»£ç +详ç»è§£é
询é®è¾åºæ ¼å¼ï¼
è¯·éæ©è¾åºæ ¼å¼ï¼å¯å¤éï¼ï¼
- Markdownï¼å¯ç¼è¾æºç ï¼
- Wordææ¡£ï¼.docxï¼æ£å¼æ¥åï¼
- PDFï¼éååå¸å享ï¼
Phase 4: 个æ§åé ç½®ï¼ç¬¬4轮对è¯ï¼
询é®é å¾éæ±ï¼
æ¯å¦éè¦é å¾ï¼æ¯ç« é 徿°éï¼
- 0å¼ ï¼çº¯æåï¼éåå·²æè®¾è®¡å¾ç项ç®ï¼
- 1å¼ ï¼1å¼ æ¦å¿µå¾/ç« ï¼
- 2å¼ ï¼æ¶æå¾+æµç¨å¾/ç« ï¼
- 3å¼ ï¼å ¨æ¹ä½è§è§å±ç¤ºï¼
询é®ç¹æ®å ³æ³¨ç¹ï¼å¯éï¼ï¼
ææ²¡æç¹å«å¸ææéç¹åæç模åæåè½ï¼ï¼ç´æ¥å车跳è¿ï¼
询é®åä½å好ï¼ä» Wordè¾åºæ¶éè¦ï¼ï¼
妿çæWordææ¡£ï¼åä½è®¾ç½®ï¼
- æ é¢åä½ï¼[é»ä½/微软é é»/å®ä½]
- æ£æåä½ï¼[仿å®/å®ä½/微软é é»]
ï¼è¾åºæ ¼å¼å°å¨çæå®æå确认ï¼
确认并æ»ç»ï¼
好çï¼é ç½®å®æï¼è®©æç¡®è®¤ä¸ä¸ï¼
é 置项 ä½ çéæ© é¡¹ç® [项ç®å] ç±»å [项ç®ç±»å] æ¨¡æ¿ [A/B/C/D] 飿 ¼ [妿¯/ææ¯/ç§æ®/åä¸] 深度 [æ¦è¿°/æ å/ä¸å®¶] é å¾ [0-3å¼ /ç« ] 确认æ 误åï¼æå°å¼å§çææ¥åãè¿ä¸ªè¿ç¨å¤§çº¦éè¦10-15åéã
确认å¼å§ï¼ï¼å夔å¼å§”æ”修湔ï¼
Phase 5: æ§è¡çæ
ç¨æ·ç¡®è®¤åï¼Agentæ§è¡ä»¥ä¸æ¥éª¤ï¼
Step 1: 项ç®è·å
# GitHub项ç®
git clone --depth 1 <url> /tmp/analysis-repo
# æ¬å°é¡¹ç®
cp -r <local_path> /tmp/analysis-repo
Step 2: 项ç®åæ
读åå¹¶åæï¼
- README.md – é¡¹ç®æ¦è¿°
- package.json / Cargo.toml / pyproject.toml – ææ¯æ
- src/ ç®å½ç»æ – æ¶æåæ
- docs/ – ç°æææ¡£
æåå ³é®ä¿¡æ¯ä¿åå°ä¸ä¸æã
Step 3: å¤Agentåä½çæç« è
å¯å¨å¢é任塿¨¡å¼ï¼PMï¼ä½ ï¼ä½ä¸ºåè°è ï¼
å¢éææï¼
- PMï¼ä½ ï¼: ä»»å¡åé
ãè¿åº¦çæ§ãç»ææ±æ»
- Writer-1: 第1ç« ï¼æ¦è¿°ï¼
- Writer-2: 第2ç« ï¼æ¶æï¼
- Writer-3: 第3ç« ï¼æºå¶ï¼
- Writer-4: 第4ç« ï¼çæ/ææ¯æ ï¼æ ¹æ®æ¨¡æ¿å¨æåé
ï¼
- QA: è´¨ééªè¯
å ±äº«ç½æ¿æºå¶ï¼
åå»ºå ±äº«ç¶ææä»¶ï¼ææAgentå¯è¯»åï¼
// /tmp/analysis-shared-board.json
{
"project_info": { /* 项ç®åæç»æ */ },
"config": {
"template": "B",
"style": "妿¯é£",
"depth": "æ å",
"images_per_chapter": 2
},
"chapters": {
"01-overview": { "status": "pending", "writer": "Writer-1", "content": null },
"02-architecture": { "status": "pending", "writer": "Writer-2", "content": null },
"03-mechanism": { "status": "pending", "writer": "Writer-3", "content": null },
"04-ecosystem": { "status": "pending", "writer": "Writer-4", "content": null },
"05-techstack": { "status": "pending", "writer": "Writer-4", "content": null }
},
"images": {
"generated": [],
"assigned": []
},
"qa_report": null
}
æ¯ä¸ªWriter Agentç任塿µç¨ï¼
- 读åå ±äº«ç½æ¿ – è·å项ç®ä¿¡æ¯åé ç½®
- 读ååé å°çç« èPrompt模æ¿
- æ°åç« èå 容ï¼1000-2000åï¼
- çæé
å¾ï¼å¦æé
ç½®>0å¼ ï¼
- ä½¿ç¨ nano-banana-pro çæ2Ké å¾
- æ´æ°ç½æ¿ï¼images.generated
- ä¿åç« èå°ä¸´æ¶æä»¶
- æ´æ°ç½æ¿ï¼chapters.[ç« è].status = “completed”
PMçæ§é»è¾ï¼
# æ¯2å鿣æ¥ä¸æ¬¡ç½æ¿è¿åº¦
while True:
board = read_shared_board()
completed = sum(1 for ch in board["chapters"].values() if ch["status"] == "completed")
total = len(board["chapters"])
if completed == total:
break
# åç¨æ·æ±æ¥è¿åº¦
print(f"è¿åº¦: {completed}/{total} ç« è已宿")
sleep(120)
Step 4: çæé å¾ï¼å¦æé ç½® > 0å¼ /ç« ï¼
å¦æç¨æ·éæ© 0 å¼ é å¾ï¼
- è·³è¿æ¤æ¥éª¤
- ç« èä¸ä¸æå ¥ä»»ä½å¾çå¼ç¨
- ç´æ¥ç»§ç»ä¸ä¸æ¥
å¦æç¨æ·éæ© 1-3 å¼ é å¾ï¼
æ¯ä¸ªWriter Agentç¬ç«çæé å¾ï¼
cd ~/clawd/skills/nano-banana-pro
export $(grep -v '^#' .env | xargs)
uv run scripts/generate_image.py \
--prompt "[æ ¹æ®ç« èå
容çæç妿¯é£æ ¼é
å¾Prompt]" \
--filename "/tmp/analysis/images/XX-topic.png" \
--resolution 2K
çæåæ´æ°å ±äº«ç½æ¿ï¼
"images": {
"generated": [
"01-hero.png",
"02-architecture.png",
...
]
}
Step 5: QAè´¨ééªè¯
å¯å¨QA Agentï¼å¹¶è¡æä¾æ¬¡éªè¯åç« èï¼ï¼
QA Agentä»»å¡ï¼
1. 读åå
±äº«ç½æ¿ï¼è·åææç« èæä»¶è·¯å¾
2. éç« éªè¯ï¼
- å
容åç¡®æ§ï¼ææ¯æè¿°æ¯å¦æ£ç¡®ï¼
- 宿´æ§ï¼æ¯å¦è¦çè¦æ±ç深度ï¼
- 飿 ¼ç¬¦ååº¦ï¼æ¯å¦ç¬¦åéæ©ç飿 ¼ï¼
- æµç
度ï¼é
读ä½éªï¼
- é
å¾è´¨éï¼å¦æé
ç½®äºé
å¾ï¼
3. çæQAæ¥åï¼æ´æ°ç½æ¿ï¼qa_report
4. æ è®°åç« èï¼pass / need_fix
å¦æç« èéè¦ä¿®æ¹ï¼
- è¿åç»å¯¹åºWriter Agentä¿®æ¹
- ä¿®æ¹åéæ°éªè¯
- æå¤3è½®è¿ä»£
QAéè¿åï¼ç»§ç»ä¸ä¸æ¥ã
Step 6: åå¹¶ä¸è½¬æ¢
åå¹¶Markdownï¼
cat 01-*.md 02-*.md ... > complete.md
æ ¼å¼è½¬æ¢ï¼æ ¹æ®Phase 4ç¨æ·éæ©ï¼ï¼
询é®ç¨æ·ç¡®è®¤è¾åºæ ¼å¼ï¼
æ¥åå 容已çæå¹¶éè¿QAéªè¯ã> è¯·éæ©æç»è¾åºæ ¼å¼ï¼å¯å¤éï¼ï¼
- Markdownï¼å¯ç¼è¾æºç ï¼
- Wordææ¡£ï¼.docxï¼æ£å¼æ¥åï¼
- PDFï¼éååå¸å享ï¼
妿鿩å¤ä¸ªæ ¼å¼ï¼æä¼æå æzipåéã
çå¾ ç¨æ·ç¡®è®¤åæ§è¡è½¬æ¢ï¼
Markdown: ç´æ¥ä½¿ç¨ complete.md
Wordï¼å¦æéæ©ï¼:
pandoc complete.md -o report.docx --toc --toc-depth=2
python3 adjust_fonts.py report.docx "[æ é¢åä½]" "[æ£æåä½]"
PDFï¼å¦æéæ©ï¼:
pandoc complete.md -o report.pdf --pdf-engine=xelatex
夿件æå ï¼å¦æéæ©2ç§ä»¥ä¸æ ¼å¼ï¼:
zip ææ¯æ¥å-宿´ç.zip complete.md report.docx report.pdf images/
Step 6: 交ä»
â æ¥åçæå®æï¼
æä»¶æ¸ åï¼
- ð 宿´æ¥å.mdï¼å¯ç¼è¾æºç ï¼
- ð ææ¯æ¥å.docxï¼Wordææ¡£ï¼é»ä½æ é¢+ä»¿å®æ£æï¼
- ð ææ¯æ¥å.pdfï¼PDFæ ¼å¼ï¼
- ð¼ï¸ é 徿件夹ï¼Xå¼ 2Kå辨çå¾çï¼
æ£å¨åéæä»¶…
åéææçæçæä»¶ç»ç¨æ·ã
ç¹æ®æ åµå¤ç
æ åµ1ï¼é¡¹ç®å é失败
å éé¡¹ç®æ¶éå°é®é¢ï¼[é误信æ¯]
å¯è½åå ï¼
- ç§æä»åºéè¦Token
- ç½ç»é®é¢
- ä»åºä¸åå¨
建议ï¼[å ·ä½è§£å³æ¹æ¡]
æ åµ2ï¼é¡¹ç®æ æ³è¯å«ç±»å
ææ æ³èªå¨è¯å«è¿ä¸ªé¡¹ç®ç±»åã请åè¯æï¼
- è¿æ¯ä»ä¹ç±»åç项ç®ï¼ï¼Webåºç¨/CLIå·¥å ·/ç®æ³åº/æ¡æ¶/å ¶ä»ï¼
- 主è¦åè½æ¯ä»ä¹ï¼
æ åµ3ï¼ç¨æ·è¦æ±ä¿®æ¹
æ¶å°ä¿®æ¹æè§ã请åè¯æå ·ä½ä¿®æ¹ç¹ï¼
- åªä¸ªç« èéè¦ä¿®æ¹ï¼
- ä¿®æ¹å 容æ¯ä»ä¹ï¼
- æ¯å¦éè¦è°æ´é å¾ï¼
ç¶åéæ°çæå¯¹åºç« èã
æ åµ4ï¼çææ¶é´è¿é¿
æ¥åçæä¸ï¼å·²å®æ [X/Y] ä¸ªç« è…
é¢è®¡å©ä½æ¶é´ï¼çº¦ Z åé
ä½ å¯ä»¥å é¢è§å·²å®æçç« èï¼[æä»¶]
æ åµ5ï¼å ±äº«ç½æ¿è®¿é®å²çª
妿å¤ä¸ªWriter Agentåæ¶è¯»åç½æ¿ï¼
- ä½¿ç¨æä»¶éæºå¶ï¼lockfileï¼
- æè 使ç¨Gitè¿è¡çæ¬æ§å¶
- æè éè¿PMä¸è½¬ï¼ææåæä½åç»PMï¼PMæ´æ°ç½æ¿ï¼
æ¨èæ¹æ¡ï¼éè¿PMä¸è½¬
Writer -> åPMæ±æ¥è¿åº¦ -> PMæ´æ°ç½æ¿ -> 广æç»å
¶ä»Agent
æ åµ6ï¼QAéªè¯ä¸éè¿
妿QAåç°ç« èè´¨éé®é¢ï¼
- QAå¨å ±äº«ç½æ¿æ è®°ï¼chapters.[ç« è].status = “need_fix”
- QAå¨qa_reportä¸è¯¦ç»è¯´æé®é¢
- PMéç¥å¯¹åºWriter Agentä¿®æ¹
- Writerä¿®æ¹åéæ°æäº¤QA
- æå¤3è½®è¿ä»£ï¼ä»ä¸éè¿åæ 记为”warning”ç»§ç»
ç« èPrompt模æ¿
妿¯é£Prompt模æ¿
ä½ æ¯ä¸ä¸ªææ¯ææ¡£æ°åä¸å®¶ã请åºäºä»¥ä¸é¡¹ç®ä¿¡æ¯ï¼æ°å[ç« èåç§°]ã
## 项ç®ä¿¡æ¯
{project_analysis_result}
## åä½è¦æ±
- 飿 ¼ï¼å¹½é»ä½ä¸¥è°¨ï¼å顶级ä¼è®®è®ºæ
- 深度ï¼[æ¦è¿°/æ å/ä¸å®¶]
- åæ°ï¼[æ ¹æ®æ·±åº¦è°æ´]
- é
å¾ï¼å¦æéè¦ï¼å¨éå½ä½ç½®æå
¥ 
## ç« è大纲
[æ ¹æ®ç« èç±»åæä¾ç大纲]
è¯·ç´æ¥è¾åºå®æ´çMarkdownæ ¼å¼ç« èå
容ã
ææ¯é£Prompt模æ¿
ä½ æ¯ä¸ä¸ªææ¯æ¶æå¸ã请åºäºä»¥ä¸é¡¹ç®ä¿¡æ¯ï¼æ°å[ç« èåç§°]ã
## 项ç®ä¿¡æ¯
{project_analysis_result}
## åä½è¦æ±
- 飿 ¼ï¼ç²¾åä¸ä¸ï¼æ¯è¯åç¡®
- 深度ï¼[æ¦è¿°/æ å/ä¸å®¶]
- å
å«ï¼æ¶æå¾æè¿°ãå
³é®ä»£ç çæ®µãæ§è½æ°æ®
- é
å¾ï¼å¦æéè¦ï¼å¨éå½ä½ç½®æå
¥
è¯·ç´æ¥è¾åºå®æ´çMarkdownæ ¼å¼ç« èå
容ã
ï¼ç§æ®é£ãåä¸é£ç±»ä¼¼…ï¼
ä¾èµæ£æ¥
æ§è¡åæ£æ¥ä»¥ä¸ä¾èµæ¯å¦å¯ç¨ï¼
# æ£æ¥pandoc
which pandoc || echo "pandocæªå®è£
"
# æ£æ¥python-docx
python3 -c "import docx" 2>&1 || echo "python-docxæªå®è£
"
# æ£æ¥nano-banana-pro
ls ~/clawd/skills/nano-banana-pro/scripts/generate_image.py
# æ£æ¥Git
which git
å¦æç¼ºå¤±ï¼åç¥ç¨æ·å®è£ æ¹æ³ã
è¾åºæä»¶ç»æ
/tmp/analysis-output/
âââ 01-overview.md
âââ 02-architecture.md
âââ 03-mechanism.md
âââ 04-ecosystem.md
âââ 05-techstack.md
âââ images/
â âââ 01-hero.png
â âââ 02-architecture.png
â âââ ...
âââ complete.md # åå¹¶åç宿´Markdown
âââ ææ¯æ¥å.docx # Wordææ¡£ï¼å¦éæ©ï¼
âââ ææ¯æ¥å.pdf # PDFææ¡£ï¼å¦éæ©ï¼
å ±äº«ç½æ¿ä½¿ç¨ç¤ºä¾
ç½æ¿åå§åï¼PMæ§è¡ï¼
import json
board = {
"project_info": {
"name": "OpenClaw",
"type": "framework",
"language": "TypeScript",
"tech_stack": ["Node.js", "WebSocket", "TypeBox"],
"description": "个人AI婿平å°"
},
"config": {
"template": "B",
"style": "妿¯é£",
"depth": "æ å",
"images_per_chapter": 2,
"title_font": "é»ä½",
"body_font": "仿å®"
},
"chapters": {
"01-overview": {
"status": "pending",
"writer": "Writer-1",
"content_path": None,
"word_count": 0
},
"02-architecture": {
"status": "pending",
"writer": "Writer-2",
"content_path": None,
"word_count": 0
},
"03-mechanism": {
"status": "pending",
"writer": "Writer-3",
"content_path": None,
"word_count": 0
},
"04-ecosystem": {
"status": "pending",
"writer": "Writer-4",
"content_path": None,
"word_count": 0
},
"05-techstack": {
"status": "pending",
"writer": "Writer-4",
"content_path": None,
"word_count": 0
}
},
"images": {
"generated": [],
"failed": []
},
"qa_report": {
"status": "pending",
"results": {}
}
}
with open("/tmp/analysis-shared-board.json", "w") as f:
json.dump(board, f, indent=2)
Writer Agent读åç½æ¿
import json
def read_board():
with open("/tmp/analysis-shared-board.json", "r") as f:
return json.load(f)
def update_board(updates):
"""æ´æ°ç½æ¿ï¼éè¿PMä¸è½¬ï¼"""
board = read_board()
board.update(updates)
with open("/tmp/analysis-shared-board.json", "w") as f:
json.dump(board, f, indent=2)
# Writer Agent使ç¨ç¤ºä¾
board = read_board()
my_chapter = "01-overview"
config = board["config"]
project_info = board["project_info"]
# æ°åç« è...
# 宿忴æ°ç½æ¿
update_board({
"chapters": {
my_chapter: {
"status": "completed",
"content_path": "/tmp/analysis/01-overview.md",
"word_count": 1850
}
}
})
PMçæ§è¿åº¦
def check_progress():
board = read_board()
total = len(board["chapters"])
completed = sum(1 for ch in board["chapters"].values()
if ch["status"] == "completed")
return {
"completed": completed,
"total": total,
"percentage": (completed / total) * 100
}
# æ¯2å鿣æ¥ä¸æ¬¡
while True:
progress = check_progress()
print(f"è¿åº¦: {progress['completed']}/{progress['total']} "
f"({progress['percentage']:.0f}%)")
if progress["completed"] == progress["total"]:
break
time.sleep(120)
示ä¾å¯¹è¯æµç¨
ç¨æ·ï¼ èªåªä½è½¯ä»¶åææ¥å
Agentï¼ ææ¥å¸®ä½ çæä¸ä¸çææ¯åææ¥åãé¦å ï¼è¯·åè¯æé¡¹ç®æ¥æºï¼
- GitHub龿¥ï¼å ¬å¼æç§æä»åºï¼
- æ¬å°é¡¹ç®è·¯å¾ï¼ç»å¯¹è·¯å¾ï¼
ç¨æ·ï¼ https://github.com/openclaw/openclaw
Agentï¼ [å é项ç®å¹¶åæ…]
ææ£æµå°è¿æ¯ä¸ä¸ª æ¡æ¶/å¹³å° é¡¹ç®ã
å ³é®ç¹å¾ï¼
- 主è¦è¯è¨ï¼TypeScript
- æ ¸å¿æ¨¡åï¼GatewayãAgentãChannelsãSkills
- ææ¯æ ï¼Node.jsãWebSocketãTypeBox
è¿ä¸ªå¤æåç¡®åï¼
ç¨æ·ï¼ åç¡®
Agentï¼ è¯·éæ©æ¥å模æ¿ï¼ A. ç²¾ç®æ¦è§ï¼3ç« ï¼ B. æ ååæï¼5ç« ï¼ C. 深度åæï¼7ç« ï¼ D. èªå®ä¹
ç¨æ·ï¼ B
Agentï¼ è¯·éæ©åä½é£æ ¼ï¼
- 妿¯é£ 2. ææ¯é£ 3. ç§æ®é£ 4. åä¸é£
ç¨æ·ï¼ 1
…ï¼ç»§ç»åç»å¯¹è¯ï¼
Skillçæ¬: 2.0 | Agentä½¿ç¨æå | æ´æ°: 2026-02-03