2026年5月9日 星期六

在 Google Antigravity 中大幅降低 Token 消耗的實戰指南

 在 Google Antigravity 中大幅降低 Token 消耗的實戰指南

—— Agent-First IDE 的上下文與成本優化技巧使用 Google Antigravity 這類 Agent-First IDE 時,Agent 會頻繁讀取專案上下文以維持邏輯連貫,因此 Token 消耗速度遠高於傳統 Chat 模式。一個不小心,複雜任務就可能燒掉數十萬 Token。本文整理出一套系統化的省 Token 策略,幫助你在 Astro + Vue 3 + Laravel 等全端專案中,既保持開發效率,又有效控制成本。
一、核心思維:精確的上下文控制(Context Control)Agent 不需要每次都看到整個專案。過大的上下文不僅貴,還容易造成記憶漂移和幻覺。1. 使用 .antigravityignore 精準排除無用檔案在專案根目錄建立 .antigravityignore 檔案,內容比 .gitignore 更嚴格:
ignore
# Antigravity 專用忽略清單
node_modules/
vendor/
dist/
build/
.git/
*.log
*.sqlite
*.png
*.jpg
*.jpeg
*.gif
*.webp
public/build/
storage/framework/cache/
storage/framework/sessions/
效果:避免 Agent 讀取大型依賴套件、編譯後檔案與圖片,大幅減少索引 Token。2. 精準選擇檔案(Targeted File Selection)
  • 不要對整個專案提問
  • 使用 Antigravity 的 @檔案路徑 或 Pin 功能,只選取當前任務相關檔案
    • 例如:同時 Pin app/Services/UserService.php + src/composables/useUser.ts + resources/views/filament/pages/user-settings.blade.php
  • 任務結束後,立即清除對話歷史 或重置 Context,避免舊對話變成永久負擔

二、規則文件優化(Rule Compaction)規則文件雖然重要,但太長會每次都被讀取,造成嚴重 Token 浪費。最佳實踐:
  1. 模組化拆分規則
    • LARAVEL_RULES.md(後端專用)
    • VUE_RULES.md(前端 Vue 專用)
    • ASTRO_RULES.md(Island 與 Client 指令專用)
    • FILAMENT_V3_RULES.md(Admin 面板專用)
    • 只在對應任務時才掛載相關規則
  2. 精煉 Markdown 寫法
    • 減少敘述性段落,多使用結構化清單與表格
    • 使用粗體關鍵字突出重點
    • 每個規則控制在 1~2 行以內
    • 優先使用「禁止事項」與「強制做法」格式

三、流程優化:減少無效思考循環1. 強制「Plan & Approve」機制在重要任務的 Prompt 中加入:
「Before writing any code, first show me your execution plan in detail, including which files you will modify and why. Wait for my approval before proceeding.」
這一步能大幅減少 Agent 盲目嘗試所浪費的 Token,通常可省下 30%~50% 的無效消耗。2. 智慧模型切換策略
任務類型
推薦模型
理由
簡單修改、補註解、格式化
Gemini 1.5 Flash
速度快、價格極低
中等任務、單檔案調整
Gemini 1.5 Flash / Pro
平衡成本與能力
複雜重構、多檔案協作
Claude 3.5 Sonnet / Gemini 1.5 Pro
推理能力強
架構設計與審核
Claude 3.5 Sonnet
長上下文理解佳

