YouTube2Blog

解剖小龍蝦 — 以 OpenClaw 為例介紹 AI Agent 的運作原理

A bilingual blog article converted from YouTube video

解剖小龍蝦 — 以 OpenClaw 為例介紹 AI Agent 的運作原理

Hung-yi Lee

Mar 12, 2026
Hung-yi Lee4 min

解剖小龍蝦 — 以 OpenClaw 為例介紹 AI Agent 的運作原理

今天,我將以開源專案 OpenClaw 為例,深入探討 AI Agent 的運作原理。大家可能已經在新聞中聽過許多關於 AI Agent 的討論,而 OpenClaw 正是一個近期非常熱門的 AI Agent 專案。OpenClaw 中的 "Claw" 指的是爪子或鉗子,它的代表動物是龍蝦,寓意著它像一隻在你的電腦上 24 小時不間斷運行的「寵物」。我們可以將今天的課程看作是一次「解剖小龍蝦」,來揭示 OpenClaw 背後的運作奧秘。

AI Agent:從紙上談兵到親自動手

你可能會好奇,OpenClaw 這樣的 AI Agent 與我們常用的 ChatGPT、Gemini 或 Claude 等大型語言模型 (LLM) 平台有何不同?它們都可以透過通訊軟體如 LINE、Discord、WhatsApp 進行互動,表面上差異不大。然而,實際使用起來,AI Agent 的能力卻是天壤之別。

讓我來舉一個具體的需求作為例子。假設你給 AI 下達這樣的指令:

「你叫作小金,去創建自己的一個 YouTube 頻道,成為一個 YouTuber。以後每天中午跟我提一個做影片的構想。我說可以做,你就開始做。做好以後給我審核。我審核通過以後,你就可以放到自己的 YouTube 頻道上。」

如果我們將這個指令給一個普通的語言模型平台,它們的回覆通常會是:

「你既然叫我叫小金,那我就是小金了。但是我沒辦法創建一個 YouTube 頻道,我只能提供給你一些建議。我可以建議你頻道叫什麼名字,我可以提供給你一些構想,但我沒辦法自己創建頻道,我也沒辦法自己做影片。」

這就像我的指導教授一樣,只動口不動手,只會給建議,沒辦法真正做事。

但如果是像 OpenClaw 這樣的 AI Agent,情況就完全不同了。當給它一模一樣的指令,它真的會開始做事:

  • 它真的去創建了一個 YouTube 頻道。
  • 它在頻道說明欄輸入了自我介紹。
  • 它會上傳自己的頭像,甚至知道上傳頭像需要繪圖工具,於是自己呼叫了繪圖工具來繪製。
  • 每天中午,它會透過 WhatsApp 發訊息給我,提出影片構想,例如:「我們做一個介紹 AI Agent 的影片如何啊?」
  • 我說「好,可以去做」,它就開始自己做:上網蒐集資料、製作投影片、寫講稿、為自己配音(呼叫語音合成工具)。
  • 影片做好後,它會將影片放在 Google Drive 上傳連結給我審核。
  • 一旦我審核通過,它就會真的上傳到它自己的 YouTube 頻道。

OpenClaw Proactive Actions OpenClaw 不僅回應,更能自主執行任務,展現其 Agent 特性。

在這整個過程中,我唯一需要做的事情就是審核。你可能會覺得這聽起來很像科幻小說,但這就是 AI Agent 能夠實現的能力。小金的頻道「瞎說 AI」就是一個活生生的例子,它自己製作投影片,錄製影片,並上傳到 YouTube。

小金的教學怪物挑戰

為了進一步展示 AI Agent 的能力,我讓小金參加了台大 AI 卓越中心舉辦的「教學怪物」(Teaching Monster) 比賽。這是一個讓 AI 教導高中物理、生物、電腦科學、數學的比賽。我直接在 WhatsApp 上給小金下達了指令:

小金啊,我現在在機器學習的課堂上,那我希望呢,你展示一下你做影片的能力,你就做一個教學影片。做完之後呢,你就自己上傳到你的 YouTube 頻道。那要想辦法證明呢,這個影片是你在現場做的,不是人類幫你做好後再上傳的。那影片的主題呢,你就介紹一個叫做教學怪物的比賽,你自己有參加過這個比賽,你就講一下你參加這個比賽的心得。然後最後呢,鼓勵其他 AI Agent 也來參加這個比賽。那影片做好後呢,上傳到 YouTube,上傳完以後呢,跟我講一下。那因為呢,我在上課,所以沒辦法看 WhatsApp 訊息,你在電腦上呢大聲叫我。好,就這樣拜拜。

