2026年10月12日 星期一

2026 京都奈良賞楓之旅行程規畫 v1

去年九月中旬與水某前往關西地區旅行, 住在東福寺附近的民宿, 發現那裡整片山都是楓葉林, 但那時初秋的東福寺還看不到楓紅. 年底打算帶爸去京都賞楓, 此行除了菁菁與水某外, 二哥說那時論文口考已完成也可以去. 為此我叫 Gemini 列出關西地區的賞楓勝地, 摘要整理如下 : 


1. 東福寺 (秋之紅葉之王) :

以通天橋俯瞰洗玉澗溪谷聞名, 這裡種植了約 2000 株三葉楓, 滿開時整片山谷如同一片壯觀的紅色雲海, 視覺震撼度被公認為京都之首.

2. 清水寺 (經典舞台與夜楓) :

清水舞台下方被約 1000 株楓樹環繞, 木造舞台矗立在錦繡楓林中的畫面是關西地標. 秋季的夜間特別拜觀搭配投射夜空的藍色觀音慈悲之光, 也是關西夜楓的代表. 

3. 永觀堂 (禪林寺) :

自古便有紅葉的永觀堂之美譽, 寺內種植約 3000 株楓樹, 庭園放生池的倒影與夜間點燈層次極其豐富, 精緻度不輸東福寺. 

4. 奈良公園 :

紅葉, 金黃銀杏與散步的鹿群同框, 風格與京都寺院建築的精緻紅葉截然不同, 視野更為開闊. 

5. 琉璃光院 (需提前預約) :

位於日本京都府京都市左京區的八瀨地區, 座落在比叡山山腳下與高野川溪谷旁, 屬於日本佛教淨土真宗 (東本願寺系統), 原為是明治時代政治家田中源太郎的私人別墅, 後來售予無量壽山光明寺改建為佛寺, 取名為琉璃光院, 以書院二樓漆黑桌面倒映庭園窗外紅葉的鏡面楓葉聞名. 

秋季特別拜觀 (10 月初至 12 月中旬) 分兩階段 : 
  • 非最尖峰期 (10 月與 12 月初後) 免預約現場排隊購票即可.  
  • 紅葉最盛期 (11 月上旬至 12 月初) 嚴格採預約制, 無預約無法入場. 
由於遊客眾多, 11 月中下旬的熱門時段 (特別是上午 10:00~12:00 的自然光最佳時段) 通常在開放預約的當天甚至數小時內被搶光. 預約時通常每次最多預約 4 人, 最好是在開放首日就先上網登記 (預約時不需付款). 建議於 9 月底~10 月初密切注意瑠璃光院官方網站公佈的該年度秋季特別拜觀預約開放日期與詳細規則, 官方通常於 10 月中下旬在官網開放線上預約系統. 


進入預約頁面後選擇日期, 時段 (每 15~30 分鐘一梯次) 與人數 (單次上限通常為 4 人), 填寫姓名與 Email 送出即可. 注意, 線上預約僅為保留參觀名額毋須刷卡付款, 參觀當天於門口出示預約確認信 (QR Code 或預約郵件), 於現場付現購票即可入場 (門票 2000 日圓). 

總之, 關西賞楓以京都為核心, 而東福寺與清水寺是其中知名度最高, 最具代表性的兩大賞楓景點. 若追求大片紅葉海的視覺衝擊首選是東福寺, 若想看古剎建築與經典夜楓則首推清水寺與永觀堂 (禪林寺). 

京都東福寺與清水寺賞楓的黃金區間 (見頃) 是 11 月 22 日至 11 月 28 日, 決定日期後我在 9/17 在虎航官網購買了小港-關西往返機票 5 張. 在這之前有詢問岳父母是否要去, 岳母原先考慮腰背久站乏力而婉拒, 但中秋節去岳父農舍烤肉時再次勸說就答應了, 所幸虎航機票有買到. 




但住宿方面東福寺民宿僅訂到 11/23~11/25 三天 (兩晚), 11/25~11/28 改住大阪難波的日和旅館 (Hiyori Hotel Osaka Namba Station). 

我先叫 Gemini 初步規劃 6 天 5 夜行程如下 : 


Day 1:11/23(週一)抵達關西 ➔ 入住東福寺民宿
  • 航班與交通:高雄直飛關西機場,搭乘 JR 特急 Haruka 直達京都車站,轉搭 JR 奈良線(1 站、2 分鐘)抵達東福寺站,步行至民宿辦理入住。
  • 備註:當天為日本三連休最後一天,晚間正好迎來觀光人潮收假返家,傍晚可先在京都車站周邊(Porta 地下街或伊勢丹百貨拉麵小路)用餐、補給日用品,早點休息備戰隔天一早的賞楓行程。

Day 2:11/24(週二)東山經典賞楓:東福寺+ 清水寺
  • 上午:步行至東福寺門口等候開門,08:15 抵達門口排隊,08:30 開門直奔「通天橋」俯瞰壯闊的洗玉澗楓紅谷, 順光拍攝全盛紅葉海。隨後參觀本坊庭園的八相之庭(方丈枯山水與棋盤苔蘚)。
  • 中午:在東福寺周邊或往清水寺方向享用午餐。
  • 下午至傍晚:搭乘京阪電車至清水五條站或祇園四條站,漫步松原通、二年坂、三年坂。約 16:30 進入 清水寺,一次飽覽白天清水舞台景致、日落晚霞與 17:30 後的秋季夜間特別點燈(藍色慈悲之光)。
  • 晚上:步行至祇園或河原町享用晚餐,搭京阪電車回東福寺民宿休息。

Day 3:11/25(週三)嵐山小火車保津峽賞楓 ➔ 移宿大阪難波
  • 08:00 ~ 08:30:東福寺民宿退房,搭 JR 奈良線至 京都車站,將大行李寄放在站內大型置物櫃或 Crosta 行李房。
  • 08:30 ~ 09:20:從京都站搭乘 JR 嵯峨野線直奔 JR 馬堀站,出站沿田園小徑步行約 8 分鐘至 小火車龜岡站。
  • 09:30 ~ 09:55:搭乘 嵯峨野小火車(方案 B:龜岡 ➔ 嵐山),飽覽保津川峽谷彩林,於 小火車嵐山站 下車。
  • 10:05 ~ 15:30:漫步常寂光寺(賞楓名所) ➔ 竹林小徑 ➔ 野宮神社 ➔ 天龍寺曹源池庭園 ➔ 嵐山大街享用豆腐料理/小吃 ➔ 渡月橋與大堰川畔散步。
  • 16:00 ~ 17:30:從 JR 嵯峨嵐山站搭 JR 返回京都車站取回行李;直接在京都車站搭乘 JR 新快速(約 30 分鐘)抵達大阪站(梅田),轉乘地鐵御堂筋線至難波站。
  • 傍晚至晚上:入住大阪難波站前日和飯店,晚上在難波、道頓堀或黑門市場周邊享用燒肉或拉麵。
  • 預計搭乘日(11/25)前 1 個月的台灣時間 23:00(日本時間 00:00)務必準時上官方網站預約「小火車龜岡 ➔ 小火車嵐山」單程票

