TECHNICAL REFERENCE

牛角燈塔守護隊 Bot
技術操作參考手冊

適用對象:技術人員 / 活動工作人員 版本:2026 年版(v3)

01判定機制總覽

Keyword Match

關鍵詞比對

  • 完全相等比對 text == kw,非包含
  • 未命中 → 送 AI 判讀
  • 防風
  • 🤖 「因為有防風需求」→ AI
Passphrase Match

密語比對 _norm_passphrase

  • 去首尾空白 + 去句尾標點後完全相等
  • 標點:!!。、,,.??…
  • 歸航 / 歸航!
  • 我們歸航了 / 已歸航
AI Judge

AI 判讀分支

  • AI → PASS:直接過關
  • AI → FAIL(第 1 次):推 hint,hint_shown=1
  • AI → FAIL(第 2 次):強制 PASS + 參考答案
Choice / Open / Year

其他題型

  • choice:取第一字元大寫比對,選錯仍推進,不走 AI
  • open (is_open=True):任何文字直接 PASS
  • year:接受民國 / 西元(±1911 互換),不走 AI

02全域指令

任何 stage、任何時間點皆有效(is_helping 攔截期間除外)。

輸入效果狀態變化
求助 進入求助模式,之後所有輸入靜默 is_helping=1
求助完成 離開求助模式,Bot 回「歡迎回來!」 is_helping=0
重置 清空進度、解除綁定、重新顯示 WELCOME ⚠️ 正式活動建議鎖定
進度 顯示 0–6 道光完成狀態

03條件指令

⏰ 來不及 — 牛角村關卡快速結算

觸發條件(三者同時成立)
  • 輸入 來不及(含 來不及! 等,句尾標點去除後比對)
  • 路線為牛角起點組(route牛角 開頭)
  • 目前 stage 為 maingate(正在進行村落六關)
執行動作
  1. 將全部六關(A–F)標為完成:completed_gates = ["A","B","C","D","E","F"]
  2. 清除關卡狀態:current_gate=Nonecurrent_task_idx=0hint_shown=0
  3. 切換 stage:beach_find_guide
  4. 依序推送:
    ①「⏰ 時間來不及了!牛角村其餘的關卡自動通過 ✅ 六道光已全部點亮 🔦」 BEACH_FIND_GUIDE_MSG(引導前往沙灘找嚮導)
不適用情況(靜默,不觸發)
  • 海灘起點組(route 以 海灘 開頭)
  • 已進入沙灘任務(beach_* stage)
  • 已完賽(done stage)

04開場流程

① 小隊編號 need_squad_id

  • ✅ PASS(roster.json 中存在)
    • 牛角起點:2-1 2-2 3-2 3-3
    • 海灘起點:1-1 1-2 1-3 2-3 2-4 3-1
  • ❌ FAIL:不在 roster → Bot 回「找不到小隊編號「X」,請確認後重新輸入。」
  • 特殊:編號已被綁定 → 「編號 X 已被其他隊伍使用」;自己已綁定其他編號 → 「你已綁定第 X 小隊」

② 小隊名稱 need_squad_name

✅ 任何文字皆 PASS

③ 全隊合照 need_team_photo

  • ✅ 上傳任意圖片 → 依路線分流:
    • 牛角起點 → stage=main
    • 海灘起點 → stage=beach_sup_silent
  • ❌ 輸入文字 → 「請直接上傳全隊合照📸(傳圖片,不是打字)」

05main 選單 stage: main

輸入詞對應關卡
石厝 / 會呼吸的石厝關 A
廟宇 / 火焰般的山牆 / 廟宇山牆關 B
做出幼 / 轉大人 / 成年關 C
剪花 / 窗上的祝福關 D
菜園 / 巷弄裡的菜園關 E
廢墟 / 被遺忘的家關 F
進度顯示進度
❌ 其他任何輸入 → 隨機 DOUBT_PHRASES:「你要確定餒?🤔」/「你確定嗎?」/「真的是這樣嗎?🧐」/「再想想看?」/「嗯⋯⋯真的嗎?」

06六關詳細

點擊關卡標題展開 / 收合。

A
🏠 會呼吸的石厝
6 個任務
📸 photo
  • ✅ 上傳任意圖片
  • ❌ 輸入文字 → 「請直接上傳照片(傳圖片,不是打字)」