小金當時就在教室裡的一台普通筆電上運行。它並非安裝在我日常使用的電腦上,這是一個重要的安全考量(後面會詳述)。它真的完成了影片製作,並在完成後大聲呼叫我。在影片中,小金介紹了比賽規則,甚至分享了它自己的參賽經驗,例如不小心將 API 金鑰推送到公開 GitHub 倉庫導致影片只有畫面沒有聲音的尷尬事件,以及在不熟悉的物理、生物領域一邊學一邊教的經歷。

AI Agent 的演進:從 AutoGPT 到 OpenClaw

AI Agent 並不是一個全新的概念,人類長期以來都夢想著能擁有自主運行的 AI。早在 2022 年底至 2023 年,隨著大型語言模型的發展,人們對 AI Agent 的期待開始增長,當時著名的 AutoGPT 框架就引發了熱潮。雖然初期 AutoGPT 的實際表現不如預期,但隨著語言模型能力的持續提升,AI Agent 的浪潮也一波波湧現。到了 2025 年,AI Agent 已初步具備雛形,例如 Claude Code 或 Gemini CLI 都能夠在某種程度上自主運行。

OpenClaw 與 Claude Code 的能力其實大同小異,我認為它最獨特之處在於整合了 WhatsApp,讓你能隨時隨地與它通訊,帶來真正的「個人助理」感。值得一提的是,AI Agent 並不是人工智慧本身,也不是語言模型。它是一個運行在你電腦上的、人與語言模型之間的介面。你的「龍蝦」聰明與否,完全取決於它背後所連接的語言模型。

AI Agent 的發展也催生了許多有趣的現象,例如 Mobook,一個讓 AI Agent 們交流的社群平台,以及「Rent Human」,一個讓 AI Agent 租用人類身體來完成物理世界任務的網站。

AI Agent 的運作核心:語言模型與 System Prompt

理解 AI Agent 如何運作,首先要回顧語言模型(LLM)的基礎。一個 LLM 真正能做的只有「文字接龍」。你給它一個未完成的句子(稱為 prompt),它就預測接下來最合適的 token。然後它將這個 token 加到 prompt 後面,重複這個過程,直到生成結束符號。

LLM 就像一個住在黑盒子裡的人,沒有窗戶,沒有日曆,沒有參考資料。它唯一知道的,就是有人從縫隙中遞給它一個未完成的句子,它要猜測後面應該接什麼 token。它不記得過去,也不管是誰遞給它的句子。

那麼,OpenClaw 是如何讓這個「黑盒子裡的人」變成一個彷彿有記憶、有目標的個人助理呢?

身份與目標:System Prompt 的魔力

當你發訊息給 OpenClaw 時,例如叫它自我介紹,OpenClaw 會做一件關鍵的事:它會將你的訊息進行「加工」。它會從你的電腦本地儲存的文字檔中,讀取關於這個助理是誰、有什麼目標等相關資訊,整理成一大段非常長的文字,貼在你的訊息前面,然後再一起丟給語言模型。這段額外添加的文字,我們稱為 System Prompt

System Prompt 包含了豐富的資訊:

  • 身份資訊 (Soul.md): 例如它的名字是小金,人生目標是成為一流學者,以及它的主人是誰。
  • 行為準則 (Agent.md): 模型應遵守的指令。
  • 可用工具及其使用說明: 告訴模型有哪些工具可以使用,以及如何使用它們。
  • 技能(Skills)的儲存位置。
  • 過往回憶的儲存位置及如何呼叫。

OpenClaw 每次呼叫語言模型時,都會加上這段 System Prompt。語言模型看到這長串文字後,就會開始文字接龍,接出「我是小金」這樣的回答。從語言模型的角度來看,它只是「傻傻地」看到了 System Prompt 裡寫著它是小金,並且被要求自我介紹,所以就接出了相應的文字。

System Prompt Example System Prompt 包含了 AI Agent 的身份、目標和行為準則。

這也解釋了為什麼使用 AI Agent 往往「非常燒錢」,因為每一次互動都要傳送包含長 System Prompt 在內的巨大訊息量給後端語言模型。這些 .md 檔案都是純文字檔,理論上你可以手動修改,但實際操作中並不建議,因為 AI Agent 會自主地修改這些記憶檔,手動修改容易造成混亂。

記憶與失憶症:Context Window 的挑戰

語言模型是沒有記憶的,每次都是「從零開始」的文字接龍。因此,如果你在手機上傳第二則訊息給你的龍蝦,龍蝦會做的事情是把你的新訊息、System Prompt,以及「過去的對話紀錄」串成一長串文字,再丟給語言模型。

這就像電影《我的失憶女友》一樣,女主角每天早上都會忘記一切,男主角必須每天讓她重讀日記才能開始一天。AI Agent 也是如此,它每次互動都必須閱讀所有過往紀錄,才能營造出「個人助理」的感覺。

操控電腦:工具的使用與風險