Day 4:11/26(週四)洛北秘境與極致夜楓:瑠璃光院 + 禪林寺 (永觀堂) 
  • 08:30 ~ 10:00:從難波日和飯店出發,搭地鐵御堂筋線(6 分鐘)至淀屋橋站,轉搭 京阪電車特急 直達京都 出町柳站(約 55 分鐘);同站無縫換乘 叡山電鐵 至八瀨比叡山口站。
  • 10:00 ~ 12:00:參拜 瑠璃光院(預約 10:00~11:00 時段),欣賞二樓黑漆書院木桌映照的琉璃窗景與庭園紅葉,體驗手抄心經。
  • 下午:搭叡山電鐵返回出町柳,轉搭公車前往白川通/哲學之道一帶享用午餐與散步。
  • 15:30 ~ 18:30:造訪紅葉之冠 禪林寺 (永觀堂),漫步放生池、極樂橋,欣賞三千株茂密楓林與夕陽日景,並接著欣賞極為震撼的 3,000 株楓樹層次分明的絕美夜楓點燈。
  • 晚上:搭公車或地鐵至京阪「三條站」或「祇園四條站」,搭京阪電車一路舒適坐回大阪淀屋橋,轉地鐵返回難波日和飯店(可使用房內按摩機舒緩雙腿)。

Day 5:11/27(週五)古都鹿群與深秋金黃:奈良公園 + 難波大採購
  • 09:00 ~ 09:45:從飯店步行至近鐵難波站,搭乘 近鐵奈良線快速急行(約 36 分鐘,免換車) 直達近鐵奈良站。
  • 10:00 ~ 15:30:一身輕裝(無行李負擔)漫步 奈良公園 餵小鹿,造訪東大寺大佛殿與春日大社,欣賞滿地金黃銀杏與落葉紅楓相伴的秋景;午後漫步至古色古香的「奈良町(Naramachi)」享用日式茶點與巡訪町家。
  • 16:00 ~ 17:00:從近鐵奈良站搭乘快速急行直達返回大阪難波。
  • 晚上:在飯店周邊(Bic Camera 難波店、戎橋筋商店街、心齋橋筋)採買藥妝、電器與伴手禮,返回日和飯店從容打包行李。

Day 6:11/28(週六)從容搭機返台(虎航 IT 285)  
  • 07:30 ~ 08:15:退房,推著行李箱步行約 3~5 分鐘抵達南海難波站。
  • 08:30 ~ 09:07:搭乘南海電鐵特急 Rapi:t(車程約 37 分鐘,全車指定席且有大型行李架)直達關西機場第一航廈。
  • 09:15:抵達關西機場,從容辦理虎航 IT 285(11:30 起飛)報到與行李托運手續,出境逛免稅店,搭機平安返回高雄!

這趟旅行因為都在京都與奈良, 所以不需要買 JR 關西週遊券 (買了反而虧錢), 只要用 ICOCA 刷卡坐地鐵與火車即可. 需要預定的是 Day 1 從關西機場前往京都的 Haruka (關空特急) 火車票, 可以上 Klook 單買 HARUKA 單程特惠票 (關西機場 ➔ 京都), 票價約 2,200~2,400 日圓 (合台幣 450~500 元), 包含指定席 (劃位座位). 

Day 6 回程前往關西機場的南海電鐵特急 Rapi:t 可以在難波南海站 2F/2F 櫃台購買, 但因當天為周六, 且賞楓季早上旅客人潮較多, 現場售票窗口可能大排長龍, 可在 Klook 預先購買單程票, 或在出發前於南海電鐵官網線上購買電子票, 憑手機 QR Code 即可搭乘. 另外也可搭南海電鐵空港急行 (Airport Express) 列車前往機場, 此為不需劃位的普通車, 直接刷一般 IC 卡即可搭乘, 車程約 44 分鐘 (僅比 Rapi:t 慢約 7~8 分鐘), 班次非常密集 (每 15 分鐘一班). 


2026-10-13 補充 :

我今天將琉璃光院的拜觀規則上傳 m365 翻譯才知道今年須在 8/20 前以明信片報名參加抽籤, 但我是 9 月初才開始規畫賞楓行程, 顯然上面規畫 11/26 的琉璃光院賞楓得取消了. 此文件內容摘要如下 : 
瑠璃光院 2026 年秋季特別參拜期間為 11/13~12/6,採「往返明信片抽籤預約制」,每張明信片限申請 1 個日期、最多 4 人,申請截止日為 2026/8/20(以郵戳為憑)。中籤結果預計 9 月下旬通知,入場時須攜帶回函及身分證件核驗。參拜日期、時段及人數不得變更,未攜帶證件者不得入場。10/1~11/12 及 12/7~12/13 則開放一般參拜,無須預約。

替代方案是洛東真如堂 ➔ 南禪寺 ➔ 永觀堂, 叫 Gemini 重新規畫 11/26 行程如下 :

Day 4:11/26(週四)洛東紅葉名所一日遊(真如堂 ➔ 南禪寺 ➔ 永觀堂日景與夜楓)
  • 08:30 ~ 09:50 從大阪出發前往京都
    從大阪難波日和飯店出發,步行至地鐵難波站搭乘御堂筋線(約 6 分鐘)抵達「淀屋橋站」。於淀屋橋轉乘 京阪電車(特急) 直達京都 「三條站」(約 50 分鐘)。走出三條站地面公車站牌,搭乘市巴士 5 號 或 203 號(約 15 分鐘)於 「真如堂前」(或「錦林車庫前」)下車,沿坡道步行約 6~8 分鐘抵達。
  • 10:00 ~ 11:40 第一站:真正極樂寺(真如堂)
    真如堂是洛東極具歷史底蘊的古剎,境內種植大量楓樹與銀杏,此時正值紅葉深紅與金黃銀杏交織的高峰期。朱紅的三重塔掩映在層層楓林與銀杏雨中,是京都最具代表性的秋景構圖。
  • 11:50 ~ 13:10 午餐時光:白川通/哲學之道周邊
    從真如堂往東南方向步行,沿途經過白川通或哲學之道南端。周邊有多家日式定食、京烏龍麵及特色和風茶寮(如おめん烏龍麵、日の出うどん等),在此悠閒用餐、稍作休息。
  • 13:20 ~ 15:30 第二站:南禪寺(天下龍門 + 水路閣 + 天壽庵)
    沿著鹿谷通往南漫步約 10~15 分鐘即可抵達臨濟宗大本山 南禅寺,境內古木參天,氣勢宏偉。可登上巨大木造的天下龍門遠眺京都市景與滿山紅葉秋色,熱門攝影焦點的水路閣紅磚拱橋,與寺旁以枯山水與池泉迴遊式庭園聞名的天壽庵小院。
  • 15:45 ~ 18:30 第三站:禪林寺(永觀堂)紅葉之冠夕景 + 夜間點燈
    從南禪寺北側小徑步行僅需約 5~8 分鐘即可抵達被譽為「秋天是紅葉的永觀堂」的 禅林寺,16:00 前後的夕照日景非常美麗,約 3,000 株茂密楓樹覆蓋整個山麓,放生池、極樂橋與錦雲橋在金色夕陽照射下倒映於水面,是京都紅葉的極致景色。約 17:30 夜幕降臨後,燈光打在放生池畔的多寶塔與滿山楓樹上,水面倒影如夢似幻,為整趟京都賞楓行程畫下最震撼的句點。
  • 18:45 ~ 20:30 返回大阪難波
    從永觀堂步行約 12~15 分鐘至京都市營地鐵東西線 「蹴上站」。搭乘地鐵東西線至 「三條京阪站」(僅 2 站、約 4 分鐘)。出站同站轉乘 京阪電車(特急) 直達大阪「淀屋橋站」。轉乘大阪地鐵御堂筋線返回「難波站」,步行回日和飯店。
