---
# System prepended metadata

title: 2025 webconf 心得分享

---

# 2025 webconf 心得分享
:::info
[官方共筆入口](https://hackmd.io/@webconf/HJiwwqnxZe/%2F9SP9NyHoSiSZEOYHsaeYeg)
:::
# 總覽
統整內容重點項
> 議程大致有安排 前端/後端/PM 三個面向在同一時段，我聽後端居多
底下會重點拎幾個主題出來講，其他詳細的內容建議參考官方共筆
* 需求
    * AI 協助產出 MVP / Prototype（PO & PM）
        * 提早看到價值
        * 釐清需求細節
    * 需求規格化要全團隊參與
        * 讓 AI 和人類都看得懂
        * 關鍵：該需求解決了什麼問題？
    * GA [數據追蹤](https://hackmd.io/@webconf/HJiwwqnxZe/%2FWS10vh3_RhGEZP_oxRhZTg)
        * 驗證問題是否被解決，以及未來決策的走向
* 開發
    * AI APP (Agent)
        * AX
        * Agent 的開發與可視化
        * Agent 要能穩定的解決問題，"可以動"很容易，實際可用比較難
    * SDD 提高 vibe coding 穩定產出
        * 結合 TDD 更強大
        * prompt 版控
    * 資安
    * 與 AI 協作
        * AI 已經取代碼農
        * 問對問題才能解決問題
* 測試
    * AI Agent
        * Playwright Agent 幫你寫界面測試 & 自動修復程式
            * 無障礙設計很重要 [參考](https://www.facebook.com/share/p/1BWbKhYPyQ/)
        * AI 協助寫測試案例效果有限
* 維運
    * AI Agent
        * 與人或其他 Agent 協作解決問題
        * AI 服務的數據觀測指標
    * 持續重構迭代
        * [營救 Legacy Code 沒有捷徑](https://hackmd.io/@webconf/HJiwwqnxZe/%2F_KlVlnVMSiSJiFx49_xaEg)
* [DevOps](https://hackmd.io/@webconf/HJiwwqnxZe/%2FwVkrSNJBSr-yBIycrXyAxw)
    * 適應變化

# 需求
### 先做 Prototype 再做 Product
MVP & Prototype 是這時代最重要的能力，盡可能地看見全貌然後逐步實現
![image (1)](https://hackmd.io/_uploads/ry09bNgX-x.jpg)

#### 用 Prototype ~~取代~~ 簡化 Document
當 PM 可以自己做出產品的 Prototype，PM 就可以直接針對這個 Prototype，自己跟 AI 對話，然後自己跟自己對話，回頭自己調整，而不用等到產品真的做出來才去頓悟，「啊！原來這裡要這樣改」，去花費整個團隊投入的資源

而最關鍵的資源，是「時間」
團隊做出來時才說「不是你要的」，花費了可能 2 個月，而透過 Prototyping，是 2 分鐘

![image](https://hackmd.io/_uploads/H1DE-HzmWe.png)

### 開發流程變革：PRD -> PRP
:::info
[B2B 服務的 AI Agent 產品設計原則 - 李昆謀
](https://hackmd.io/@webconf/HJiwwqnxZe/%2Ff1Eeu9_HTWKIey9mRPBr0A)
:::
從「取代」到「賦能」的 AI 開發思維
演講者強調，AI 開發不應只是想著用 AI 取代現有功能（Replacement），而應該思考如何透過 AI 增強現有能力（Enhancement）或解決過去無法解決的**商業問題**
#### 傳統 vs. 新流程
* 過去
    * PM 寫規格書 (PRD) -> 工程師寫 Code
* 現在
    * 提倡 PM 使用 AI 工具（如 Claude, NotebookLM）生成 PRP (Product Requirement Prototype)
    * Project Manager --> Prototyping Master
能更精準地與工程師溝通需求，減少開發後的修改成本

> 結論：PM 要會 Vibe Coding 嗎？ Yes

# 開發
## SDD
因為我們不會導入，這邊只有簡單整理
:::info
[軟體開發邪教的救贖：AI 時代更應掌握的 TDD 技能 - Kuma Syu](https://hackmd.io/@webconf/HJiwwqnxZe/%2FTle_Ecv6TjOKnL7UPhcpZg)
:::
### SDD 的概念
用「文件即程式碼」連接開發與團隊
將文件當作程式碼管理，達到「唯一事實來源」的效果
讓需求文件不再只是開發的附屬品，而是真正融入開發生命週期的核心
### SDD、TDD 雙劍合璧
#### 精髓
在動手寫程式之前，先寫出可描述需求的測項，又能藉以保護功能，一舉兩得
而測試覆蓋，則方便重構迭代

#### 怎麼執行
可不可以這樣？
![image](https://hackmd.io/_uploads/HyohZ9L7Zl.png)

...或這樣？啊，這就不就 TDD 
![image](https://hackmd.io/_uploads/Hy9Jf5ImWl.png)

### Vue Vibe Coding
:::info
[AI 只懂 React？Vue.js 也能 Vibe Coding！- Kuro Hsu](https://hackmd.io/@webconf/HJiwwqnxZe/%2FSsKHqlcXSaqzzoyt-peN7Q)
:::
簡單說明規格化的好處，並提出一種方便閱讀和版控的 SDD 方案，且後續方便自動化測試

* spec 明確定義行為，AI 修改有邊界
* spec 就是文件，變更歷史可追溯
* `<spec>` 區塊常駐檔案， 開發時 AI 自動讀取，發佈時自動去掉
* spec 作為驗收標準，不依賴 AI 的一致性
* 可維護可追溯的 workflow
## Agent 開發
:::info
⭐️ **[構思觀念！](https://docs.google.com/presentation/d/e/2PACX-1vRRYD6cGGqnkrsJETMLgq1yQb_aJrfkNigqAeTwO8Dfw_rVoO_zjC6-QwKFTe6wSK4UYiRUxD2v_KJZ/pub?start=false&loop=false&delayms=3000&slide=id.g3adc4c6dbf3_0_178)**
[SaaS 的下一步：從 Service 到 Agent - 安得魯
](https://hackmd.io/@webconf/HJiwwqnxZe/%2FMwd6YO29QPWRcI1WL15hkA)
:::
:::info
⭐️ **[實作方法！](https://ihower.tw/presentation/ihower-agents-202512.pdf)**
[實戰 AI Agents 應用開發：從 Web 後端到前端的整合 - 張文鈿 ihower](
https://hackmd.io/@webconf/HJiwwqnxZe/%2FjioJQzn_SlyxNCTzy9nCvQ)
:::
### 什麼是 Agent
#### LLM Model-based vs. Agent-based
* 模型 (Model-based)： 像是**靜態諮詢師**
    * 只能根據訓練過的資料，進行單次問答預測
    * 重點在於解釋資訊或生成內容
* 代理程式 (Agent-based)： 像是**數位員工**
    * 能連接外部系統、使用工具，並具備記憶與推理邏輯
    * 重點在於執行任務（Action Oriented），幫你把事情做完

#### Agent 是會使用工具的 LLM
![image](https://hackmd.io/_uploads/HkuQXraGZg.png)

> 中間皆是 MCP 參與的部分

講者說目前主流開發語言是 python 和 js，其他的工具支援度沒那麼高
### UX 使用者體驗
腦中沒有畫面的話，可以想像一下正在使用 Cursor 或 AI 客服 之類的
#### streaming
1. 實時提示推理過程或階段性結論，避免長時間和使用者沒有互動
    * Server-Sent Events
    * 思考進度、推理摘要等
3. LLM 不中斷，即使前端斷線也可以從上次斷掉的地方連回去
![image](https://hackmd.io/_uploads/SJxpkAOQZg.png)
    > 透過 redis stream 將回應先存起來再一筆筆取用，實現非同步解耦
4. 要做一開始就得做，後面再加很麻煩
#### streaming chunk 訊息標準化
AG-UI 是一種協定，Server 端把各家 LLM 的回傳結果標準序列化後再丟給 Client 端，Client 端用套件如 CopilotKit 來解析內容
* [AG-UI](https://docs.ag-ui.com/introduction) (後端) ![image](https://hackmd.io/_uploads/Sk2ow7e7-x.png)
* [CopilotKit](https://www.copilotkit.ai/) (前端)

#### UI 組件標準化
MCP-UI 是一個 SDK，讓 MCP Server 端可以回傳「介面描述（UI Resource）」，而 Client 端（如 AI 聊天視窗）能把它渲染成真的網頁元件
![image](https://hackmd.io/_uploads/rJO8d7gXZl.png)

> AG-UI 和 MCP-UI 兩者可同時使用，不衝突

#### TTFT (Time-to-First Token)
Time to First Token，用戶首個看到 Token (輸出) 的時間
監控工具可以幫忙簡單的記錄，但若自定義有效輸出要自己記
![image](https://hackmd.io/_uploads/r1AmFXxm-g.png)

##### 改進方式 = 模型效率
* 模型選擇
* Prompt 工程
* Prompt Caching
* 合併減少 API 呼叫次數
* 已知的問題型態，用非推理模型
* 平行化 + 部分改用小模型
* 開 Priority processing

### 提高模型效率 & 省錢
#### Prompt 工程
![image](https://hackmd.io/_uploads/BJE3ZcvX-l.png)

 [結構化輸入輸出](https://www.inside.com.tw/feature/2025-generative-ai/38543-91app-how-to-build-high-accuracy-ai-functions)，AI 理解得更精確，產出的結果也好拿來用
只用自然語言的話模糊空間太大，容易產生無效的內容
#### Prompt Cache 快取命中 => 省 token
* 讓 prefix 固定
* JSON 序列化保持固定順序
* **保持上下文僅有追加**
    * 在流程之間，盡量 append items，而不是拿前一個 output 重組新的 prompt
![image](https://hackmd.io/_uploads/rJubb0dXbe.png)
* 不要動態更改工具呼叫定義
    * 原因：為了讓 Agent 在處理用戶問題前就知道有哪些工具可用，工具定義通常會放在 Prompt 的最前面
* 熟悉各家 Prompt Cache 設定

#### 其他比較複雜一點，請看簡報有很多範例[從 55 頁開始](https://ihower.tw/presentation/ihower-agents-202512.pdf)
>有點類似我們在開發某個功能，要根據業務情境去設計服務的規格、併發機制和數量、語法要不要批次下等等，有很多做法，選擇哪些和經驗有關
### Context Engineering
<img src="https://hackmd.io/_uploads/BJD06QgmWl.png" style="padding: 10px; background-color: white;">

### 怎麼知道有沒有做對？
#### 量化指標並制定改善策略
![image](https://hackmd.io/_uploads/S1zRq5I7We.png)
:::spoiler  *我對上面四項的理解*
1. 在著手建構系統之前，就應該明確了這個系統核心要解決的問題
唯有釐清問題，我們才能針對性地訂定出使用者最在意的關鍵指標（偏商業價值）

2. 接著，我們可以根據這些指標來收集相關的參考資料
以領域知識對資料進行梳理與歸納，我們便能找出指標不如預期的背後原因，進而對症下藥

3. 同時，我們必須確保 AI 的應用符合指標，我們最需要的且他最擅長的地方
若讓 AI 執行不擅長或錯誤的任務，不僅無法解決問題，更會降低服務效率並增加不必要的成本

4. 總結來說，方向做對了，我們就能夠進一步考慮如何做得更好
:::
#### 如何量化？
* 驗證產出是否符合規範
    * 由 AI 自己標記評估結果，降低人工負擔![image](https://hackmd.io/_uploads/rJ4CSBGXWx.png)
* 使用者情緒感知![image](https://hackmd.io/_uploads/rJwgISG7-e.png)
#### Agent 的核心價值
* 專家不是只給答案，而是有一套可重複的思考流程
* AI 若沒有被拆解成穩定流程，只會停留在 Prototype
* Agent 的價值，在於把「不穩定的生成能力」變成「可控的產出能力」
## Agent 維運
控制良率、效率和成本所需的服務監控數據支持 --> 觀測性
做對了之後，要持續做得更好
:::info
[初探 LLM 可觀測性：打造可持續擴展的 AI 系統 - Mike Hsu](https://hackmd.io/@webconf/HJiwwqnxZe/%2FO_bBsYiqTHysuP27CMdbwQ)
[（我請 NoteBookLM 根據簡報整理出的筆記）](https://notebooklm.google.com/notebook/9160be23-301e-4cf5-ab3d-94f7114af96a)
:::
> Try it： 讓 NoteBookLM 告訴我們為何講者認為觀測性重要
### LLM vs. 傳統服務的可觀測性
| 比較維度 | 傳統服務可觀測性 (Traditional Observability) | LLM 可觀測性 (LLM Observability) |
| -------- | -------- | -------- |
| 遙測數據<br>(Telemetry) | CPU 使用率、記憶體使用量、應用程式 Log | 完整的 Prompt (提示詞)、完整的 Response (回應)、使用者詳細資訊、模型參數 (如 Temperature, Top_p) |
| 關鍵指標 (Key Metrics) | 成功/失敗狀態碼 (Status Codes)、錯誤率 (Error Rates)、延遲 (Latency) | 除了延遲與狀態碼外，還包含 Token 使用量 (Input/Output Tokens)、例外狀況 (Exceptions) |
| 輸出特性<br>(Output) | 確定性 (輸入相同，輸出必相同) | 非確定性 (輸入相同，輸出可能不同) |
| 品質評估<br>(Quality) | 系統是否正常運作 (Uptime, Availability) | 語意正確性 (Semantic Correctness)、上下文相關性 (Relevance)、內容毒性 (Toxicity)、幻覺 (Hallucination)、流暢度 (Fluency) |
| 成本因子<br>(Cost) | API 呼叫次數、基礎設施資源 (CPU/Memory) | Token 使用量、不同模型的定價 (Per-model pricing) |
| 關注焦點<br>(Focus) | 系統層面的健康度與效能 | 模型輸出的內容品質、安全性與邏輯一致性 |

### Model-based AND Agent-based 的治理策略
| 策略維度 | 模型 (Model) 的策略 | 代理程式 (Agent) 的策略 |
| -------- | -------- | -------- |
| 可觀測性<br>(看什麼？) | **看「結果」與「成本」**<br>監控有無幻覺、毒性內容、以及 Token 使用量 | **看「過程」與「行為」**<br>必須追蹤推理路徑 (Tracing)、工具使用狀況與多輪對話的記憶一致性 |
| 治理重點<br>(管什麼？) | **內容審查 (Content Filter)**<br>利用護欄 (Guardrails) 雙向過濾輸入與輸出，防止不當回答 | **權限控制 (Permission & Control)**<br>因為會執行動作，需加入「人機介入 (Human-in-the-loop)」機制來審核關鍵決策 |

> 講者有提出一些比較具體的實行方法，但我們也還沒做到那邊，就先不深入研究

## AX

| 比較項目 | **UX (User Experience)** | **DX (Developer Experience)** | **AX (Agent Experience)** |
| :--- | :--- | :--- | :--- |
| **全名** | 使用者體驗 | 開發者體驗 | **代理體驗** |
| **主要使用者** | 人類 (Human) | 軟體工程師 (Developer) | **AI Agent (機器/模型)** |
| **互動介面** | GUI (圖形介面)、視覺、按鈕 | SDK、CLI、文件、程式碼 | **API、結構化資料、Prompt** |
| **核心需求** | 直覺、美觀、情感連結 | 文件清楚、工具好用、除錯方便 | **確定性 (Determinism)、容錯率、上下文完整** |
| **溝通語言** | 自然語言、視覺符號 | 程式語言 (Python, JS 等) | **JSON、XML、Schema、Function Calling** |
| **設計重點** | 減少點擊次數、視覺引導、防呆 | 減少重複性代碼 (Boilerplate)、易於整合 | **減少幻覺 (Hallucination)、明確的工具定義、自我修復能力** |
| **成功指標** | 轉換率、停留時間、NPS | 開發速度、API 採用率 | **任務完成率 (Success Rate)、Token 消耗量** |

> **確定性**
> 時區時間格式、標準化輸出、參數意義明確

> **容錯率 & 自我修復**
> 過程中發生錯誤時，能理解錯誤訊息、自行修正後再嘗試，而非直接把錯誤拋出

> **明確的工具定義**
> 定義工具的用途和觸發的邊界條件，避免 AI 因幻覺亂呼叫工具導致工具濫用和 token 浪費

# 維運
## 處理問題
:::info
[工程師和 AI 小隊，是合作、競爭、混亂？ - 蕭晊莛](https://hackmd.io/@webconf/HJiwwqnxZe/%2Fbri1B6QHQ023CtEaYiapSA)
:::
建立用來查看服務的 log、metrics、資料庫，
甚至可以在有授權的情況下執行系統指令的 AI Agent (bot)

透過適當的 Context Engineering，並提供足夠的產品 Domain 知識，讓它有能力協助排查線上問題，與工程師做即時互動；甚至每個部門都有自己的 bot，靠 bot 之間自己互動，形成「AI 小隊」

# 測試
:::info
[GenAI 時代下的測試三板斧 - 柯仁傑
](https://hackmd.io/@webconf/HJiwwqnxZe/%2F_JH43d8-R2KbcfRn-e8Z-g)
:::
* AI 仍不太懂軟體測試
    * 技術參考文獻偏少，很多廠商文章
    * 網路上的參考資料多是 新手練習/不完整的答案/過時的作法
    * Prompt 還是要靠軟體測試知識+領域知識，才能下的好

# 資安
:::info
[從冷知識到漏洞：你不懂的 Web，駭客懂 - Huli](https://hackmd.io/@webconf/HJiwwqnxZe/%2FkqRzuYEES9-RuzuW0FLsBg)
:::
* 不同context的相等就是不相等
    * `mysql SELECT 'gmail.com' = "GMAIL.com" COLLATE utf8mb4_unicode_ci`
搜尋結果是一樣的，mysql官方寫到 a, A, å, Å 即使是不同的 unicode，但都會被當作同一個 a
* AI 取代人之前，先小心你的字串被取代
* 寫好測試 確保你的 output 是對的
* 絕對不要把使用者的輸入照單全收
* 謹慎使用 /regex/
# 未來
> 能寫出程式碼已經不夠了，擴大專業領域更能幫助團隊交付價值

![image](https://hackmd.io/_uploads/rykMyNg7Zg.jpg)
![image (2)](https://hackmd.io/_uploads/r1CDD4xX-g.jpg)

:::info
[軟體工程不只是寫程式 - 李智樺
](https://hackmd.io/@webconf/HJiwwqnxZe/%2FIKqR_MCoT4WUx-y0AY_06w)
:::
> AI 時代下，除了要具備軟硬技能外，應該要深化最難被取代的濕技能

![image (3)](https://hackmd.io/_uploads/H1Bcr4f7Wx.jpg)
![image (4)](https://hackmd.io/_uploads/BJ4bLNG7-l.jpg)
![image](https://hackmd.io/_uploads/H16I8Nf7Wl.png)

:::info
[活在科技工作者最好的年代，用商業思維優化你的人生選擇 - 游舒帆](https://hackmd.io/@webconf/HJiwwqnxZe/%2FYYImx_ddQwSqvh496J6e0A)
:::
> 思維創造價值

![image (5)](https://hackmd.io/_uploads/HJX3vNz7Ze.jpg)

## 延伸思考
* [這個簡報](https://docs.google.com/presentation/d/e/2PACX-1vRRYD6cGGqnkrsJETMLgq1yQb_aJrfkNigqAeTwO8Dfw_rVoO_zjC6-QwKFTe6wSK4UYiRUxD2v_KJZ/pub?start=false&loop=false&delayms=3000&slide=id.g3adc4c6dbf3_0_178)裡面的思考過程，推薦一定要閱讀，這講者講太快了，內容又偏實例經驗，比較難整理跟轉述
* 寫一個什麼樣的 Agent 可以幫助我們的產品發展？