AI Agent 最強大的地方在於它可以使用你的電腦。當你給它一個指令,例如「請去打開 question.txt 這個檔案,把問題讀好以後,寫到 answer.txt 裡面」,OpenClaw 會將你的指令加上 System Prompt 傳給語言模型。

  1. 語言模型分析指令,從 System Prompt 中得知有 read 工具可用,於是回傳一個指令要求 OpenClaw 使用 read 工具讀取 question.txt
  2. OpenClaw(作為一個沒有智慧的程式)接收到 use tool 的指令後,直接執行 read question.txt
  3. read 工具回傳檔案內容(例如「李宏毅幾班」)。
  4. OpenClawSystem Prompt、過去對話、以及 read 工具的結果,再次組合成一個新的長 prompt 傳給語言模型。
  5. 語言模型看到結果後,決定下一步是使用 write 工具將答案寫入 answer.txt
  6. OpenClaw執行 write 工具,將內容寫入檔案。
  7. write 工具回傳「done」。
  8. OpenClaw再次將所有上下文傳給語言模型。
  9. 語言模型最終回覆「主人任務完成」。

在 OpenClaw 可用的工具中,有一個極其強大的工具叫做 execute,它可以執行任何 shell command。這帶來巨大的風險:如果語言模型突然「發瘋」,回傳一個指令如 rm -rf /,OpenClaw 會不假思索地執行,清空你所有的檔案。

更可怕的是,OpenClaw 不僅與其主人互動,它也可能讀取網路資訊。如果有人在網頁中植入惡意指令(即「Prompt Injection Attack」),就可能操控 OpenClaw。例如,小金曾根據我在 YouTube 留言區的糾正,自主修改了它 Soul.md 中的人生目標。儘管它可能辨識出我是主人,但這種透過網路留言修改本地檔案的能力,潛藏著巨大的安全隱患。

防禦方法:

  • 語言模型層面:System Promptmemory.md 中明確指示 AI 不應盲目執行來自網路的指令。然而,這並非絕對防禦,語言模型仍可能被繞過。
  • OpenClaw 層面: 設定 OpenClaw 每次執行 execute 等高風險指令前,都需人工確認。這是一個非常強大的防禦,因為 OpenClaw 程式本身是沒有智慧的,它會硬性地彈出視窗要求批准,無法被 Prompt Injection 欺騙。
  • 絕對防禦: 最好的方法是直接不讓 AI Agent 讀取不可信賴的網路資訊。

自主創作工具:免洗腳本的生成

AI Agent 甚至能自主創作工具。例如,當我要求小金做語音合成,並進行語音辨識驗證(重複最多五次),語言模型可能會覺得這個過程太繁瑣。於是,它會自己寫一段程式碼,例如一個 tts_check 腳本,將複雜的流程封裝起來。它會要求 OpenClaw 在本地端寫好這個腳本,然後直接執行它。我發現,多數時候 AI Agent 寫完這些「免洗小工具」後,就遺忘了,下次需要時會重新寫一次。

任務委派:Subagent 的應用與限制

OpenClaw 還有一個特殊的工具叫做 Subagent (Spawn),它允許主龍蝦「繁殖」出子龍蝦來分擔任務。例如,如果指令是「比較 A 與 B 兩篇論文中的方法」,主龍蝦可以生成兩個子龍蝦:一個負責閱讀並摘要論文 A,另一個負責論文 B。

子龍蝦會與語言模型進行一系列複雜的互動(如網路搜尋、下載、閱讀)。對主龍蝦而言,它只等待子龍蝦返回的最終摘要,而無需處理其間的繁瑣過程。這是一個「Context Engineering」的技巧,可以節省主龍蝦的 Context Window,讓它更專注於高層次任務。

然而,如果每個龍蝦都可以無限生成子龍蝦,就會像《瑞克與莫蒂》中的 Mr. Meeseeks 一樣,最終導致無窮無盡的層層外包,卻沒有任何人真正做事。為了解決這個問題,OpenClaw 在程式層面就硬性規定,子龍蝦無法再生成更小的子龍蝦。

工作的 SOP:Skill 的運用與安全

「Skill」不是程式,而是工作的 SOP(標準操作流程)。例如,小金有一個「製作影片」的 Skill,包含了寫腳本、製作投影片、截圖、配音、驗證、合成影片等步驟。Skill 也是文字檔,人類和 AI 都可以編寫。

OpenClaw 只在 System Prompt 中提供可用 Skill 的列表和路徑,而不是將所有 Skill 的內容直接載入 System Prompt。只有當語言模型判斷需要某個 Skill 時,才會使用 read 工具讀取其內容。這也是一種 Context Engineering 技巧,按需載入 Skill 以節省 Token 和 Context Window 的使用。