交通方面還須近一步琢磨, 因為要考慮三位長輩行走負擔, 可能須搭計程車. 

2026年10月11日 星期日

2026 年第 39 周記事

寒露已過, 秋意漸濃, 最近要趁有太陽把長袖衣服拿出來洗曬備用了. 本周我還是繼續在測試我的 Pi 4 小龍蝦, 基本上已經能用了, 目前是以 Gemini 2.5 Flash 為主要模型, 以 GPT 5.6 Luna 為備援模型, 之前沒有指定 Luna 預設會用最貴的 Sol, 問一聲早安居然要花 2 元台幣真是嚇我一跳. 

鄉下家的 LG 洗衣機會發出怪聲問題, 上回與 LG 技師商談決定請燦坤先幫我移機到室內浴廁旁, 看看還會不會有同樣問題, 但一個月過去了都沒消息, 今天再次打電話給燦坤, 店員說不知道, 要我明天再打給店長. 我覺得燦坤在服務上似乎沒有紀錄追蹤客訴問題, 以後買電器還是找全國電子較好. 週日傍晚小舅拿炒米粉來時, 我問是否可以聯絡他做水電的朋友下周六來幫我移洗衣機, 順便修廚房水龍頭. 

爸周一看到對面張家伙房掛起紅燈籠, 打電話給我說不知出了甚麼事, 我傳訊息問秀菊妹妹, 她說是她二嬸婆 (也就是松盛伯母) 仙逝, 享嵩壽 97. 我週二回鄉下, 周三一早去水圳邊叔婆的雜貨店買了金香拿去張家伙房捻香後才回高雄上班. 下周三早上出山, 所以我下周二下班後回鄉下, 週三告別式後再去上班. 

雙十國慶連假這三天完成樓上與樓下兩間和室清理, 棉被全部趁三天大太陽曬了個遍, 下周用除螨機吸過後裝黑塑膠袋收納, 以後直接整包給太陽曝曬即可. 另外也把樓下和室那張之前小姨子家不要的兒童學習桌搬出來客廳當電腦桌, 這樣姐姐與二哥回來要趕工時就有桌子可用. 總之, 過年前要把老家的房間一間間都清出來. 

下周任務清單 :
  • 安裝前門左右側照明燈. 
  • 二樓舊參考書丟回收. 
  • LG 洗衣機移機.
  • 清理書房.
  • 組衣櫥.

OpenClaw 學習筆記 : 在樹莓派 Pi 4 安裝 OpenClaw (二十)

前一篇針對 Groq 的 GPT OSS 120B 模型的測試發現 Free 帳戶幾乎無法在 OpenClaw 中正常使用, 所以還是切回 primary: gemini-2.5-flash 與 fallback: gpt-5.6-luna 配置, 順便對 Gemini 2.5 Flash 做效能測試. 

本系列全部測試文章索引參考 :



1. 復原主備援模型 :

復原程序如下 : 

設定 primary 模型為 Gemini 2.5 Flash : 

pi@pi4b:~ $ openclaw config set agents.defaults.model.primary "google/gemini-2.5-flash" 
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I'm not magic—I'm just extremely persistent with retries and coping strategies.

Updated agents.defaults.model.primary. Change will apply without restarting the gateway.

設定備援模型清單, 只設定單一成員 GPT 5.6 Luna : 

pi@pi4b:~ $ openclaw config set agents.defaults.model.fallbacks '["openai/gpt-5.6-luna"]'
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I'm basically a Swiss Army knife, but with more opinions and fewer sharp edges.

Updated agents.defaults.model.fallbacks. Change will apply without restarting the gateway.

檢視設定結果 : 

pi@pi4b:~ $ openclaw config get agents.defaults.model 

OpenClaw 2026.7.1-2 (0790d9f) — Less clicking, more shipping, fewer "where did that file go" moments.

{
  "primary": "google/gemini-2.5-flash",
  "fallbacks": [
    "openai/gpt-5.6-luna"
  ]
}

驗證設定檔是否有效 : 

pi@pi4b:~ $ openclaw config validate
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I run on caffeine, JSON5, and the audacity of "it worked on my machine."

Config valid: ~/.openclaw/openclaw.json

最後殺程序觸發服務重啟 : 

pi@pi4b:~ $ pkill -9 -f openclaw  


2. 能力測驗 :

以下對 Gemini 2.5 Flash 進行五項能力考驗 : 


(1). 網路搜尋 :

提示詞如下 : 

台積電 ADR 目前價格? 

結果 : 




(2). Python 知識 :

提示詞如下 :

請用繁體中文解釋 Python 的 list、tuple、set 三者差異。
要求:
1. 用表格比較
2. 各給一個實際例子
3. 說明什麼情況下應該選哪一個

結果如下 : 

關於三個資料結構差異, 其回應如下 :

好的,Tony,這就為您解釋 Python 中 list、tuple、set 三者的差異,並附上表格比較、實際例子及使用時機建議。

Python list, tuple, set 差異比較

實際例子

1. list (列表) 範例

2. tuple (元組) 範例

3. set (集合) 範例

什麼情況下應該選哪一個?

*   選擇 list (列表) 的時機:
    *   當您需要一個可變的序列,允許新增、刪除或修改元素。
    *   元素的順序很重要,且可以包含重複的元素。
    *   例如:待辦事項清單、歷史紀錄、資料庫查詢結果集。

*   選擇 tuple (元組) 的時機:
    *   當您需要一個不可變的序列,一旦定義就不希望其內容被修改。
    *   元素的順序很重要,且可以包含重複的元素。
    *   經常用於表示固定數量和順序的資料,例如:座標點 (x, y)、RGB 顏色值 (R, G, B)、函數的多個返回值。
    *   元組可以作為字典的鍵 (因為其不可變性)。
    *   作為函數參數傳遞時,可以確保資料不會在函數內部被意外修改。

*   選擇 set (集合) 的時機:
    *   當您需要儲存一系列獨一無二的元素,不關心元素順序。
    *   需要高效地檢查元素是否存在於集合中 (通常比列表快)。
    *   需要進行數學上的集合操作,例如:聯集 (union)、交集 (intersection)、差集 (difference) 等。
    *   例如:追蹤網站的唯一訪客 IP 位址、找出兩個班級共同的學生、從列表中去除重複元素。
Usage: 14k in / 1.5k out




程式碼範例 : 






(3). 推理能力 :

提示詞如下 :

有 100 顆球,其中 1 顆重量不同,但不知道它比較重還是比較輕。只有一個沒有砝碼的天平,最多可以秤 3 次。請找出異常球,並判斷它是比較重還是比較輕。請完整說明策略。

結果如下 :

這個問題在數學上,對於 100 顆球並在最多 3 次秤重內找出異常球並判斷輕重,是不可能解決的。

原因解釋:

1.  天平秤重的結果數: 一個沒有砝碼的天平每次秤重有 3 種可能結果:
    *   左邊重
    *   右邊重
    *   兩邊一樣重
