昨天聊到 Agentic Coding 後,我開始想到一個很實際的問題:
如果真的把開發任務交給 AI Agent,它真的能乖乖完成嗎?
例如我們只說:
「幫我新增一個登入功能。」
對人類工程師來說,可能還會繼續確認:
但如果這些都沒有說清楚,Agent 就只能自己猜。
而 AI 最麻煩的地方是:
它通常不會因為需求模糊就停下來。它可能直接選一個自己認為合理的方法開始寫
所以我開始覺得,Agentic Coding 不只是「AI 幫我寫 Code」,更重要的是:
我們能不能把任務描述清楚。
一個好的 Task 要包含什麼?
我目前會把它簡化成 5 個部分,分別是 Goal、 Context、 Requirements、Scope 及Acceptance Criteria
Goal: 先講清楚最終要完成什麼。
新增使用者登入 API
登入成功後回傳 Access Token。
Context: 告訴 Agent 現在的專案環境。
Java 21
Spring Boot
Maven
Oracle
架構:
Controller → Service → Repository
Requirements: 把具體需求列出來。
POST /api/auth/login
正確帳密 → HTTP 200
錯誤帳密 → HTTP 401
Response 不得包含 password
Scope: 告訴 Agent:哪些可以改,哪些不要碰。
可以:
- 新增 AuthController
- 新增 AuthService
不要:
- 修改既有 API
- 修改 Database Schema
- 升級 Spring Boot
Acceptance Criteria: 最後定義怎樣才算完成?
- API 可以正常登入
- 錯誤帳密回傳 401
- mvn test 全部通過
- 不影響既有 API
還有一個很重要的東西:Verification
不要只是:
需求
↓
寫 Code
↓
Done
而是:
理解需求
↓
規劃
↓
寫 Code
↓
執行測試
↓
發現問題
↓
修正
↓
再次驗證
例如直接要求 Agent:
「完成後執行 mvn test,如果測試失敗,先分析原因並修正,再重新執行測試。」
這時候 Agent 才比較像一個真正可以委派工作的工程助手。
Vibe Coding vs Agentic Coding
Vibe Coding 比較像:
人類
↓
AI 協助寫 Code
而 Agentic Coding 更接近:
人類定義任務
↓
Agent 規劃
↓
Agent 執行
↓
Agent 驗證
↓
人類 Review
所以 Agentic Coding 並不是:
「AI 幫我寫更多 Code。」
而比較像:
「我開始把一個工程任務交給 AI 執行。」
這也讓我開始理解:
Agent 不一定只是需要更聰明的模型,也需要更清楚的任務、更明確的限制,以及可以被驗證的結果。
下一篇開始,繼續往 RAG 前進。
如果 LLM 根本不知道公司的內部資料,它又要去哪裡找答案?