SuperAPI AI 工具集

Skywork Excel

办公与效率

查看项目

更新于 10-15 16:36

技能介绍

Skywork Excel 是一项通过 Skywork 后端服务生成专业 Excel 文件和数据分析报告的技能,适用于涉及 Excel、电子表格、表格、数据分析、结构化报告或文件转换的任务。

主要能力

该技能可生成专业 Excel 文件与数据分析报告,并支持上传用户提供的文件,包括 Excel、CSV、PDF 和图片,由后端负责读取,无需在前端读取用户文件。

前置条件

使用前需要在 OpenClaw 中配置 SKYWORK_API_KEY。若尚未持有 API Key,可访问 https://skywork.ai 获取。详细的配置说明见 references/apikey-fetch.md。

使用方式

关键原则是原样传递查询,不要读取用户文件,也不要重写、扩展或重新解释用户的查询,后端的智能体具备自己的理解能力。仅允许两处修改:对时间敏感的查询,可在前面添加当前时间,例如 [Current time: 2026-03-14] User request: ...;以及将绝对路径替换为纯文件名,例如 /Users/xxx/report.xlsx 替换为 report.xlsx。

Excel 任务通常耗时 5 到 25 分钟,建议在后台运行脚本并每 60 秒轮询一次日志。第一步启动任务,命令示例:

EXCEL_LOG=/tmp/excel_$(date +%s).log

python3 scripts/excel_api_client.py "user's query"
--files "/path/to/file1.xlsx" "/path/to/file2.pdf"
--language zh-CN
--log-path "$EXCEL_LOG" \

/dev/null 2>&1 &

echo "Task started. Log: $EXCEL_LOG"

其中 --files 用于上传用户提供的文件(Excel、CSV、PDF、图片),无文件时可省略;--language 支持 zh-CN(默认)或 en-US,应与用户语言一致;--session <id> 用于后续任务,详见多轮会话部分。

第二步监控进度,每 60 秒执行一次,不要使用 while 循环。由于 $EXCEL_LOG 不会在多次 exec 调用之间保留,监控命令需要重新定位日志路径:

EXCEL_LOG=$(ls -t /tmp/excel_*.log 2>/dev/null | head -1) if [ -z "$EXCEL_LOG" ] || [ ! -f "$EXCEL_LOG" ]; then echo "ERROR: Log not found. Ensure Step 1 ran with --log-path."; exit 1 fi sleep 60 echo "=== Progress Update ===" grep -A8 "TASK PROGRESS UPDATE" "$EXCEL_LOG" | tail -10 grep -E "[HEARTBEAT]" "$EXCEL_LOG" | tail -1 grep -E "[DONE]|All done" "$EXCEL_LOG" | tail -1

监控规则包括:每 60 秒轮询一次;只展示最后一个 TASK PROGRESS UPDATE 区块,不要输出完整日志或对其进行总结解读;不要重启任务,智能体会自行处理错误并自动恢复;忽略日志中的瞬时错误(如 ❌、Missing parameter、心跳等),智能体会自动重试;使用心跳作为存活信号确认任务仍在运行,但不要向用户输出原始心跳行。向用户报告时,每次只输出一行当前状态,格式为:[Main stage] | [current action] | Elapsed: Xs,例如:Data Processing | Generating charts | Elapsed: 120s。

当日志出现 [DONE] 或 ✅ All done! 时停止轮询,读取最终输出:tail -30 "$EXCEL_LOG"。若未完成,则向用户报告进度,并在 60 秒后再次调用 exec 执行同一监控命令,直到完成,不要只轮询一次就停止。

第三步交付结果,完成后向用户同时提供两项内容:OSS 下载 URL(云端分享链接,以可点击超链接形式展示)以及本地文件绝对路径。回复示例:

✅ Report generated!

📥 Download: https://picture-search.skywork.ai/skills/upload/2026-03-14/xxx.xlsx 💾 Local: /Users/xxx/.openclaw/workspace/report.xlsx

不要使用 sandbox:// 或 filename 格式,这些不可点击。若 oss_url 不可用,则只提供本地路径。

多轮会话

要延续之前的任务,可使用上一次运行结束时打印的 ID 配合 --session 参数:

First turn — no --session needed; session ID is printed at end

python3 scripts/excel_api_client.py "Create a sales report"
--language zh-CN --log-path "$EXCEL_LOG" > /dev/null 2>&1 &

Output: 💡 To continue this conversation, use: --session abc123def456

Follow-up turn — add --session

python3 scripts/excel_api_client.py "Add a pie chart"
--session abc123def456
--language zh-CN --log-path "$EXCEL_LOG" > /dev/null 2>&1 &

当用户表示“继续”“修改”“添加图表”“更改颜色”“基于之前的……”或引用先前输出时,应使用 --session。若不使用 --session,智能体会重新开始并丢失之前所有上下文。

错误处理

若出现 Unauthorized (401),说明 SKYWORK_API_KEY 缺失、无效或已过期,需要在 OpenClaw 技能环境中设置或轮换密钥;连接超时时,对复杂任务可使用 --timeout 1500(默认 900 秒);若智能体输出不正确,可提供更具体的说明,并使用多轮会话迭代优化。脚本输出还可能显示 Insufficient benefit. Please upgrade your account at {url}。此时应使用用户的语言回复:说明“抱歉,Excel/报告生成失败。此技能需要升级 Skywork 会员”,格式为一句简短说明加 Upgrade now →,URL 从日志输出中 at https://... 部分提取。

安全注意事项

切勿将 SKYWORK_API_KEY 提交到版本控制中;应在 OpenClaw 技能环境或作为环境变量设置密钥;Token 会过期,客户端会在需要时自动刷新。