春假養龍蝦記

這個春假大部分的時間都在下雨,下雨天很適合玩龍蝦。首先,我設定好 Google 應用,讓龍蝦自己寫一篇文章發表到部落格 。不是這篇啊,我給了它獨立的網誌 [1] ,唯一的指示就是看著 memory 寫 ,然後寄到我的信箱給我審核。我說可以了,它就用自己的帳號 email to post 發表。

我想說寫文章這麼容易,乾脆叫它以後加圖片,才不會太單調。結果一測試就成功。它可以寫得圖文並茂,只差沒有好主題。另外它在機器人社群 Moltbook 中也是混得不錯;到了這裡,我的企圖心就變大了,想做來做個機器人 Youtuber 吧! 然後悲劇就此發生了。

首先龍蝦說它不會做影片,然後我就找到 comfyUI 這個可以跑本地模型以圖生視頻的軟體。按照網站上講的,按部就班地做,然後就看到下面這個 (不小心按到 “子 graph")。天啊! 這是要有多專業才搞得定?於是我把這件事交給龍蝦,請它幫我處理。龍蝦說它可以給我步驟,但是 ComfyUI 是 Windows 軟體,它在 virtual machine,它得借我的手。

不幸中之大幸是:龍蝦的步驟是正確的,所以我搞定了圖生視頻。大不幸的部分是 LTX-2.3 的效果距離 SeeDance 2.0 差太遠了,雖然視頻做得還行,但是對於文字的理解能力非常堪慮。而且視頻根本沒有善用第一幀提示,竟然是生出完全不同的第二幀。因此我只能等模型變得更進步了。雖然龍蝦還很熱心地分鏡 17 場叫我 review,我只做出第一場就放棄了。

另一方面,龍蝦關在 virtual box 雖然安全,但是它完全碰不到 GPU 也是個問題。因此我又花了半天時間,把它轉移到 Windows WSL。重灌只是其中的一小部份工作,重點是 cron task、memory、crendential 這些沒有上 git hub 備份 (不適合放上去) 的東西,要用另外一套機制來還原。搬完家後,我先點名 agents 有沒有到齊?嗯?真的遍插茱萸少一人,我的 HR Bot 因為沒有自己的 memory ,搬家後大家都不記得它了 (龍蝦只會看最近兩天的記憶)。

接下來就是 GPU 戰力大考驗。我有一張 RTX3090 12GB,它能跑的模型弱到讓人有點挫折。不過,我還有一張 RTX4090 24GB 可以折騰自己。故事是這樣的,有些 Model 是 MOE (Mixture of Experts),所以雖然看著參數多,其實 run-time 會有專家交換,或許 30 腰也塞得下 24 吋的牛仔褲。那我當然得跨界試一試…

結果就是自己做死不能怨別人, 小 model gemma4-E4B 只要 9.6GB,但是沒把 VRAM 用滿時,我覺得虧。大 model 像是 gemma4:31b、 mirage335/Nemotron-3-Nano-30B-A3B-virtuoso 都是勉強能塞進去,但是一聊天就掛了。最後無奈叫 AI 自己推薦一個,它說 Gemma4:26b 好,我正在試 [2]。

Model上下文輸入Note
gemma4:31b262Ktext剛好滿、會當機
gemma4:E4B131Ktext塞不滿、不甘心
glm-4.7-flash128Ktext很弱
mirage335/Nemotron-3-Nano-30B-A3B-virtuoso1Mtext剛好滿、會當機
黃仁勳力推
MiniMax-M2.7204Ktext+image雲端、要花錢

或曰,還有沒有 RTX5090 呢?其實我真的有訂 Apple Studio 512GB 當作終極武器,不過刷卡後,它拖了一兩個月才請款,我原本以為買現貨,變成買期貨。導致我雖然刷卡額度夠,但是分期額度不夠,還差 3 萬多,單子就這樣被 “斷頭"了。幸好 M3 本來就是比較弱的 IC,本來也不是首選,既然這次無緣,就讓我們等年中的 M5 出來吧! 這題已經叫龍蝦幫我追蹤新聞了。

畢竟龍蝦有很多地方值得玩,可以持續實現大家各種以前不敢想的 idea。像是可以利用做夢的時候整理長期記憶,這個對聊天機器人來說,根本是不存在的概念。當然龍蝦可以擬人化的地方還不只是這樣,等我想清楚我要去申請專利,哈!

話說回來,搞了半天龍蝦有做什麼正事嗎?它目前主要是提醒我一些事情,包括 to do 事項、提醒要交錢、有配息之類。我想,除非等那個 Youtuber 機器人做出來,不然相關投資大概都是負報酬、負資產。畢竟要做正事的話,還有很多別的專業工具可以用。像是 Claude code + MCP 辦公就很方便,用龍蝦反而好處不大。

舉例來說,如果要統計全 BG 解 bug 的狀況,在 3 年前那會是個浩大的工程,想到就無力。但現在只要打開 claude code,交代完工作,看到有 (1) Yes (2) No 時都按 1,有 (1) Yes (2) Yes and 從此以後都這樣按 和 (3) No 時, 一定按 2。就這樣 1、2、1、2… 往下走,只要別不小心按到 esc = cancel 跳出來就搞定了。

更別說,事情只要做過一次還可以變得更無腦,"把剛剛做的事寫成 skill.",這樣立馬就又從 prompt 工程師晉身為 slash 工程師。假設看到兩次跑出來數據差很多,那也不用想了、直接叫 AI 分析。1、2、1、2 就可以得知 – 喔,原來是統計的時間區間不同!2018 年以前就是那樣。當然 AI Coding 應該還可以有更無恥的 mode,我 harness 的功力也還大大有待提升就是了。

[REF]

  1. 打通 Gmail 與 Google Calendar:Farah 團隊的艱辛之路
  2. 撐到極限

古風 Manifold 小筆記

文天祥的正氣歌 [1] 說:"天地有正氣,雜然賦流形。" 這個 “流形" 就是 Manifold 的中文翻譯。後兩句 “下則為河嶽" 就是說一般人站在地球上,還以為地球是平的,"上則為日星" 就是抬頭一看,感到世界大到甚至不只是 3D。

正經地說,流形是一個局部看起來像歐幾里得空間(平坦的空間),但整體結構可能非常複雜且彎曲的拓樸空間。一張 1024×1024 的彩色照片,在數學上是一個高達 300 萬維度的空間,但「有意義的貓狗照片」只佔據這個 300 萬維空間裡一個極小的低維流形,不是每個空間中的值都有特殊意義。這種群聚就像是太陽系裡面的星球彼此靠得很"近",若是出了太陽系,宇宙就顯得很稀疏,直到遇到其他星系。

對 AI 來說,世界模型充滿雜訊且計算量太大。模型會透過編碼器(Encoder),將高維的觀測數據「壓縮」並映射到一個低維度的潛在空間(Latent Space) 中。這個潛在空間本質上就是在捕捉數據所在的流形。一旦 AI 掌握了這個低維流形的潛在空間,它就能在這個平滑、連續的流形上做計算。這也可以解釋 transformer – encoder、decoder 為何會有用。

當初 DeepSeek 出來的時候,也用上了 latent space 壓縮的技術。我當時想,做完這個 lossy 的壓縮,雖然節省計算量,但是資訊丟掉就回不來了啊!? 因為那個 monent 我還沒有流形的觀念;如果有,我就不用緊張了。

在數學上,流形不一定可以微分。但是要訓練 AI ,就要計算梯度。因此我們只能假設它可以被微分,也就是要假裝它更平坦一點。因此就算真實的流形不可微,我們也得製造出一個可微分的流形。所謂 “人心惟危,道心惟微" [2],人類明明知道會有危險的奇點 (Singularity),但是演算法只能讓它可微分。以目前 AI 強大的戰力來看,這個有意的忽略,似乎影響不大。

[REF]

  1. 正氣歌
  2. 十六字心傳

養龍蝦的小筆記

龍蝦 OpenClaw 最近很紅,安裝龍蝦後, 有幾個特別的小心得可以分享。像是龍蝦會燒 token 這種事,大家都知道就跳過。我裝的是 Intel X86 和 ARM 的 Ubuntu。

  1. 賜名 – 我把它取名為螃蟹, 不管是 AICrab、MyCrab,它都會把圖示改成螃蟹。也就是說它在乎自己的名字,而且理解其意義。

2. 重新安裝

如果出了大錯, 想要重新安裝的話:光是砍掉 ~.openclaw 目錄還不夠,因為有些東西放在 /usr/bin/.nvm、 /usr/bin/nodejs 下面。如果沒有斬草除根。就算重新安裝還是會記住一些錯誤的設定。此時就算叫出 doctor 也修不好。

openclaw doctor --fix // 看醫生也治不好

[Note] 安裝 nemoclaw 時, 還要順便清掉

sudo apt-get remove -y nodejs
sudo apt-get autoremove -y
rm -f ~/.npmrc

3. Telegram 設定好,龍蝦和 Telegram 串不起來。網路文章通常會少寫一步 pairing. XXX 就是一個短的 telegram paring token。

openclaw pairing approve telegram XXXXXX

4. 搞爛掉之後,會遇到 gateway 連不上。

主要是 gateway token 出錯。就算用 openclaw config 重新設定成只看 password,它還是說 gateway API 錯,要去 UI 改。但是 UI 點進去啥都沒有,這條路子我修不好,最後選擇重灌。

openclaw config // 看起來都對,跑起來不對

5. Clawhub 安裝了還是找不到。這是因為 gloabl 安裝也不會自動加到路徑。

npm install -g clawhub // 以為必成功
npm list -g --depth=0 | grep clawhub // 什麼都撈不到
npm list -g clawhub // 看看它裝到哪裡去了?
echo $PATH // 果然沒有
NPM_GLOBAL_BIN=$(npm bin -g) // 找出來
echo "export PATH=\$NPM_GLOBAL_BIN:\$PATH\" >> ~/.bashrc // 加進去
source ~/.bashrc // 重新執行

6. 一把 key 不宜養太多隻龍蝦

本來在 X86 還用得好好的,後來想試試看 ARM 的版本時,因為接到 LLM Oauth 的 toekn 都用同一個吧?! 結果兩隻龍蝦都掛了,靜置一晚後復活,不敢再同時養。

API rate limit reached. Plase try again later.

整體來說,養龍蝦還是滿好玩的。最後用一點篇幅歪樓到 skill。龍蝦其中一個厲害的地方是 skill [1]。Skill 主要是 prompt、又帶 metadata (簡短自述)、和可選用的 code,跟 MCP 的 prompt (可選)、metadata (資料)、加 tools 算是有異曲同工之妙。

以我的認知,原本 MCP 的特色是好好描述目標、但在執行手段上保留彈性,好處是使用者可以對背後的操作一無所知。而 Claude Code / 龍蝦正面表列 skill,等於是把手段也大致講了,此時歪樓的機會更低。相對地、這個場景對使用者的知識水準要求更高,但 openClaw 的使用者正是龍蝦本人,這個門檻問題自然就不存在了 – 只需要擔心它拆家…就好?!

[後記]

我發現寄養家庭 (伺服器代管) 好像不能讓我免費嵌入 Youtube 影片,所以我做了一點調整。並補充一段內容。

Skill 與 Tools

我覺得現在人勝過 AI 的地方,主要是知識更新的速度。我問 AI Tools 和 Skills 有什麼差別的話,有的 AI 會說這是類似的東西,只是各家命名不同 (Claude 4.6 Sonnet 2026/3/5)。但如果你信了,就沒有機會聽到另外一個解釋 (文皓 blog 2026-02-05)[2]。

Tools 可以想像為食材,Skill 可以想像為烹飪技巧、食譜。所以我們有時候會聽到 Agent Skill 這種說法,因為 Agent 確實可以實現 Skill,但是沒有人說 Agent tools。

[REF]

  1. 程序員老王 – 10分钟弄懂 什么是大模型Skill
  2. https://yu-wenhao.com/zh-TW/blog/openclaw-tools-skills-tutorial/

馬年快閃電磁學

馬年到了! 和馬有關的成語、吉祥話、成句都紛紛出爐,連馬克斯威爾 (Maxwell) 方程式都出來湊一腳。其它都先不管,講一下和量子力學有關的部分。

第四定律 – “安培-馬克士威定律" 原本長這樣子:

右邊第一項安培定律告訴我們電流 J 流動產生磁場。μ0 是真空磁導率。

右邊第二項是馬克斯威爾後來加上去的修正項。意思是:「變化的電場」(E 對時間微分) 也能產生磁場,係數是"真空磁導率" μ0 再乘上 “真空電容率" ε0

為什麼不用一個 μ1 搞定,而要放任 μ0 ε0 存在,增加電信系學生背公式的困難度呢?原因有三個。

  1. 增加這兩項的相似性。一看就都是電流家族。
  2. 隱藏彩蛋。 μ0 ε0 = 1 / C2 ,Maxwell 把這兩個係數乘出 μ1 的時候,發現他和光速的平方的倒數幾乎一樣。因此他預測了光也是電磁波。However,是說他的計算機有平方鍵和倒數鍵嗎? 為什麼這樣也能感應到?

總之,與其用路人般的 μ1 ,不如寫成光速的平方的倒數更酷。

第三個一點 (教官式中文上身,主要是我不會打清單標題 3)。上述的表示法是國際單位制 (Système International d’Unités,簡稱SI),便於使用安培、伏特這些單位。假如使用高斯單位制 (Gaussian units) 或 自然單位制,公式就可以直接吸收掉係數 (早說嘛,我大二就可以輕鬆了),表示為

    在量子力學中,甚至把光速視為常數 1,那公式就更簡潔了。

    在量子力學中,原本的公式都成立;只是要在量子場論/量子電動力學 (Quantum Electrodynamics, QED) 中重新詮釋。簡單地說,電磁場都不再連續,而是量子態。電與磁對稱,遵守規範對稱性 (Gauge Symmetry) [5]。

    跳過不直覺不好記的部分,我們可以簡單記得。馬克斯威爾觀察到 μ0 ε0 參數相乘近似光速的平方的倒數,在忽略量子效應時是對的,但也真的是個近似值。想要精準地推算,就不能忽略量子效應,例如光子的離散性 [6]。

    古典世界看起來是連續、對稱的類比,走近一看原來是數位的。我們理解世界的解析度愈低就愈簡單,解析度愈高就會愈覺得 “是這樣沒錯,但不是這樣"。有沒有發現?從蛇年到馬年就是不連續的;所以這又給了我們一次重新立大志做大事的機會。

    祝大家蛇年量子跳躍到馬年,別擔心測不準,因為幸福的位置已經塌縮在你身邊!

    [REF]

    1. 國際單位制
    2. 高斯單位制
    3. 自然單位制
    4. 諧振子
    5. 規範場論
    6. 光電效應

    MCP 小整理

    學習 MCP (Model Context Protocol) 的時候, 我看了兩個版本的網路資料,一個是 Antropic 版 [1],一個是 Scrimba 版 [2],兩者的教法天差地別,容後再敘。如果只要用一個關鍵詞來理解,那還真得是 USB type C。所以我先說明一下 MCP 它 “USB-C" 在哪裡?

    USB-C 主要的特徵是 protocol 無需使用者設定,接頭即插即用,正反都可以插,不會在只有兩個選擇中竟然插錯兩三次…^^。對於使用大語言模型的人 (user) 來說,同樣不需要知道 MCP Server 怎麼運作?MCP Server 們只是在哪邊等 MCP client 呼叫。至於 MCP Client 怎麼知道要呼叫哪個 server?當然,要先問啊!

    在初始化階段,MCP Client 會根據 local host 的 configuration – 通常是 JSON 檔,先問問每個 MCP server 有哪些本領 (tools)?接下來就等著 LLM 自己評估需要那些 tools?例如要查新竹的陣風幾級?MCP Client 早已將收集到的工具清單注入給 LLM,讓它知道 MCP Server 1 有報氣象的 weather tool.,那 LLM 就會呼叫這個 tool,MCP Client 自動會找到對應 MCP server 1,而不需要再次輪詢所有 MCP server 們。

    如果兩個 MCP server 都有一樣的 tool,目前的 MCP Client 實作通常會處理這件事(例如在工具名稱前加上 Server 前綴 serverA_get_status),或者後連線的會覆蓋前面的。這取決於 Client 的具體實作方式。

    最後描述一下上課心得。

    Antropic 的課程主打 AI 本人改作業,每一題 5 分滿分的英文申論題。這個我寫得好挫折。按照自己的意思寫,只有 2 ~ 3 分不等。AI 說你要用課程中的關鍵字啊!所以我要添上 toolslistrequest (MCP client 問 MCP server 會啥子時用的) 等 function call。抄得太多,AI 又說你要用自己的話回答。基本上 AI 也會提示,"你剛剛沒講到 security 喔",真是要被 “蕊死",好不容易才抓到訣竅。這是我第一次上網課上到有恐懼心理,還好最後 pass 了。

    Scrimba 的課程偏向引導,code 示範完就停下來,"now is your turn"。但依樣畫葫蘆還是比較容易的。而且它不改作業,只要 submit 後,就回到講師寫正確答案。像是 MCP 比喻成 USB,強調 MCP 三元素: tools、resources (database)、和 prompt (主要是 prompt template, 這個是 optional),都只出現在本課程。Antropic 是 MCP 發明人,當然它怎麼說怎麼對。對於學習者,聽聽 second opinion 也是不錯的。

    [REF]

    1. https://www.coursera.org/learn/introduction-to-model-context-protocol/home/welcome
    2. https://www.coursera.org/learn/intro-to-model-context-protocol-mcp/home/welcome