🔤 choice
石厝牆上的石頭比較像?A. 積木整齊 B. 巧妙堆疊
  • B(答對,顯示知識點,過關)
  • A(答錯,顯示知識點,仍過關)
  • 其他 → DOUBT_PHRASES(附選項 QR)
💬 text → AI
屋頂瓦片上為什麼要壓石頭?
海風強風颱風吹走壓住固定防風
AI 標準有提到馬祖海風 / 強風 / 颱風,壓石頭固定瓦片防止被吹走
必 PASS「因為馬祖的海風很強,石頭可以壓住瓦片不被吹走」
必 FAIL「美觀」「讓房子重一點」「防曬」「不知道」
💡 hint想想馬祖最不缺的是什麼?提示:它看不見,但會把沒固定好的東西吹跑。
⚡ 強制屋頂壓石頭是為了抵擋馬祖強勁的海風,防止瓦片被掀飛。
💭 open
如果住在常有強風的地方,房子還可以做哪些防風設計?
  • ✅ 任何文字皆 PASS
💬 text → AI 附圖 A_1.jpg
牆上的這種小孔有什麼用途?
觀察防禦警戒銃眼
AI 標準提到觀察外面 / 瞭望 / 防禦 / 警戒 / 海盜 / 敵人等完整概念即 PASS
必 PASS「瞭望孔可以觀察海盜是否靠近」
必 FAIL「通風」「採光」「放雜物」「裝飾」
💡 hint很久以前沿海居民最怕海上的不速之客從海上靠近。這個孔可以讓居民提早發現危險,同時又要避免被不速之客發現自己在看他。
⚡ 強制這個孔叫做銃眼,是一個內大外小的孔,可以架設火銃、槍械向外攻擊,防禦外敵入侵。
💬 text → AI 附圖 A_2.jpg
牆壁上為什麼會趴著形態各異的魚?
排水雨水落水頭吐水魚魚嘴吉祥豐收漁村
AI 標準需提到魚形裝置與排水 / 雨水導流功能;僅說裝飾未提排水 → FAIL
必 PASS「那隻魚是用來排水的,雨水從魚嘴流出」
必 FAIL「好看」「代表漁村文化」(只有文化,無排水功能)
💡 hint下雨的時候,這隻魚其實會『工作』喔!想想看牠和屋頂的雨水有什麼關係?
⚡ 強制倒掛的魚叫做落水頭或吐水魚,是屋頂排水系統的一部分,可以把雨水導離牆面。魚的造型也象徵豐收、吉祥與馬祖的漁村文化。
B
🔥 火焰般的山牆
7 個任務
📸 photo
  • ✅ 上傳任意圖片
  • ❌ 輸入文字 → 「請直接上傳照片」
💭 open
你覺得廟宇屋頂兩端高翹的形狀,最像什麼?
  • ✅ 任何文字皆 PASS
💬 text → AI
你覺得這個牆為什麼要蓋得比屋頂還高呢?
防火關鍵詞(任一命中即 PASS)
防火火災火勢延燒蔓延阻隔隔火封火
防風關鍵詞(任一命中也 PASS)
強風海風東北季風颱風防風
⚠️ 若以防風關鍵詞通過此題,任務⑤題目將自動翻轉(改問防火)
必 PASS「防止火從一間燒到另一間蔓延」
必 FAIL「好看」「讓神明住得更高」
💡 hint早期聚落的房屋蓋得很密集,如果其中一間失火,最怕發生什麼事呢?
⚡ 強制封火山牆蓋得比屋頂高,是為了阻隔火勢蔓延,避免火災從一棟燒到另一棟。
💬 text → AI
這種高出屋頂能幫助阻隔火勢的山牆,形似烈火的屋頂結構叫○○○牆?
封火山牆風火山牆馬鞍形山牆
必 PASS「好像是叫封火山牆」
必 FAIL「防火牆」「山形屋頂」「廟牆」「馬頭牆」
💡 hint它的名字裡有「火」,因為它最早是為了防止火災蔓延而設計的。也有人說它像馬背上的鞍。
⚡ 強制這種建築特色叫做封火山牆(又稱風火山牆、馬鞍形山牆),是閩東建築最具代表性的特色之一。
💬 text → AI題目依任務③作答自動切換
預設版本任務③以防火關鍵詞過關 → 問防風
題目:除了防火之外,封火山牆在馬祖還能幫助居民對抗什麼自然環境?
強風海風東北季風颱風防風
翻轉版本任務③以防風關鍵詞過關 → 改問防火
題目:除了防風之外,封火山牆還能發揮什麼功能?
防火火災火勢延燒蔓延阻隔隔火封火
🔤 choice
古人為什麼把山牆設計成不同造型?A. 五行 B. 十二生肖 C. 節氣變化
  • A(答對,顯示知識點,過關)
  • B / C(答錯,顯示知識點,仍過關)