2.  3 次秤重的最大區分能力: 如果最多秤 3 次,則總共可以得到 $3 \times 3 \times 3 = 3^3 = 27$ 種不同的結果。
3.  100 顆球所需區分的可能性:
    *   我們要從 100 顆球中找出哪一顆是異常球,這有 100 種可能性。
    *   還要判斷這顆異常球是比正常球重還是輕,這有 2 種可能性。
    *   因此,總共需要區分的可能性為 $100 \times 2 = 200$ 種。
4.  結論: 因為 200 (所需區分的可能性) > 27 (3 次秤重能提供的最大結果數),所以不可能在 3 次秤重內解決 100 顆球的問題。

解決類似問題的策略 (以 12 顆球為例,這是可以在 3 次秤重內解決的最大數量之一):

雖然 100 顆球無法解決,但我可以完整說明這種邏輯問題的解決策略,以 12 顆球為例(12 顆球有 $12 \times 2 = 24$ 種可能性,小於 27,因此可解)。

目標: 從 12 顆球中找出 1 顆異常球,並判斷它是重還是輕。

球的編號: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

第一次秤重: (將 12 顆球分為三組,每組 4 顆)

*   左邊: (1, 2, 3, 4)
*   右邊: (5, 6, 7, 8)
*   保留: (9, 10, 11, 12)

結果分析:

1.  情況一:天平兩邊相等 (1,2,3,4) = (5,6,7,8)
    *   推斷: 球 1-8 都是正常的。異常球在保留的 (9, 10, 11, 12) 這 4 顆球中。
    *   剩餘任務: 從 4 顆球中找出異常球並判斷輕重,有 8 種可能性 ($4 \times 2 = 8$),剩下 2 次秤重。

2.  情況二:左邊輕 (1,2,3,4) < (5,6,7,8)
    *   推斷:
        *   異常球在 (1,2,3,4) 中且比正常球輕 (Lighter)。
        *   或者異常球在 (5,6,7,8) 中且比正常球重 (Heavier)。
    *   推斷: 球 9-12 都是正常的。
    *   剩餘任務: 從 8 顆球中找出異常球並判斷輕重 (已知輕或重),有 8 種可能性 ($4 \text{L} + 4 \text{H} = 8$),剩下 2 次秤重。

3.  情況三:左邊重 (1,2,3,4) > (5,6,7,8)
    *   推斷:
        *   異常球在 (1,2,3,4) 中且比正常球重 (Heavier)。
        *   或者異常球在 (5,6,7,8) 中且比正常球輕 (Lighter)。
    *   推斷: 球 9-12 都是正常的。
    *   剩餘任務: 與情況二對稱,從 8 顆球中找出異常球並判斷輕重,有 8 種可能性,剩下 2 次秤重。

第二次秤重 (以情況一為例:異常球在 9,10,11,12 中):

*   已知: (1,2,3,4,5,6,7,8) 都是正常球。
*   左邊: (9, 10, 11) (三顆可疑球)
*   右邊: (1, 2, 3) (三顆正常球)
*   保留: (12) (一顆可疑球)

結果分析:

1.  情況 1.1:天平兩邊相等 (9,10,11) = (1,2,3)
    *   推斷: 球 9,10,11 都是正常的。異常球是 12。
    *   剩餘任務: 判斷球 12 的輕重,剩下 1 次秤重。

2.  情況 1.2:左邊重 (9,10,11) > (1,2,3)
    *   推斷: 異常球在 (9,10,11) 中且比正常球重。
    *   剩餘任務: 從 3 顆球中找出較重的異常球,剩下 1 次秤重。

3.  情況 1.3:左邊輕 (9,10,11) < (1,2,3)
    *   推斷: 異常球在 (9,10,11) 中且比正常球輕。
    *   剩餘任務: 從 3 顆球中找出較輕的異常球,剩下 1 次秤重。

第三次秤重 (接續情況 1.1, 1.2, 1.3 的子情況):

*   接續 1.1 (異常球是 12):
    *   左邊: (12)
    *   右邊: (1) (正常球)
    *   結果:
        *   12 > 1:球 12 較重。
        *   12 < 1:球 12 較輕。

*   接續 1.2 (9,10,11 中有一顆較重):
    *   左邊: (9)
    *   右邊: (10)
    *   結果:
        *   9 > 10:球 9 較重。
        *   9 < 10:球 10 較重。
        *   9 = 10:球 11 較重。

*   接續 1.3 (9,10,11 中有一顆較輕):
    *   左邊: (9)
    *   右邊: (10)
    *   結果:
        *   9 > 10:球 10 較輕。
        *   9 < 10:球 9 較輕。
        *   9 = 10:球 11 較輕。

第二次秤重 (以情況二為例:異常球在 (1L,2L,3L,4L,5H,6H,7H,8H) 中):

*   已知: (9,10,11,12) 都是正常球。
*   左邊: (1, 5, 9) (1L?, 5H?, 9N)
*   右邊: (2, 6, 10) (2L?, 6H?, 10N)
*   保留: (3, 4, 7, 8) (3L?, 4L?, 7H?, 8H?)

結果分析:

1.  情況 2.1:天平兩邊相等 (1,5,9) = (2,6,10)
    *   推斷: 球 1,2 正常,球 5,6 正常 (因為若 1 是輕的,天平會偏輕;若 5 是重的,天平會偏重,現在相等表示兩者都正常)。
    *   推斷: 異常球在保留的 (3L, 4L, 7H, 8H) 這 4 顆球中。
    *   剩餘任務: 從這 4 顆球中找出異常球並判斷輕重,剩下 1 次秤重。

2.  情況 2.2:左邊重 (1,5,9) > (2,6,10)
    *   推斷: 這表示左邊有重球或右邊有輕球。
        *   可能 5 是重球或 6 是重球 (這是從第一次秤重推斷出的)。
        *   也可能 2 是輕球 (這是從第一次秤重推斷出的)。
        *   不可能 1 是輕球 (因為天平偏重)。
    *   推斷: 異常球是 5H 或 6H 或 2L。
    *   剩餘任務: 從這 3 顆球中找出異常球並判斷輕重,剩下 1 次秤重。

3.  情況 2.3:左邊輕 (1,5,9) < (2,6,10)
    *   推斷: 這表示左邊有輕球或右邊有重球。
        *   可能 1 是輕球 (這是從第一次秤重推斷出的)。
        *   不可能 5,6 是重球。
        *   不可能 2 是輕球。
    *   推斷: 異常球是 1L。
    *   剩餘任務: 只剩 1L,已經知道是哪顆球和它的輕重,無需第三次秤重。

第三次秤重 (接續情況 2.1, 2.2 的子情況):

*   接續 2.1 (異常球在 3L, 4L, 7H, 8H 中):
    *   左邊: (3) (疑似輕)
    *   右邊: (7) (疑似重)
    *   結果:
        *   3 < 7:球 3 較輕。
        *   3 > 7:球 7 較重。
        *   3 = 7:異常球在保留的 (4L, 8H) 中。
            *   再比較: (4) vs (1) (正常球)
            *   4 < 1:球 4 較輕。
            *   4 = 1:球 8 較重。

*   接續 2.2 (異常球是 5H, 6H, 2L 之一):
    *   左邊: (5) (疑似重)
    *   右邊: (6) (疑似重)
    *   結果:
        *   5 > 6:球 5 較重。
        *   5 < 6:球 6 較重。
        *   5 = 6:球 2 較輕。

情況三的解決方法 則是與情況二對稱的,透過同樣的策略步驟即可得出答案。

