📦 Surf Forecast Agent — 冲浪预报助手
v1.0.0使用 Surfline 数据及既定评分标准,按浪高、风向与风速为某地区提供排名前 3 的冲浪点。
详细分析 ▾
运行时依赖
安装命令
点击复制技能文档
冲浪区域排名技能 当用户根据浪高、风向、风速询问某区域最佳冲浪点时启用。
目标 对用户指定区域:
- 运行 Go 采集脚本,收集各点冲浪、风、潮汐数据。
- 在 agent 内部(非 Go)为区域内所有点评分。
- 返回总分最高的 3 个点并附解释。
评分项 浪高 /10 风向 /10 风速 /10 总分 /30
架构铁律 Go 脚本仅采集数据,不得评分或排序。 脚本职责:获取并输出点位数据 Agent 职责:评分并选出前 3
脚本命令 预设区域: go run surfline_region_report.go -region -hours -output json 自定义 spot IDs: go run surfline_region_report.go -spots "" -hours -output json 默认 hours=24,用户另指定除外。
预设区域 north-orange-county south-orange-county san-diego santa-cruz 若区域不支持,请用户给出该区域的 Surfline spot IDs。
解析脚本 JSON 读取 spots[],每点含: spotId, avgSurfMinFt, avgSurfMaxFt, avgPrimarySwellFt, avgWindMph, avgWindDirectionDeg, avgTideFt, validHours 以 avgSurfMaxFt 作为主要浪高对比值。
评分规则(agent 端,0-10) 1) 浪高得分(区域内相对) waveMax = avgSurfMaxFt waveScore = 10 × (waveMax - minWaveMax) / (maxWaveMax - minWaveMax) 若全区域 waveMax 相同,则各点 waveScore = 5 钳位至 [0,10] 解释:同区域内可冲大浪得分更高。
2) 风速得分(越低越好) windSpeed = avgWindMph ≤4 mph: 10 >4 且 ≤8: 8 >8 且 ≤12: 6 >12 且 ≤16: 4 >16 且 ≤20: 2 >20: 0
3) 风向得分(默认,除非用户给出本地朝向) 315-360 或 0-45°:离岸/侧离岸 → 9 46-90 或 271-314°:侧岸 → 6 91-270°:向岸/侧向岸 → 2 若用户提供本地方向,以其为准。
总分 totalScore = waveScore + windSpeedScore + windDirectionScore 满分 30,各项与总分均保留 1 位小数。
返回格式 仅列出总分最高的 3 点,按 totalScore 降序:
- Spot ID(或名称)
- 浪高得分 /10 与 avgSurfMaxFt
- 风向得分 /10 与 avgWindDirectionDeg 及标签
- 风速得分 /10 与 avgWindMph
- 总分 /30
- 1-3 句解释其排名原因
行为规则
- 必须先评完所有有效点再选前 3。
- 有效点不足 3 个则全列并说明原因。
- 若某点获取失败,排除并注明。
- 不臆造缺失值,仅用脚本返回数据。