📅 year
找找廟旁的石碑,輸入碑文上的神蹟年份
  • ✅ PASS:39(民國)/ 1950(西元),兩者換算互通
  • ❌ FAIL:其他任何數字
💡 hint找找廟旁刻字的石碑,上面通常會寫「中華民國○○年」或西元年份。
⚡ 強制碑文上記載的年份是民國 39 年(西元 1950 年)。牛峰境五靈公廟是牛角聚落的信仰核心,歷經整修重建,守護著世代在此討海的居民。
C
🎊 轉大人的儀式
5 個任務(任務①在 intro 處理)
💬 text → AI
「做出幼(做十六歲)」這個習俗代表什麼?
成年長大大人轉大人成人十六歲脫離孩童成年禮祝福
必 PASS「是孩子長大成為大人的儀式」
必 FAIL「是一種食物」「拜拜的東西」「生日慶典」
💡 hint這是孩子滿十六歲時辦的儀式,慶祝他從「囡仔」變成了什麼?
⚡ 強制做出幼(做十六歲)是閩東的成年禮俗,象徵孩子正式脫離童年、成為大人,由家族為他舉辦儀式祝福。
🔤 choice
做出幼認為幾歲是成年階段?A. 12歲 B. 16歲 C. 18歲
  • B
  • A / C(仍過關)
💭 open
成為大人最重要的是什麼?A. 年齡到了 B. 願意承擔責任。請輸入 A 或 B 並說明。
  • ✅ 任何文字皆 PASS
💭 open
你心中「長大成人」的那一刻是什麼?
  • ✅ 任何文字皆 PASS
D
✂️ 窗上的祝福
4 個任務
📸 photo
  • ✅ 上傳任意圖片
  • ❌ 輸入文字 → 「請直接上傳照片」
💭 open
你在剪花上看到了什麼圖案或元素?
  • ✅ 任何文字皆 PASS
💬 text → AI
剪花常出現在什麼場合?象徵什麼?
結婚婚禮喜慶節慶過年節日吉祥祝福平安好運
必 PASS「婚禮和節慶時貼的,代表吉祥」
必 FAIL「葬禮」「裝飾品」「沒有特別意義」
💡 hint紅紅的剪紙貼在門窗上,通常是有「好事」要發生的時候——你想到什麼好事?
⚡ 強制剪花(閩東剪紙窗花)常出現在婚慶與節慶,貼於門窗,象徵吉祥、平安與祝福。
💭 open
如果要替小隊設計一張剪花,你會放進什麼圖案?為什麼?
  • ✅ 任何文字皆 PASS
E
🥬 巷弄裡的菜園
5 個任務
📸 photo
  • ✅ 上傳任意圖片
  • ❌ 輸入文字 → 「請直接上傳照片」
💭 open
請找出菜園裡的一種植物。
  • ✅ 任何文字皆 PASS
💬 text → AI
在四面環海、運補不便的島上,自己種菜對居民有什麼意義?
自給自己種不用買運補運輸新鮮糧食方便循環
必 PASS「不需要從台灣運來,可以自己供應食物」
必 FAIL「好玩」「打發時間」「美化環境」
💡 hint島四面是海,菜要從台灣運來很久。自己種,解決了什麼問題?
⚡ 強制島上運補不便,自己種菜能讓居民自給自足、減少依賴運輸,是島嶼循環生活的體現。
💭 open
如果遇到颱風或船班停航,自己種菜會帶來什麼幫助?
  • ✅ 任何文字皆 PASS
💭 open
如果只能種一種蔬菜,你會種什麼?為什麼?
  • ✅ 任何文字皆 PASS
