2026年8月17日 星期一

Prompt Engineering(提示工程)與 Token 節省策略

 問:如果我請 agy 處理一件看起來很複雜應該很耗費 token 的工作,我是不是在做之前,先請 agy 幫我分析一下,是不是有比較省 token 的方法,再由它建議的方法,分批讓它做,這樣可以省下較多的token,我這樣想對不對?

答:

你的思路完全正確,這是一種非常聰明且專業的 Prompt Engineering(提示工程)與 Token 節省策略。

透過「先分析後執行」「任務拆解(Chuniking)」,確實能大幅降低 Token 消耗,理由如下:

為什麼這樣做可以省 Token?

  • 減少無謂重來(Retry Costs): 如果直接讓 AI 處理龐大任務,萬一方向偏離或格式不符,重新產生的代價極高。先請它分析並確認執行計畫,能確保「一次做對」。

  • 精準鎖定上下文(Context Window): 將大任務拆解成小步驟(如 Step 1~3),每次執行只需餵入該步驟相關的 Context,避免每次對話都夾帶過長的历史紀錄或全貌資料。

  • 縮短輸出長度(Completion Tokens): AI 一次輸出長篇大論容易出現贅字、格式混亂甚至中斷;分批執行能讓 AI 專注於高濃度的重點輸出。

建議的標準作業流程 (SOP)

為了達到最佳的 Token 節省效果,建議分三個階段引導 AI:

  1. 第一階段:需求分析與結構化計畫(消耗極少 Token)

    「我有一項複雜任務 [簡述任務內容]。請先不要執行,幫我分析這項任務,並提供一個最省 Token 且高效率的分批執行計畫(包含步驟拆解與建議的輸入/輸出格式)。」

  2. 第二階段:確認與微調

    檢查 AI 給的計畫,若沒問題即可核准;若有需要調整的地方,在此階段以簡短指令修正。

  3. 第三階段:分批執行(Batch Execution)

    「很好,我們依照計畫執行。請先處理 [步驟一],輸出結果請維持精簡,直接提供核心內容即可。」

額外省 Token 的實用小技巧

  • 明確限制輸出格式: 要求 AI「使用列點(Bullet points)」、「表格」或「僅輸出 Markdown / 代碼,不需前導與總結客套話」,可省下大量不必要的文本。

  • 適時開新對話(Reset Context): 如果整個任務分為三個獨立子項目,完成步驟一並取得結果後,可以將步驟一的結果複製到新對話中繼續做步驟二。這樣能徹底清空舊對話積累的 Context Token。

試著使用 agy

 agy(Antigravity CLI) 是 Google 的 AI 「代理優先(agent-first)」開發平台的一部分,具備以下特點:

  • 技術架構:以 Go 語言開發,比舊有的 Gemini CLI 反應更靈敏且啟動速度更快。
  • 多代理協作:支援非同步流程與多代理協作,允許在背景執行複雜的大型重構或研究任務,而不會鎖定終端機階段。
  • 功能整合:保留了 Gemini CLI 的核心功能,包括 Agent Skills、Hooks、Subagents 以及重新命名為「外掛(plugins)」的 Extensions。
  • 安裝指令:使用者不再使用 gemini 指令,而是透過新的二進制檔案執行 agy 指令。

其實,這一陣子我用過 Codex、Claude CLI。老實說,Codex 給我的印象還不錯,但是 Google AI Plus 的價格實在比較便宜。一旦用到 AI agent,那個 token 的消耗速度會讓人心驚。所以即使 Codex 讓我印象不錯,我還是決定裝 agy 來工作。

2026年5月20日 星期三

macvlan 的介紹

 這是一篇問題與答案的組合文章,是由我和 Gemini 對談的內容所構成。其實是有關一直以來我對於工作場合上遇到的,想不透的事情,所提出的問題。這些問題主要是針對 Docker 網路的基本概念,涉及的是 Macvlan 這個蠻重要的東西 (網路驅動程式)。

2026年5月12日 星期二

用 Go 語言,使用 Gin 開發 Docker 的 Web 應用

我要做一個範例,請 Claude 幫我生成。

很簡單,使用Docker,用 GO 語言,儘量用 1.25 版。然後 Docker 基底可以使用 alpine 或 Ubuntu。Docker 有一個 volume,可以放 SQLite 資料庫。

