iT邦幫忙

2026 iThome 鐵人賽

DAY 25
0
Build on Google AI

在贏家書寫歷史之前:我所看見的 AI,與一位工程師共舞著系列 第 25 篇

Day 25 | Heimdall(七):Antigravity CLI Context - System Prompt

  • 分享至 

  • xImage
  •  

我們繼續在 Heimdall 上實作了另外一個頁面,這個頁面主要想訴說的是:「Agent Harness 發出去的 request 中到底都包含了哪些資訊」。這就是 Heimdall 的第三個畫面:Context(模型輸入快照檢視)。

(不過要先說明的是,這裡呈現的內容是解碼自本地儲存的 Snapshot,並非在網路層直接解封包,所以嚴格來說不能保證最終送出時 100% 完全一模一樣,但也已經足夠讓我們參考 Harness 在背景組裝的脈絡。)

因為發送給模型的 Context 包含相當多內容(系統提示詞、工具定義以及對話歷史等),今天我們就先從 System Prompt 開始看起。


一、Context 介面概覽

在終端機中按下鍵盤 3 或按 Tab 切換到第三頁,畫面主要由左右兩大區塊組成:

https://ithelp.ithome.com.tw/upload/images/20261008/20183607IcMgfgY3hq.png

畫面依比例分為左右兩欄:

  1. 左側面板:呈現最新一輪 Step 發送給模型的 Prompt 快照結構。標題欄會標註當前快照的總 Token 量(如 [Total: 18.5k Tok]),模型輸入快照大致分為三種:SYSTEM PROMPT、TOOL DEFINITIONS 與 CONVERSATION MESSAGES。這裡會看到總 Token 跟個別區塊 Token 總和不一樣,原因是頂部的總量是從底層二進位解碼出來的雲端真實觀測值,而個別區塊則是本地對文字段落的估算;加上官方模型在雲端的 Tokenizer 與二進位封裝開銷不同,因此兩者本來就會有些許落差。
  2. 右側面板:當我們在左側清單選中想關注的節點時,右側會同步顯示該節點的具體文字內容或宣告,這裡是一個 XML 的結構。當我們 focus 到右側面板時,一樣支援文本上下捲動與字串複製,語法跟 Vim 類似。

二、為什麼要檢視 System Prompt?

在實際使用 AI Agent 時,我們很常遇到一些令人疑惑的狀況:

  1. 規則有沒有生效:我們在專案根目錄寫了 AGENTS.md,例如:規定要遵守繁體中文政策或程式碼架構規範。但模型有時候卻好像沒讀進去。這時就能直接透過 Heimdall 看到送給模型的 Prompt,立刻確認規則檔案是否有被正確載入。
  2. Token 開銷:System Prompt 通常包含 Agent 的身分設定、全域規則與環境資訊,篇幅往往高達數千 Token。這些內容在同個專案的不同輪次中幾乎保持不變,因此,它正是 Prompt Caching 能否穩定命中、幫我們省下 Token 用量的關鍵基底。還記得我們提過 Prompt Caching 是比對前綴,前綴都一樣才會 Cache。所以如果我們在 System Prompt 的這些區塊裡面塞了會動態變更的內容,我們就很難善用到 Prompt Caching 的好處,Token 開銷就會因此上升。
  3. 行為理解:透過了解 System Prompt,我們會更理解 AI Agent 的每一步,為什麼會做這樣的選擇。例如:我在 Day17 其實也有小抱怨 Antigravity CLI 很愛畫 Mermaid,但問題是「為什麼?」,他為什麼不用 ASCII 字元畫那種在終端機上人看得懂的圖?原因也很簡單,因為 System Prompt 裡面只有教他「如果要產生 Artifact 流程圖,可以用 Mermaid 來畫,並且怎麼畫 Mermaid」,所以當要畫流程圖時,自然第一個就會想到用 Mermaid 來畫流程圖。

因此,看清 System Prompt 具體包含了什麼,是理解 Agent 行為與排查問題的第一步。


三、Antigravity CLI System Prompt 結構

在左側樹狀結構的第一個大區塊是 SYSTEM PROMPT,旁邊會標註整個系統提示詞所佔的 Token 數量(例如 7.0k Tok)。

展開後,除了可以選取 System Prompt 檢視完整的全文之外,Heimdall 也會動態解析文字中的 XML 標籤,並拆解成子節點供快速跳轉。在眾多標籤中,與我們開發者息息相關、也是我們最常用或能親手設定的核心節點主要有以下幾個:

  • Identity:對應 <identity> 標籤。定義模型的角色定位與基本認知,例如宣告它是 Google DeepMind 團隊打造的 Antigravity AI 編程助理、正在與工程師結對編程,以及基本行為底線。

https://ithelp.ithome.com.tw/upload/images/20261008/20183607mWI5dwUJKQ.png

  • User Rules:對應 <user_rules> 標籤。這是我們時常修改且非常關鍵的節點。當專案根目錄下有 AGENTS.md,或者使用者設定了全域規範時,Harness 會將這些規則包裝在 <RULE[...]> 標籤中注入到裡面。透過這個節點,可以直接驗收專案規則到底有沒有如實傳送給模型。可以看到每個 <RULE[...]> 標籤還會寫上這個 Rule 是從哪個目錄來的,例如:這裡我們還可以看到在 Day18 隨便寫的 watch Plugin 的 AGENTS.md,當時我們透過他來規定用這個 Skill 時 Output 的文字 Pattern 要長什麼樣子。

https://ithelp.ithome.com.tw/upload/images/20261008/20183607lPqaOYcv4o.png

  • Skills:對應 <skills> 標籤。當專案在 .agents/skills/ 目錄下定義了 Skill(例如:自訂工作流程或工具指引)時,系統會將每個 Skill 的名稱、說明與觸發時機,也就是 Skill 的 Metadata 資訊列在這個區塊。模型推論時會閱讀這個清單,判斷當前任務是否需要調用某個特定 Skill。這裡也真的證明了,在最一開始並不會把整份 SKILL.md 都送給 AI Agent,這樣會太大包。

https://ithelp.ithome.com.tw/upload/images/20261008/20183607ubUnsksxq7.png

  • MCP Servers:對應 <mcp_servers> 標籤。現代 AI Agent 也常透過 Model Context Protocol(MCP)外接外部工具或服務。此節點會呈現當前掛載的 MCP 伺服器清單與可用工具;若當前提示詞中並未掛載任何 MCP 設定,System Prompt 就不會有這個區塊,Heimdall 也會明確標註 MCP (Not Present)。

https://ithelp.ithome.com.tw/upload/images/20261008/201836074KSN3SsX7R.png

  • Subagents:對應 <subagents> 標籤。定義多 Agent 協作的規範,說明模型如何使用 invoke_subagent 委派 Subagents(例如背景研究 research 或平行任務 self),以及如何透過 define_subagent 動態擴充代理。

https://ithelp.ithome.com.tw/upload/images/20261008/20183607UFV7T6qh6n.png


左側面板中的 Context 還有另外兩個區塊,Tool Definitions 以及 Conversation Messages,明天繼續來看看吧!


上一篇
Day 24 | Heimdall(六):Step Timeline 步驟軌跡
下一篇
Day 26 | Heimdall(八):Antigravity CLI Context - Tool & History
系列文
在贏家書寫歷史之前:我所看見的 AI,與一位工程師共舞著 共 26 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言