先鋒小隊改成先分享工作、再補技術概念之後,很多問題開始用不同的方式冒出來,有人可能發現 AI 每次回答的方向都不太一致;有人已經放進很多資料,結果仍然不是自己要的;也有人想讓 AI 幫忙做更多事情,卻不知道除了下 Prompt,還需要準備什麼。這些狀況表面上不一定叫做 Context Engineering。對先鋒小隊成員來說,它可能只是:「AI 為什麼不知道我要什麼?」「我明明跟它說過,它怎麼又忘了?」「為什麼它會回答,卻不能直接幫我把事情做完?」
技術名詞不是大家一開始遇到的問題。技術名詞的作用,是等問題浮現之後,幫我們把原本模糊的狀況說得更清楚。所以,我不是完全放棄原理和架構,而是把它們放到一個更適合出現的位置。
這張圖也不是突然冒出來的。那段時間,我一直在想,怎麼把 LLM、RAG、MCP、Function Calling 這些技術名詞,轉化成大家比較容易理解的東西。想著想著,自然而然又接回我一直相信的一件事:把 AI 當成一個人來理解。

既然如此,乾脆直接把 AI 的技術架構畫成一個人的樣子。LLM 像人的大腦,負責理解、推理和產生回應。System Prompt 像是這個人接到的角色設定與工作原則,告訴他自己是誰、應該怎麼做事,以及有哪些限制。人會記得剛才說過的話,也會從過去的經驗和外部資料取得資訊。這些可以放在 Memory 的概念裡:Chat Memory 保存對話脈絡;RAG 協助從外部知識中找出相關內容;Status Memory 則記錄工作進行到哪裡、目前處於什麼狀態。但一個人不能只有大腦和記憶,也需要伸手做事。AI 如果要讀取檔案、查詢資料、寄送訊息或操作其他軟體,就需要可以使用外部工具。我當時把 MCP 畫在大腦與手臂之間,像是一套讓 AI 知道有哪些工具、這些工具能做什麼,以及該怎麼使用的共同規格;Function Calling 則像是 AI 決定伸出哪一隻手,提出一次實際的工具呼叫。
這當然不是一張精確的系統架構圖。真實系統裡,MCP、Function Calling 和各種 Memory 的關係,比人的大腦、記憶和手複雜得多,也不能完全一一對應,但可以幫助先鋒小組的成員,更容易知道每個元件大概扮演什麼角色,之後再慢慢補進更精確的技術細節。
圖畫出來之後,效果比我預期得好。大家當下的反應是:很容易理解。原本每個人對技術名詞的熟悉程度都不一樣。有人完全沒聽過 MCP;有人聽過,卻不知道它跟 Function Calling 有什麼差別;也有人用過知識庫,但不清楚那跟 LLM 本身的能力有什麼不同。可是套進「大腦、記憶、手」這套說法後,陌生的技術名詞好像突然都有了位置。LLM、RAG、MCP 這些詞,第一次聽到時,可能只會留下幾個英文縮寫,很難在腦中形成具體的樣子。但大腦、記憶、伸手做事,是每個人都有的身體經驗。當陌生的概念掛到熟悉的經驗上,理解的門檻就降下來了。這個比喻不會讓大家立刻懂得怎麼架設一套 AI 系統,但至少可以先建立一張共同的地圖。之後再聽到新的技術名詞時,大家比較知道應該把它放在哪裡,也比較容易理解它試圖解決什麼問題。
後來我發現,這張圖帶來的效果不只是「大家聽懂了」,也替先鋒小隊建立了一套共同語言。在那之前,每個人提到 AI,腦中想的可能不是同一件事。有人想到 ChatGPT,有人想到自動化流程,有人想到知識庫,也有人把所有能回答問題的東西都叫做 Agent。當我們開始用大腦、記憶和手來討論,很多原本模糊的問題變得具體了一點。
「現在是大腦本身不會回答,還是它沒有取得需要的資料?」「這個問題需要補一段記憶,還是要多接一隻可以做事的手?」「它知道應該做什麼,但有沒有可以使用的工具和權限?」這些說法不一定是工程師描述系統時最精確的語言,卻讓一群技術背景不同的人,可以先確認彼此談的是不是同一件事。
一開始,我把 AI 當成一個人,是為了幫助自己跟它協作。我會像面對一位剛加入團隊的夥伴一樣,交代工作的背景、目的、限制和驗收標準;也會考慮它知道什麼、缺少什麼資訊,以及能不能使用完成任務所需的工具。到了先鋒小隊,這個想法又換了一種用途,「把 AI 當人」不只幫助我使用 AI,也開始幫助我向別人解釋 AI。而這背後還多了一層新的教學順序:先聽一個人正在做什麼,找到他真正卡住的地方,再補進能幫助他理解問題的技術概念;最後,用他原本就熟悉的經驗,替陌生概念找到一個可以放置的位置。