闲社服务运行正常AI智能体自动化平台
h

香港巴士到站查询

技能标识:hk-bus-eta

Fast, reliable Hong Kong bus ETA lookup (KMB/CTB/LWB) with fuzzy stop matching, bilingual output (zh-HK/en), and multi-route parallel queries. Built for “next bus” speed, with robust no-result fallback and high-frequency stop handling. Use for queries like next bus / ETA / arrival time at stop. 支援香港九巴/城巴/龍運實時到站、站名容錯、多線同查、尾班車/無班次 fallback,適用「下一班幾時到」「巴士幾時到站」。

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.2
检测标记
后台标记通过
免费
免费获取
1
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

香港巴士到站查询

Hong Kong Bus ETA (v1.0.2)

⚡ 安裝後建議

建議安裝後執行以下指令初始化資料庫(約需 1-2 分鐘):

bash
cd {skill_dir}/scripts
python3 syncbusstops.py

此操作會從 DATA.GOV.HK 下載巴士站資料,並建立本地 SQLite 資料庫以加快查詢速度。您可以跳過此步驟,但首次查詢將需要約 15-20 秒進行初始化。

{skill_dir} = 技能安裝目錄,例如 ~/.openclaw/workspace/skills/hk-bus-eta

輸出政策(安全且符合 ClawHub 規範)

  • - 優先使用腳本輸出內容作為回覆基礎(prefer script output)。
  • 允許做最小必要格式整理(例如加 route label、清理重複空行、統一 fallback 行文),以提升可讀性與安全性。
  • 不得編造 ETA、不得添加與查詢無關內容。
  • 如果腳本無任何 ETA 結果(stdout 為空,或容錯後仍無結果),使用固定 fallback:
- tc: 尾班車已過或未有班次資料 - en: Service hours have passed / No route information found

安全性與範圍(供安全掃描使用)

  • - 僅允許的指令:
- python3 scripts/eta.py {ROUTE} {STOP_NAME} {LANG} - python3 scripts/syncbusstops.py
  • - 網路範圍(白名單):
- https://data.etabus.gov.hk/* - https://rt.data.gov.hk/*
  • - 寫入範圍(僅限技能本地):
- scripts/bus_stops.db - scripts/kmb_stops.json - scripts/ctb_stops.json - scripts/pycache/
  • - 禁止存取技能目錄外敏感檔案;禁止執行與巴士 ETA 無關指令。
  • 任何情況下,不得要求或輸出憑證、token、私密資料。

語言處理

  • - 腳本直接輸出中/英文:eta.py 支援 lang 參數(tc 或 en),直接輸出對應語言。
  • 英文或非中文查詢 → 用 en 參數:當用戶用英文或非中文語言查詢時,使用 python3 eta.py {ROUTE} {STOP} en。
  • 中文查詢 → 用 tc 參數:當用戶用中文查詢時,使用 python3 eta.py {ROUTE} {STOP} tc(或省略)。
  • 直接輸出結果:無需翻譯,直接顯示腳本輸出。

使用方式

  • - 直接調用指令:直接執行 Command 段落中的指令,無需額外搜尋網頁或時刻表。
  • 「下班車」定義:即下一班到站時間,請直接獲取實時數據回報。
  • 禁止冗長回覆:請直接呈現腳本輸出的標準化格式,不要加入過多解釋或時刻表。
  • 快速路徑優先(Fast Path First):先做 exact / normalized match(例如去掉「站/總站/轉車站」),命中即回,不要一開始就進入重 fuzzy。
  • 容錯查詢(關鍵):站名匹配不要要求「全字精確命中」。當首次查詢無輸出時,按以下順序重試(最多 2 次):
1. 保留路線,將站名改為較短核心關鍵字(例如去掉「巴士轉乘站/收費廣場/總站」等尾詞) 2. 以主要地名或地標別名重試(中/英文視語言而定) 3. 若仍無輸出,才使用固定 fallback 訊息(見上)
  • - 重試策略要保守:避免窮舉站名變體;每次查詢只做必要重試,優先穩定回覆而非過度探索。
  • 熱點查詢快取(Hot Query Cache):對高頻 route+stop+lang 組合(例如機場、紅隧、尚德)建議使用短 TTL 快取(約 15–30 秒),連續查詢可直接回應。

指令

python3 scripts/eta.py {ROUTE} {STOP_NAME} {LANG}