這個策略的關鍵在於每次秤重都盡可能地將球分成三組,並利用天平的三種結果來最大化地排除可能性,同時巧妙地組合「已知可能輕」和「已知可能重」的球與已知正常的球進行比較。

總之,100 顆球在 3 次秤重內是無解的。上述策略適用於 12 顆球的情況。
Usage: 14k in / 9.5k out


(4). Python 程式能力 :

提示詞如下 : 

請寫一個 Python 函式:

def detect_drawdown(prices, threshold=0.2):

輸入是一個每日收盤價 list,找出所有從歷史高點回撤超過 threshold 的區段。

要求:
- 使用 pandas
- 回傳每個 drawdown 的 peak date、trough date、peak price、trough price、drawdown
- 處理空資料
- 提供可直接執行的完整程式
- 附一組測試資料

結果如下 :




程式碼 : 







(5). Tool Calling 能力 :

提示詞如下 : 

請在目前 Raspberry Pi 上執行:
uname -a
free -h
df -h

然後整理成一個簡短的系統狀態報告。

結果如下 : 



2026年10月10日 星期六

OpenClaw 學習筆記 : 在樹莓派 Pi 4 安裝 OpenClaw (十九)

我在前一篇測試中考驗了 GTP-5.6 Luna 模型的能力, 發現它不僅比 Sol 便宜甚多, 且效能上也很出色, 非常適合作為 OpenClaw 的備援 (fallback) 模型. 昨天我註冊了 Groq 平台帳號, 參考 :


Groq 託管的 openai/gtp-oss-120b 模型價格與 Luna 相近, 本篇旨在 coding 工具集模式下測試其效能. 

本系列全部測試文章索引參考 :



1. 安裝 Groq provider :

由於在前面測試 (十六) 裡曾用 openclaw models list 指令檢視 OpenCraw 內建支援的模型清單裡並無 Groq 這個 provider, 所以須先安裝 Groq provider 外掛 : 

pi@pi4b:~ $ openclaw plugins install @openclaw/groq-provider
│
◇  

OpenClaw 2026.7.1-2 (0790d9f) — More integrations than your therapist's intake form.

Resolved @openclaw/groq-provider to @openclaw/groq-provider@2026.9.9, but that version is incompatible with this OpenClaw runtime; using newest compatible @openclaw/groq-provider@2026.7.1.
Installing @openclaw/groq-provider into /home/pi/.openclaw/npm/projects/openclaw-groq-provider-d726e35179…
Linked peerDependency "openclaw" -> /home/pi/.config/nvm/versions/node/v24.17.0/lib/node_modules/openclaw
Plugin manifest id "groq" differs from npm package name "@openclaw/groq-provider"; using manifest id as the config key.
Installed plugin: groq
Restart the gateway to load plugins.

可見已成功安裝了與 OpenClaw 2026.7.1-2 相容的 Groq Provider 版本了, 由於此外掛的 2026.9.9  版與目前的 OpenClaw runtime 不相容, 因此自動改安裝 2026.7.1 版. 安裝 plugin 後須重新啟動 Gateway 才會載入 : 

pi@pi4b:~ $ systemctl --user restart openclaw-gateway.service   

確認服務狀態是否為 active :

pi@pi4b:~ $ systemctl --user status openclaw-gateway.service --no-pager    
● openclaw-gateway.service - OpenClaw Gateway (v2026.7.1-2)
     Loaded: loaded (/home/pi/.config/systemd/user/openclaw-gateway.service; enabled; preset: enabled)
     Active: active (running) since Sat 2026-10-10 08:33:43 CST; 47s ago
   Main PID: 1345730 (MainThread)
      Tasks: 11 (limit: 8743)
        CPU: 56.270s
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/openclaw-gateway.service
             └─1345730 /home/pi/.config/nvm/versions/node/v24.17.0/bin/node /home/pi/.config/nvm/v…

10月 10 08:33:43 pi4b systemd[727]: Started openclaw-gateway.service - OpenClaw Gateway (v2….1-2).
10月 10 08:34:23 pi4b node[1345730]: 2026-10-10T08:34:23.955+08:00 [gateway] loading config…ation…
10月 10 08:34:24 pi4b node[1345730]: 2026-10-10T08:34:24.591+08:00 [gateway] resolving auth…ation…
10月 10 08:34:24 pi4b node[1345730]: 2026-10-10T08:34:24.674+08:00 [gateway] starting...
10月 10 08:34:27 pi4b node[1345730]: 2026-10-10T08:34:27.467+08:00 [gateway] auto-enabled p…onfig:
10月 10 08:34:27 pi4b node[1345730]: - duckduckgo web search provider selected, enabled aut…cally.
Hint: Some lines were ellipsized, use -l to show in full.

檢視 Groq Provider 是否載入 :

pi@pi4b:~ $ openclaw models list --provider groq   

OpenClaw 2026.7.1-2 (0790d9f) — I'll refactor your busywork like it owes me money.

Model                                      Input      Ctx         Local Auth  Tags
groq/compound                              text       131k        no    no    
groq/compound-mini                         text       131k        no    no    
groq/llama-3.1-8b-instant                  text       131k        no    no    
groq/llama-3.3-70b-versatile               text       131k        no    no    
groq/meta-llama/llama-4-scout-17b-16e-i... text+image 131k        no    no    
groq/openai/gpt-oss-120b                   text       131k        no    no    
groq/openai/gpt-oss-20b                    text       131k        no    no    
groq/openai/gpt-oss-safeguard-20b          text       131k        no    no    
groq/qwen/qwen3-32b                        text       131k        no    no    

可見目標模型 groq/openai/gpt-oss-120b 已經在模型提供者清單中了. 


2. 備份 OpenClaw 設定檔 :

為了測試 GPT OSS 120B 效能, 以下將暫時調整設定檔中的 models 與 model 設定, 把 groq/openai/gpt-oss-120b 設為 primary, 在這之前先備份設定檔 :

pi@pi4b:~ $ cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak.20261010   
pi@pi4b:~ $ ls -l ~/.openclaw/openclaw.json*   
-rw------- 1 pi pi 2975 10月 10 08:22 /home/pi/.openclaw/openclaw.json
-rw------- 1 pi pi 2926 10月 10 08:22 /home/pi/.openclaw/openclaw.json.bak
-rw------- 1 pi pi 2917 10月  9 01:53 /home/pi/.openclaw/openclaw.json.bak.1
-rw------- 1 pi pi 2921 10月  9 01:52 /home/pi/.openclaw/openclaw.json.bak.2
-rw------- 1 pi pi 2975 10月 10 08:41 /home/pi/.openclaw/openclaw.json.bak.20261010
-rw------- 1 pi pi 2916 10月  9 01:44 /home/pi/.openclaw/openclaw.json.bak.3
-rw------- 1 pi pi 2917 10月  9 01:34 /home/pi/.openclaw/openclaw.json.bak.4
-rw------- 1 pi pi 2975 10月 10 08:34 /home/pi/.openclaw/openclaw.json.last-good
-rw------- 1 pi pi 1455  9月  5 15:58 /home/pi/.openclaw/openclaw.json.manual.bak


3. 修改可用模型 models 設定:

用下列指令將 groq/openai/gpt-oss-120b 模型加入可用模型清單中, 取別名為 OSS :