F
🏚️ 被遺忘的家
5 個任務
📸 photo
  • ✅ 上傳任意圖片
  • ❌ 輸入文字 → 「請直接上傳照片」
💭 open
請用一個詞形容這棟房子給你的感覺。
  • ✅ 任何文字皆 PASS
💭 open
你覺得這棟房子大概多久沒有人住了?你是從哪裡看出來的?
  • ✅ 任何文字皆 PASS
💬 text → AI
這棟房子為什麼會被遺棄?
外移搬走人口去台灣離開沒人住漁業沒落捕魚沒工作
必 PASS「因為漁業沒落,大家都搬到台灣了」
必 FAIL「地震」「海嘯」「太舊了」「沒有錢修繕」(未提人口外移或漁業)
💡 hint以前牛角是馬祖第一大漁村,後來魚變少了,人就……去哪了?
⚡ 強制牛角曾是馬祖第一大漁村,後來漁業沒落、人口外移至台灣,許多家庭就此離開,留下這些老屋。
💭 open
如果讓你替它找一個新用途,你會把它變成什麼?
  • ✅ 任何文字皆 PASS

07沙灘流程

🏄

密語 1 — beach_sup_silent(海灘起點組 SUP 期間)

歸航
  • 歸航 / 歸航! / 歸航。 → 進 beach_find_guide
  • ❌ 其他任何輸入 → 完全靜默
🧭

密語 2 — beach_find_guide(找到嚮導)

我們找到了
  • 我們找到了(含 我們找到了!)→ 推 guide_found + SDG 第 1 題
  • ❌ 其他輸入 → DOUBT_PHRASES
  • 特殊:輸入 GATE_TRIGGERS 字詞 → 「六道光都已點亮 ✅ 目前請繼續沙灘的任務喔!」
🌊

密語 3 — beach_cleanup(淨灘完成)

淨灘完成
  • 淨灘完成(含 淨灘完成!)→ 進 beach_form
  • ❌ 其他輸入 → DOUBT_PHRASES
📋

密語 4 — beach_form(表格填完)

紀錄完成了
  • 紀錄完成了(含 紀錄完成了!
    • 牛角組 → 進 beach_sup,推送 BEACH_SUP_MSG
    • 海灘組 → stage=main sup_done=1,解鎖六關
  • ❌ 其他輸入 → DOUBT_PHRASES
🏆

密語 5 — beach_sup(牛角組 SUP)

歸航
  • 歸航(含 歸航!)→ 推送 BEACH_COMPLETION 三則訊息 + 結業獎狀圖 → stage=done
  • ❌ 其他輸入 → DOUBT_PHRASES

結業後 — done

任何輸入(文字、貼圖、圖片)→ 完全靜默,Bot 不回應

08快速查閱表

所有密語

密語觸發時機
歸航beach_sup_silent / beach_sup
我們找到了beach_find_guide
淨灘完成beach_cleanup
紀錄完成了beach_form

條件指令

指令適用效果
來不及牛角組
main/gate
六關自動通過,跳沙灘

main 選單觸發詞

觸發詞關卡
石厝 / 會呼吸的石厝關 A
廟宇 / 火焰般的山牆 / 廟宇山牆關 B
做出幼 / 轉大人 / 成年關 C
剪花 / 窗上的祝福關 D
菜園 / 巷弄裡的菜園關 E
廢墟 / 被遺忘的家關 F

所有關鍵詞(完全相等即直接 PASS,不經 AI)

關卡任務關鍵詞
A
海風強風颱風吹走壓住固定防風
A
觀察防禦警戒銃眼
A
排水雨水落水頭吐水魚魚嘴吉祥豐收漁村
B
防火火災火勢延燒蔓延阻隔隔火封火強風海風東北季風颱風防風
B
封火山牆風火山牆馬鞍形山牆
B依任務③作答切換(預設:防風;翻轉:防火)— 詳見上方
B
391950
C
成年長大大人轉大人成人十六歲脫離孩童成年禮祝福
D
結婚婚禮喜慶節慶過年節日吉祥祝福平安好運
E
自給自己種不用買運補運輸新鮮糧食方便循環
F
外移搬走人口去台灣離開沒人住漁業沒落捕魚沒工作