我們繼續在 Heimdall 上實作了另外一個頁面,這個頁面主要想訴說的是:「Agent Harness 發出去的 request 中到底都包含了哪些資訊」。這就是 Heimdall 的第三個畫面:Context(模型輸入快照檢視)。
(不過要先說明的是,這裡呈現的內容是解碼自本地儲存的 Snapshot,並非在網路層直接解封包,所以嚴格來說不能保證最終送出時 100% 完全一模一樣,但也已經足夠讓我們參考 Harness 在背景組裝的脈絡。)
因為發送給模型的 Context 包含相當多內容(系統提示詞、工具定義以及對話歷史等),今天我們就先從 System Prompt 開始看起。
在終端機中按下鍵盤 3 或按 Tab 切換到第三頁,畫面主要由左右兩大區塊組成:

畫面依比例分為左右兩欄:
[Total: 18.5k Tok]),模型輸入快照大致分為三種:SYSTEM PROMPT、TOOL DEFINITIONS 與 CONVERSATION MESSAGES。這裡會看到總 Token 跟個別區塊 Token 總和不一樣,原因是頂部的總量是從底層二進位解碼出來的雲端真實觀測值,而個別區塊則是本地對文字段落的估算;加上官方模型在雲端的 Tokenizer 與二進位封裝開銷不同,因此兩者本來就會有些許落差。在實際使用 AI Agent 時,我們很常遇到一些令人疑惑的狀況:
AGENTS.md,例如:規定要遵守繁體中文政策或程式碼架構規範。但模型有時候卻好像沒讀進去。這時就能直接透過 Heimdall 看到送給模型的 Prompt,立刻確認規則檔案是否有被正確載入。因此,看清 System Prompt 具體包含了什麼,是理解 Agent 行為與排查問題的第一步。
在左側樹狀結構的第一個大區塊是 SYSTEM PROMPT,旁邊會標註整個系統提示詞所佔的 Token 數量(例如 7.0k Tok)。
展開後,除了可以選取 System Prompt 檢視完整的全文之外,Heimdall 也會動態解析文字中的 XML 標籤,並拆解成子節點供快速跳轉。在眾多標籤中,與我們開發者息息相關、也是我們最常用或能親手設定的核心節點主要有以下幾個:
<identity> 標籤。定義模型的角色定位與基本認知,例如宣告它是 Google DeepMind 團隊打造的 Antigravity AI 編程助理、正在與工程師結對編程,以及基本行為底線。
<user_rules> 標籤。這是我們時常修改且非常關鍵的節點。當專案根目錄下有 AGENTS.md,或者使用者設定了全域規範時,Harness 會將這些規則包裝在 <RULE[...]> 標籤中注入到裡面。透過這個節點,可以直接驗收專案規則到底有沒有如實傳送給模型。可以看到每個 <RULE[...]> 標籤還會寫上這個 Rule 是從哪個目錄來的,例如:這裡我們還可以看到在 Day18 隨便寫的 watch Plugin 的 AGENTS.md,當時我們透過他來規定用這個 Skill 時 Output 的文字 Pattern 要長什麼樣子。
<skills> 標籤。當專案在 .agents/skills/ 目錄下定義了 Skill(例如:自訂工作流程或工具指引)時,系統會將每個 Skill 的名稱、說明與觸發時機,也就是 Skill 的 Metadata 資訊列在這個區塊。模型推論時會閱讀這個清單,判斷當前任務是否需要調用某個特定 Skill。這裡也真的證明了,在最一開始並不會把整份 SKILL.md 都送給 AI Agent,這樣會太大包。
<mcp_servers> 標籤。現代 AI Agent 也常透過 Model Context Protocol(MCP)外接外部工具或服務。此節點會呈現當前掛載的 MCP 伺服器清單與可用工具;若當前提示詞中並未掛載任何 MCP 設定,System Prompt 就不會有這個區塊,Heimdall 也會明確標註 MCP (Not Present)。
<subagents> 標籤。定義多 Agent 協作的規範,說明模型如何使用 invoke_subagent 委派 Subagents(例如背景研究 research 或平行任務 self),以及如何透過 define_subagent 動態擴充代理。
左側面板中的 Context 還有另外兩個區塊,Tool Definitions 以及 Conversation Messages,明天繼續來看看吧!