Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ZeeLin Deep Research 深度研究是一款 AI 驱动的专业研究辅助平台,支持一句话生成与多步骤生成,提供深度、专家两大研究路径。从快速信息梳理、系统分析到超万字专家报告全流程覆盖,依托多轮推理与多源数据整合,高效完成企业分析、市场洞察、招商研究等复杂任务,一站式提升研究效率与决策质量。
.claude/skills/leoyeai-zeelin-deep-research/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 123% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 172% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 239% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 262% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 192% | 0% |
> ZeeLin Deep Research 深度研究是一款 AI 驱动的专业研究辅助平台,支持一句话生成与多步骤生成,提供深度、专家两大研究路径。从快速信息梳理、系统分析到超万字专家报告全流程覆盖,依托多轮推理与多源数据整合,高效完成企业分析、市场洞察、招商研究等复杂任务,一站式提升研究效率与决策质量。
如果用户没有提供 api_key,提示用户前往 https://desearch.zeelin.cn/skill-activity 进行免费注册或登录,获取点数及 api_key
https://desearch.zeelin.cnx-api-keyPOST /api/conversation/anewdeep - 深度思考模式 - 需要全面分析但不需要万字报告major - 专家模式 - 需要深度系统性输出、万字报告使用深度模式 (deep) 的场景:
使用专家模式 (major) 的场景:
如果不确定使用哪种模式:可以询问用户确认
bashAPI_KEY="${DESEARCH_API_KEY}" curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "你的问题", "thinking": "deep", "workflow": "", "needEditChapter": 0, "moreSettings": {} }'
bashAPI_KEY="${DESEARCH_API_KEY}" curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "你的问题", "thinking": "major", "workflow": "", "needEditChapter": 0, "moreSettings": {} }'
第一轮返回的 sessionId 可以用于后续对话:
bashAPI_KEY="${DESEARCH_API_KEY}" curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "上一轮的sessionId", "content": "追问内容", "thinking": "deep", "workflow": "", "moreSettings": {} }'
用户 API key 从环境变量 DESEARCH_API_KEY 读取。
设置方式:
bashexport DESEARCH_API_KEY="你的API Key"
bashAPI_KEY="${DESEARCH_API_KEY}" curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "调研一下汽车产业规模", "thinking": "deep", "workflow": "", "moreSettings": {} }'
sessionId 为空时创建新对话thinking 参数决定推理深度任务提交后,需要轮询查询状态:
bashAPI_KEY="${DESEARCH_API_KEY}" curl -s -X GET "https://desearch.zeelin.cn/api/conversation/status?sessionId={sessionId}" \ -H "x-api-key: ${API_KEY}"
返回示例:
json{ "code": 200, "v": "v1.5.0", "msg": "成功", "data": { "status": 2, "thinking": "deep", "workflow": "", "message": "会话已生成", "content": "调研一下汽车产业规模", "time": "", "thinkingWorkflowName": "深度模式", "pptUrl": "", "wavUrl": "", "mdxUrl": "", "mdUrl": "", "htmlUrl": "", "wavScriptUrl": "", "isShare": 0, "isMine": 0, "title": "调研一下汽车产业规模", "short": "jVICQSS5", "questionId": 281697, "sessionId": "b9162dfdefa74461a764aebe51366d87", "useKnowledge": 0, "onlyKnowledge": 0, "searchRange": "web" } }
状态码说明:
1 = 进行中2 = 正常结束 ✅3 = 用户主动结束4 = 失败5 = 排队中/api/conversation/anew 获取 sessionId/api/conversation/status?sessionId={id} 检查状态/api/conversation/to_report?sessionId={id}&reportType=pdf 获取 PDF 下载链接message 工具发送 PDF 文件到用户当 API 返回 code=315 且 msg 包含"当前接口调用已超限"时,表示当前并发任务数已达到上限(max_limit_conversation),需要等待当前任务执行完成后再提交新任务:
bash# 检查返回码 RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "你的问题", "thinking": "deep", "workflow": "", "needEditChapter": 0, "moreSettings": {} }') CODE=$(echo $RESULT | jq -r '.code') MSG=$(echo $RESULT | jq -r '.msg') if [ "$CODE" = "315" ] && echo "$MSG" | grep -q "当前接口调用已超限"; then # 发送提示给用户,等待当前任务完成 message action=send target=用户ID message="⚠️ 当前接口调用已超限,请等待当前任务执行完成后再提交新任务。" exit 1 fi
返回示例:
json{ "code": 315, "v": "0.0.914", "msg": "当前接口调用已超限,请联系我们", "data": { "max_limit_conversation": 1, "now_conversation": 1 } }
当 API 返回 code=315 且 msg 包含"试用已超限"时,需要引导用户充值:
bash# 检查返回码 RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "你的问题", "thinking": "deep", "workflow": "", "needEditChapter": 0, "moreSettings": {} }') CODE=$(echo $RESULT | jq -r '.code') MSG=$(echo $RESULT | jq -r '.msg') if [ "$CODE" = "315" ] && echo "$MSG" | grep -q "试用已超限"; then # 发送充值提示给用户 message action=send target=用户ID message="⚠️ 您的点数已超限,无法继续使用。请前往充值页面购买点数:https://desearch.zeelin.cn/skill-activity" exit 1 fi
充值地址: https://desearch.zeelin.cn/skill-activity
bash# 1. 创建任务 API_KEY="${DESEARCH_API_KEY}" RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "你的问题", "thinking": "deep", "workflow": "", "needEditChapter": 0, "moreSettings": {} }') SESSION_ID=$(echo $RESULT | jq -r '.data.sessionId') QUESTION_ID=$(echo $RESULT | jq -r '.data.id') echo "Session ID: $SESSION_ID, Question ID: $QUESTION_ID" # 2. 轮询状态直到完成 while true; do STATUS=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \ -H "x-api-key: ${API_KEY}" | jq -r '.data.status') if [ "$STATUS" = "2" ]; then echo "任务完成" break fi echo "状态: $STATUS, 等待中..." sleep 60 # 每分钟检查一次 done # 3. 获取 PDF 报告链接 REPORT_RESULT=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/to_report?sessionId=${SESSION_ID}&reportType=pdf" \ -H "x-api-key: ${API_KEY}") PDF_URL=$(echo $REPORT_RESULT | jq -r '.data') echo "PDF URL: $PDF_URL" # 4. 下载 PDF 文件 curl -s -o /tmp/research_result.pdf "$PDF_URL" # 5. 发送 PDF 文件给用户 message action=send target=用户ID filePath=/tmp/research_result.pdf
bash# 1. 创建任务 API_KEY="${DESEARCH_API_KEY}" curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "你的问题", "thinking": "deep", "workflow": "", "needEditChapter": 0, "moreSettings": {} }'
bash# 轮询直到任务完成 (status = 2) API_KEY="${DESEARCH_API_KEY}" SESSION_ID="替换为实际的sessionId" while true; do STATUS_RESPONSE=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \ -H "x-api-key: ${API_KEY}") STATUS=$(echo $STATUS_RESPONSE | jq -r '.data.status') echo "当前状态: $STATUS" if [ "$STATUS" = "2" ]; then echo "任务完成!" break fi sleep 60 # 每分钟检查一次 done # 获取 PDF 报告链接 REPORT_RESULT=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/to_report?sessionId=${SESSION_ID}&reportType=pdf" \ -H "x-api-key: ${API_KEY}") PDF_URL=$(echo $REPORT_RESULT | jq -r '.data') # 下载 PDF 文件 curl -s -o /tmp/research_result.pdf "$PDF_URL" # 发送 PDF 文件给用户 message action=send target=用户ID filePath=/tmp/research_result.pdf
❌ 禁止直接发送文字内容给用户 ✅ 必须:获取 PDF 链接 → 下载 PDF 文件 → 发送 PDF 文件给用户
bash# 1. 创建任务 API_KEY="${DESEARCH_API_KEY}" RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "用户的问题", "thinking": "deep", "workflow": "", "needEditChapter": 0, "moreSettings": {} }') SESSION_ID=$(echo $RESULT | jq -r '.data.sessionId') # 2. 轮询状态直到完成 (status=2) while true; do STATUS=$(curl -s "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \ -H "x-api-key: ${API_KEY}" | jq -r '.data.status') [ "$STATUS" = "2" ] && break sleep 30 done # 3. 获取 PDF 报告链接 REPORT_RESULT=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/to_report?sessionId=${SESSION_ID}&reportType=pdf" \ -H "x-api-key: ${API_KEY}") PDF_URL=$(echo $REPORT_RESULT | jq -r '.data') # 4. 下载 PDF 文件 curl -s -o /tmp/research_result.pdf "$PDF_URL" # 5. 发送 PDF 文件给用户 message action=send target=用户ID filePath=/tmp/research_result.pdf
/api/conversation/to_report?sessionId={id}&reportType=pdf 获取 PDF 下载链接data 字段提取 PDF URL确保任务完成后自动发送 PDF 的关键:
timeout=1200 或更长,确保 exec 命令等待任务完成bash while true; do STATUS=$(curl -s "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \ -H "x-api-key: ${API_KEY}" | jq -r '.data.status') [ "$STATUS" = "2" ] && break # 任务完成后跳出循环 [ "$STATUS" = "4" ] && exit 1 # 任务失败则退出 sleep 30 done
bash # 下载 PDF 后立即发送 curl -s -o /tmp/research_result.pdf "$PDF_URL" message action=send target=用户ID filePath=/tmp/research_result.pdf
❌ 错误做法:轮询后不等待结果就退出,或超时时间太短导致任务未完成就退出
✅ 正确做法:使用 while 循环 + 足够长的 timeout,任务完成后立即发送 PDF
当用户希望任务在后台运行、同时可以让你执行其他任务时,使用 OpenClaw 的后台执行功能:
方式一:使用 background=true 参数
bashexec command="..." background=true timeout=1200
这样命令会在后台运行,不会阻塞当前会话,你可以继续给其他命令。
方式二:使用 exec + yieldMs 参数
bashexec command="..." yieldMs=10000
设置 yieldMs 让出控制权,命令在后台继续运行。
方式三:使用 process 工具管理后台任务
bash exec command="完整的轮询+发送脚本" timeout=1200
process(action=poll) 轮询结果:bash process action=poll sessionId=<session_id> timeout=600000
后台任务完整示例:
bash# 1. 创建任务(立即返回) API_KEY="${DESEARCH_API_KEY}" RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "用户的研究问题", "thinking": "deep", "workflow": "", "needEditChapter": 0, "moreSettings": {} }') SESSION_ID=$(echo "$RESULT" | jq -r '.data.sessionId') echo "任务已创建: $SESSION_ID" # 2. 后台轮询 + 下载 + 发送(设置长timeout) exec command=" SESSION_ID='$SESSION_ID' API_KEY='$API_KEY' # 轮询直到完成 while true; do STATUS=\$(curl -s 'https://desearch.zeelin.cn/api/conversation/status?sessionId=\${SESSION_ID}' \\ -H 'x-api-key: \${API_KEY}' | jq -r '.data.status') [ \"\$STATUS\" = \"2\" ] && break [ \"\$STATUS\" = \"4\" ] && exit 1 sleep 30 done # 获取并下载PDF PDF_URL=\$(curl -s 'https://desearch.zeelin.cn/api/conversation/to_report?sessionId=\${SESSION_ID}&reportType=pdf' \\ -H 'x-api-key: \${API_KEY}' | jq -r '.data') curl -s -o /tmp/report.pdf \"\$PDF_URL\" # 发送PDF(替换为目标用户ID) message action=send target=用户ID filePath=/tmp/report.pdf " timeout=1200
用户可以:
| 渠道 | 文件大小限制 | |-----|------------| | 钉钉 | 20MB | | 飞书 | 20MB | | Telegram | 50MB | | Discord | 8MB | | WhatsApp | 16MB |
当用户渠道为飞书时,禁止直接发送 PDF 文件给用户,必须按以下流程操作:
bash# 1. 创建任务 API_KEY="${DESEARCH_API_KEY}" RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \ -H "Content-Type: application/json" \ -H "x-api-key: ${API_KEY}" \ -d '{ "sessionId": "", "content": "用户的问题", "thinking": "deep", "workflow": "", "needEditChapter": 0, "moreSettings": {} }') SESSION_ID=$(echo $RESULT | jq -r '.data.sessionId') TITLE=$(echo $RESULT | jq -r '.data.title') # 2. 轮询状态直到完成 (status=2) while true; do STATUS=$(curl -s "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \ -H "x-api-key: ${API_KEY}" | jq -r '.data.status') [ "$STATUS" = "2" ] && break sleep 30 done # 3. 获取 Word 报告链接(Word 格式更容易提取文字内容) REPORT_RESULT=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/to_report?sessionId=${SESSION_ID}&reportType=word" \ -H "x-api-key: ${API_KEY}") WORD_URL=$(echo $REPORT_RESULT | jq -r '.data') # 4. 下载 Word 文件 curl -s -o /tmp/research.docx "$WORD_URL" # 5. 解压 Word 文件提取文字内容 unzip -q /tmp/research.docx -d /tmp/research_docx/ sed 's/<[^>]*>//g' /tmp/research_docx/word/document.xml | tr -s ' \n' > /tmp/research.txt # 6. 创建飞书文档 DOC_RESULT=$(feishu_doc action=create title="调研报告:${TITLE}") DOC_TOKEN=$(echo $DOC_RESULT | jq -r '.document_id') DOC_URL=$(echo $DOC_RESULT | jq -r '.url') # 7. 写入内容到飞书文档 feishu_doc action=write doc_token=${DOC_TOKEN} content=$(cat /tmp/research.txt) # 8. 发送文档链接给用户 message action=send target=用户ID message="📄 调研报告已生成:${DOC_URL}"
bash# 检查文件是否存在且非空 if [ -f /tmp/research.md ] && [ -s /tmp/research.md ]; then # 发送文件 message action=send target=用户ID filePath=/tmp/research.md else echo "文件无效或为空" fi
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 18,553 | 4,280 | -77% | 1 | 1 | 0% | 3,205 | 6,661 | +108% | 0 | 0 | — |
case-02 | fail→fail | 30,647 | 5,268 | -83% | 1 | 1 | 0% | 6,185 | 6,979 | +13% | 0 | 0 | — |
case-03 | fail→fail | 15,997 | 4,269 | -73% | 1 | 1 | 0% | 2,513 | 6,436 | +156% | 0 | 0 | — |
case-04 | fail→pass | 16,402 | 3,107 | -81% | 1 | 1 | 0% | 2,829 | 6,299 | +123% | 0 | 0 | — |
case-05 | fail→pass | 13,825 | 5,313 | -62% | 1 | 1 | 0% | 2,476 | 6,723 | +172% | 0 | 0 | — |
case-06 | fail→pass | 10,688 | 3,444 | -68% | 1 | 1 | 0% | 1,903 | 6,448 | +239% | 0 | 0 | — |
case-07 | pass→pass | 9,211 | 4,185 | -55% | 1 | 1 | 0% | 1,813 | 6,711 | +270% | 0 | 0 | — |
case-08 | fail→pass | 9,255 | 2,917 | -68% | 1 | 1 | 0% | 1,780 | 6,439 | +262% | 0 | 0 | — |
case-09 | fail→pass | 10,092 | 4,400 | -56% | 1 | 1 | 0% | 2,329 | 6,804 | +192% | 0 | 0 | — |
case-10 | pass→pass | 12,966 | 4,237 | -67% | 1 | 1 | 0% | 2,362 | 6,649 | +181% | 0 | 0 | — |
case-11 | fail→pass | 12,101 | 4,567 | -62% | 1 | 1 | 0% | 2,204 | 6,700 | +204% | 0 | 0 | — |
case-12 | fail→pass | 15,723 | 6,039 | -62% | 1 | 1 | 0% | 2,920 | 7,065 | +142% | 0 | 0 | — |
case-13 | fail→pass | 10,627 | 8,538 | -20% | 1 | 1 | 0% | 2,166 | 7,458 | +244% | 0 | 0 | — |
case-14 | pass→pass | 7,716 | 2,362 | -69% | 1 | 1 | 0% | 1,602 | 6,267 | +291% | 0 | 0 | — |
case-15 | fail→pass | 11,116 | 2,677 | -76% | 1 | 1 | 0% | 2,040 | 6,194 | +204% | 0 | 0 | — |
case-16 | fail→pass | 8,097 | 4,012 | -50% | 1 | 1 | 0% | 1,450 | 6,448 | +345% | 0 | 0 | — |
case-17 | fail→pass | 8,656 | 4,594 | -47% | 1 | 1 | 0% | 1,645 | 6,775 | +312% | 0 | 0 | — |
case-18 | pass→pass | 6,878 | 1,413 | -79% | 1 | 1 | 0% | 1,135 | 6,010 | +430% | 0 | 0 | — |
case-19 | pass→pass | 12,130 | 7,104 | -41% | 1 | 1 | 0% | 2,188 | 7,397 | +238% | 0 | 0 | — |
case-20 | fail→pass | 11,153 | 3,204 | -71% | 1 | 1 | 0% | 2,068 | 6,387 | +209% | 0 | 0 | — |
case-21 | fail→fail | 6,376 | 6,096 | -4% | 1 | 1 | 0% | 1,289 | 6,660 | +417% | 0 | 0 | — |
case-22 | pass→pass | 8,798 | 4,593 | -48% | 1 | 1 | 0% | 1,713 | 6,623 | +287% | 0 | 0 | — |
case-23 | pass→pass | 9,436 | 7,970 | -16% | 1 | 1 | 0% | 1,792 | 7,362 | +311% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +52 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.