Taipei dbt Meetup:值得信賴的 AI Agent,取決於資料基礎架構
Toshitaka Ito 的演講,他是 dbt Labs 的 Staff Solutions Architect,這場演講就在 Fivetran + dbt Labs 合併案完成後大約三週(2026 年 6 月,合併後 ARR 約 6 億美元)。主題:可信賴的 AI Agent 取決於資料基礎架構。
核心問題
貫穿整場演講的比較:
| 維度 | 人類 | AI Agent |
|---|---|---|
| Context | 缺失時能自行補足 | 需要明確的 context |
| 持續性 | 間歇性執行 | 持續執行(100 個 agent → 成本 ×1,000) |
| 錯誤 | 靠判斷力抓出來 | 毫不猶豫地放大 |
人類能夠補足缺失的脈絡,但 Agent 只會放大這些缺失。
這就是為什麼整合後架構裡最核心的那一層是 Governed Context——lineage、semantic layer(讓「revenue」對每個 agent 來說都是同一個意思),以及 metadata。少了這一層,把 agent 疊加在你的資料之上,只會加速錯誤的擴散。
Fusion engine:本地編譯,遠端執行
6 月發布的三項新功能中(dbt Core v2.0、dbt State、dbt Wizard),最重要的是用 Rust 重寫的 Fusion engine。典範轉移在於:以前每個錯誤都得往返一次 warehouse;現在 query 會先在本地編譯與驗證(底層用 DuckDB),只有在合法之後才會碰到 warehouse。
我在展示裡看到:dbt run 在 2.3 秒內處理了 31 個模型——如果每個 query 都要打到 Snowflake,這是不可能做到的。它甚至在本地就抓到了一個設定錯誤(MERGE strategy requires unique_key),完全不需要碰 warehouse。以 Java 開發者的角度來看,這個類比很直接:這就像從「在正式環境編譯」進化成 IntelliJ 的 compiler + LSP——即時回饋。
dbt State:沒變的東西就不要重建
dbt State 會偵測哪些模型有變動,只重建受影響的部分——dbt Labs 表示這能減少約 30% 的 compute 成本。在展示裡:第一次執行建了 32 個模型;第二次沒有任何變動,只建了 2 個(其餘 30 個被重複利用)。
Deferral 這個策略,我覺得是開發流程裡的殺手級功能:你的 DEV 環境可以完全是空的,upstream 的模型直接參照 PROD。在展示裡,做了一次完整的 DROP CASCADE 之後,它用 PROD 當作 upstream,只花了 17 秒就建好了被修改的模型。Clone 則是隔離版本:把 upstream 用 zero-copy clone(指標而非真正複製)複製到 DEV。
dbt Wizard:有潛力,但 beta 終究是 beta
這是專門做 analytics engineering 的 agent,透過 MCP 連接本地的 dbt_index——它不會把整個 schema 塞進 prompt,而是只查詢需要的部分(「零 token 浪費」)。但在展示中……它掛了:MCP client for dbt_index failed to start,Fusion 的 index 損毀了。系統當時建議「去問 wizard」——但壞掉的正好就是那個 wizard。😄
不過就架構來說,這跟 Claude Code 是同一套模式:擴充功能把一個 CLI 當成背景程序啟動,再用 MCP 跟本地的 context server 溝通。
Q&A 摘要
我問了(其中一個問題是)從 code agent 使用 dbt 的最佳路徑:他的建議是,如果你已經在這個平台上,就用 dbt Wizard;如果你活在 Cursor/Claude Code 裡,就用 dbt-agent-skills + dbt MCP server——可行,但比較 DIY。
還有兩個值得記下來的回答:
- 用 Semantic Layer 取代 text-to-SQL? 是的,但要把它當成第一道防線,並保留 fallback 到 text-to-SQL:semantic layer 在它涵蓋的範圍內精準度很高,一旦答不出來,會直接報錯,而不是瞎編。真正的瓶頸不在模型的能力——而在於資料是不是被組織成 agent 能安全使用的形式。
- analytics engineer 這個角色會消失嗎? 這個角色會轉向定義 context、tests、metadata 與 governance。而且即使每個團隊變小,整體需求反而可能成長——這正是 Jevons paradox(傑文斯悖論)套用在開發上的經典論證:當一項活動效率提升,它的整體使用量往往會增加。
他對 agent coding 的最佳實務作為結尾很到位:任務要小、每次變更後都 compile/build/test,而且一定要檢查 diff——程式碼跟資料都要看。不要盲目相信 agent 的輸出。