Install
openclaw skills install @jeromeex/gold-trackerA zero-dependency gold price tracking skill for AI agents. Fetches live gold prices and USD/CNY rates, validates data, detects price breakouts with dynamic volatility-based thresholds (0.5%-3%), archives logs daily with auto-cleanup, and generates briefings.
openclaw skills install @jeromeex/gold-tracker安装此技能后,必须先运行初始化脚本:
python3 scripts/setup.py
该脚本会完成以下工作:
logs/ archive/ alerts/ .cache/)state.json(首次为空状态,fetch.py 运行后填入真实数据)初始化完成前不要执行其他命令。 如果 setup.py 报错,修复后重新运行。
每次运行黄金追踪时,按以下顺序执行。这是一个完整的分析周期:
python3 scripts/fetch.py
goldpricez.com 获取美元金价,从 open.er-api.com 获取 USD/CNY 汇率state.json 中的 current_price、last_price、change_pct 等字段输出:JSON 格式的价格数据,同时更新 state.json。
这是你的工作,不是脚本能完成的。读取 state.json 获取当前价格后:
web_search 搜索当前影响金价的因素(见下方「新闻搜索」章节)web_fetch 读取找到的文章,提取关键信息将分析结果写入 logs/YYYY-MM-DD.yaml(同一天多次运行则追加新的 YAML 文档):
---
run_id: "20260723-1430"
timestamp: "2026-07-23T14:30+08:00"
price_data:
gold:
price_usd: 4090.09
price_cny: 893.45
fx:
usd_cny: 6.78
source: open.er-api.com
summary:
focus: "一句话描述当前主线"
key_factors:
- factor: "FOMC 即将召开会议"
impact: "bearish"
reasoning: "这个因素如何影响金价"
sources:
- "https://..."
影响方向值(必须使用这些):
bullish · bearish · mixed · neutral · slightly_bullish · slightly_bearish
将完整分析写入 analysis.md(覆盖更新,不是追加)。格式参考现有 analysis.md 文件。
python3 scripts/alert_manager.py detect
alerts/YYYY-MM-DD.json如果有提醒触发,你可以将其标记为已发送:
python3 scripts/alert_manager.py status <alert_id> sent
python3 scripts/summary.py brief # 简报(用于推送)
python3 scripts/summary.py full # 完整摘要
简报从 state.json 和当日最新日志生成。审核内容后再发送给用户。
python3 scripts/normalize.py # 标准化日志中的时间戳和影响方向
python3 scripts/archive_manager.py archive # 归档非当日日志到 archive/YYYY-MM/
python3 scripts/alert_manager.py auto_resolve # 自动解决超时提醒
python3 scripts/alert_manager.py cleanup # 清理30天前的提醒记录
或一键执行:
python3 scripts/validate.py && python3 scripts/normalize.py && python3 scripts/archive_manager.py archive && python3 scripts/alert_manager.py auto_resolve && python3 scripts/alert_manager.py cleanup
数据获取由 crontab 自动调度(纯脚本,不消耗 token);分析由智能体在关键时段主动触发(消耗 token)。详见下方「定时调度」章节。
| 操作 | 频率 | 调度方式 | Token 消耗 |
|---|---|---|---|
fetch.py | 每 30 分钟 | cron | 无(纯脚本) |
alert_manager.py detect | 每次 fetch 后 | cron | 无(纯脚本) |
| 市场分析 + 写日志 | 每日 4 次(关键时段) | 智能体主动触发 | 有 |
summary.py brief | 每次分析后 | 智能体主动触发 | 无(纯脚本) |
alert_manager.py auto_resolve | 每日 1 次(02:00) | cron | 无 |
alert_manager.py cleanup | 每日 1 次(02:30) | cron | 无 |
archive_manager.py archive | 每日 1 次(23:30) | cron | 无 |
normalize.py | 每周 1 次(周一 03:30) | cron | 无 |
validate.py | 每次维护时 | 智能体主动触发 | 无 |
archive_manager.py cleanup | 每月 1 次(03:00) | cron | 无 |
关键时段(智能体应主动触发分析):
09:00 亚洲盘开盘15:00 欧洲盘开盘21:00 美国盘开盘01:00 美盘尾盘安装此技能的智能体(如 OpenClaw)应自动配置 crontab 来执行纯脚本任务。以下为推荐配置模板(路径需替换为实际安装路径):
# ===== 黄金追踪 crontab 配置 =====
# 假设 SKILL_PATH=/path/to/gold-tracker
# 数据获取 - 每 30 分钟
*/30 * * * * cd /path/to/gold-tracker && python3 scripts/fetch.py >> logs/cron.log 2>&1
# 异动检测 - fetch 后延迟 30 秒执行,避免文件竞争
*/30 * * * * cd /path/to/gold-tracker && sleep 30 && python3 scripts/alert_manager.py detect >> logs/cron.log 2>&1
# 自动解决超时提醒 - 每日 02:00
0 2 * * * cd /path/to/gold-tracker && python3 scripts/alert_manager.py auto_resolve >> logs/cron.log 2>&1
# 清理过期提醒 - 每日 02:30
30 2 * * * cd /path/to/gold-tracker && python3 scripts/alert_manager.py cleanup >> logs/cron.log 2>&1
# 归档非当日日志 - 每日 23:30
30 23 * * * cd /path/to/gold-tracker && python3 scripts/archive_manager.py archive >> logs/cron.log 2>&1
# 标准化日志 - 每周一 03:30
30 3 * * 1 cd /path/to/gold-tracker && python3 scripts/normalize.py >> logs/cron.log 2>&1
# 清理过期归档(>365天)- 每月 1 日 03:00
0 3 1 * * cd /path/to/gold-tracker && python3 scripts/archive_manager.py cleanup >> logs/cron.log 2>&1
安装时智能体应执行:
/path/to/gold-tracker 替换为实际安装路径crontab -e 或 crontab < file)crontab -l 中已包含相关条目logs/cron.log 是否有写入权限注意事项:
cron.log 超过 1MB,智能体应主动清理或轮转不要局限于固定的信息来源。 黄金的驱动因素随时间变化 —— 搜索当前影响市场的任何因素。
搜索角度(仅示例,非清单):
找到最佳来源,用 web_fetch 读取,引用它们。如果某个维度找不到数据,跳过它 —— 不要编造。
fetch.py 运行后自动更新。读取它来获取最新价格,避免重复请求:
{
"date": "2026-07-23",
"current_price": 4090.09,
"last_price": 4100.00,
"change_pct": -0.24,
"change_abs": -9.91,
"price_cny_per_gram": 893.45,
"usd_cny": 6.78,
"last_update": "2026-07-23T14:30+08:00",
"sources": {"gold": "goldpricez.com", "fx": "open.er-api.com"},
"key_data": {"open": 4120.43, "high": 4141.26, "low": 4086.97, "change_today": "-0.74%"}
}
不要手动编辑 state.json,它由 fetch.py 自动维护。
基于动态阈值的智能提醒系统:
python3 scripts/alert_manager.py detect # 检测并创建提醒
python3 scripts/alert_manager.py list # 列出活跃提醒
python3 scripts/alert_manager.py status <id> <status> # 更新状态
python3 scripts/alert_manager.py auto_resolve # 自动解决超时提醒
python3 scripts/alert_manager.py cleanup # 清理过期提醒
python3 scripts/alert_manager.py threshold # 查看当前动态阈值
提醒类型:
price_breakout_high/low — 突破阈值的涨跌提醒price_reversal_up/down — 反转方向提醒(变动达阈值70%)python3 scripts/archive_manager.py archive # 归档所有非当日日志
python3 scripts/archive_manager.py find <date> # 查询某日历史记录
python3 scripts/archive_manager.py history <days> # 获取价格历史
python3 scripts/archive_manager.py cleanup # 清理过期归档(>365天)
python3 scripts/archive_manager.py rebuild # 重建索引
python3 scripts/archive_manager.py summary # 显示索引摘要
归档文件命名:YYYY-MM-DD-HHMM.yaml(统一格式,避免冲突)
| 路径 | 内容 | 生命周期 |
|---|---|---|
logs/ | 当日 YAML 日志 | 自动归档(非当日) |
archive/YYYY-MM/ | 历史日志 | 365天 |
archive/index.json | 归档索引 | 自动更新 |
alerts/ | 价格提醒 JSON | 30天 |
analysis.md | 当前完整分析 | 覆盖更新 |
state.json | 最新价格快照 | 自动更新 |
.cache/ | HTTP 响应缓存 | 自动过期(5分钟) |
| 错误 | 原因 | 处理 |
|---|---|---|
| 金价获取失败 | 网络问题或 goldpricez.com 不可用 | 等待5分钟后重试;仍失败则使用上次 state.json 中的价格 |
| 汇率获取失败 | open.er-api.com 不可用 | 同上;可手动查询汇率并告知用户 |
| 金价异常 | 价格超出 $1000-$10000 范围 | 数据源可能返回错误数据,不要使用该价格 |
| state.json 不存在 | 首次运行或被误删 | 运行 python3 scripts/setup.py 重新初始化 |
.cache/ 目录,5分钟有效)state.json 中的最后已知价格python3 scripts/setup.py 修复python3 scripts/normalize.py| 脚本 | 作用 | 何时运行 |
|---|---|---|
setup.py | 环境初始化 | 安装后首次运行 |
fetch.py | 获取金价和汇率 | 每次分析开始时 |
validate.py | 验证项目完整性 | 维护时 |
normalize.py | 标准化日志格式 | 每周1次 |
alert_manager.py | 提醒检测与管理 | 每次 fetch 后 |
archive_manager.py | 归档与历史查询 | 每日1次 |
summary.py | 生成简报/摘要 | 每次分析后 |
dedup.py | 旧版提醒去重(legacy) | 仅处理 .md 格式提醒时 |
🥇 **黄金追踪** · MM-DD
💰 **金价**: $X,XXX.XX (+X.XX, +X.XX%)
| 因素 | 方向 | 逻辑 | 来源 |
|------|------|------|------|
| 标题 | 🟢 | 原因 | site.com |
**点评**: 一句话综合判断
来源: site · site · site