MUST · 手搓你的 AI Agent · 組件 04

Harness 解剖圖

模型是黑盒,殼是透明的:看清一個 Agent 由哪些部件組成,哪些部件佔詞元(token),哪些帶得走。

先看整體

模型(model)是黑盒:一個大型語言模型(large language model, LLM)讀入一段文字、寫出一段文字,內部沒有人能讀懂。Agent(代理)=模型+Harness(執行框架)——Harness 是模型以外的一切:系統提示、工具、權限、記憶……也就是組件 02 裡「做事的那一層」。

殼是透明的:每一件部件都看得見、改得動,而且帶得走。再往外一層是 我的 Agent(第四層):你帶得走的六件資料夾,加上你和多個模型、多個 Agent 分工協作的方式;工作台(workbench,例如 dsh)只是你搓 Agent 的殼。本頁以外框示意。先按「純聊天」,再逐件裝上,看一個 Agent 如何一件一件裝起來。

  1. 第一層模型(黑盒)
  2. 第二層Agent = 模型 + Harness
  3. 第三層Harness(殼,帶得走)
  4. 第四層我的 Agent(你+六件資料夾+多個 AI)
一鍵組裝

按一個預設,下方解剖圖會一次裝好;之後可以逐件裝上、拆下,看上下文用量與運行結果如何改變。

解剖圖

中間是模型,四周十個插槽是 Harness 的部件。暖色的文字部件會把一段文字放進上下文視窗(context window,模型每次能看見的「白板」,見組件 05),所以佔詞元(token,模型計數與收費的單位)。冷色的閘門部件是程式,在模型之外執行,一個詞元都不佔。按插槽或右邊的按鈕裝上、拆下。

換模型只換名牌和兩個小數字,殼不變。
第四層:我的 Agent(示意)
  • 你(人在迴路)
  • 多個模型分工:便宜的起草、強的審核
  • 多個 Agent 協作:研究/寫作/審核
  • 跨 Agent 共用的技能庫與記憶
  • 你的工作流;工作台(dsh 等)是殼
模型(黑盒)
上下文長度: 每百萬輸入詞元:

「我的 Agent」是你帶得走的六件資料夾,加上你與多個 AI 分工協作的方式;Harness 是其中一個 Agent 的殼,工作台是你搓它的地方。

  • 文字部件:注入文字,佔上下文
  • 閘門部件:程式,0 個詞元
  • 虛線=空插槽

上下文計量表

你還沒開口,上下文已佔用約0個詞元

    詞元數為示意典型值。刻度 0–8,000 只顯示開場的部件,不是整塊白板。技能採「漸進揭示」(progressive disclosure):平時只載入每份技能的名稱與一行描述,用到時才載入全文。

    部件箱:裝上/拆下

      運行一次,看缺了甚麼會怎樣

      同一個請求,交給上面組裝好的 Agent。運行紀錄是預先編寫的示意(沿用組件 02 的畫法:模型寫字、請求單、Harness 動作),結果只取決於裝了哪些部件,與選了哪個模型無關。

      你的請求:「幫我把 下載/ 裡的三份報告整理成一頁摘要,並刪除舊草稿」
      示意:為了在課堂上看得見「上下文已滿」,這次運行假設白板只有 32K(組件 05 的最小檔);三份長報告各約 10,500 個詞元(約六倍於組件 01 那份三頁報告)。
      1. 尚未運行。按「運行」,看這個 Agent 怎樣處理上面的請求。

      結果

      運行後這裡會列出:摘要有沒有寫成、舊草稿怎樣了、有沒有核對,以及一句「為甚麼」。

      重點一

      模型是黑盒,殼是透明的

      模型的內部是數以百億、千億計的數字,沒有人能讀懂它為何這樣回答;遇到問題,你只能換一個模型,或多試幾次。

      殼上的每一件部件卻都看得見、改得動:系統提示是一段文字,權限閘是一份設定,技能是資料夾裡的檔案。學會殼,就學會了用 AI 的大半——問題出在哪一件,就修那一件。

      重點二

      Agent = 模型 + Harness;帶得走的是 Harness

      學期結束你帶回家的,不是任何一個模型——它們每季換代、按詞元收費——而是你寫好的系統提示、記憶檔、技能與權限設定。換一個模型,殼照用。

      重點三

      殼裡每件文字部件都佔上下文:少裝不需要的

      想一想

      課堂討論用,每題兩分鐘。

      1. 為你自己學科的一件工作(例如會計對帳、護理排班、旅遊行程、設計提案)組裝一個 Agent:你會最先裝上哪三個部件?哪一個會刻意不裝?為甚麼?
      2. 你的 Agent 給了一個自信但錯誤的答案。殼裡(不是模型裡)有哪一個部件,本來可以攔住它?
      教師提示(討論後再展開)

      第 1 題可引導的方向:常見的起點是系統提示(定角色與規則)、工具箱(只給這件事需要的幾件)、權限閘(不可復原的動作要問);刻意不裝的多是 MCP 伺服器與大批技能——每一個都佔上下文、每一輪重送——以及「全自動放行」。判準只有一句:這件部件是不是這件事需要的?不是,就是純成本。可回到重點三,比較「十件全裝」與「編碼 Agent」的開場詞元。

      第 2 題可引導的方向:系統提示(要求完成前讀回核對、引用要附來源)、技能(把「核對」寫成步驟)、hooks(完成前自動跑一次檢查)、權限閘與人在迴路(不可逆前停下來問你)、子代理(讓另一個 Agent 審核)——全都在殼裡;模型本身不會知道自己錯。可接回組件 02 的「宣稱完成不等於完成」,以及第 4 堂的「提示是建議,權限才是強制」。