AI Agent 標準化開發基礎課程 Q&A:AI 協作開發的實務問題與建議

剛結束「AI Agent 標準化開發基礎」課程後,隔日有位認真的女學員整理了幾個她在實務工作中遇到的問題。我發現她把這些條列的問題(共 5 個)整理得非常好,在取得她的授權同意下(不涉及相關隱私與敏感資訊),這裡也將我的看法與建議整理成較完整的回覆,對於有類似情境、準備導入 AI 協作開發的團隊,應該也能有所幫助。

以下整理學員提出的五個問題。
我會先以簡化標題呈現問題主題,再保留原始提問內容,並逐一說明我的看法與建議。

Q1 既有系統新增功能時,需求文件應更新原文件還是建立新文件再提交給 AI?

學員原始提問:

若系統已正式上線,使用者提出新增功能需求,且該功能可能影響既有作業流程時:
此類變更應持續維護於原有的《功能需求規格書-購物車模組.md》中進行版本更新,
或是僅將新增功能部分獨立整理為新的 .md 文件,再提供 AI 協助處理較為適當?

回覆:建議原則是:
「維持原規格的演進版本,而不是拆散成多份零散文件。」

原因有三:

  1. 需求文件本質上是系統契約(System Contract) 若同一模組(例如購物車)持續新增功能,建議仍維護在同一份規格文件中(除非新增功能內容非常繁雜,那是可以另以附件關聯,但本質上仍視為同一份文件),以版本或章節方式演進,例如:
購物車模組功能規格.md
├─ v1 基本功能
├─ v1.1 新增批次加入商品
└─ v1.2 新增優惠券計算
  1. 避免知識碎片化 若每次需求都獨立成新文件,長期會導致:
  • AI 上下文難以理解整體邏輯
  • 人類也很難掌握完整行為
  1. AI 的最佳使用方式是「完整上下文(Context)」,而不是片段 AI 在分析需求時,需要看到:
  • 原功能
  • 新需求
  • 既有限制 才能推論哪些地方需要修改。

因此較建議的做法是:

  • 核心模組規格 → 維持單一文件版本演進
  • 跨模組需求 → 建立新的功能提案文件

Q2 舊 WinForms 系統如何透過 AI 協作重構為 Web 架構?

學員原始提問:

若既有系統為 C# WinForms 架構且已上線運作,未來計畫全面改為 Web 架構(例如 React + FastAPI),
若希望透過 AI 協作進行重構或翻寫,建議應採取何種步驟或策略,較能確保品質與效率?

回覆:建議不要直接讓 AI「翻寫整個系統」,而是採取分階段重構策略

Step 1:先抽出 Domain / Business Rules / 資料存取方式

先整理系統中真正重要的部分:

  • 資料模型
  • 業務規則
  • 使用情境(Use Cases)

這些是系統真正的核心資產

Step 2:建立新系統的架構骨架

例如:

Frontend
  React
Backend
  FastAPI
  Application Services
  Domain
  Infrastructure

這個骨架應由開發人員先行架構規劃設計,並採以 POC(Proof Of Concept)方式驗證可行性,而不是讓 AI 自由生成。

Step 3:逐步轉譯 Use Case

例如:

WinForms
AddProductToCart()

→ 轉為

API
POST /cart/items

此時 AI 很適合協助:

  • 轉譯 UI 行為
  • 產生 API contract
  • 生成資料模型

Step 4:逐步功能模組遷移

不要一次遷移整個系統,而是:

Cart module
Order module
Inventory module

採逐步功能模組的替換策略。簡單說:

AI 適合協助「轉譯與實作」
但架構設計與結構分解仍應由開發者主導。**


Q3 前後端規格文件應合併還是分開提供給 AI?

學員原始提問:

課程中前後端皆以不同 .md 文件進行功能規範與描述。
當有新的功能需求時,應整合為單一需求文件交由 AI 執行,
或仍建議以前後端分開的方式,分別提供給 AI 處理較佳?

回覆:「整體需求文件 + 前後端細分規格」

P.S. 這裡可能有一點理解上的落差,我稍微補充說明一下:

在課程中前面章節其實有先提供「情境需求描述」與「系統功能規格書」,
這是從需求分析的角度來看系統,因此在這個階段通常不會區分前端或後端。

學員所看到的前後端 .md 文件,其實已經是「系統開發規格」
的層次,主要是為了讓 AI 在實作程式碼時,能夠有更清楚的上下文與責任邊界。

feature-cart.md (整體需求)
frontend-cart.md (前端需求)
backend-cart.md (API / Service)

原因:

  • 1. 整體文件提供上下文
  • 2. 分文件方便各自實作

實務上 AI 也較容易理解:

  • 前端只需載入 frontend spec
  • 後端只需載入 backend spec

Q4 系統文件是否應與程式碼一起放入 Git?

學員原始提問:

系統相關文件是否建議與程式碼一併納入 Git 版本控制管理?

回覆:強烈建議放入 Git。

原因如下:

1. 文件本身就是系統資產

在 AI 協作開發中:

AGENTS.md
技術規格
架構說明

都是 AI 的重要上下文。(這也是課程中強調「將 AI 規範版本化」的原因。)

2. 文件需要版本歷史

可以追蹤:

  • 需求如何演進
  • 哪個版本改了什麼

3. 避免文件與程式碼脫節

同一 repo 能確保:

  • 規格
  • 程式碼
  • 文件

同步演進。



Q5 大型舊專案缺乏文件時,如何導入授課所教授的方法(迭代與漸增)?

學員原始提問:

若為老舊大型專案且缺乏完整文件,應如何套用今日課程所介紹的方法進行重整與導入?

回覆:建議不要嘗試一次補齊所有文件,而是採取:

「逆向建立最小知識結構」

建議步驟如下:

Step 1:先建立一份 system-overview.md

內容只需包含:

  • 系統目的
  • 主要模組
  • 技術架構

Step 2:建立 模組級文件

例如:

modules/
cart.md
order.md
product.md

描述:

  • 功能
  • 資料
  • API

Step 3:利用 AI 進行「輔助整理」

例如:

  • 解析 controller
  • 推測 API
  • 產生資料模型文件

但需要工程師審核。

Step 4:逐步導入規範文件

例如:

AGENTS.md
architecture.md
coding-guidelines.md

讓 AI 之後能在可控環境下協作。

最後補充一個觀念:

文件不是為了 AI 而寫。 文件是為了「讓系統知識可被管理」。

AI 只是讓這些知識能被更有效率地使用。


留下第一條留言