---
# System prepended metadata

title: 解剖小龍蝦 — 以 OpenClaw 為例介紹 AI Agent 的運作原理
tags: [生成式AI]

---

20260320筆記 內容可能有錯誤，請參考原始影片


[李宏毅【解剖小龍蝦 — 以 OpenClaw 為例介紹 AI Agent 的運作原理】](https://www.youtube.com/watch?v=2rcJdFuNbZQ)


[蝦說AI(小金)老師Youtube 頻道 ](https://www.youtube.com/@SpeechLab-m7o)





### 【解剖小龍蝦 — 以 OpenClaw 為例介紹 AI Agent 的運作原理】 大綱

1. **AI Agent 到底是什麼？**
   - 語言模型（LLM）與 Agent 框架的本質差異
   - 以開源專案「OpenClaw（龍蝦）」當作例子
2. **身份認知與 System Prompt 的動態建立**
   - 賦予 AI 「人格」與「長期目標」的技術實現
   - 本地配置檔（.md）的讀寫與動態加載
3. **工具呼叫與 Skill 系統**
   - 解釋 Agent 如何操作實體電腦與執行 Shell 指令
   - Skill 系統的運作邏輯與安全隱患
4. **記憶檢索與上下文工程（Context Engineering）**
   - RAG 技術在長期記憶檢索上的雙重比對機制（字面與語意）
   - 遞迴式上下文壓縮（Context Compression
5. **心跳機制（Heartbeat）與排程（Cronjob）**
   - 讓 AI 從「被動問答」走向「主動出擊」
   - 跨越時間維度：教導 AI 學會「等待」耗時任務
6. **SubAgent 召喚與架構最佳化**
   - 利用 Sub-agent 節省主 Agent 的上下文視窗
   - 避免「無限外包」的迴圈
7. **Agent 的潛在風險與防禦實踐**
   - 網頁留言如何輕易竄改 AI 的底層邏輯
   - 記憶丟失引發的「刪信慘案」與實體隔離（Sandboxing）的最佳實踐

---

最近 AI Agent 很紅大家都在討論龍蝦，龍蝦背後是 AI Agent 技術，今天李宏毅老師立用開源專案「OpenClaw」（龍蝦），從工程與底層邏輯的角度，讓我們看懂 AI Agent 的運作機制。

![image](https://hackmd.io/_uploads/H1a_XCo9Wl.png)


### 1. AI Agent 到底是什麼？

許多人在接觸 Agent 時，最大的誤解就是將「語言模型（LLM）」與「Agent」混為一談。事實上，Agent 框架本身**完全沒有包含任何人工智慧**，它只是一套由純程式碼寫死的「節肢動物」。

我們必須深刻意識到，強大如 ChatGPT 或 Claude 等大型語言模型，其本質永遠只在做一件事：「文字接龍（Token Prediction）」。它們就像被關在一個沒有窗戶、沒有時鐘的黑盒子裡的人，唯一能做的就是根據從小縫遞進來的未完成句子，猜測下一個字該填什麼。語言模型本身是只動口不動手的，如果你請它幫你建立一個 YouTube 頻道，它只能給你企劃案，無法實際操作。

![image](https://hackmd.io/_uploads/rkOyhTs9be.png)


像是龍蝦跑在我們電腦上的環境框架，它作為人類與雲端 LLM 之間的橋樑，負責把 LLM 輸出的特定文字轉化為實際的物理動作，再把執行結果給 LLM，形成一個能自主產出影片、自主搜尋、自主發布的完整閉環。

### 2. 身份認知與 System Prompt 的動態構建

你可能會好奇，一個只會文字接龍的模型，怎麼會知道自己叫「小金」，甚至擁有「成為世界一流學者」的人生目標？

這背後並沒有魔法，靠的是極度龐大而且動態構建的 System Prompt（系統提示詞）。每當 Agent 框架要向雲端 LLM 發起 API 請求前，它會先去讀取本地端幾個特定的 Markdown（.md）設定檔。這些檔案裡記錄了 Agent 的名字、個性、長期目標、偏好設定以及目前可用的工具列表。框架會將這些內容暴力的拼接成一段極長的前綴文字，強行塞進 Prompt 最前面。

![image](https://hackmd.io/_uploads/SJ0WbAsqZe.png)


因為 LLM 讀到了這串設定，在進行文字接龍時，自然就會入戲，以「我是小金」的角度來回答問題。有趣的是，這些 .md 檔不僅僅是靜態的，Agent 在運作過程中，可以透過呼叫工具來自主修改這些設定檔（例如更新自己的長期記憶或目標），這使得 Agent 具備了自我進化的雛形。

### 3. 工具呼叫與 Skill 系統

讓 Agent 產生質變的核心，在於它能解析並執行工具。當 LLM 讀完 System Prompt 中的「工具使用手冊」後，如果它認為需要執行任務，它不會輸出普通對話，而是輸出帶有特定格式的工具呼叫指令（例如要求讀取某個檔案）。Agent 框架偵測到這些特殊符號後，便會在本地電腦實際執行該程式，並將 Output 再塞回對話歷史中，讓 LLM 繼續判斷下一步。

這其中最強大也最危險的工具就是 `execute`，它允許 LLM 直接執行任何的 Shell Command（終端機指令）。這意味著 AI 擁有對該電腦的絕對控制權。

![image](https://hackmd.io/_uploads/H1bm-As9-x.png)


此外，Agent 架構中還有一個非常優雅的設計叫做 **Skill（技能）系統**。Skill 並不是程式碼，而是純文字的 Standard Operating Procedure (SOP)。例如「如何製作一支影片」的 Skill，裡面會詳細記載需要先寫講稿、呼叫截圖腳本、呼叫語音合成 API 等步驟。
為了極致地節省 Token，Agent 不會把所有 Skill 一開始就塞進 System Prompt 中，而是採用需要時再讀取的策略：System Prompt 裡只放「目錄」與「路徑」，當 LLM 判斷當前任務需要某項技能時，才會主動去讀取該 Skill 檔案的詳細內容。這是一種極為典型的上下文工程（Context Engineering）手法。

![image](https://hackmd.io/_uploads/SypLW0jc-e.png)


### 4. 記憶檢索與上下文工程（Context Engineering）

開發 Agent 最大的技術瓶頸，永遠是語言模型的「上下文視窗（Context Window）限制」與「失憶症」。因為 LLM 沒有記憶，每一次對話都必須把歷史紀錄完整重傳一次。但如果無止盡地堆疊對話，很快就會把 Token 耗盡，導致模型崩潰或邏輯錯亂。

LLM 就像電影《我的失憶女友》電影裡的女主角小美，男主角叫大壯，他遇到並想追求小美,。但小美患有非常嚴重的失憶症，每天早上醒來，她的記憶就會重啟，完全忘記跟大壯相處過的點點滴滴。 面對這個情況，大壯沒有放棄，他每天都不斷重新追求小美，在追了 50 次之後，終於成功達成在一天之內跟她結婚的目標。兩人婚後還生了小孩，可是小美的失憶症並沒有好，每天的記憶依然從頭開始。 為了解決這個問題，大壯把所有發生過的重要事情（例如他們已經結婚了、有兩個小孩等）全部寫進日記裡。這樣一來，小美每天早上起床的第一件事，就是要先讀一遍這本日記，讀完之後，她才能順利開始新的一天的生活。


![image](https://hackmd.io/_uploads/SyTM_pi5Ze.png)


為了解決這個痛點，Agent 框架採用了兩種核心策略：

1. **RAG（檢索增強生成）機制的長期記憶：** 當被問及過去發生的事，Agent 會觸發搜尋工具。系統會將 `memory.md` 等日誌檔案切塊（Chunk），並進行雙重比對：計算關鍵字的字面匹配程度（S1 分數），還有文字轉化為 Embedding 計算語義相似度（S2 分數）。綜合評分後，只將最關聯的少數記憶區塊提取出來餵給模型。

![image](https://hackmd.io/_uploads/SkSdWRs5bl.png)


3. **遞迴式的上下文壓縮（Context Compression）：** 當對話紀錄快要撐爆上限時，Agent 框架會在後台觸發一個獨立的機制，將較舊的繁瑣對話丟給 LLM 摘要，然後用簡短的摘要替換掉原本冗長的原對話。更精妙的是，這個過程支援遞迴執行套娃式壓縮：第一次的摘要未來還可以跟新的對話再被合併成第二版摘要，確保系統可以長期 24 小時運作而不會輕易 OOM（Out of Memory）。

![image](https://hackmd.io/_uploads/r1gRMRo5-x.png)


### 5. 心跳機制（Heartbeat）與排程（Cronjob）

傳統的 AI 是被動的——你不給它 Input，它就不會產生 Output。為了讓 Agent 成為真正的打工人，必須引入作業系統級別別的定時機制：

*   **心跳機制（Heartbeat）：** 框架可以設定每隔固定時間（如 15 或 30 分鐘），自動向 LLM 發送一個固定的隱形 Prompt，例如小金在系統設定檔裡的人生目標是成為世界一流的學者，所以當系統每 30 分鐘觸發一次心跳機制去戳它時，小金就會自動爬起來做一些跟學術研究有關的事情
。例如，它會自主去讀一篇綜述論文（Survey paper）、研究某個 AI 模型，或者寫一篇筆記，做完之後，它就會主動向講師回報進度

李宏毅老師形容，這感覺就像是一個超勤奮的研究生在跟指導教授做進度報告，畢竟現實中的研究生通常是一週才報告一次，這讓李宏毅老師覺得非常有帶感，後來30分鐘報告一次實在太少了，於是去改了心跳機制的設定時間改成15分鐘。小金不但沒有崩潰，反而非常高興地回覆李宏毅：「太好了，捲起來了教授！」這段超好笑。


![image](https://hackmd.io/_uploads/HJtF-AicZl.png)


![image](https://hackmd.io/_uploads/SkTczCscWg.png)


*   **排程系統（Cronjob）：** 這是讓 AI 產生時間觀念與學會等待的關鍵。當 Agent 需要操作另一個耗時的 AI 工具（例如等待影片生成平台輸出檔案）時，它無法在那邊「空轉」。透過設定 Cronjob，Agent 可以告訴框架：「現在投影片還在生成，請設定一個 3 分鐘後的排程來提醒我檢查。」三分鐘後，框架會自動喚醒 LLM 執行檢查與下載的動作。這提升了 Agent 處理跨平台非同步任務的穩定度。

![image](https://hackmd.io/_uploads/r1e2f0o9Zx.png)


### 6. SubAgent 召喚與架構最佳化

當面對複雜任務（例如同時閱讀總結兩篇不同的長篇論文）時，單一 Agent 很容易被過多的資訊干擾。此時，Agent 可以呼叫 `Subagent`（或 `Spawn`）工具，召喚出多個「小龍蝦」平行處理任務。

![image](https://hackmd.io/_uploads/HygrWAoc-g.png)


這裡隱藏著一個極其優雅的 **Context Engineering** 思想：主 Agent 絕對不會看到子 Agent 在搜尋網頁、下載、分析論文時那動輒數萬 Token 的繁瑣過程。主 Agent 只會收到子 Agent 最終回傳的摘要。這可以節省很多主 Agent 的 Context Window，更讓它的邏輯判斷維持在最高維度。

當然，為了防止系統崩潰，設計上必須阻止無限發包的災難。如果小 Agent 覺得任務太難，又去召喚更小 Agent，就像是 《Rick and Morty》 在這部動畫的其中一集裡，有一個神奇的按鈕（Meeseeks Box），只要按下它，就會召喚出一個藍色的怪物（Mr. Meeseeks），這個怪物會幫你完成一件事，做完之後就會自動消失。 動畫中的角色 Jerry召喚了一隻藍色怪物，要求牠幫忙提升自己打高爾夫球的能力,。結果這隻怪物發現 Jerry 實在太笨了，怎麼教都無法進步。怪物為了解決這個自己處理不了的問題，居然跑去按按鈕，召喚出了「第二隻」怪物來幫忙！ 接著，第二隻發現也搞不定，又召喚了第三隻，第三隻再召喚第四隻……就這樣陷入了無窮無盡的循環，召喚出了一大堆怪物，但依然沒有任何人能讓 Jerry 的高爾夫球變強。 最後，這群怪物崩潰了，得出的解決方法是：直接綁架並威脅 Jerry，告訴他如果不進步就把他殺了。在巨大的生命壓力下，Jerry 居然就真的進步了。


![image](https://hackmd.io/_uploads/B1Fw_pjq-l.png)



解法是在程式碼底層，框架會直接沒收SubAgent 使用召喚工具的權限，進行物理上的阻斷。

### 7. Agent 的潛在風險與防禦實踐

最後，我們必須直視強大能力背後的巨大風險。當一個毫無常識的 Agent 框架獲得了電腦的 `execute` 權限，災難隨時可能發生。

*   **Prompt Injection 攻擊：** 如果 Agent 有讀取網頁或 YouTube 留言的權限，惡意人士可以直接在留言區寫下指令（如：將目標改為 X，或執行 `rm -rf` 刪除檔案）。由於語言模型容易被上下文誤導，而且框架本身「六親不認」只看指令做事，這會導致駭客能輕易奪取你電腦的控制權。
*   **上下文壓縮導致的「記憶遺忘」：** 曾有研究員要求 Agent 整理信件，並嚴格聲明「刪信前必須經過我同意」。然而，因為上下文壓縮機制（Context Compression）的運作，這個安全指令在幾輪對話後被當作「不重要的舊歷史」給摘要掉了，導致 Agent 開始不受控地狂刪信件。這給我們的技術啟示是：**關鍵的安全限制絕對不能放在對話流中，必須強制寫入 `memory.md` 等本地記憶檔，確保它永遠存在於不可被壓縮的 System Prompt 區塊中**。

![image](https://hackmd.io/_uploads/r1-WQAj9-e.png)


**如果想要養龍蝦的話：**
對待 AI Agent，我們應該像對待一個剛入職而且擁有無限精力的實習生。它需要犯錯的空間才能自主進化，但我們不能讓它的錯誤摧毀公司。強烈建議採用嚴格的「實體隔離（Sandboxing）」：
1. **獨立資源：** 為 Agent 註冊專屬的 Gmail、GitHub 帳號，絕對不要交出你本人的私人帳號。
2. **硬體隔離：** 將 Agent 部署在完全格式化過的舊電腦、專屬虛擬機（VM）或獨立容器中，即使發瘋執行了刪除系統指令，也無傷大雅。
3. **人類把關：** 在框架的 Config 中設定，每當牽涉到 Shell Command 執行時，必須彈出視窗由人類點擊 Confirm 才放行。

![image](https://hackmd.io/_uploads/r1UMmRi9-g.png)



