Steam Game Assistant
Overview
Steam 游戏价格追踪助手,帮助用户追踪关注的 Steam 游戏价格变化,以折线图可视化呈现促销力度,结合 Steam 促销日历给出购买建议,并支持系统日历每日提醒。
安全合规红线(严禁违反)
本 Skill 严格遵守以下红线,任何修改都不得突破这些限制。
- 严禁自动化登录 — 不得以任何方式自动登录 Steam 账号。不得收集、存储、传输用户的 Steam 账号名或密码。不得模拟浏览器会话(session/cookie)以绕过登录。
- 严禁自动化购买 — 不得自动添加购物车、自动下单、自动支付或模拟任何购买流程。购买建议仅作为信息参考,所有购买行为必须由用户在 Steam 官方平台上手动完成。
- 只使用公开数据 — 仅使用无需登录即可访问的 Steam 公开 API(storesearch、appdetails、featuredcategories、公开心愿单)。不得爬取非公开页面,不得绕过 Steam 的访问控制。
- 尊重 Steam 服务条款 — 本工具仅提供价格信息展示和提醒功能,不替代 Steam 商店的任何功能。所有数据版权归 Valve Corporation 所有。
- 用户隐私保护 — 用户的 Steam ID 仅用于读取公开心愿单,不上传至任何第三方服务器,不与任何外部服务共享。
允许的行为:读取公开价格数据、展示价格趋势、生成购买建议(文字参考)、日历提醒。 禁止的行为:登录、加购、下单、支付、模拟浏览器操作、抓取非公开数据。
Quick Start
当用户表达"我想关注 XXX 游戏的价格"或类似需求时,按以下流程操作:
0. 心愿单一键导入(推荐优先使用)
如果用户想一次性导入所有关注的游戏,或提到"心愿单"/"wishlist":
# 导入用户 Steam 心愿单中的所有游戏
python scripts/steam_tracker.py wishlist "<Steam ID 或个人主页URL>"
此命令会:获取用户 Steam 心愿单 → 自动添加所有游戏到关注列表 → 抓取每个游戏的价格 → 生成仪表盘。
导入后自动开启心愿单自动同步(每次 update 时自动检查并导入心愿单中的新游戏)。
获取 Steam ID 的方式:
- 打开 Steam 客户端 → 点击头像 → 查看个人资料 → 复制浏览器 URL
- URL 格式:
https://steamcommunity.com/id/用户名/或https://steamcommunity.com/profiles/17位数字/ - 也可以直接输入 17 位 SteamID64
注意:用户的 Steam 心愿单必须设为公开(Steam > 设置 > 隐私 > "我的心愿单" = 公开)
1. 搜索并添加游戏
python scripts/steam_tracker.py search "游戏名称"
python scripts/steam_tracker.py add "游戏名称"
搜索会返回匹配的 Steam 游戏列表(含 appid、名称、价格)。确认后用 add 添加到关注列表。
2. 更新价格并生成仪表盘
python scripts/steam_tracker.py update
此命令会:抓取所有关注游戏的最新价格与促销信息 → 记录到价格历史 → 生成 HTML 仪表盘。
生成的仪表盘保存在 ~/.workbuddy/steam-assistant/dashboard.html,用 present_files 展示给用户。
2.5. 启动本地服务器(推荐,搜索功能需要)
重要:仪表盘内的搜索、添加游戏、心愿单导入功能需要本地服务器运行才能正常工作。
直接用 file:// 打开 HTML 文件时,浏览器 CORS 策略会阻止调用 Steam API,导致搜索失败。
# 在后台启动本地服务器
python scripts/steam_tracker.py serve
服务器启动后,用 present_files 展示 http://127.0.0.1:18023 链接给用户。
用户在浏览器中打开此链接后,可以在仪表盘内直接搜索、添加、移除游戏,无需复制命令到对话中。
何时使用 serve 而非 update:
- 首次展示仪表盘时,优先用
serve启动服务器再展示链接 - 用户需要在仪表盘内搜索/添加游戏时,用
serve - 仅需要查看已有数据时,可以用
update生成静态 HTML 后present_files
3. 设置日历提醒(可选,需询问用户)
python calendar_reminder.py create --morning 08:00 --evening 20:00
重要:必须在用户明确同意后才设置日历提醒,避免骚扰。
Core Capabilities
1. 游戏搜索与关注管理
| 命令 | 说明 |
|------|------|
| search <名称> | 搜索 Steam 游戏,返回 appid、名称、当前价格 |
| add <名称或appid> | 添加游戏到关注列表 |
| remove <名称> | 从关注列表移除游戏 |
| list | 列出所有关注的游戏 |
| wishlist <ID/URL> | 一键导入用户 Steam 心愿单中的所有游戏 |
| wishlist sync | 开启心愿单自动同步(每次 update 自动导入新游戏) |
| serve [port] | 启动本地 HTTP 服务器(默认端口 18023),支持仪表盘内搜索/添加/导入 |
| status | 显示关注游戏状态、近期促销、即将到来的 Steam 活动 |
# 示例
python scripts/steam_tracker.py search "Elden Ring"
python scripts/steam_tracker.py add "Elden Ring"
python scripts/steam_tracker.py list
python scripts/steam_tracker.py status
2. 价格追踪与仪表盘
# 抓取最新价格 + 生成仪表盘
python scripts/steam_tracker.py update
# 仅从已有数据生成仪表盘(不联网)
python scripts/steam_tracker.py dashboard --output /path/to/output.html
仪表盘功能:
- 左侧栏:关注游戏列表,显示当前价格和折扣标签,点击切换查看不同游戏
- 主区域:价格变化折线图(Chart.js 渲染),展示历史价格走势
- 购买建议卡片:基于当前价格、历史最低价、即将到来的促销活动给出建议
- 推荐区:跨平台高评分降价游戏推荐(可在配置中开启/关闭)
展示仪表盘:生成后用 present_files 打开 HTML 文件。
3. 购买建议逻辑
脚本基于以下因素综合判断:
- 当前价格 vs 历史最低价:接近历史最低 → 建议入手
- 当前折扣力度:折扣 ≥40% → 建议入手;折扣 <20% → 建议等待
- 即将到来的 Steam 促销:参考
references/steam_sale_calendar.md,若近期有大型促销(如夏季/冬季促销),建议等待 - 促销季节折扣预期:大型促销通常折扣 40%-60%
建议示例输出:
- ✅ 建议入手 — 当前价格接近历史最低,近期无更大促销
- ⏳ 建议等待 — 夏季促销预计 6 月 27 日开始,历史折扣可达 50%
- 💡 可考虑 — 当前折扣中等,若不急可等待秋季促销
4. 跨平台游戏推荐
# 开启/关闭推荐服务
python scripts/steam_tracker.py recommend
推荐数据来源:Steam 精选促销游戏 + 高好评率降价游戏。
重要:首次使用时必须询问用户是否需要推荐服务,避免骚扰。
5. 系统日历每日提醒
# 设置每日早晚提醒(需用户同意)
python scripts/calendar_reminder.py create --morning 08:00 --evening 20:00
# 手动触发价格检查并生成提醒
python scripts/calendar_reminder.py check --morning
python scripts/calendar_reminder.py check --evening
# 创建测试提醒
python scripts/calendar_reminder.py test
提醒规则:
- 早间提醒(默认 08:00):关注的游戏有价格变动时提醒具体内容
- 晚间提醒(默认 20:00):当日总结;若无值得注意的价格变化,仅提醒"今天无值得注意的价格变化"
- 提醒内容示例:
- "🎮 Elden Ring 已降至历史最低价 ¥148(原价 ¥298,折扣 50%)"
- "📉 Hades 到达近期最低价 ¥33,估计未来 1-2 月内不会再降"
- "ℹ️ 今天无值得注意的价格变化"
跨平台支持:
- Windows:通过 PowerShell + Outlook COM 创建日历事件
- macOS:通过 osascript + Calendar.app 创建日历事件
- 自动检测操作系统并选择对应方式
Workflow
用户典型交互流程:
用户: "我想关注 Elden Ring 和 Hades 的价格"
↓
Agent: search → add → update → present_files(dashboard.html)
↓
用户: "帮我导入我的心愿单"
↓
Agent: 询问 Steam ID → wishlist → 自动导入所有心愿单游戏 → 更新仪表盘
↓
用户: "帮我设置价格提醒"
↓
Agent: 确认后执行 calendar_reminder.py create
↓
用户: "还有哪些游戏值得买?"
↓
Agent: 确认推荐服务已开启 → recommend → 展示推荐列表
File Structure
steam-game-assistant/
├── SKILL.md # 本文件 - 主指令
├── scripts/
│ ├── steam_tracker.py # 核心脚本:搜索/关注/心愿单导入/价格追踪/仪表盘生成
│ └── calendar_reminder.py # 日历提醒脚本:跨平台日历事件创建
├── assets/
│ └── dashboard.html # 仪表盘 HTML 模板(含 Chart.js 折线图、心愿单导入按钮)
└── references/
├── steam_api_docs.md # Steam API 接口文档
└── steam_sale_calendar.md # Steam 促销日历参考
Data Storage
所有运行时数据存储在 ~/.workbuddy/steam-assistant/:
config.json— 用户配置(关注列表、推荐开关、Steam ID、心愿单自动同步、国家/语言)price_history.json— 价格历史记录dashboard.html— 生成的仪表盘reminder_state.json— 提醒状态ics_files/— 日历事件文件(macOS)
Important Notes
- 安全合规:本 Skill 严禁自动化登录和购买行为,仅使用 Steam 公开 API 读取价格数据。购买建议仅供参考,用户需自行在 Steam 官方平台完成所有购买操作。
- Steam API 限制:Steam Store API 无需密钥但有限速,脚本已内置重试和延迟机制
- 心愿单导入:需要用户 Steam 心愿单设为公开;支持 SteamID64、个人资料 URL、vanity URL 三种输入方式。仅读取公开心愿单数据,不涉及登录。
- 心愿单自动同步:首次导入后自动开启,每次
update时自动检查并导入心愿单中的新游戏 - 价格数据准确性:依赖 Steam Store API 实时数据,促销期间可能有短暂延迟
- 日历提醒:Windows 需要 Outlook 已安装并配置;macOS 需要授权日历访问权限
- 推荐服务:首次使用时必须询问用户是否开启,避免骚扰
- Python 依赖:仅使用标准库(urllib, json, subprocess),无需额外安装
微信扫一扫