korea-air-quality
대한민국 지역의 대기질을 OpenClaw에서 자연어로 조회하고, 브리핑/감시 흐름으로 연결한다.
Quick start
우선 references/api-and-product-plan.md 를 읽고 데이터 소스/범위를 확인한다.
그 다음 아래 흐름으로 처리한다.
- 1. 사용자가 원하는 것이 무엇인지 분류한다.
- 지금/오늘 대기질 조회
- 현재 위치 기반 조회
- 기본 지역 저장/변경
- 나쁨 이상 알림
- 아침 브리핑
- 여러 지역 비교
- 2. 지역 결정을 시도한다.
- 1순위: 사용자가 방금 공유한 위치 좌표
- 2순위: 저장된 기본 지역
- 3순위: 메시지에 포함된 지역명
- 3. 지역이 확정되면 측정소/행정구역 후보를 해석한다.
- 실시간 대기질과 예보를 조합해 짧고 실용적으로 요약한다.
- 반복 요청이면 alert/cron 흐름으로 바꾼다.
Core capabilities
1. 현재 대기질 조회
다음 같은 요청을 처리한다.
- - INLINECODE1
- INLINECODE2
- INLINECODE3
- INLINECODE4
반드시 포함한다.
- - 기준 지역 또는 측정소
- 측정 시각
- PM10 / PM2.5 / O3 가능 범위
- 등급(좋음/보통/나쁨/매우나쁨)
- 한 줄 행동 가이드
2. 현재 위치 기반 조회
사용자가 위치를 직접 보내거나 좌표가 있으면 가장 우선한다.
좌표가 있으면 가장 가까운 측정소를 찾는 방식으로 해석한다.
좌표가 없으면 저장된 기본 지역을 사용하고, 그것도 없으면 지역명을 다시 물어본다.
3. 기본 지역 저장
다음 요청을 처리한다.
- - INLINECODE5
- INLINECODE6
- INLINECODE7
- INLINECODE8
저장 위치는 data/user-preferences.json 같은 로컬 파일을 우선 고려한다.
사용자별 식별자가 필요하면 채널 사용자 id를 키로 쓴다.
현재 버전은 지역명 저장과 좌표 저장(save-location) 모두 지원한다.
4. 알림 / 감시
다음 요청을 처리한다.
- - INLINECODE11
- INLINECODE12
- INLINECODE13
현재 버전은 alert-add, alert-list, alert-check 명령으로 로컬 규칙 저장/점검이 가능하다.
alert-check 는 기본적으로 중복 hit를 다시 알리지 않도록 상태를 저장한다.
반복 감시는 watch 성격의 로컬 규칙 + OpenClaw cron 조합으로 설계한다.
5. 아침 브리핑
다음 요청을 처리한다.
- - INLINECODE18
- INLINECODE19
현재 버전은 morning-brief 명령으로 날씨 + 대기질 결합 브리핑을 생성할 수 있다.
브리핑은 모바일에서 읽기 좋게 짧게 쓰고, 아래 순서를 권장한다.
- - 지역
- 현재/예상 등급
- 핵심 수치
- 외출/환기/마스크 한 줄 팁
Location resolution policy
항상 아래 우선순위를 사용한다.
- 1. 사용자가 방금 보낸 위치 좌표
- 저장된 기본 지역
- 메시지에 적힌 지역명
- 아무 정보가 없으면 지역을 짧게 재질문
INLINECODE21 , 내 위치, 지금 있는 곳 같은 표현은 좌표 또는 기본 지역 해석을 먼저 시도한다.
Output style
출력은 한국어로, 짧고 실용적으로 쓴다.
권장 형식:
- - INLINECODE24
- INLINECODE25
- INLINECODE26
- INLINECODE27
- INLINECODE28
여러 지역 비교일 때는 지역별 1~2줄 요약으로 정리한다.
Resources
references/api-and-product-plan.md
데이터 소스 후보, 권장 MVP 범위, 위치 반영 전략, 알림 설계를 정리한 문서다. 이 스킬을 확장하거나 실제 API를 연결할 때 먼저 읽는다.
scripts/air_quality.py
실행 가능한 CLI다. 현재 버전은 Open-Meteo 기반으로 한국 지역 대기질 조회가 가능하며, 지역명 해석, 기본 지역/기본 좌표 저장, 여러 지역 비교, 알림 점검, 중복 알림 방지, 아침 브리핑, OpenClaw cron 초안 생성을 지원한다. --provider airkorea 레이어와 setup-provider 설정 흐름도 준비돼 있어 국내 API 연결 시 이 파일을 중심으로 확장한다.
korea-air-quality
通过OpenClaw以自然语言查询韩国地区的大气质量,并连接到简报/监控流程。
快速开始
首先阅读references/api-and-product-plan.md,确认数据源/范围。
然后按以下流程处理。
- 1. 分类用户的需求。
- 查询当前/今天的大气质量
- 基于当前位置查询
- 保存/更改默认地区
- 不良以上等级通知
- 早晨简报
- 多个地区比较
- 2. 尝试确定地区。
- 第1优先:用户刚分享的位置坐标
- 第2优先:已保存的默认地区
- 第3优先:消息中包含的地区名称
- 3. 地区确定后,解析监测站/行政区候选。
- 结合实时大气质量和预报,进行简短实用的总结。
- 如果是重复请求,则转换为alert/cron流程。
核心功能
1. 查询当前大气质量
处理以下请求。
- - 现在我们小区微尘怎么样?
- 告诉我今天首尔的空气质量
- 城东区超微尘怎么样?
- 盆唐空气怎么样?
必须包含以下内容。
- - 基准地区或监测站
- 测量时间
- PM10 / PM2.5 / O3 可能范围
- 等级(良好/普通/不良/非常不良)
- 一行行动指南
2. 基于当前位置查询
用户直接发送位置或存在坐标时,优先处理。
有坐标时,以查找最近监测站的方式解析。
无坐标时,使用已保存的默认地区,若也没有,则重新询问地区名称。
3. 保存默认地区
处理以下请求。
- - 把我的默认地区保存为城东区
- 以后按盆唐标准告诉我
- 删除默认地区
- 把我的当前位置保存为默认位置
保存位置优先考虑data/user-preferences.json等本地文件。
需要用户标识符时,使用频道用户ID作为键。
当前版本同时支持地区名称保存和坐标保存(save-location)。
4. 通知/监控
处理以下请求。
- - 超微尘不良以上时告诉我
- 首尔臭氧不良时告诉我
- 上班时间空气不好时告诉我
当前版本可通过alert-add、alert-list、alert-check命令进行本地规则保存/检查。
alert-check默认保存状态,避免重复通知。
重复监控设计为监控性质的本地规则 + OpenClaw cron组合。
5. 早晨简报
处理以下请求。
- - 每天早上7点告诉我今天的空气质量
- 和天气一起简报大气质量
当前版本可通过morning-brief命令生成天气+大气质量结合的简报。
简报应简短,便于手机阅读,建议按以下顺序。
- - 地区
- 当前/预计等级
- 核心数值
- 外出/通风/口罩一行提示
位置解析策略
始终使用以下优先顺序。
- 1. 用户刚发送的位置坐标
- 已保存的默认地区
- 消息中写明的地区名称
- 没有任何信息时,简短重新询问地区
我们小区、我的位置、现在所在的地方等表达,首先尝试解析坐标或默认地区。
输出风格
输出使用韩语,简短实用。
推荐格式:
- - 以城东区附近监测站为准
- 超微尘:38㎍/㎥ · 不良
- 微尘:54㎍/㎥ · 普通
- 一行总结:今天超微尘较高,建议减少长时间户外活动。
- 行动提示:窗户通风要短时,外出建议佩戴口罩
多个地区比较时,按每个地区1~2行总结整理。
资源
references/api-and-product-plan.md
整理了数据源候选、推荐MVP范围、位置反映策略、通知设计的文档。扩展此技能或连接实际API时,先阅读此文档。
scripts/air_quality.py
可执行的CLI。当前版本基于Open-Meteo可查询韩国地区大气质量,支持地区名称解析、默认地区/默认坐标保存、多个地区比较、通知检查、重复通知防止、早晨简报、OpenClaw cron草稿生成。--provider airkorea层和setup-provider设置流程也已准备就绪,连接国内API时以此文件为中心进行扩展。