LLM O11y:從 Observability 到 Decision System
從監測到資料決策
同事問
- Spec-kit SDD 聽說很好用
- rtk 聽說省 Token,我們要不要用 rtk?
- Opus 4.8 聽說更強大,升級不加錢,為何不升級?
- xx 模型 Benchmark 贏現在用的,我們要不要換供應商?
身為團隊技術負責人,如何回答這些問題
面對 AI 工具的快速迭代
- 每個都試用看看
- 看大大的分享文章,供應商的文章
- 給代理商或公有雲推薦
新工具冒出來的速度 > 人研究的速度
但需要的不是更快的研究速度
缺的是數據化決策,不是更多聽說
真正缺的,是 LLM 解決方案的量化評估系統
團隊信任現有的 Stack,不會 FOMO,並有能力驗證改動的影響
今天的大綱
- ✅AI 時代的工具抉擇,缺乏數據化決策
- 建立 baseline 與第一次優化
- LLM as a Judge
- Dataset & Experiment
- 釐清需求:提升 Coding Agent 效能
- Decision System
如何開始 O11y
- 透過 AI Gateway 或 Observability Tool 收集 Tracing
- 早上 Lab 13:30-15:00 分享本議程 Workshop
- 建立 LLM O11y,LLM-as-a-Judge,以及 Dataset 與實驗流程
- 技術細節請見 LLM O11y:從 Observability 到 Decision System
- 「我的 Agent 到底怎麼花 Token 的」
- 「如何系統化評估 Agent 輸出品質」
有了 Observability Stack 後
- 看到量化數據:Token Usage, Latency, Error Rate
- Chargeback 團隊使用者看到自己的成本
- 基於監測紀錄的預算控管,而非市場喊價
建立成本與 Token Usage baseline:什麼是符合預算與超過預算
Step 1: 建立 baseline 與第一次優化
- 理解使用的 CLI
- VSCode Copilot, Codex, OpenCode 行為都不一樣
- 停用無用的 Tools
- VSCode Copilot Built-in 50+ Tools,但實務上只用到 10+ 個
- VSCode Extension 也會增加 Tools
- AI Gateway
- 控制 CLI System Instruction 的內容
Step 2: LLM as a Judge
- 前面根據 Tracing Metadata 進行成本最佳化
- LLM-as-a-Judge 是根據 Tracing Input/Output 進行品質最佳化
- LLM 收到 Input 後,根據 Output 評分效能
- 傳統程式碼的測試,場景侷限,無法符合 LLM 多變的場景
Step 2: LLM as a Judge
Observation 為單位,評估 API Call 的品質
- 針對 Input/Output/Metadata 或部分資料進行評估
- 小 scope 內的量化評估
- 暫且以管窺天,分析錯誤類型,找到改進的方向
Step 2: 第二次優化
根據 LLM-as-a-Judge 的評估結果
- 控制其他變因,例如
- Metadata: Token Usage, Latency, Cost
- Model Version
- 優化 Input/Output 的品質
Judge 不變,持續提升局部獲得的評分
Step 2: Multi-turn Agent
Long Running Agent 的評估很難直接看最終答案,例如
Input: 更新 README.md
- Assistant: 先看 README.md 內容
- Assistant: [tool] cat README.md -> README.md 內容
- Assistant: [tool] plan -> plan
- ...
- Assistant: 根據 README.md 內容,修改 README.md
- Assistant: [tool] apply patch -> 修改後 README.md 內容
Output: README.md 修改成功
針對單一步驟做評估,例如 Plan,或是 [tool] Apply Patch
Step 3: Dataset & Experiment
Dataset: 從 Daily Work Tracing 挖出的考古題
Input 反映真實工作需求
Output 反映上次 Model 的回答
LLM-as-a-Judge 的評分反映品質
Experiment: 同一份考古題,換不同變因來跑
Model 5.4 -> 5.5
Tools 改動前後
Instruction 改動前後
Step 3: Dataset
根據更細節的需求定義,先把 Dataset 分類
- Plan 時在意 Context Precision
- Coding 時在意 Answer Correctness
根據 LLM-as-a-Judge 的評分,先把 Dataset 分類
- good: 評分高的,品質好的,作為未來改進的參考
Step 3: Data Preprocessing
- 清理 Tracing 資料格式
- 根據需求,從資料中挑出有意義的 Features
- 例如
Output.tool_calls.args - Model 收到 Input 時呼叫哪些 Tools,帶什麼參數
- 透過 Langfuse SDK 做 Transform 其他格式
- Partition Dataset
- 存到持久化儲存
Step 3: 第三次優化
針對特定情境選擇最適合的工具與 Model
- Pro, Mini, Nano
- Thinking Effort
- GPT-5.4, GPT-5.5
- Codex, OpenCode, Copilot
不是等 Model 或工具變強來解決問題
而是選更適合的工具做品質與成本的平衡
Step 0: 釐清需求
釐清需求是第一件該做的事
然而實務上發現,很多團隊在
- 沒有清楚定義需求
- 對於 LLM 的理解知識有落差
- 就開始討論要不要換工具
建議「先有監測」先看到顯微底下的世界,再去相信微生物存在,比較容易接受
以數據調整團隊的認知,未來的討論也會較能接軌現實
Step 0: 釐清需求
提升團隊 Coding Agent 效率
但是 Coding Agent 效率到底是什麼?
$$
\text{整體效率 Efficiency} = \frac{\text{產出數量} \times \text{產出品質}}{\text{Token Cost} \times \text{花費時間}}
$$
降低 Cost,Latency,Error Rate
控制 Context Window
提升 Output Quality
Step 0: 需求 -> Action
- 不同任務選用 Model
- Mini, Nano, Low Latency, Low Error Rate
- AI Gateway Routing LiteLLM,
- Context Management -> rtk
- 加速 Greenfield 專案開發 -> Spec-kit
Step 0: On the same page
- Dev Team
- Cost Chargeback
- Model & Tool Evaluation
- Stakeholders 對齊長官的期待
- 效能量化指標:正確率,Error Rate,Latency,Cost
- 不是有 AI 就可以十倍產出,開除人類員工
Takeaway: 從零開始的 Decision System
- Step 1: 建立 baseline 與第一次優化
- Step 2: LLM as a Judge
- Step 3: Dataset & Experiment
- Step 0: 釐清需求
- Decision: 釐清需求 -> Take Action