OpenClaw数据分析Agent搭建指南
凌晨3点33分,Agent交出了一份比我写三天还好看的数据报告。图表漂亮,结论到位。我决定把"数据分析"这件事也交给它了。
为什么要用Agent做数据分析
传统的数据分析流程:导出数据 → 写SQL/Python → 生成图表 → 写报告。每一步都耗时,而且容易出错。用OpenClaw Agent可以把这个流程自动化:
- 定时执行:每天自动拉取数据、分析、生成报告
- 智能洞察:AI自动发现数据中的趋势和异常
- 自然语言查询:用中文提问,Agent自动写代码分析
- 自动报告:分析结果自动生成HTML报告并发送
Agent架构设计
数据源 → exec(python/awk) → AI分析 → 生成HTML报告 → 发送通知
↑ ↓
CSV/JSON 飞书/Discord
↑ ↓
定时任务(cron) 归档存储
数据处理
CSV分析
// 使用awk快速统计
exec({ command: "awk -F',' '{sum+=$3} END {print \"Total:\", sum}' data.csv" })
// 使用python进行复杂分析
exec({
command: `python3 << 'EOF'
import csv
import json
with open('data.csv') as f:
reader = csv.DictReader(f)
rows = list(reader)
# 基础统计
total = len(rows)
avg_value = sum(float(r['value']) for r in rows) / total
max_value = max(rows, key=lambda r: float(r['value']))
result = {
"total_records": total,
"average": round(avg_value, 2),
"max": max_value
}
print(json.dumps(result, ensure_ascii=False))
EOF`
})
JSON数据处理
// 解析JSON并提取关键指标
exec({
command: "cat api_response.json | python3 -c \"
import json, sys
data = json.load(sys.stdin)
print(f'Items: {len(data)}')
print(f'Status: {data.get(\"status\")}')
\""
})
日志分析
// 分析Nginx访问日志
exec({
command: `awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20`
})
// 统计HTTP状态码分布
exec({
command: `awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn`
})
生成HTML报告
OpenClaw的write工具可以直接生成HTML格式的分析报告:
报告模板
// Agent自动生成的分析报告结构
write({
filePath: "/var/www/miaoquai/reports/2026-04-20.html",
content: `
数据日报 - 2026年4月20日
📊 数据日报 - 2026年4月20日
1,234
总访问量
456
独立访客
23%
转化率
趋势分析
今日访问量较昨日增长15%,主要来源为搜索流量...
页面 访问量 变化
/tools/openclaw-tutorial 342 ↑ 20%
/glossary/rag 256 ↑ 8%
`
})
定时报告系统
将数据分析封装为定时任务:
每日数据报告cron
cron({
action: "add",
job: {
name: "daily-data-report",
schedule: { kind: "cron", expr: "0 22 * * *", tz: "Asia/Shanghai" },
sessionTarget: "isolated",
payload: {
kind: "agentTurn",
message: `执行每日数据分析报告:
1. 读取 /var/log/nginx/access.log 统计今日访问数据
2. 分析流量来源分布
3. 识别Top 10热门页面
4. 生成HTML报告保存到 /var/www/miaoquai/reports/
5. 与昨日数据对比,标注变化趋势`,
timeoutSeconds: 300,
toolsAllow: ["exec", "read", "write"]
}
}
})
数据可视化
虽然Agent不能直接生成图表图片,但可以通过以下方式实现可视化:
1. CSS图表
// 纯CSS柱状图(内嵌在HTML报告中)
2. SVG图表
// Agent生成SVG内嵌图表
// 简单的饼图/折线图可以用SVG直接嵌入HTML
write({
filePath: "report.html",
content: `
`
})
3. Mermaid图表
graph TD
A[数据源] --> B[数据清洗]
B --> C[统计分析]
C --> D[生成报告]
D --> E[发送通知]
高级技巧
1. 数据缓存
// 将分析结果缓存为JSON,供下次对比
exec({
command: `echo '{"date":"2026-04-20","visits":1234,"unique":456}' > /tmp/daily_stats.json`
})
2. 异常检测
// 在SOUL.md中定义异常检测规则
## 数据分析规则
- 当日访问量低于前7天平均值的50%时,标记为⚠️异常
- 新页面收录数下降超过20%时,标记为⚠️需要关注
- 错误率超过5%时,生成告警
3. 多源数据整合
// 整合多个数据源
// Step 1: 读取Nginx日志
// Step 2: 读取SEO数据文件
// Step 3: 读取竞品报告
// Step 4: 整合分析,生成综合报告