AI Agent/·8 min read·OraCore Editors

用了 Claude Code 半年,這五件事我希望一開始就知道

用 Claude Code 超過一週的人都會發現,它跟 ChatGPT 最大的差別不是能跑 terminal、也不是能搜網頁,而是它會記住東西並且隨使用成長。但多數人停在「跟它聊天」的階段。這篇整理半年經驗裡最有感的五件事:CLAUDE.md 的真正用法、Memory 該存什麼、Skill 組合的化學反應、Subagent 派工的三種常見錯誤,以及跨 CLI 協作(Claude Code / Codex / Gemini)的實作選擇。

Share LinkedIn
用了 Claude Code 半年,這五件事我希望一開始就知道

Claude Code 上手一週之後,大部分人還在問它「一個問題、拿一個答案、關掉視窗」。這個用法跟 ChatGPT 差不多,看不出差異。

差別要從「讓它記住東西」開始。Claude Code 最被低估的能力不是跑 shell、也不是搜網頁,而是跨 session 的記憶機制:CLAUDE.md、MEMORY、Skill、Subagent、Cron、MCP server 這一整組工具,拼起來能把一個 AI 助手變成一個會學習的數位分身

這篇整理用了半年後,最想回去告訴剛開始那個自己的五件事。不是功能清單,是「這些功能應該用在什麼情境」。

一、CLAUDE.md 不是人格設定,是 guardrail

很多教學把 CLAUDE.md 當作「給 Agent 寫人格」的地方,寫「你要直接、有觀點、不要用客服用語」這種指示。這些寫了沒錯,但用錯重點。

用了 Claude Code 半年,這五件事我希望一開始就知道

CLAUDE.md 的真正用途是 guardrail,不是 personality。它是你每次對話都會被強制注入的上下文,最有效的用法是寫你反覆踩到的陷阱,而不是泛泛的性格描述。

例子,這種寫法沒用:

你要簡潔、有觀點、不要囉嗦。

Claude 讀了這段幾乎什麼行為都不會改,因為「簡潔」跟「囉嗦」它本來就有判斷。有用的寫法是:

  • DELETE / UPDATE 執行前,必須先用相同 WHERE 條件跑 SELECT 確認影響範圍
  • API Key 禁止硬編碼,要用環境變數
  • 完成修改必須跑 linter 才能標記任務完成

這三條是可執行的檢查點。Claude 違反這些條件時你能指著條文說「你違反規則 X」,它會真的改。

實務建議:CLAUDE.md 保持在 1KB 以內,寫「事件驅動」的規則(當你遇到 X 就要 Y),不寫「狀態描述」的規則(你是 Y 類型助手)。前者是 guardrail,後者是裝飾。

二、Memory 不是檔案系統,是「頻率 × 持久度」的儲存

Claude Code 的 Memory 大致分三層:

  • Session Memory:當前對話的上下文,關掉就沒了
  • Persistent MemoryMEMORY.md + USER.md 跨 session 持久
  • Skill Memory:從經驗提煉的可重用工作流

表面看起來像三種檔案,實際上是頻率 × 持久度的兩軸:存得越久、調用頻率越低,就該用越濃縮的形式。

踩過的坑:早期什麼都塞 MEMORY.md,包括「今天 deploy 了 v4.9.3」「某個客戶的 edge case 處理」這種臨時性事實。結果兩個月後 MEMORY.md 膨脹到 8KB,每次對話都被灌一堆無關歷史,品質反而下降。

該存的三種東西

  • 難重現但會重複遇到的陷阱(例:"Supabase RLS 在 service role 下會被繞過,所有 public routes 必須 status=eq.published 明寫條件")
  • 專案的長期決策(例:"Stack A 使用 Nuxt 3,不遷 Next.js")
  • 用戶明確的偏好(例:"commit 訊息用 conventional commits,不加 emoji")

不該存的三種東西

  • 短期狀態(今天 deploy 了什麼)
  • 可以從 code / git 讀出來的事(專案結構、最近 commits)
  • 單次專案的細節(「本次重構的檔案列表」)

這些短期資訊放 task list、git log 或 session memory 就夠。寫進 MEMORY.md 反而污染未來對話。

三、Skill 的價值在組合,不在單個 Skill 多強

很多人把 Skill 當「插件」使用,裝一個用一個。這樣看不出 Skill 的真正價值。

用了 Claude Code 半年,這五件事我希望一開始就知道