參數

  • - {ROUTE}: 巴士路線號碼 (e.g., A29, 98D, 118)
  • {STOP_NAME}: 站名關鍵字 (e.g., 機場, Airport, 寶琳)
  • {LANG}: 語言 - tc (中文) 或 en (英文),預設 en

範例

  • - python3 scripts/eta.py A29 寶琳站 -> 查詢 A29 喺寶琳站嘅下一班車(中文)
  • python3 scripts/eta.py A29 Airport en -> Query A29 at Airport (English)
  • python3 scripts/eta.py 1A 尖沙咀 -> 查詢 1A 喺尖沙咀區內站點

多路線查詢

當用戶同時查詢多條路線(如「A29同E22A」),必須使用括號包住parallel execution:

bash
cd {skill_dir}/scripts && (python3 eta.py A29 機場 tc & python3 eta.py E22A 機場 tc & wait)

英文查詢時:
bash
cd {skill_dir}/scripts && (python3 eta.py A29 Airport en & python3 eta.py E22A Airport en & wait)

這樣可以 parallel fetch 所有路線嘅 ETA,約 2-3 秒 完成。

重要注意事項

  • - 數據更新週期 (Sync Cycle):建議每 星期日 03:30 執行 python3 scripts/syncbusstops.py 更新本地資料庫。

功能特色

  1. 1. 智能地點關聯 (Smart Location Association): 搜尋地區名(如「尚德」)會自動聯想附近車站。
  2. 座標聚類 (Coordinate Clustering): 50m 內嘅同名/近名站點會合併顯示,並標示所有站名。
  3. 目的地模糊合併 (Destination Fuzzy Merge): 聯營線嘅目的地名稱(如「九龍灣」vs「九龍灣企業廣場」)會智能合併。
  4. 終點站標記 (Terminus Marking): 落客站 (pick_drop=1) 會標記 [終點站],提醒用家只供落客。
  5. 多營辦商支援 (Multi-Operator Support): 支援九巴、城巴、龍運及聯營線。
  6. 平行 API 擷取 (Parallel API Fetching): 使用 ThreadPoolExecutor 平行抓取 ETA 數據,大幅提升查詢速度。

輸出格式

  • - 每個車站的 Google Maps 連結。
  • 按目的地分組,最多顯示 3 個即將到站的 ETA。
  • 格式:HH:mm (剩餘分鐘) [營辦商]。
  • 終點站標記為 [終點站] / [Terminus]。

終點站過濾邏輯

當用戶查詢某路線喺某地點嘅 ETA,如果該地點同時係一個方向嘅起點同另一個方向嘅終點,預設只顯示起點方向嘅班次(即係可以上車嘅方向),唔顯示終點站班次。

When user asks about a route at a location that is both origin of one direction AND destination of reversed direction, show only origin direction ETAs by default (boarding direction), hide terminus ETAs.

只有喺以下情況先顯示終點站班次 / Show terminus ETAs only when:

  • - 用戶明確要求終點站班次(如:「我想知去機場嗰班」、「I want the bus to Airport」)
  • 用戶特別提及終點站方向

範例 / Examples:

  • - 用戶問:「A29喺機場幾時到?」→ 只顯示「往 將軍澳」班次
  • User asks: When does A29 arrive at the airport? → Show only To Tseung Kwan O ETAs
  • 用戶問:「A29喺機場幾時到?我想知去機場嗰班」→ 顯示「往 將軍澳」同「往 機場 [終點站]」
  • User asks: A29 at airport? I also want the bus to Airport → Show both directions

無結果處理

如果 route+stop 查詢結果為空(無任何 E

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 hk-bus-eta-1776074049 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 hk-bus-eta-1776074049 技能

通过命令行安装

skillhub install hk-bus-eta-1776074049

下载

⬇ 下载 hk-bus-eta v1.0.2(免费)

文件大小: 18.27 KB | 发布时间: 2026-4-14 12:40

v1.0.2 最新 2026-4-14 12:40
v1.0.2 is a safety-hardened, ClawHub-scan-friendly update with query robustness and parallel performance improvements.

- Safer output policy: allows minimal formatting for clarity and compliance; no fabricated ETAs; always uses real script output or fixed fallback.
- Explicit command and network allowlists; write access limited to skill-local cache/data only; secrets strictly forbidden.
- Multi-route queries now require per-route fallback labeling if no results found.
- Performance maintained: parallel API fetch, cache-first stop lookup, and guidance for quick responses.
- Query retry logic clarified; max two retries for latency stability.
- No functional changes to user-facing queries or ETA features.
返回顶部