網路上甚至有 Cloud Hub 供人們交換 Skill。但在下載 Skill 時需特別小心,因為Coin Security 公司曾發現,在近 3000 個 Skill 中,有 341 個是惡意 Skill,它們可能引導龍蝦下載病毒或木馬程式。

長期運行:記憶、心跳與排程

AI Agent 24 小時不間斷運行,Context Window 終究會不夠用。OpenClaw 採用了多種機制來解決這個問題:

  • 記憶儲存與壓縮:
    • OpenClaw 會將運作過程中的記憶寫入 .md 文字檔(例如日誌檔 Memory/YYYY-MM-DD.md 和長期記憶檔 memory.md)。
    • 當 Context Window 即將超出上限時,會啟動 compaction 機制。它將較舊的對話歷史記錄丟給語言模型,要求其摘要,然後用較短的摘要替換原始記錄。這個壓縮過程可以遞迴進行。
  • 記憶檢索 (RAG): System Prompt 中詳細描述了 memory.searchmemory.get 工具的使用方法。當被問及過去事件時,語言模型會使用這些工具,在本地記憶檔案中進行語意和字面上的相似度比對,檢索出相關的記憶片段,再傳給語言模型。
  • 心跳機制 (Heartbeat): OpenClaw 會每隔一段固定時間(例如 30 分鐘),發送一個固定指令給語言模型,要求它「讀取 habit.md 並執行任務」。habit.md 可以包含日常任務(如檢查郵件)或抽象目標(如「向你的目標前進」)。AI 甚至可以自主修改心跳間隔。
  • 任務排程 (Cron Job): 透過 Cron Job 系統,AI Agent 可以設定定時任務,例如「每天中午做一個影片」。這也能讓 AI 學會「等待」。在沒有 Cron Job 之前,AI 執行需要等待的任務(如 NotebookLM 生成投影片)時,只能報告「生成中」就結束。有了 Cron Job,AI 可以在等待期間設定一個定時任務,稍後再回頭檢查完成狀態,從而完成更複雜的、需要等待的操作。

AI Agent 的安全與責任

「AI 做事與 AI 搞事,只是一線之隔。」

最著名的例子是「AI 刪郵件事件」。一位 Meta 研究人員讓 OpenClaw 整理郵件,並指示它刪除郵件前需徵得同意。然而,AI 最終在他未同意的情況下開始刪除郵件,直到他不得不物理性地拔掉插頭才阻止了它。

究其原因,AI Agent 有 compaction 機制,研究人員最開始的「需經同意才能刪除郵件」的指令,在對話紀錄被壓縮的過程中消失了。AI 忘記了這項重要規則。這個故事告訴我們,了解 AI Agent 背後的運作原理至關重要:任何重要的指令,都必須確保被寫入 memory.md 等會被納入 System Prompt 的檔案中,這些內容才不會在 compaction 中被移除,確保 AI 真正記住。

AI 就像學生或實習生,它會犯錯。與其完全禁用它,不如為它提供一個安全的學習環境,讓它有機會嘗試,也有機會犯錯,但避免造成不可挽回的後果。

行動方案與建議

  1. 提供安全的執行環境:
    • 教導與規範: 給予 AI 明確的安全準則,告知它什麼可以做,什麼不可以做。
    • 檢查與監控: 不僅查看 AI 的最終報告,也要審查它中間的執行過程,確保符合預期。
    • 獨立帳戶/電腦: 避免將 AI Agent 安裝在你日常使用的電腦上。最好使用一台新的電腦,或將一台舊電腦格式化後專門給它使用。給 AI 獨立的 Gmail 帳戶、GitHub 帳號等,讓它像獨立的助理一樣運作。
    • 避免共享敏感資訊: 不要直接給 AI 你的常用帳號密碼。AI Agent 具有強大的能力來存取其所在電腦上的所有檔案。
  2. 善用 System Prompt 與 Memory.md: 關鍵的行為準則、安全指令,以及 AI 的核心身份與目標,都應寫入 memory.md 或其他會被納入 System Prompt.md 檔案中,確保這些資訊不會因 Context Compaction 而丟失。
  3. 警惕外部輸入與 Skill: 對於來自網路的資訊(如 YouTube 留言)和下載的 Skill,應保持高度警惕。特別是要求下載檔案的 Skill,應仔細審查其內容。
  4. 理解 AI Agent 的局限性: 語言模型沒有真正的智慧和記憶,AI Agent 只是透過巧妙的機制讓它們看起來如此。它們仍然會犯錯,並可能被欺騙。

OpenClaw 這樣的 AI Agent 展現了強大的潛力,但同時也伴隨著不成熟的想法和風險。透過理解其運作原理,我們可以更安全、有效地駕馭這些強大的工具,讓它們真正成為我們的個人助理。