安裝好 Antigravity CLI 後, 接下來要透過實戰演練來熟悉如何使用此工具來開發專案, 本篇的目標是要用它來開發一個 CLI 介面的 to-do list.
本系列之前的文章參考 :
以前開發專案的日常通常是打開程式編輯器 (Thonny, VS Code), 建立專案, 寫程式, 抓臭蟲, 修改程式 ... 直到滿意為止. 但使用 Antigravity, 只需要將需求寫清楚, 叫 AI 規劃要怎麼做, 檢視無誤後叫它開始按規劃完成專案.
1. 建立專案目錄並啟動 agy :
開啟 PS 視窗, 建立一個專案資料夾 (例如 todo-cli-app), 切換到專案資料夾, 下 agy 啟動 Google Antigravity 工具 :
PS D:\agy> mkdir todo-cli-app
PS D:\agy> cd todo-cli-app
PS D:\agy\todo-cli-app> agy
然後輸入專案需求 :
請幫我建立一個 Todo CLI App
需求:
- Python CLI
- 支援 add / list / done / delete
- 使用 JSON 儲存資料
請先不要寫程式碼
先產出 Implementation Plan
以及檔案架構
agy 回應了下列規劃摘要 :
### 本次工作摘要:
1. 規劃了模組化的專案目錄結構。
2. 設計了 JSON 資料儲存的 Schema。
3. 定義了 add 、 list 、 done 、 delete 等 CLI 指令與對應的參數。
4. 規劃了開發階段(儲存層 -> 邏輯層 -> CLI 解析層)。
請確認此計畫是否符合您的需求。若同意此規劃,請點擊「Proceed」或告知我,我將開始為您撰寫程式碼。
看起來此規劃沒問題, 輸入如下提示 :
請依照剛剛的 Implementation Plan 逐步實作專案
每一步請先說明要做什麼再執行
按 Enter 後 agy 便開始執行它所規劃之專案 :
> 請依照剛剛的 Implementation Plan 逐步實作專案
每一步請先說明要做什麼再執行
### 步驟 1:實作儲存層(Storage Layer)
在這一步中,我們將建立專案的基礎結構與儲存模組:
1. 建立 todo 套件目錄及空的 __init__.py 。
2. 建立 todo/storage.py ,其中包含一個 Storage 類別。該類別負責讀取與寫入 todo_data.
json ,並包含對應的錯誤處理(例如檔案不存在或 JSON 格式錯誤)。
首先,我們來建立 todo/__init__.py 與 todo/storage.py 。
● Create(D:/agy/todo-cli-app/todo/__init__.py)
● Create(D:/agy/todo-cli-app/todo/storage.py) (ctrl+o to expand)
### 步驟 2:實作邏輯層(Logic Layer / Business Logic)
接下來,我們將實作 todo/manager.py 。
這個模組會包含 TodoManager 類別,它會調用剛剛建立的 Storage
模組來載入與儲存資料,並實作核心業務邏輯:
• 新增(Add):取得現有的 todo 列表,自動生成唯一的 ID(現有最大 ID +
1),並記錄建立時間(ISO 8601 格式格式化字串),接著寫回檔案。
• 列表(List):根據過濾條件(全部、已完成、未完成)傳回對應的 todo 項目。
• 完成(Done):根據指定的 ID 將 todo 狀態改為 done = True 。
• 刪除(Delete):根據指定的 ID 從列表中移除該項目。
現在,我們來建立 todo/manager.py 。
● Create(D:/agy/todo-cli-app/todo/manager.py) (ctrl+o to expand)
▸ Thought for 7s, 527 tokens
Defining CLI Interface
### 步驟 3:實作 CLI 解析層與進入點(CLI Parsing & Entry point)
現在,我們將實作 CLI 解析邏輯。
1. 建立 todo/cli.py :使用 Python 內建的 argparse 模組來定義 subcommands( add 、 list
、 done 、 delete )。
• 當使用者輸入對應指令時,它會調用 TodoManager
,並以友善的可讀格式輸出結果。例如,已完成事項標記為 [x] ,未完成標記為 [ ] 。
2. 建立專案根目錄的 main.py :做為應用程式的啟動點,直接調用 todo/cli.py 中的主函式。
首先,我們來建立 todo/cli.py 。
● Create(D:/agy/todo-cli-app/todo/cli.py) (ctrl+o to expand)
接下來,我們在根目錄建立進入點檔案 main.py ,它會直接執行 todo.cli 模組中的 main()
函式。
● Create(D:/agy/todo-cli-app/main.py) (ctrl+o to expand)
### 步驟 4:測試與驗證(Verification & Testing)
現在我們來驗證實作是否正確運作。我們將執行以下測試步驟:
1. 執行 python main.py --help 檢查說明選單是否正確。
2. 新增兩個 todo 項目。
3. 列出所有待辦事項。
4. 標記其中一個待辦事項為已完成。
5. 再次列出,確認狀態更新。
6. 刪除一個事項,確認已被移除。
首先,我們執行指令來新增事項並列出它們。
● Bash(python main.py add "Buy fresh milk"; python main.py add "Practice Py...) (ctrl+o to
expand)
Command
───────────────────────────────────────────────────────────────────────────────────────────────
Requesting permission for:
python main.py add "Buy fresh milk"; python main.py add "Practice Python coding";
python main.py list
Do you want to proceed?
> 1. Yes
2. Yes, and always allow in this conversation for commands that start with 'python main.py
add "Buy fresh milk"; python main.py add "Practice Python coding"...'
3. Yes, and always allow for commands that start with 'python main.py add "Buy fresh milk";
python main.py add "Practice Python coding"...' (Persist to settings.json)
4. No
按 1.Yes 讓 agy 繼續執行專案, 完成工作 ID 1 後會再次詢問是否允許執行下一步 :
接下來,我們測試將 ID 1 的待辦事項標記為「已完成」,然後刪除 ID 2,最後列出清單以驗證。
● Bash(python main.py done 1; python main.py delete 2; python main.py list) (ctrl+o to expand)
Command
───────────────────────────────────────────────────────────────────────────────────────────────
Requesting permission for:
python main.py done 1; python main.py delete 2; python main.py list
Do you want to proceed?
> 1. Yes
2. Yes, and always allow in this conversation for commands that start with 'python main.py
done 1; python main.py delete 2; python main.py list'
3. Yes, and always allow for commands that start with 'python main.py done 1; python main.py
delete 2; python main.py list' (Persist to settings.json)
4. No
↑/↓ Navigate · tab Amend · ctrl+g edit/expand command · ctrl+r Review
esc to cancel Gemini 3.5 Flash (Medium)
完成所有規劃的工作 :
### 步驟 5:撰寫 README.md(Documentation)
為了讓專案結構更完整,並方便您或其他人日後使用,我們將在專案根目錄下建立一個 README.md
說明文件,內容會說明如何安裝以及如何執行這些指令。
● Create(D:/agy/todo-cli-app/README.md) (ctrl+o to expand)
我們已經按照 Implementation Plan 逐步實作完成整個 Todo CLI App!
### 實作檔案與程式結構連結:
1. __init__.py:初始化 todo 套件。
2. storage.py:定義了 storage.py 類別,負責讀寫 JSON 檔案。
3. manager.py:定義了 manager.py 類別,實作新增、刪除、完成、列出等核心邏輯。
4. cli.py:處理指令列參數解析 ( argparse ) 與文字輸出格式化。
5. main.py:專案啟動入口。
6. README.md:專案的使用說明文檔。
### 測試結果:
我們已在終端機中成功測試了下列功能:
• 新增事項: python main.py add "Buy fresh milk"
• 列出事項: python main.py list
• 完成事項: python main.py done 1
• 刪除事項: python main.py delete 2
所有程式碼與功能皆已測試完畢並可正常運行!如果您有任何新功能需求或需要微調,請隨時告訴我。
以上就是 agy 執行此專案的過程, 至此已完成全部規劃的工作, 開啟一個新的 PS 視窗, 切換至專案目錄下, 檢視專案內容 :
PS D:\agy\todo-cli-app> dir
目錄: D:\agy\todo-cli-app
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2026/6/30 下午 02:57 todo
-a---- 2026/6/30 下午 12:39 65 main.py
-a---- 2026/6/30 下午 03:01 1452 README.md
-a---- 2026/6/30 下午 03:01 127 todo_data.json
其中 main.py 為程式進入點, 真正的邏輯寫在 todo 子目錄下的程式裡面, todo_data.json 為儲存代辦事項的資料檔, README.md 是整個專案的說明檔, 裡面有軟體的使用方法.
手動來測試此軟體 :
首先用 python main.py list 檢視代辦清單內容 :
PS D:\agy\todo-cli-app> python main.py list
ID Status Title Created At
------------------------------------------------------------------------
1 [x] Buy fresh milk
目前只有一筆資料, Status 欄為 x 表示該備忘事項已完成.
用 python main.py add 新增一筆備忘後再次檢視就會顯示兩筆 :
PS D:\agy\todo-cli-app> python main.py add "買 A4 影印紙"
Added task: [ID: 2] "買 A4 影印紙"
PS D:\agy\todo-cli-app> python main.py list
ID Status Title Created At
------------------------------------------------------------------------
1 [x] Buy fresh milk 2026-06-30 14:57
2 [ ] 買 A4 影印紙 2026-06-30 15:15
Status 欄空白表示尚未完成. 接下來 python main.py done 2 指令將 ID=2 的備忘標示為已完成, 再次檢視清單就會看見兩筆都被標示為 x :
PS D:\agy\todo-cli-app> python main.py done 2
Success: Marked task 2 as completed.
PS D:\agy\todo-cli-app> python main.py list
ID Status Title Created At
------------------------------------------------------------------------
1 [x] Buy fresh milk 2026-06-30 14:57
2 [x] 買 A4 影印紙 2026-06-30 15:15
最後來檢查刪除功能, 連續刪除兩筆後再次檢視清單應為空 :
PS D:\agy\todo-cli-app> python main.py delete 1
Success: Deleted task 1.
PS D:\agy\todo-cli-app> python main.py delete 2
Success: Deleted task 2.
PS D:\agy\todo-cli-app> python main.py list
No tasks found.
可見 agy 實作的專案成果符合預期之功能.
完成後回 agy 命令列, 輸入 /usage 斜線指令檢視目前 token 用量餘額 :
此用量統計分為兩部分, 上層是 Gemini Flash 與 Gemini Pro 模型的用量餘額, 下層是第三方模型 CLAUDE (Claude Opus/Claude Sonnet) 與 GPT 用量餘額合計, 各自有分 Weekly Limit (每週上限) 與 Five Hour Limit (五小時滾動限制), 以及多久後重置, 98% 以上的周累計餘額表示過去一周都沒用到多少.


沒有留言 :
張貼留言