然後用 Gin 寫一個 Web 應用,曝露 port 是 8080。

程式很簡單,有一個簡單的首頁,讓你輸入帳號和密碼。資料庫也很簡單,三個欄位:1. id:自動新增的 int,2. name : varchar(20),3. password:varchar,存加密後的密碼。

底下有一個 URL,跳到另一個畫面:新增帳號,有三個輸入方塊:帳帳和兩個密碼。

程式要讓兩個密碼相同才能接受,然後自動跳到首頁。

密碼要加密。

首頁只做一件事,從資料庫中查找帳號、密碼(不用解碼,也可像用 MD5 對照)是否在其中。符合就跳出一個畫面,上面只有四個字在正中央:歡迎光臨。

然後必須把 Docker file 也做好。如果有 Docker Compose File 更好了。

2026年5月5日 星期二

當使用VMware Workstation建立的VM無法使用共享資料夾時,該怎麼辦?

 一般來說,我們在VMware建立一個VM,只須在VM中安裝VMware Tools,應該可以使用共享資料夾的功能。共享資料夾可以成為VM和Host OS之間共享檔案,這個功能很重要。但是,偶而就是會出怪事,即使你安裝了VMware Tools,在Virtual Machine Settings...也把Shared Folder加上了,但是就是連不上,這該怎麼辦呢?以下是Gemini的回答:


這是在 VMware 上使用 Linux 虛擬機(尤其是像 Kubuntu 這種基於 Ubuntu 的發行版)時非常常見的問題。雖然 VMware Tools 已經安裝,但現代 Linux 系統通常不會在開機時自動執行掛載指令,或者掛載點沒有被正確建立。

你可以按照以下步驟排查並解決:

1. 確認核心模組是否運作

首先,確認系統是否有偵測到 VMware 的共享資料夾功能。請在 Kubuntu 的終端機執行:

Bash
lsmod | grep vmw_gfshg

如果沒有輸出,表示模組沒載入。不過通常安裝好 open-vm-tools 後,關鍵在於掛載指令。

2. 手動測試掛載

在自動化之前,我們先確認能不能手動掛載。請執行:

Bash
# 建立掛載點(如果還沒建立)
sudo mkdir -p /mnt/hgfs

# 執行掛載指令
sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

執行完後,檢查 /mnt/hgfs 資料夾。如果你看見了你在 Setting 中設定的資料夾名稱,那表示硬體與驅動層面是沒問題的,純粹是自動掛載失效。

3. 設定開機自動掛載

要讓它每次開機都自動出現,最穩定的做法是修改 /etc/fstab

  1. 使用編輯器開啟檔案:

    Bash
    sudo nano /etc/fstab
    
  2. 在檔案最後面加入這行:

    Plaintext
    .host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0
    
  3. 存檔離開(Nano 請按 Ctrl+OEnter,然後 Ctrl+X)。


為什麼會發生這種情況?

主要有幾個常見原因:

  • 套件衝突: 現在大多數 Linux 發行版建議使用官方開源的 open-vm-tools-desktop,而不是 VMware 選單裡那個舊版的「Install VMware Tools」ISO。如果你是手動執行 .pl 安裝檔,有時會與系統內建的驅動衝突。

  • 掛載點缺失: VMware Tools 預期掛載在 /mnt/hgfs,但 Ubuntu 體系的系統預設不會建立這個資料夾。

  • FUSE 權限: 共享資料夾是透過 FUSE 技術掛載的,如果沒有加上 allow_other 參數,有時候一般使用者權限會看不到內容。

小撇步

如果你發現 /mnt/hgfs 裡面是空的,但指令都沒報錯,可以試著在進入桌面後執行 vmware-user-suid-wrapper,這有助於初始化桌面環境下的共享服務。

通常完成 /etc/fstab 的修改並重啟後,問題就能徹底解決。


Prompt Engineering(提示工程)與 Token 節省策略

 問: 如果我請 agy 處理一件看起來很複雜應該很耗費 token 的工作,我是不是在做之前,先請 agy 幫我分析一下,是不是有比較省 token 的方法,再由它建議的方法,分批讓它做,這樣可以省下較多的token,我這樣想對不對? 答: 你的思路完全正確,這是一種非常聰明且...