Install
openclaw skills install desearchZeeLin Deep Research 深度研究是一款 AI 驱动的专业研究辅助平台,支持一句话生成与多步骤生成,提供深度、专家两大研究路径。从快速信息梳理、系统分析到超万字专家报告全流程覆盖,依托多轮推理与多源数据整合,高效完成企业分析、市场洞察、招商研究等复杂任务,一站式提升研究效率与决策质量。
openclaw skills install desearchZeeLin 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) 的场景:
如果不确定使用哪种模式:可以询问用户确认
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": {}
}'
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": "major",
"workflow": "",
"needEditChapter": 0,
"moreSettings": {}
}'
第一轮返回的 sessionId 可以用于后续对话:
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": "上一轮的sessionId",
"content": "追问内容",
"thinking": "deep",
"workflow": "",
"moreSettings": {}
}'
用户 API key 从环境变量 DESEARCH_API_KEY 读取。
设置方式:
export DESEARCH_API_KEY="你的API Key"
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": "",
"moreSettings": {}
}'
sessionId 为空时创建新对话thinking 参数决定推理深度任务提交后,需要轮询查询状态:
API_KEY="${DESEARCH_API_KEY}"
curl -s -X GET "https://desearch.zeelin.cn/api/conversation/status?sessionId={sessionId}" \
-H "x-api-key: ${API_KEY}"
返回示例:
{
"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),需要等待当前任务执行完成后再提交新任务:
# 检查返回码
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
返回示例:
{
"code": 315,
"v": "0.0.914",
"msg": "当前接口调用已超限,请联系我们",
"data": {
"max_limit_conversation": 1,
"now_conversation": 1
}
}
当 API 返回 code=315 且 msg 包含"试用已超限"时,需要引导用户充值:
# 检查返回码
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
# 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
# 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": {}
}'
# 轮询直到任务完成 (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 文件给用户
# 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 命令等待任务完成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 后立即发送
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 参数
exec command="..." background=true timeout=1200
这样命令会在后台运行,不会阻塞当前会话,你可以继续给其他命令。
方式二:使用 exec + yieldMs 参数
exec command="..." yieldMs=10000
设置 yieldMs 让出控制权,命令在后台继续运行。
方式三:使用 process 工具管理后台任务
先启动后台任务:
exec command="完整的轮询+发送脚本" timeout=1200
使用 process(action=poll) 轮询结果:
process action=poll sessionId=<session_id> timeout=600000
后台任务完整示例:
# 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 |
| 16MB |
当用户渠道为飞书时,禁止直接发送 PDF 文件给用户,必须按以下流程操作:
# 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}"
# 检查文件是否存在且非空
if [ -f /tmp/research.md ] && [ -s /tmp/research.md ]; then
# 发送文件
message action=send target=用户ID filePath=/tmp/research.md
else
echo "文件无效或为空"
fi