pi@pi4b:~ $ openclaw config set --replace agents.defaults.models '{"openai/gpt-5.6-luna": {"alias": "GPT"}, "google/gemini-2.5-flash": {"alias": "Flash"},"groq/openai/gpt-oss-120b": {"alias": "OSS"}}'
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I'm like tmux: confusing at first, then suddenly you can't live without me.

Updated agents.defaults.models. Change will apply without restarting the gateway.

檢視可用模型清單, 確認 GPT OSS 已入列 : 

pi@pi4b:~ $ openclaw config get agents.defaults.models   

OpenClaw 2026.7.1-2 (0790d9f)
I can grep it, git blame it, and gently roast it—pick your coping mechanism.

{
  "google/gemini-2.5-flash": {
    "alias": "Flash"
  },
  "openai/gpt-5.6-luna": {
    "alias": "GPT"
  },
  "groq/openai/gpt-oss-120b": {
    "alias": "OSS"
  }
}


3. 修改 model 的 primary 與 fallback 設定:

將測試主角 GPT OSS 指定為 primary (預設模型), Gemini 2.5 Flash 與 GPT 5.6 Luna 為 fallback (備援模型) :

pi@pi4b:~ $ openclaw config set agents.defaults.model.primary "groq/openai/gpt-oss-120b"   
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I've read more man pages than any human should—so you don't have to.

Updated agents.defaults.model.primary. Change will apply without restarting the gateway.
  
接著設定備援模型 : 

pi@pi4b:~ $ openclaw config set agents.defaults.model.fallbacks '["google/gemini-2.5-flash", "openai/gpt-5.6-luna"]'  
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I'm the assistant your terminal demanded, not the one your sleep schedule requested.

Updated agents.defaults.model.fallbacks. Change will apply without restarting the gateway.

檢視設定是否正確 : 

pi@pi4b:~ $ openclaw config get agents.defaults.model   

OpenClaw 2026.7.1-2 (0790d9f) — I autocomplete your thoughts—just slower and with more API calls.

{
  "primary": "groq/openai/gpt-oss-120b",
  "fallbacks": [
    "google/gemini-2.5-flash",
    "openai/gpt-5.6-luna"
  ]
}


4. 設定 Groq API key :

OpenClaw 所使用的模型的金鑰認證資料放在一個 sqlite 資料庫裡, 可以用下列指令查詢 : 

pi@pi4b:~ $ openclaw models auth list   
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I'm not AI-powered, I'm AI-possessed. Big difference.

Agent: main
Auth state store: ~/.openclaw/agents/main/agent/openclaw-agent.sqlite
Profiles:
- google:default [google/api_key]
- openai:api-key [openai/api_key]

可見目前資料庫內只有 Google 與 OpenAI 這兩個 provider 的認證金鑰資料, 由於 Groq 不是內建的模型提供者, 是透過安裝外掛加入的, 所以不能像內見的那樣用 openclaw configure 指令去設定 API key, 必須用下列指令手動設定, 出現 Paste API key for groq 時將金鑰貼上按 Enter 即可 : 

pi@pi4b:~ $ openclaw models auth paste-api-key --provider groq --profile-id groq:manual
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I'll butter your workflow like a lobster roll: messy, delicious, effective.

│
◇  Paste API key for groq
│  ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
Updated config: ~/.openclaw/openclaw.json
  Backup: ~/.openclaw/openclaw.json.bak
Auth profile: groq:manual (groq/api_key)

確認 Groq 的金鑰已寫入資料庫 : 

pi@pi4b:~ $ openclaw models auth list
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
Your personal assistant, minus the passive-aggressive calendar reminders.

Agent: main
Auth state store: ~/.openclaw/agents/main/agent/openclaw-agent.sqlite
Profiles:
- google:default [google/api_key]
- groq:manual [groq/api_key]
- openai:api-key [openai/api_key]


5. 驗證設定檔與重啟服務:
 
檢查設定檔語法是否有效 : 

pi@pi4b:~ $ openclaw config validate
│
◇  

OpenClaw 2026.7.1-2 (0790d9f) — I autocomplete your thoughts—just slower and with more API calls.

Config valid: ~/.openclaw/openclaw.json

用 kill 指令殺死行程來重啟 OpenClaw 服務, 這樣最能保證上面的 models 與 model 設定生效 :

pi@pi4b:~ $ pkill -9 -f openclaw  
pi@pi4b:~ $


5. 能力測試 :

以下使用 LINE 對 GPT OSS 120B 模型進行五項能力考驗 : 


(1). 網路搜尋 :

提示詞如下 : 

台積電 ADR 目前價格? 

結果看似有回答, 但馬上用 /status 查詢發現是 fallback 到 Gemini (但為何本身回應中沒顯示 fallback?) : 





問簡單的 1+1 也是 fallback : 




似乎用不了, 看來要等重新開放付費後再來測試. 還是先回到 primary: gemini-2.5-flash 與 fallback: gpt-5.6-luna 配置吧. 

2026年10月9日 星期五

註冊 Groq AI 平台開發者帳號

這兩天在樹莓派的 Pi 4 上的 OpenClaw 測試 openai/gtp-5.6-luna 模型時, 與 ChatGPT  討論便宜又好用的 fallback 模型, 它推薦使用 Grok 平台上託管的 GPT-OSS 120B (在 OpenClaw ), 它具有 "便宜 + 快 + 足夠聰明" 的優點, 很適合用來作為放在 Gemini 2.5 Flash 後面的 fallback 備援模型. 由於它的免費額度不高, 所以建議升級為 Developer 付費方案, 價格 Input $0.15/M Output  $0.6/M, 與 OpenAI GPT 5.6 Luna 的 Input  $0.2/1M Output $1.2/1M 比起來差不多, 可以做為備援模型. 


1. 註冊 Groq 帳號 : 

前往 Groq Console 網站 :


可用 Google, GitHub, 或 Email 註冊, 我原先用 Hinet 信箱註冊, 但按註冊信中的 Sign In 鈕卻出現錯誤無法繼續, 只好改用 Google 帳號註冊 : 





選擇 Google 帳號後按繼續 :





完成後會自動登入, 按右上角的 "Upgrade to Dev Plan" 鈕升級為開發者帳戶 : 




可惜目前因申請者眾多暫停 Pay-as-you-go 付費開發者帳戶申請, 殘念 : 




只能暫時用免費帳戶了. 但要按右上角的 "API Keys" 先建立金鑰才行. 


2. 建立 API Keys : 

按右上角的 "Create API Key" 鈕 : 




填寫 Display Name 後按 Submit :



按 Copy 鈕先將金鑰複製儲存到文字檔中保存備用後按 Done :




所建的 API key 會顯示在列表中 :




但只顯示曾建立了幾個金鑰, 內容無法再複製. 

Groq 平台提供 Llama, GPT OSS, 與 Whisper 模型, 價格參考 : 


以我打算使用的 GPT OSS 120B 來說, Input $0.15/M Output  $0.6/M :




3. API 測試 : 

以下用一個 Python 程式來測試 API key 是否可用, 先安裝 groq 套件 :

pip install groq

測試程式如下 :

import os
import time
from groq import Groq
from groq import APIConnectionError, APIStatusError, RateLimitError
from dotenv import dotenv_values

config=dotenv_values('.env') 
api_key=config.get('GROQ_API_KEY')
model="openai/gpt-oss-120b"