四、減少幻覺糾正的 Token 浪費「跟 Agent 吵架修正錯誤」是最燒 Token 的行為之一。有效做法:
  1. 提供精確片段
    直接貼上相關的 interface、function signature 或既有程式碼片段,讓 Agent 參考,而不是讓它自己掃描目錄。
  2. 使用 One-Shot Prompt
    在提示詞中直接給一個「正確示範」的小範例:
    markdown
    正確範例(請嚴格遵循此風格):
    ```ts
    export const useApi = <T>(endpoint: string) => { ... }
  3. Reference Discovery 結合精準參考
    要求 Agent 先參考特定檔案,而不是整個目錄。

五、工具層面省錢技巧總表
技巧
說明
節省潛力
Clear History
每個功能完成後清空對話
⭐⭐⭐⭐⭐
Manual Indexing
關閉自動全專案索引,只手動觸發
⭐⭐⭐⭐
.antigravityignore
排除無用大型檔案與目錄
⭐⭐⭐⭐⭐
模型切換
小任務用 Flash,大任務用 Pro/Sonnet
⭐⭐⭐⭐
Local LLM
簡單補全使用 Ollama 本地模型
⭐⭐⭐
Pinned Files
只 Pin 當前任務相關的 3~5 個檔案
⭐⭐⭐⭐⭐

總結:最省 Token 的正確使用心法在 Antigravity 中,最有效的省錢行為是**「先思考,再提問」**。
  • 每次提問前先整理好相關檔案
  • 重要任務先要求 Agent 輸出 Plan
  • 善用模組化規則與精準上下文
  • 任務結束立即清理歷史
實測下來,妥善使用以上策略,通常能節省 40%~60% 的 Token 消耗,同時還能降低幻覺發生率,讓開發流程更順暢。

跨專案防幻覺指南:利用 Laravel-Data 打造 AI 時代的「高感度」全端架構

在前後端分離(Decoupled)的架構中,最燒 Token 的行為莫過於讓 AI Agent 在兩個獨立目錄間反覆橫跳、搜尋 API 欄位。透過 spatie/laravel-data,我們可以建立一個強大的「資訊地圖」,讓 AI Agent 讀取最少的檔案,精準寫出 100% 正確的代碼。


為什麼這是 AI 開發的最佳實踐?

傳統開發中,後端 API 資訊散落在 Controller、Resource 和 Model。對 AI 來說,這意味著要讀取數千個 Token 才能拼湊出一個 API 格式。

使用 Laravel-Data 後:

  • 高壓縮比: 一個 200 Tokens 的 Data 類別,包含了驗證、DTO 與回應格式。

  • 零幻覺: 強型別約束讓 Agent 沒有猜測空間。

  • 跨專案解耦: 前端 Agent 只需「投影」後端的 Data 類別,無需理解後端實作細節。


第一階段:後端架構 —— 建立單一真理來源 (SSOT)

在 Laravel 12 中,我們廢棄傳統的 Resource,改用 Data 類別。

1. 安裝套件

Bash
composer require spatie/laravel-data

2. 定義資料合約 (Contract)

建立 app/Data/ProductData.php。這就是 AI 唯一需要閱讀的「合約」。

PHP
<?php

namespace App\Data;

use Spatie\LaravelData\Data;

class ProductData extends Data
{
    public function __construct(
        public int $id,
        public string $title,
        public int $price_cents, // 以分為單位,防止 AI 算錯浮點數
        public ?string $description,
        public bool $is_published,
        /** @var string[] */
        public array $tags,
    ) {}

    public static function fromModel($product): self
    {
        return new self(
            id: $product->id,
            title: $product->name,
            price_cents: $product->price,
            description: $product->desc,
            is_published: $product->active,
            tags: $product->tags->pluck('name')->toArray(),
        );
    }
}

第二階段:Antigravity 配置 —— 建立 AI 存取協議

要在前端目錄開發時不產生幻覺,我們必須在專案根目錄建立規則。

1. 建立 .antigravity/rules/API_RULES.md

Markdown
# API 溝通協議
1. **參考對象**:前端開發時,必須優先讀取後端目錄 `@backend/app/Data/` 下的對應 Data 類別。
2. **禁止自創欄位**:嚴禁根據猜測撰寫 Vue 組件中的變數名,所有欄位必須與 Data 類別屬性 100% 匹配。
3. **回應結構**:API 成功回傳統一為 `{ "data": T }`

第三階段:實戰工作流 —— 如何省下 70% Token?

這是最核心的操作技巧,避免讓 Agent 漫無目的地搜尋。

Step 1: 精準 Pin (釘選)

當你需要開發「產品列表」前端功能時,不要讓 Agent 掃描整個後端。

指令範例:

「我要實作產品列表 UI(Vue 3)。請參考後端的 @backend/app/Data/ProductData.php,幫我產生對應的 TypeScript Interface,並完成列表渲染邏輯。」

Step 2: 檔案投影 (Projecting)

Agent 讀取 ProductData.php(約 200 Tokens)後,會在前端生成:

TypeScript
interface Product {
  id: number;
  title: string;
  price_cents: number;
  description: string | null;
  is_published: boolean;
  tags: string[];
}

一旦 Interface 生成完成,立刻解除釘選 (Unpin) 後端檔案。接下來的 UI 調整,Agent 只需要看這份 Interface,不再需要回頭讀取後端。


第四階段:總結 —— 效益對比

指標傳統全端開發Laravel-Data + Antigravity 模式
Token 消耗 (需掃描 Route, Controller, Model)極低 (精準讀取單一 Data 檔)
AI 幻覺率 (常猜錯欄位名、忘了 nullable)接近 0 (屬性即合約)
維護成本 (修改後端要手動改三處) (只需修改 Data 類別)

架構師建議

在中大型網站中,AI 的效率取決於你給它的「資訊密度」。laravel-data 將原本混亂的 API 結構壓縮成一份乾淨的「說明書」。

當你讓 Antigravity 的 Agent 習慣於「先讀 Data 檔,後寫前端碼」的節奏時,你不但省下了大筆的 Token 費用,更獲得了一個永遠不會寫錯 API 欄位的完美隊友。

沒有留言:

張貼留言

馴服 AI Agent:在中大型專案中建立「永不幻覺」的開發協議

在 Vibe Coding 的時代,開發速度已經不再是主要瓶頸,「正確率」與「可維護性」才是決定成敗的關鍵。當你的專案使用 Astro 5 + Vue 3 + Laravel 12 + Filament v3 這樣的複雜全端技術棧時,AI Agent 很容易因為上下文過長而出現...