Install
openclaw skills install @thcjp/reportopenclaw skills install @thcjp/report核心功能: 本技能提供自动化配置和灵活的参数设置、多种配置选项等能力。
配置自定义周期性报表,用户定义数据源,自动处理调度与格式化投递.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 定制报表生成处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 定制报表生成自动处理调度与格式化 | 不支持 | 支持 |
| 复杂工作流可视化编排 | 不支持 | 支持 |
| 条件分支与异常重试 | 不支持 | 支持 |
| 定时触发与事件驱动 | 不支持 | 支持 |
| 执行日志与审计追踪 | 不支持 | 支持 |
~/report/
├── memory.md # 索引 + 偏好设置
├── {name}/
│ ├── config.md # 报表配置
│ ├── data.jsonl # 历史数据
│ └── generated/ # 已生成的报表
首次使用前创建: mkdir -p ~/report
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
~/report/{name}/config.md 中以YAML格式定义报表名称、调度计划、数据源、格式与投递渠道0 9 * * *、每周 0 9 * * 1、每月 0 9 1 * * 与按需触发四种调度频率chat(对话回复)、telegram(Telegram消息)、file(本地文件)、email(邮件)四种投递渠道~/report/memory.md)、暂停报表(更新配置)、按需运行(立即生成)file 投递保持本地存储详细的输入输出格式请参考下方章节说明。
本技能:
~/report/ 目录存储报表配置用户驱动模型:
本技能不会:
无固定要求。 用户按需提供API密钥:
export STRIPE_API_KEY="${API_KEY:?请设置环境变量}"
export ANALYTICS_API_KEY="${API_KEY:?请设置环境变量}"
配置中引用环境变量名,永不引用值.
外部投递(Telegram/webhook/email)将报表内容发送到设备外.
file 投递保持在本地(~/report/{name}/generated/)创建报表时:
示例:
用户: "每周生成一次我的Stripe收入报表"
助手: "我需要Stripe API访问权限。请在你的环境中设置 STRIPE_API_KEY。"
用户: "已完成"
配置存储为 "source": {"type": "api", "env": "STRIPE_API_KEY"}
在 ~/report/{name}/config.md 中:
name: weekly-revenue
schedule: "0 9 * * 1" # 每周一上午9点
sources:
- type: api
env: STRIPE_API_KEY # 用户提供
format: chat
delivery: telegram
| 频率 | Cron表达式 | 示例 |
|---|---|---|
| 每日 | 0 9 * * * | 每天上午9点 |
| 每周 | 0 9 * * 1 | 每周一上午9点 |
| 每月 | 0 9 1 * * | 每月1日上午9点 |
| 按需 | - | 用户请求时 |
用户在 config.md 中配置:
chat — 在对话中回复telegram — 发送到Telegram(用户提供chat ID)file — 保存到 ~/report/{name}/generated/email — 通过用户配置的邮件发送"列出我的报表" → 读取 ~/report/memory.md
"暂停X报表" → 更新配置
"立即运行X" → 按需生成
mkdir -p ~/report 创建数据存储目录STRIPE_API_KEY)
4.md中创建YAML配置,指定schedule、sources、format和delivery`# ~/report/weekly-revenue/config.md
name: weekly-revenue
schedule: "0 9 * * 1"
sources:
- type: api
env: STRIPE_API_KEY
endpoint: "https://api.stripe.com/v1/charges"
params:
created.gte: "last_week_start"
created.lt: "today"
format: chat
delivery: telegram
输出:
报表 weekly-revenue 已创建.
调度: 每周一上午9点
数据源: Stripe API (环境变量 STRIPE_API_KEY)
投递: Telegram
请在环境中设置 STRIPE_API_KEY 后生效.
# ~/report/daily-standup/config.md
name: daily-standup
schedule: "0 8 * * 1-5"
sources:
- type: api
env: PROJECT_API_TOKEN
projectmgmt.com/v2/tasks"
params:
assignee: "current_user"
status: "in_progress"
format: chat
delivery: chat
# ~/report/monthly-summary/config.md
name: monthly-summary
schedule: "0 9 1 * *"
sources:
- type: file
path: "~/projects/logs/"
pattern: "*.jsonl"
format: markdown
delivery: file
输出:
报表 monthly-summary 已生成.
保存位置: ~/report/monthly-summary/generated/2024-01-01-summary.md
包含 3 个数据源的汇总分析.
用户: "列出我的报表"
助手: "当前报表:
1. weekly-revenue (每周一 9:00, Telegram投递, 活跃)
2. daily-standup (工作日 8:00, 对话投递, 活跃)
3. monthly-summary (每月1日 9:00, 文件投递, 已暂停)"
# ...
用户: "暂停daily-standup"
助手: "已暂停 daily-standup 报表。下次调度将跳过执行。"
# ...
用户: "立即运行weekly-revenue"
助手: "正在生成 weekly-revenue 报表...
已通过Telegram投递。本周收入总计 $12,450,较上周增长8.3%。"
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 环境变量未设置 | 用户未在环境中配置 STRIPE_API_KEY 等凭证 | 提示用户执行 export STRIPE_API_KEY="..." 设置环境变量,配置中仅引用变量名 |
| Cron表达式无效 | schedule 字段格式错误(如 0 9 * 少字段) | 使用标准5字段Cron格式 分 时 日 月 周,参考调度计划表 |
| 外部API认证失败 | API密钥过期或无效 | 检查环境变量值是否正确,确认API密钥未过期,重新生成密钥后更新环境变量 |
| Telegram投递失败 | chat ID错误或Bot Token无效 | 确认Telegram Bot Token已配置,chat ID正确(负数表示群组),Bot已加入目标群组 |
| 数据源不可达 | API端点宕机或网络超时 | 检查API端点URL是否正确,确认网络连通性,设置机制或切换备用端点 |
| 配置文件格式错误 | config.md 中YAML缩进或语法错误 | 使用标准YAML缩进(空格而非Tab),验证 name、schedule、sources、format、delivery 字段完整性 |
| 文件权限错误 | ~/report/ 目录无写入权限 | 执行 chmod 755 ~/report 修改权限,确认用户对目录有读写权限 |
| 报表生成超时 | 数据源返回大量数据导致处理超时 | 在配置中添加分页参数限制单次拉取量,或缩小查询时间范围 |
| 投递内容过大 | 报表内容超过投递渠道限制(如Telegram消息4096字符) | 切换为 file 投递生成本地文件,或启用摘要模式精简内容 |
A: 在 config.md 的 sources 数组中添加新条目。每个数据源需指定 type(api/file)、env(环境变量名,仅API类型)和 endpoint(API端点URL)。如需外部API访问,需先在环境中设置对应的环境变量,配置中仅引用变量名而非值.
A: 标准Cron格式为 分 时 日 月 周。例如 0 9 * * 1 表示每周一上午9点: 分(0)、时(9)、日(*任意)、月(*任意)、周(1=周一)。0 9 1 * * 表示每月1日9点。0 8 * * 1-5 表示工作日(周一至周五)8点.
A: chat 在对话中直接回复,适合即时查看;telegram 发送到Telegram群组或用户,适合团队共享;file 保存到 ~/report/{name}/generated/ 本地目录,适合归档和审计;email 通过邮件发送,适合正式分发。外部投递(telegram/email)会将内容发送到设备外,需确保信任目标.
A: 凭证以环境变量形式存储,配置文件中仅引用变量名(如 STRIPE_API_KEY),永不存储明文值。使用 export VAR_NAME="value" 在环境中设置。技能不会存储凭证值,也不会在日志或报表中暴露凭证。每次运行时从环境中读取.
A: 使用"暂停X报表"命令,技能会更新 config.md 将报表标记为暂停状态,下次调度将跳过执行。恢复时使用"恢复X报表"命令。按需运行不受暂停状态影响,使用"立即运行X"可随时强制生成.
A: 历史数据存储在 ~/report/{name}/data.jsonl 中,每次生成的报表保存在 ~/report/{name}/generated/ 目录。所有报表的索引和用户偏好存储在 ~/report/memory.md 中。使用 file 投递渠道的报表会持久保存,其他渠道投递后也会在本地保留副本.
A: 直接编辑 ~/report/{name}/config.md 文件,修改 schedule、sources、format 或 delivery 字段。修改后下一次调度将使用新配置。也可通过对话指令如"将weekly-revenue改为每日9点"让技能自动更新配置文件.
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 数据收集 | 8小时 | 2小时 | 6小时 | 5% |
| 数据处理 | 16小时 | 4小时 | 12小时 | 3% |
| 报表生成 | 12小时 | 1小时 | 11小时 | 4% |
| 报表格式化 | 4小时 | 0.5小时 | 3.5小时 | 2% |
| 报表投递 | 2小时 | 0.5小时 | 1.5小时 | 1% |
| 总计 | 42小时 | 8.5小时 | 33.5小时 | 15% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 易用性 | 高 | 低 | 中 | 高 |
| 定制性 | 高 | 低 | 中 | 高 |
| 效率 | 高 | 低 | 中 | 高 |
| 成本 | 低 | 高 | 中 | 高 |
| 可靠性 | 高 | 低 | 中 | 高 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 报表生成效率低 | 手动生成报表耗时较长,影响工作效率 | 影响工作效率,增加人力成本 | 使用本技能自动化生成报表 | 时间节约33.5小时 |
| 报表格式不统一 | 不同报表格式不统一,影响数据可视化 | 影响数据可视化,降低决策效率 | 使用本技能统一报表格式 | 准确率提升15% |
| 报表投递不及时 | 报表投递不及时,影响决策效率 | 影响决策效率,增加决策风险 | 使用本技能定时投递报表 | 时间节约1.5小时 |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 数据源无法访问 | 数据源配置错误或凭证过期 | 检查数据源配置和凭证 | 修正配置或更新凭证 |
| 报表生成失败 | 数据处理错误或报表配置错误 | 检查数据处理过程和报表配置 | 修正数据处理过程或报表配置 |
| 报表格式错误 | 报表配置错误或格式化工具问题 | 检查报表配置和格式化工具 | 修正配置或更换工具 |
| 报表投递失败 | 投递渠道配置错误或网络问题 | 检查投递渠道配置和网络状态 | 修正配置或解决网络问题 |
| 定时任务未执行 | Cron定时配置错误 | 检查Cron定时配置 | 修正配置 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
A1: 配置自定义周期性报表,。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。