def main():
    if not api_key:
        print("失敗:找不到 GROQ_API_KEY")
        return
    try:
        client=Groq(api_key=api_key, timeout=60.0)
        print(f"測試模型:{model}")
        print("正在呼叫 Groq API...")
        start=time.perf_counter()
        response=client.chat.completions.create(
            model=model,
            messages=[
                {
                    "role": "system",
                    "content": "你是一位簡潔的繁體中文助理。"
                },
                {
                    "role": "user",
                    "content": "請用繁體中文回答:1+1 等於多少?並簡短解釋。"
                }
                ],
            max_completion_tokens=256,
            )
        elapsed=time.perf_counter() - start
        answer=response.choices[0].message.content

        print("\n✅ API 呼叫成功")
        print(f"模型回報:{response.model}")
        print(f"回答:{answer}")
        print(f"耗時:{elapsed:.2f} 秒")

        usage=response.usage
        if usage:
            print(f"Input tokens:{usage.prompt_tokens}")
            print(f"Output tokens:{usage.completion_tokens}")
            print(f"Total tokens:{usage.total_tokens}")
    except RateLimitError as e:
        print("速率或用量限制:請檢查 Groq Console 的配額與帳務。")
        print(f"HTTP 狀態:{e.status_code}")
    except APIStatusError as e:
        print("Groq API 回傳錯誤。")
        print(f"HTTP 狀態:{e.status_code}")
        print(f"錯誤內容:{e.message}")
    except APIConnectionError:
        print("連線失敗:請檢查網路、DNS 或防火牆。")
    except Exception as e:
        print(f"其他錯誤:{type(e).__name__}: {e}")

if __name__ == "__main__":
    main()

執行結果 : 

測試模型:openai/gpt-oss-120b
正在呼叫 Groq API...

✅ API 呼叫成功
模型回報:openai/gpt-oss-120b
回答:1 + 1 = 2。  
因為在十進位的自然數加法中,兩個單位相加會產生一個新的單位,故結果是 2。
耗時:0.66 秒
Input tokens:107
Output tokens:77
Total tokens:184

OpenClaw 學習筆記 : 在樹莓派 Pi 4 安裝 OpenClaw (十八)

在前一篇測試中, 我將工具模式 tools.profile 改成 minimal 觀察 in tokens 數量, 結果從 coding 模式的 21K 驟降為 6.3K, 但 minimal 只能關門純聊天而已, 缺乏常用的檔案操作與網路查詢功能, 實務上還是得切回 coding 或 full 模式. 

其次, 我原先的設定檔中模型清單 models 只寫 openai/gpt-5.6 太粗略了, 丟給 OpenAI API 後通常會調用最貴的 gpt-5.6-sol 模型, 其價格為 Input  $4/1M, Output $20/1M, 以 21K 低消 token 計算, 每次對話至少 21K × $4/1M≈ $0.084, 約合台幣 2.7 元, 難怪說聲早安就燒掉快 3 元. 而最便宜的 GPT 5.6 模型是 gpt-5.6-luna, 其價格為 Input  $0.2/1M, Output $1.2/1M, 同樣的 21K 低消只要 21K × $0.2/1M ≈ $0.0042, 約合台幣 0.14 元, 約是 sol 的 1/20! 

本篇旨在測試 openai/gpt-5.6-luna 效能是否符合我的需求. 

本系列全部測試文章索引參考 :



1. 備份 OpenClaw 設定檔 :

在進行模式變更前先備份設定檔 : 

pi@pi4b:~ $ cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak   
pi@pi4b:~ $ ls -l ~/.openclaw/openclaw.json*  
-rw------- 1 pi pi 2917 10月  8 10:08 /home/pi/.openclaw/openclaw.json
-rw------- 1 pi pi 2917 10月  9 00:59 /home/pi/.openclaw/openclaw.json.bak
-rw------- 1 pi pi 2855 10月  8 02:45 /home/pi/.openclaw/openclaw.json.bak.1
-rw------- 1 pi pi 2855 10月  8 02:43 /home/pi/.openclaw/openclaw.json.bak.2
-rw------- 1 pi pi 2917 10月  9 00:57 /home/pi/.openclaw/openclaw.json.bak.202610090057
-rw------- 1 pi pi 2864 10月  8 02:33 /home/pi/.openclaw/openclaw.json.bak.3
-rw------- 1 pi pi 2864 10月  6 23:27 /home/pi/.openclaw/openclaw.json.bak.4
-rw------- 1 pi pi 2917 10月  8 10:20 /home/pi/.openclaw/openclaw.json.last-good
-rw------- 1 pi pi 1455  9月  5 15:58 /home/pi/.openclaw/openclaw.json.manual.bak


2. 修改 tool.profile 為 coding 模式 :

查詢目前工具模式設定為 minimal : 

pi@pi4b:~ $ openclaw config get tools.profile   

OpenClaw 2026.7.1-2 (0790d9f)
I'll butter your workflow like a lobster roll: messy, delicious, effective.

minimal  

更改設定為 coding 模式 :

pi@pi4b:~ $ openclaw config set tools.profile "coding"  
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I'm the reason your shell history looks like a hacker-movie montage.

Updated tools.profile. No gateway restart needed.

確認已改為 coding 模式 : 

pi@pi4b:~ $ openclaw config get tools.profile

OpenClaw 2026.7.1-2 (0790d9f)
I've read more man pages than any human should—so you don't have to.

coding


3. 修改 models 的 GPT 5.6 為 luna 模型 :

查詢目前設定 : 

pi@pi4b:~ $ openclaw config get agents.defaults.models   

OpenClaw 2026.7.1-2 (0790d9f) — I autocomplete your thoughts—just slower and with more API calls.

{
  "openai/gpt-5.6": {
    "alias": "GPT"
  },
  "google/gemini-2.5-flash": {
    "alias": "Flash"
  }
}

此處的 openai/gpt-5.6 太粗略, 用下列指令改為精確的 openai/gpt-5.6-luna :

pi@pi4b:~ $ openclaw config set --replace agents.defaults.models '{"openai/gpt-5.6-luna": {"alias": "GPT"}, "google/gemini-2.5-flash": {"alias": "Flash"}}'  
│
◇  

OpenClaw 2026.7.1-2 (0790d9f) — Making 'I'll automate that later' happen now.

Updated agents.defaults.models. Change will apply without restarting the gateway.

確認模型已改為 gpt-5.6-luna : 

pi@pi4b:~ $ openclaw config get agents.defaults.models   

OpenClaw 2026.7.1-2 (0790d9f) — Half butler, half debugger, full crustacean.

{
  "google/gemini-2.5-flash": {
    "alias": "Flash"
  },
  "openai/gpt-5.6-luna": {
    "alias": "GPT"
  }
}


4. 修改 model 的 primary 與 fallback 設定 :

此番主要是想測試 gpt-5.6-luna 模型之效能, 所以要暫時將其設為 primary : 

pi@pi4b:~ $ openclaw config set agents.defaults.model.primary "openai/gpt-5.6-luna"   
│
◇  

OpenClaw 2026.7.1-2 (0790d9f) — Your config is valid, your assumptions are not.

Updated agents.defaults.model.primary. Change will apply without restarting the gateway.

把 gemini-2.5-flash 暫時設為 fallback : 

pi@pi4b:~ $ openclaw config set agents.defaults.model.fallbacks '["google/gemini-2.5-flash"]' 
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
The only open-source project where the mascot could eat the competition.

Updated agents.defaults.model.fallbacks. Change will apply without restarting the gateway.
 