Skill 的化學反應出現在串接。舉個具體例子,做一個新聞網站的內容管線,可以串 5 個 Skill:

  1. keyword-research:輸入話題,產出 SEO 關鍵字與搜尋意圖
  2. content-brief:輸入關鍵字,產出文章大綱 + 原始資料來源
  3. draft-writer:輸入大綱,產出第一版 HTML 文稿
  4. humanizer:掃描 AI 寫作模式,產出修訂建議
  5. seo-optimizer:輸入稿件,檢查 meta、canonical、內鏈密度

每個 Skill 單用都普通,串起來能跑出一條零接觸的文章產製線。重點不在 Skill 強度,在於它們透過檔案系統傳資料——每步輸出寫到固定檔案,下一步直接讀,不依賴記憶體變數。

設計 Skill 的三個原則:

  • 單一職責:一個 Skill 只做一件事,不要塞兩個功能
  • 冪等:同樣輸入跑兩次結果不變
  • 可觀察:每一步輸出落地為檔案,出錯時可以打開看

這三點看起來像 Unix 哲學,因為它就是 Unix 哲學。Skill 系統真正的設計靈感是 pipe,不是插件。

四、Subagent 派工的三種錯誤姿勢

Subagent 是「派生子任務」的機制,讓主 session 可以丟工作給獨立的子 Agent 並行跑。很多人第一次用會犯三個錯誤:

錯誤一:濫用並行

把所有任務都丟 subagent。實際上有順序依賴的任務並行反而更慢,因為要把每個 agent 的結果餵給下一個,還得重新拼 context。只有確定無依賴的任務才適合並行。

錯誤二:context 重複餵

派 subagent 時把整個對話歷史塞給它。Subagent 的價值就是乾淨 context,重新餵歷史違反設計。正確做法:給 subagent「目標 + 必要上下文」,讓它用空白腦袋做事。

錯誤三:沒設 exit criteria

Subagent 不知道什麼時候算完成。預設行為是把話講完、寫個總結就停,但它可能只做了 30% 的任務就「結案」了。正確做法:在派工指令裡寫清楚「必須驗證 X 通過、必須產出 Y 檔案、必須回報 Z 數據」,沒達到不能結案。

以 OraCore 的文章產製為例,我的派工模板是:

把這 8 篇 markdown 轉成 HTML 並插入 DB。驗收條件:

  1. 執行 SELECT count(*) FROM articles WHERE slug LIKE 'xyz-%' 結果為 8
  2. 每筆 rewrite_status = 'done'status = 'published'
  3. 4 組 zh/en 透過 related_article_id 雙向連結。回報時附 SELECT 結果。

Subagent 知道自己要達成什麼才算完成,結果品質直接從「猜它做到哪」變成「驗證數字」。

五、跨 CLI 協作:tmux、MCP server、檔案 bus 的取捨

用到一定程度會想「能不能讓 Claude Code 當主控,派工給 Codex、Gemini、本地的 llama.cpp 等不同模型?」這個想法合理,因為每個模型有各自強項:Opus 強在架構判斷、Codex 強在重構、Gemini 強在長 context 摘要。

實作路徑有三種:

路徑一:tmux send-keys

用 tmux 開多個視窗分別跑不同 CLI,主控用 tmux send-keys 派指令,再 scrape terminal 讀回答。快速能動,但四個硬傷:沒 exit code、沒 structured response、terminal 字元污染、記憶靠人工。適合做 demo,不適合生產。

路徑二:MCP server

把每個 CLI 包成 MCP server 的 tool,主控呼叫 dispatch_to(model, task),回應以 JSON 傳回。結構化、有錯誤處理、context 可以用 MCP resource 共享。工作量比 tmux 大(要寫 MCP server),但一次投資長期受益

路徑三:檔案匯流 bus

所有 agent 共用一個資料夾,透過檔案讀寫通訊。主控寫 /tasks/001.json,worker 輪詢資料夾找新任務、寫 /results/001.json。簡單、debuggable、任何語言都能當 worker。缺點是輪詢開銷、沒即時性。

我的結論:demo 用 tmux、生產用 MCP、研究型實驗用檔案 bus。不要想著一種解決所有情境。

結語:從工具到系統

Claude Code 最反直覺的地方是,它不是「一個工具」,是一個會成長的系統。用得越久,它越懂你。你踩過的坑變成它的 Skill,你的偏好寫進 Memory,你的專案規則刻在 CLAUDE.md。三個月後你會發現它已經不只是 AI 助手,更像是一個繼續替你工作的數位分身

從「跟 AI 聊天」到「讓 AI 替你幹活」的距離,不是功能差距,是認知差距。先挑最痛的點切入:每天重複同樣指令的就寫 CLAUDE.md,多專案的就搞 project-level 規則,想讓 AI 自動做事的就上 Cron 加 Skill。

重要的是開始用,讓系統自己長大。

延伸閱讀