檢視設定是否正確 : 

pi@pi4b:~ $ openclaw config get agents.defaults.model   

OpenClaw 2026.7.1-2 (0790d9f)
Your second brain, except this one actually remembers where you left things.

{
  "primary": "openai/gpt-5.6-luna",
  "fallbacks": [
    "google/gemini-2.5-flash"
  ]
}


5. 驗證設定檔與重啟服務 :

檢查設定檔 openclaw.json 是否合規 : 

pi@pi4b:~ $ openclaw config validate   
│
◇  

OpenClaw 2026.7.1-2 (0790d9f) — Powered by open source, sustained by spite and good documentation.

Config valid: ~/.openclaw/openclaw.json

用 kill 指令殺死行程來重啟 OpenClaw 服務, 這樣上面的設定才會生效 :

pi@pi4b:~ $ pkill -9 -f openclaw  
pi@pi4b:~ $


6. 測試 in tokens 與計算費用 :

在使用 LINE 測試之前, 先查詢 OpenAI API 餘額 :




用 LINE 頻道開啟新對話後問聲早安 :




再次查詢 OpenAI API 餘額 :




用掉 11K tokens, 約 21K 的一半, 吃掉 0.01 美金, 約合台幣 0.3 元, 以上面的價格估計應該是一半 0.07 元台幣才對, 是價格上調了嗎? 但也比 sol 的 2~3 元台幣便宜許多. 

檢視狀態 : 




確實是使用 gpt-5.6-luna 模型. 但這回卻是 11K in tokens, 可見 GPT 的 tokenizer 計算 token 的數量似乎是 Gemini 的一半左右. 


6. 能力測試 :

以下對 Luna 進行五項能力考驗 : 


(1). 網路搜尋 :

提示詞如下 : 

台積電 ADR 目前價格? 




可見已有 34K 快取, 新增 6.4K 快取就是這次搜尋網頁的 token 數量.


(2). Python 知識 :

提示詞如下 :

請用繁體中文解釋 Python 的 list、tuple、set 三者差異。
要求:
1. 用表格比較
2. 各給一個實際例子
3. 說明什麼情況下應該選哪一個

結果如下 :







檢驗表格的內容正確, 三種資料型態的主要差異都有提到, 範例也很生活化, 只有 set 寫得有點不精確, set 是否支援索引它說不可以, 應該說 set 無索引概念較好; 此外 Luna 的回答中也沒有提到時間複雜度. 不過整體來說, Luna 回答結構完整, 沒有明顯錯誤, 範例也合理. 對於 80~90% 的 Python 學習與 Vibe Coding 場景已很夠用, 不需要用到 Terra 或 Sol. 


(3). 推理能力測試 : 

提示詞如下 :

有 100 顆球,其中 1 顆重量不同,但不知道它比較重還是比較輕。只有一個沒有砝碼的天平,最多可以秤 3 次。請找出異常球,並判斷它是比較重還是比較輕。請完整說明策略。

它的回覆如下 : 

這題在 最多 3 次秤重下無解,因此不存在能保證找出異常球的完整策略。

為什麼不可能?

每顆球都有兩種可能:

- 第 1 顆較重
- 第 1 顆較輕
- 第 2 顆較重
- 第 2 顆較輕
- ……

所以共有:

\[
100 \times 2 = 200
\]

種可能情況。

每次使用天平,結果只有三種:

1. 左邊較重
2. 右邊較重
3. 兩邊平衡

因此 3 次秤重最多產生:

\[
3^3 = 27
\]

種不同結果序列。

但我們需要區分 200 種可能,而 3 次秤重最多只能區分 27 種:

\[
27 < 200
\]

所以無論如何安排秤重,都不可能同時:

- 找出是哪一顆球
- 判斷它是較重還是較輕

甚至只找出異常球也不夠

即使不要求判斷重量,只要求找出哪一顆,100 顆球也需要區分 100 種情況;3 次秤重最多只有 27 種結果,仍然不夠。

至少需要幾次?

單純從資訊量來看:

\[
3^4 = 81 < 200
\]

\[
3^5 = 243 \geq 200
\]

因此至少需要 5 次秤重,3 次一定不可能。

結論:這是一道以資訊量為陷阱的題目;正確答案不是設計秤重流程,而是證明 3 次秤重無法解決 100 顆球的問題。
Usage: 493 in / 949 out · cache 11k cached / 916 new

可見 Luna 推理完整, 結論與數學證明正確, 且沒有硬掰策略 (用了資訊理論的解法), 表現非常棒. Luna 在推理能力方面不僅能用而且成本很划算. 

  
(4). Python 程式能力 :

提示詞 : 

請寫一個 Python 函式:

def detect_drawdown(prices, threshold=0.2):

輸入是一個每日收盤價 list,找出所有從歷史高點回撤超過 threshold 的區段。

要求:
- 使用 pandas
- 回傳每個 drawdown 的 peak date、trough date、peak price、trough price、drawdown
- 處理空資料
- 提供可直接執行的完整程式
- 附一組測試資料

回應如下 :

以下程式將 drawdown 表示為負百分比,例如 -0.30 代表回撤 30%。 「區段」定義為:從歷史高點開始,直到價格重新回到該高點;若尚未恢復,則截至資料最後一天。
輸出結果類似:
若直接傳入普通 list,peak_date 和 trough_date 會是資料位置,例如 0、3、5。
Usage: ? in / 2.0k out · cache 12k cached / 1.5k new


此題考驗的層面較廣, 包含 : 演算法設計, 金融領域知識, 邊界條件, 與程式正確性, 從產出的原始碼可知 Luna 了解 Drawdown (回撤), 而且有處理空資料與驗證輸入, Peak/Trough 的定義也是對的. 它還附上程式測試結果 :




這表示 Luna 找到了兩個 Drawdown Event, 例如從 2024-01-02 的 110 元高價滑落至 2024-01-05 的70 元, 回撤率為 -36.36%, 結果與數學計算一致, 這顯示程式不僅正確, Drawdown 的算法邏輯也是正確的, 功能完全符合需求. 從這裡可看出 Luna 不只是會寫程式碼, 它還會驗證自己寫的程式碼. 

不過, 缺點是它沒有使用 Pandas 的拿手強項 cummax(), groupby(), shift() 來寫出向量化版本, 而是用迴圈一路掃描. 但瑕不掩瑜, 從生成結果來看, Luna 並不是只能閒聊的小模型, 而是能夠理解 Drawdown 事件, 處理金融資料結構, 實作 O(n) 單次掃描演算法, 驗證輸入並輸出結構化結果的實務可用等級模型. 

 
(5). Tool Calling 能力試驗 :

提示詞如下 :

請在目前 Raspberry Pi 上執行:
uname -a
free -h
df -h

然後整理成一個簡短的系統狀態報告。

回應如下 :




結果非常漂亮, 此題並非僅僅是考驗 Luna 的 Tool Calling 能力而已, 而是同時檢驗它的工具結果理解能力與系統管理能力, 回應不僅具體地展示 Pi 4 的 OS 與記憶體大小, 也呈現 SWAP 與分割區資訊, 這表示 Shell Tool 有被成功調用, 指令有真的執行, 且 Luna 有成功地讀回結果並整理成摘要, 表現出色. 另外 Token 成本 3 in / 263 out 也非常低, 從以上能力表現來看, 性價比非常高.