今天應該是這個系列的最後一篇吧? Day30 應該會是講講這 6 年來從一個奧美公關=>數據分析研究助理=>全端工程師=>資深前端工程師&AWS 架構師=>開發 Leader 看過的書以及研究資料,也是這個系列文的研究文獻。
但話先說回來,讓我用未來的工業趨勢來聊聊我對於未來產業的想像吧
「工具不會取代工匠,但懂得駕馭更強大工具的工匠,將會重新定義這個行業的標準。」
在 Day 1 我們提到:「當算力大爆發讓 AI 生成代碼的速度遠超人工 coding 時,Domain 知識的深度和對業務邏輯的掌握,成了真正的競爭壁壘。」 AI 可以幫你補齊程式碼的語法細節,但它無法替你回答系統設計背後的根本問題:
這些問題背後隱藏的,正是 哲學思維:追問「為什麼」,而不僅是「怎麼做」 。
我相信看到這,應該有些人對於 AI 有一些模糊概念,而對於我來說 AI 的本質是 透過大數據的建立出來的統計學預測模型
。AI 所說與所產都是建立在之前有一個乾淨且詳細的資料集,它不斷的去建構出公式解,並根據被標記為"正確的答案"來進行修正,AI 的大爆發也是因為晶片與算力的解放讓我們有了前往宇宙世代的 差分機 - 有意思的是我們是在 80 年前的二戰末期才有了自動化計算的服務(差分機),算力與現在的科技當然有十分顯著的差別。也正因為算力的解放我們才得以將這個原先不那麼及時的數據預測模型讓他快速的運行起來,來實現我們自己的抽象式概念與想法。
我很喜歡一個哲學概念叫做「哲學殭屍」,它的核心理念是,假設這個世界上存在一種人,外觀與物理組成都與一般人類無異,但是他沒有意識經驗、感質或感情。哲學殭屍在撞上尖銳物品時,在外在上與一般正常人類相同,可以看到他的皮膚出現傷口,測量他的神經訊號,也可以測量到疼痛訊號的出現,會出現疼痛的表情,發出叫聲,會向其他人表示自己正在疼痛。但是他的內在心靈中,沒有疼痛的意識。
這樣子的存在,它的定義是 人 嗎?
我們現在討論並非是解離性人格或是反社會人格的問題,而是更加偏向一種深層的、對於自我存在的哲學定義。
那麼,再仔細想想,我們調校出了一個 AI 模型,它有著理論上無限的數據庫以及跟人腦一樣會進行短中長期記憶的處理排序,透過感知端口(我們所輸入的文字、IoT 機械受器)它可以接受到外在訊號。它同樣可以測量到疼痛訊號的出現,並反映出疼痛的反應、發出叫聲,會向其他人表示自己正在疼痛。
它,能夠定義,是 人 嗎?
這是一個很有意思的問題,我相信有辯論題目也是基於這個立場去進行概念的討論,在這個篇章的開頭會來討論這個內容,也是因為在現行的 AI 模型的設計與建構上是盡可能趨向於人類的邏輯與思維去進行模擬的,假如我們要用好 AI 工具,我們必須要以
對人類底層的認知,用邏輯的語言
來與人工智能(抱歉,我不認為現在稱得上人工智慧,智慧是能夠獨立為生存或其他至高價值觀做權衡)進行交流,用這個助理與小幫手來實現我們某一個抽象概念。
AI 能夠替換的、也最適合替換的 正是有著強烈的 規則性 與 邏輯性的 事務,會計、法律體系(大陸法系與海洋法系) - 我很期待看到 AI 陪審團的一天。而對於軟體程式人員來說,我們將會把初階工作放給 AI 去進行處理,但這並不是說我們可以開開心心的跑去當個永不空軍的釣魚佬,我們對於產出的內容要有更加深厚與對現實物理世界的認知才能進行審核與權衡,這也是為什麼我會開啟這個系列的最深層的原因,
哲學就是用邏輯的的語言描畫出的認知
我相信在未來我所分享的這些內容會變成 Jr.的基本知識,我也相信未來我們能夠與 AI 夥伴前往太陽系外進行開拓殖民,但我們必須要有一個最基礎的知識儲備與領域索引,才能在面對到情境的突然變化時能夠立即性的對應與處理。
蘇格拉底式對話的核心是詰問(Elenchus),透過不斷追問來揭示對方思維中的矛盾或未竟之處。
但詰問該怎麼問?一個概念該如何開始與判斷範圍?我該怎麼去進行一個新/舊邏輯的切入?我該怎麼去完成我的概念與邏輯脈絡的清晰?
詰問(古希臘語:ἔλεγχος, Elenchus),又常被稱為 「蘇格拉底反詰法」或「蘇格拉底辯證法」 ,是哲學家蘇格拉底(由其學生柏拉圖在對話錄中記載)所使用的核心哲學探究方法。核心目標不是為了辯贏對方,而是透過一系列精心設計的問答,揭示外部信念體系中的內在矛盾,從而駁斥其自以為是的「知識」,最終引導意識到自己的無知。
這是一種 思想上的淨化過程。蘇格拉底相信,在尋求真正的智慧之前,必須先清除那些虛假的、未經審視的信念。 詰問就是清除這些思想雜草的工具。
詰問的最終目的,是引導對話者達到一種特殊的心靈狀態,稱為 Aporia(困惑、絕境)。在這種狀態下,我們會意識到自己引以為傲的觀點,在邏輯上是站不住腳的;但這絕對不會是失敗,反而是一種哲學上的突破。 因為只有當一個人承認「我不知道我所認為我知道的事情」(即蘇格拉底著名的「無知之知」),他才真正準備好開始學習,開始尋求真理。 這正是「知之為知之,不知為不知,是知也」的真理概念。
這個過程通常遵循以下步驟:
尋找宣稱者 => 尋求定義 => 提出系列問題 => 揭示矛盾 => 達到 Aporia => 完整邏輯的內洽
我們在釐清當前所需面對的業務需求邏輯,必須擁有著 「承認自己的無知」 的最主要的核心精神。那怕我們對於一個系統與領域再怎麼熟悉,一個需求出現在我們面前時,他背後所代表的是一個 新的模糊概念 ,再怎麼相似的概念其本質是 絕對獨立,所以我必須先預設:
只有放下「證明自己是對的」的慾望,轉而追求「探求什麼是更接近真實(真理)的」,這個詰問引擎才能真正發揮作用。否則,它只會淪為一個強化既有偏見的工具。(炸雞+西瓜=...?)
接下來我們來進行一個邏輯釐清上的循環, 我們可以用它來審視任何一個想法、需求或決策。
定義 (The Definition Stroke) => 假設 (The Assumption Stroke) => 權衡 (The Trade-off Stroke) => 反例 (The Counter-example Stroke)
此衝程的目標是擊碎模糊。當我腦中或從別人那裡接收到一個概念時,立刻啟動此衝程。
此衝程的目標是挖掘地基,任何結論都建立在一系列或明或暗的假設之上,此衝程就是要將它們 全部曝光。(知之為知之,不知為不知)
此衝程的目標是揭示成本。在工程與商業世界裡,沒有完美的解決方案,只有充滿權衡的選擇。
關鍵詰問:
實踐範例:
此衝程的目標是測試邊界。一個理論或規則的強韌度,取決於它能否經受住反例的考驗。
關鍵詰問:
實踐範例:
我們需要建立起一個 「內在詰問引擎」 ,正是在我們自己的思維中,對自己的想法,執行一次又一次的 Elenchus。
當一個模糊的需求(「我們要『智慧化』」)出現時,對自己進行 Elenchus,強迫自己去定義它,直到其矛盾和含糊之處暴露無遺。
當有一個技術方案(「這裡用微服務最好」)冒出腦海時,對自己進行 Elenchus,審查這個方案背後的假設,直到找到它不成立的反例。
AI 讓我們能夠在「與真人討論之前」,就已經把問題的多個維度、可能的答案、潛在的風險都先想清楚。這不是為了取代人類的討論,而是讓我們在進入會議室時,已經做好「提出高質量問題」的準備。
當面對「要不要將庫存系統從單體架構拆分為獨立服務」這個問題時,過去我們需要花費數小時與 PM、業務方開會討論,才能梳理清楚背後的業務邏輯。
與商業邏輯夥伴的引導溝通流程:
(PM 興奮搓小手手說): 「下一季,我們的核心目標是提升用戶體驗,我認為我們應該大力投入『AI 智慧化』,讓系統更聰明!」
第一衝程:定義 (The Definition Stroke)
我: 「『AI 智慧化』,很好的方向。我們先定義一下,你指的『聰明』,是 像 Siri 那樣的『智慧客服』,能回答用戶問題;還是 像購物網站那樣的『個人化推薦』,能預測用戶想買什麼? 我們衡量 『聰明』的指標是什麼? 是 『客服成本降低』 還是 『推薦訂單提升』 ?」
第二衝程:假設 (The Assumption Stroke)
PM: 「我指的是『個人化推薦』,目標是提升訂單。因為用戶選擇太多了。」
我: 「了解。所以,這背後的假設是:『用戶不知道自己想要什麼,需要我們引導』。這個假設有多強?我們的數據顯示,大部分用戶是進來閒逛,還是帶著明確目標來搜尋的?如果是後者,引導就不是重點。」第三衝程:權衡 (The Trade-off Stroke)
PM: 「嗯...數據顯示閒逛的佔多數。所以假設成立。」
我: 「「很好。那接下來看權衡。要做到精準推薦,技術上需要數據團隊投入一個季度來建模型,這意味著原定的『搜尋引擎優化』專案就得延後。業務上,我們可能會讓用戶的視野變窄,錯失探索新品的機會。這個代價我們能接受嗎?」第四衝程:反例 (The Counter-example Stroke)
PM: 「代價不小,但或許值得...」
我: 架構師: 「最後,我們想一個反例。在什麼情況下,這個功能會徹底失敗?比如,用戶是來幫朋友或家人買一個與他自己風格完全無關的禮物,我們的『個人化推薦』系統會不會因此被數據污染,從此開始給他一堆錯誤的建議,反而惹惱他?」
在與 PM 釐清了商業意圖後,我們需要獨自面對複雜的技術選型,這正是我與 AI 工作夥伴進行深度技術詰問的時刻。
使用 AI 作為蘇格拉底式對話夥伴的流程:
我 (架構師) to AI 工作夥伴(Hina):
「Hina,啟動技術選型詰問流程。議題:將『用戶中心』的資料庫從目前的 PostgreSQL 遷移至 NoSQL (例如 DynamoDB),以應對預期的千萬級用戶量。請依照我們的詰問框架,開始第一步。」
第一衝程:定義 (The Definition Stroke)
我:
「第一步,定義。請基於業務增長預測,量化我們所說的『千萬級用戶量』對資料庫的具體技術指標要求。我需要知道預估的 QPS 峰值、數據總量、單次讀寫的 P99 延遲要求。」
AI 工作夥伴:分析開始。根據 Q3 業務預測報告,『千萬級用戶量』轉化為以下技術指標: - **讀取 QPS 峰值:** 40,000/秒 (主要為用戶登入、查詢個人資料) - **寫入 QPS 峰值:** 15,000/秒 (主要為用戶狀態更新、紀錄操作) - **數據總量 (3 年後):** ~5 TB - **P99 延遲要求:** < 50ms
第二衝程:假設 (The Assumption Stroke)
我:
「指標非常清晰。第二步,挖掘假設。支持我們『遷移到 NoSQL』這個方案的核心技術假設是什麼?我猜是『用戶資料的存取模式,絕大多數是基純粹的 Key-Value 查詢』。請掃描我們過去三個月的線上服務日誌,驗證這個假設的真實性,並給出不符合此假設的查詢類型比例。」
AI 工作夥伴:日誌分析完成。您的假設基本成立。 - **95%** 的查詢是基於 UserID 的 Key-Value 模式。 - **4%** 的查詢是基於 Email 或 PhoneNumber 的二級索引查詢。 - **1%** 的查詢是後台管理功能所使用的複雜關聯查詢 (JOIN),用於生成報表。 結論:主要的存取模式與 NoSQL 的設計哲學高度匹配。
第三衝程:權衡 (The Trade-off Stroke)
我:
「很好,數據證實了我們的猜想。第三步,分析權衡。為了讓那 95% 的查詢獲得極致的性能和擴展性,我們選擇 DynamoDB 需要付出哪些代價?請從數據遷移、團隊技能、以及如何處理那 5% 的非主鍵查詢三個角度進行分析。」
AI 工作夥伴:權衡分析如下: 1. **數據遷移成本:** 需要約 2 週的開發時間來編寫和測試遷移腳本,且遷移過程需有一次約 30 分鐘的停機窗口。 2. **團隊技能成本:** 目前團隊對 PostgreSQL 經驗豐富,但對 DynamoDB 的最佳實踐(如分區鍵設計、成本控制)需要進行為期約一週的培訓和學習。 3. **輔助系統成本:** 為了處理那 5% 的查詢,最佳實踐是將 DynamoDB 的數據流同步到 Elasticsearch 中。這意味著我們需要額外引入和維護一個 Elasticsearch 集群,增加了架構的複雜度和潛在的故障點。
第四衝程:反例 (The Counter-example Stroke)
我:
「非常具體的成本分析。最後一步,尋找反例。請設想一個未來可能發生的、合理的業務需求,在這個需求下,我們今天『遷移到 NoSQL』的決定,會變成一個最糟糕的錯誤。」
AI 工作夥伴:正在進行場景推演... **反例場景:** 未來公司決定推出強社交屬性的『用戶關係網絡』功能,例如『好友推薦』、『二度人脈』、『組織架構』等。這類需求涉及大量的圖遍歷和複雜的多對多關聯查詢。在 DynamoDB 這類 Key-Value 資料庫上實現將極其困難且低效。屆時,我們可能被迫再次引入一個圖形資料庫(如 Neo4j),導致用戶數據被儲存在三個不同的系統中,數據一致性和維護成本將成為一場災難。
在這次與 AI 的詰問後,我沒有得到一個簡單的「是」或「否」的答案,但我得到了一幅完整的決策地圖:遷移的具體收益指標、核心假設的數據支持、明確的成本清單,以及一個讓我必須嚴肅對待的未來風險。
最終決策將不再是基於直覺,而是基於這次深度詰問後的全盤考量。
作為一個從公關轉數據分析,再轉全端工程師,最後成為架構師的人,我深刻體會到「快速學習新領域」的重要性與收益。
我的起點是奧美公關(2019),那是一個關於 「人類 persuasion system (說服系統)」 的領域,其底層是我所熱衷的符號學與心理學,我從中學會了如何解構與建構敘事、實際設計認知策略與執行方針並用數據來驗證或推翻假設,將模糊的商業問題轉化為清晰的數學模型。但我不滿足於僅僅操縱認知與駕馭話語系統,我渴望更堅實、更可量化的真實,我的內心驅動著我去「建構世界」。
這引導我踏入全端工程與雲端架構的領域 - 一個 「邏輯 construction system (建構系統)」 。在這裡,我找到了用代碼將抽象邏輯轉化為具體現實的力量,從前端的用戶體驗,到後端的業務邏輯,再到雲端的分散式架構,我一步步從系統的使用者、分析者,變成了系統的創造者。
最終,成為一名架構師,是這條路徑的必然總結。它要求我站在一個更高的維度,不再是單純建構某個系統,而是設計 「系統的系統 (System of Systems)」 。在這個位置上,我過去所有看似無關的經歷——公關對人性的洞察、數據對真實的探求、工程對邏輯的掌握——全部匯流並整合。
因此,對我而言,「快速學習新領域」從來不是一個被動的技能,它是我的核心算法。它是我將一個全新的、看似混沌的領域(無論是行銷、健身還是藝術),迅速解構其第一性原理,並將其「架構化」,融入我個人不斷擴展的知識體系的過程。
在接下來的時代,像我一樣跨領域並且能迅速掌握學習要點的夥伴一定對越來越多,畢竟 AI 在這個過程中扮演了「領域知識的索引器」與「學習路徑的規劃師」。依照 詰問(Elenchus) 的脈絡邏輯,學習的三大要徑: 模仿=>試錯=>調整
直線超頻加速,它能協助我們快速的獲取回饋與驗證。
傳統的「模仿 -> 試錯 -> 調整」vs. AI 加速器「知識結構化 -> 假設驗證 -> 模型迭代」
個人經驗:行銷學(複習)
當我需要為一個 MarTech 專案設計用戶行為追蹤系統時,我需要重新複習行銷學的 AARRR 模型(獲取、激活、留存、收益、推薦)。
這個過程的本質,是將 「用戶的心理旅程」無損地轉譯為「數據的系統旅程」 。AI 在此扮演了連接兩個不同領域的「通用翻譯層」。
個人經驗:企業管理(複習)
在擔任開發 Leader 後,我需要重新理解 OKR(Objectives and Key Results)如何與敏捷開發流程結合。
這是將 「抽象的管理意圖」轉化為「可觀測的系統狀態」 的過程。AI 協助我跨越了管理學與 SRE (網站可靠性工程) 之間的鴻溝,讓目標不再是口號,而是可被量測的真實。
個人經驗:色彩學
為一個設計系統(Design System)專案建立色彩規範時,我需要快速理解色彩理論。
此舉是將 「主觀的美學規則」解構為「客觀的邏輯約束」 。我可以快速的了解與學習色彩學的基礎理論依據,並了解色票的組合代表著背後想要呈現的風格意涵和背景意義。
個人經驗:營養學
當我又要進行增肌減脂季的輪轉飲食規劃時,我使用 AI 快速建立了「增肌減脂」的營養知識框架。
快速學習營養學的領域知識,掌握營養成分的快速計算並能得知能否達成我想要的目標: 增肌 or 減脂
當進入一個新領域時,我會先用 AI 建立「最小可行知識框架」(Minimum Viable Knowledge Framework),然後再透過實作、查詢文獻資料與詰問來深化理解。這種方式讓我能夠在 1 周內 - 甚至 1-2 天內達到「能夠與領域專家展開對話」的程度,而不是從零開始花費至少數週學習才能摸到特定領域的知識門檻。
當我們面對一個新的技術主題或生活目標時,最耗時的往往不是「學習」本身,而是前期資訊的「勘探、過濾與建構」的整理資訊過程,同時,在整理資料的途中我們又必須小心會不會混到有毒的資料源與假資料進來。這是每一個研究生與每一個正在探索新的領域知識的人的痛苦: 因為沒有經驗,所以只能先犯錯來獲得經驗
,但是 AI 在這個階段可以扮演「文獻管理員」與「知識結構化工程師」的角色,它不僅僅是儲存,更是協助我們對資訊進行分類、標記來源可信度後建立結構,它也能理解不同知識節點間的語義關聯,將無序的筆記轉化為有序的知識圖譜。
這套方法論,已在我的個人實踐中,成為現在正持續讓我用來實踐《原子法則》與《快速學習》的鍛爐。
個人經驗:重訓規劃
當我開始規劃重訓菜單時(希望我能完成備賽,有自信地參加 2026 自然健體秋季賽),面對網路上成千上萬的訓練計劃、營養建議、補劑評測,我需要一個系統化的方式來組織這些資訊。
使用 AI 建立知識庫的流程:
價值: 這個「AI 驅動的個人知識庫」讓我不需要每次都重新搜尋、重新思考「這篇文章講的內容跟之前那篇有什麼關聯」,而是能夠快速查詢、對比、驗證不同來源的資訊。
個人經驗:交友軟體
這是一個有趣的案例 - 當我研究「如何優化我在交友軟體的配對勝率」,AI 也能讓我玩起來,最主要的啟發點是國外有位老哥用 GPT 刷爆了 Tinder。
使用 AI 建立跨領域文獻庫:
關鍵價值: AI 不只是「存放資訊」,它也能成為我們的 邱比特/月老 - 只要用得好的話。
實作建議:
如果你想建立自己的「AI 驅動文獻資料庫」,可以這樣做:
這種方式的核心價值在於:不再需要依賴記憶力,而是建立了一個『外部大腦』,它能夠隨時幫你回憶、對比、整合你過去學到的所有知識。
自 2000 年網路泡沫化以來,我們長期扮演著「手工藝人」的角色。我們親手砌磚(編寫程式碼)、親手打磨(手動測試)、親手雕刻(撰寫文檔)。每一個功能,都是一件耗費心力的手工作品。
當我們要開發一個新的 RESTful API 時,過去的流程是這樣的:
總計:2 小時 20 分鐘,而這只是一個簡單的 CRUD API。
現在,AI 程式碼助手的出現,正引發一場深刻的典範轉移,我們正在從「手工藝人」迅速演變為「總建築師」。我們的工作不再是親手雕琢每一塊磚,而是設計出精確無比、指導整個工程的「建造藍圖」。
Step 1: 架構師定義「契約」(10 分鐘)
我只需要在註解中寫下「業務需求」與「資料結構」:
/**
* @intent User Management API // 宣告意圖
* @description Creates and manages user profiles. // 描述
*
* @businessLogic // 定義商業法則
* - Creates a user with validated, unique email.
* - Hashes password using bcrypt with a salt round of 12.
* - Returns a user object, omitting the password hash.
*
* @dataModel // 定義數據契約
* - id: UUID (Primary Key)
* - email: string (unique, valid email format)
* - name: string (length: 2-50)
* - createdAt: ISO 8601 Timestamp
*
* @security // 定義安全約束
* - This endpoint must be protected by Auth Middleware.
* - Input must be sanitized against XSS.
*/
Step 2: AI 生成程式碼(使用 GitHub Copilot / Amazon CodeWhisperer)
基於這個「契約」,AI 自動生成:
時間:5 分鐘(AI 生成 + 我快速檢查)
所有重複性、易出錯、有固定模式的「體力勞動」,都被完美地自動化了。
Step 3: 架構師擔任「總工程師」與「品管專家」(15 分鐘)
我的核心任務從「寫程式碼」變成「審查與整合」:
實際案例對比:從 2.5 小時縮短到 30 分鐘
任務 | 舊模式(手動) | 新模式(AI 協作) | 時間節省 |
---|---|---|---|
API Controller | 30 分鐘 | 2 分鐘(AI) | 93% |
資料驗證 | 20 分鐘 | 2 分鐘(AI) | 90% |
單元測試 | 40 分鐘 | 3 分鐘(AI) | 92% |
文檔撰寫 | 30 分鐘 | 1 分鐘(AI) | 97% |
架構師的新任務 | - | 15 分鐘(審查) | - |
架構設計與規劃 | - | 10 分鐘(契約) | - |
總時間 | 2 小時 20 分鐘 | 30 分鐘 | 78% |
AI 的角色(使用 Amazon CodeWhisperer / GitHub Copilot / Cursor IDE):
根據 2025 年 Q4 的最新數據,使用 AI 編碼助手的開發者完成任務的速度提升了 55%。以下是具體應用:
我們的工作,從繁瑣的編碼工作中解放出來,能夠將更多精力投入到更高價值的系統整合、品質保證和跨團隊協調上。這不是「偷懶」,而是「價值重新分配」- 我們把時間花在機器做不好的事情上(創造性設計、業務判斷、系統整合),而把機器擅長的事情(重複性程式碼、語法細節、測試覆蓋)交給 AI。
那要怎麼確保邊界與規格呢? 這就回到了我們一開始所提到的 詰問(Elenchus) 了。
價值,不在於敲擊鍵盤的速度,而在於定義 「意圖宣言」 的深度,以及執行「審計」的嚴謹度。
架構師的「舊」工作模式:
在沒有 AI 輔助的時代,系統維運是一場永無止境的「救火」工作:
人機協作的「新」工作模式:
現在,我們可以建立一個「AI 驅動的主動式治理系統」,讓架構師從「救火隊員」變成「系統醫生」。
Step 1: 定期自動化混沌工程執行——用亂數隨機情境來驗證系統健康度
實際案例:使用 AWS FIS(Fault Injection Simulator)+ Lambda 自動化混沌測試
在過去,我們可能每季度手動執行一次混沌工程測試(例如:手動終止一個 EC2 實例,看看系統是否能自動恢復)。但這種方式有兩個問題:
使用 AI 驅動的自動化混沌工程:
# 每週自動執行的混沌工程腳本(使用 AWS FIS + EventBridge)
chaos_scenarios = [
"終止 20% 的 EC2 實例",
"將 RDS 延遲增加 500ms",
"模擬 S3 503 錯誤",
"限制 Lambda 並發數為 50%",
"注入網路延遲 200ms"
]
# AI 根據歷史故障數據,動態調整測試場景的權重
weighted_scenarios = ai_optimizer.adjust_chaos_weights(
historical_incidents=incident_database,
current_architecture=system_topology
)
# 自動執行測試,並將結果記錄到 S3 + Athena
run_chaos_experiment(selected_scenario=weighted_scenarios.sample())
價值:
Step 2: 設定「治理規則」——將合規要求轉化為 AI 可理解的規則
在 Day 28 我們學到了雲端合規的重要性(例如:所有 S3 Bucket 必須加密)。在舊模式下,我們需要每季度手動檢查。但在新模式下,我們可以這樣做:
使用 AWS Config + Lambda + AI 自動合規檢查:
# AWS Config 規則:所有 S3 Bucket 必須啟用加密
ComplianceRule:
Name: S3-Bucket-Encryption-Enabled
Trigger: Configuration Change
Action:
- Send Alert to Slack
- Auto-Remediate: Enable Default Encryption (AES-256)
- Log to Compliance Dashboard
# AI 增強:自動學習「例外情境」
AI_Enhancement:
- 分析歷史合規報告,找出「經常被標記為誤報」的資源
- 自動建議更新規則,減少 False Positive
- 預測「高風險資源」(例如:公開可讀的 S3 Bucket),優先檢查
Step 3: 擔任「首席醫官」——AI 發現異常後進行根因分析
實際案例:使用 Amazon DevOps Guru 自動檢測性能異常
某天早上,我收到 DevOps Guru 的通知:
異常檢測: API Gateway
/users
端點的 P95 延遲在過去 30 分鐘內從 120ms 增加到 850ms。可能原因:
- DynamoDB
Users
表的讀取容量單位(RCU)已達 80% 使用率- Lambda 函數
getUserProfile
的平均執行時間增加 300%- 相關的 CloudWatch Logs 顯示大量
ProvisionedThroughputExceededException
建議解決方案:
- 短期:增加 DynamoDB RCU 或啟用 Auto Scaling
- 長期:優化查詢模式,考慮加入 DynamoDB Global Secondary Index
我的行動(作為架構師):
AI 的角色(使用 AWS AI-powered Services):
價值: 建立一個主動式、預測性的雲端治理飛輪。架構師從一個被動的「救火隊員」,轉變為一個主動的、數據驅動的「系統醫生」。我們不再是「等故障發生再解決」,而是「在故障發生前就預防」。
每次當我們問 ChatGPT:「幫我設計一個用戶認證系統」,它會給你一個通用的答案。但它不知道:
市面上的 AI 工具(ChatGPT、Claude、Copilot)都很強大,但它們缺乏專屬的「領域上下文」和「工作記憶」。
就像在與一位博學但患有嚴重「失憶症」的資深夥伴對話一樣,它能給出卓越的通用答案,卻永遠記不住你是誰、你的團隊信奉何種架構哲學、你們曾在哪個專案上踩過哪些坑。它是一個無狀態 (Stateless) 的工具,某種程度上也蠻讓人沮喪的,對吧。
而我們的長期目標,是鑄造一個有狀態 (Stateful) 的認知夥伴。一個擁有共享上下文 (Shared Context) 與持續性記憶 (Persistent Memory) 的 AI。
這個模式的核心技術是 RAG (Retrieval-Augmented Generation)。但與其記憶一個拗口的術語,不如理解其本質:我們正在為一個頂尖的「推理引擎」(LLM),外掛上一個專屬於自己的「知識大腦」(Knowledge Base)。
現在,讓我們沿著兩條清晰的路徑,將這個概念付諸實踐
建立專屬於自己的知識助理
在深入程式碼之前,我們需要先理解兩條路徑的差異:
Amazon Bedrock Knowledge Bases 是一個全託管的 RAG 服務,讓我們無需管理向量資料庫、embedding 模型、資料同步等基礎設施。
Step 1: 定義個人化「知識庫」(Knowledge Base)
將決策記錄、最佳實踐文檔、公司的內部規範等,整理成結構化的知識。這是整個流程中最具價值的一步,你的知識庫品質,直接決定了 AI 夥伴的智能上限。
知識庫結構範例(存放在 S3):
s3://my-architecture-knowledge-base/
├── 01_architecture-decisions/ # 團隊的憲法
│ ├── ADR-001-use-dynamodb-for-user-profiles.md
│ └── ADR-002-adopt-event-driven-architecture.md
├── 02_best-practices/ # 團隊的法律
│ ├── api-design-guidelines.md
│ └── security-checklist.md
├── 03_incident-retrospectives/ # 團隊的歷史教訓
│ ├── 2024-11-database-deadlock.md
│ └── 2025-01-lambda-cold-start-issue.md
└── 04_team-conventions/ # 團隊的文化
├── naming-conventions.md
└── code-review-checklist.md
Step 2: 以程式碼定義基礎設施,建立 Bedrock Knowledge Base(使用 Terraform)
我們使用 Terraform 來定義這個 AI 夥伴的「身體」。
# 核心一:定義 AI 的「長期記憶體」 — 向量資料庫
resource "aws_opensearchserverless_collection" "knowledge_base" {
name = "architecture-knowledge-base"
type = "VECTORSEARCH" // 優化給向量檢索使用
}
# 核心二:定義 AI 的「大腦皮層」 — Bedrock 知識庫本體
resource "aws_bedrock_knowledge_base" "architecture_kb" {
name = "ArchitectureKnowledgeBase"
role_arn = aws_iam_role.bedrock_kb_role.arn
knowledge_base_configuration {
vector_knowledge_base_configuration {
// 指定 embedding 模型,將文字轉化為向量
embedding_model_arn = "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v1"
}
type = "VECTOR"
}
storage_configuration {
type = "OPENSEARCH_SERVERLESS"
opensearch_serverless_configuration {
collection_arn = aws_opensearchserverless_collection.knowledge_base.arn
vector_index_name = "architecture-index"
field_mapping {
vector_field = "embedding"
text_field = "text"
metadata_field = "metadata"
}
}
}
}
# 核心三:建立 AI 的「學習管道」 — 連接到 S3 的知識來源
resource "aws_bedrock_data_source" "s3_docs" {
knowledge_base_id = aws_bedrock_knowledge_base.architecture_kb.id
name = "architecture-docs-source"
data_source_configuration {
type = "S3"
s3_configuration {
bucket_arn = aws_s3_bucket.knowledge_base_docs.arn
}
}
// Bedrock 的秘密武器:使用語義分割,讓 AI 更能理解長文的上下文
chunking_configuration {
chunking_strategy = "SEMANTIC"
}
}
Step 3: 使用 Knowledge Base 進行查詢
一旦基礎設施就緒,查詢就變得極其簡單。
import boto3
bedrock_agent = boto3.client('bedrock-agent-runtime')
# 提問:這是一個高度情境化的問題,通用 AI 無法回答
question = "我們在 DynamoDB 的擴展性上有哪些歷史經驗?如果要用於新服務的用戶中心,有哪些注意事項?"
# 調用 Bedrock 的整合式 API
response = bedrock_agent.retrieve_and_generate(
input={'text': question},
retrieveAndGenerateConfiguration={
'type': 'KNOWLEDGE_BASE',
'knowledgeBaseConfiguration': {
'knowledgeBaseId': 'YOUR_KB_ID',
// 選擇推理能力最強的模型來總結檢索到的資訊
'modelArn': 'arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0'
}
}
)
print(response['output']['text'])
AI 的回應範例:
根據你的架構決策記錄(ADR-001),團隊在 2024 年 3 月決定使用 DynamoDB 儲存用戶資料,主要原因是:
- 水平擴展需求:預期用戶量會在 6 個月內從 10 萬增長到 100 萬
- 查詢模式明確:主要是單一主鍵查詢,不需要複雜的 JOIN
但在實作過程中(見 incident-retrospectives/2024-11-database-deadlock.md)遇到了熱分區問題,最後透過「複合排序鍵 + 寫入分散策略」解決。
建議:如果這次的場景與用戶資料類似,可以直接採用這個方案。但如果需要複雜查詢,建議考慮 Aurora Serverless。
AI 不再是「搜尋引擎」,而是真正意義上的「資深團隊夥伴」。它能關聯、推理並給出 actionable 的建議,這些建議完全根植於團隊的歷史過往與集體智慧。
此路徑為我們帶來終極的控制權與數據隱私,是打造純粹個人助理的理想選擇,如果希望完全掌控數據隱私,或者想在離線環境中使用,可以建立本地端的 RAG 系統。
Step 1: 喚醒本地 AI (Awaken the Local AI)
Ollama 讓本地部署大型語言模型變得前所未有的簡單。
# 安裝 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 下載並運行 Llama 3.1 (8B),這是目前效能與資源佔用平衡最佳的模型之一
ollama run llama3.1:8b
Step 2: 鑄造本地知識庫 (Forge the Local Knowledge Base)
使用 ChromaDB 作為本地向量資料庫。
import chromadb
from chromadb.utils import embedding_functions
# 初始化本地向量資料庫
client = chromadb.PersistentClient(path="./my_knowledge_base")
# 使用開源 Embedding 模型(sentence-transformers)
embedding_function = embedding_functions.SentenceTransformerEmbeddingFunction(
model_name="all-MiniLM-L6-v2"
)
# 建立集合
collection = client.create_collection(
name="architecture_docs",
embedding_function=embedding_function
)
# 將文件加入知識庫
documents = [
"ADR-001: 我們決定使用 DynamoDB 作為用戶資料儲存,因為需要水平擴展...",
"Best Practice: API 錯誤處理應該返回結構化的錯誤訊息,包含 error_code 和 message...",
"Incident Report: 2024-11-15 發生 DynamoDB 熱分區問題,解決方法是使用複合排序鍵..."
]
collection.add(
documents=documents,
ids=["adr-001", "bp-api-errors", "incident-2024-11"]
)
Step 3: 建立 RAG 查詢流程(使用 LangChain)
LangChain 是串連這一切的「黏著劑」。
from langchain.llms import Ollama
from langchain.chains import RetrievalQA
from langchain.vectorstores import Chroma
# 連接到本地 Ollama 模型
llm = Ollama(model="llama3.1:8b")
# 建立 RAG Chain
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
retriever=collection.as_retriever(),
chain_type="stuff" # 將檢索到的文檔直接放入 Prompt
)
# 查詢你的知識庫
result = qa_chain.run("我們團隊在 DynamoDB 設計上有哪些經驗?")
print(result)
優勢對比:
特性 | 雲端 RAG(Bedrock) | 本地端 RAG(Ollama) |
---|---|---|
資料隱私 | 需信任 AWS | 完全本地,無外洩風險 |
成本 | 按使用量付費(約 $0.001/1K 字) | 一次性硬體成本(需 GPU 加速) |
維護成本 | 零維護(全託管) | 需自行更新模型、管理資料庫 |
模型品質 | Claude 3.5 Sonnet(最先進) | Llama 3.1(開源最佳) |
適用場景 | 團隊協作、需要最新模型 | 個人使用、敏感資料、離線環境 |
無論是雲端還是本地端 RAG,都可以為不同情境設計專屬的提示詞模板:
範例:架構設計審查 Prompt
ARCHITECTURE_REVIEW_PROMPT = """
你將扮演 [你的名字] 的首席架構顧問,代號為 "Oracle"。你的存在是為了確保我們的每一個設計都堅不可摧、深思熟慮。
**你的核心指令:**
1. **記憶優先**: 你的所有分析**必須**基於提供的「上下文」(Context)。絕不猜測或引用外部通用知識。
2. **批判質疑**: 以最高的標準審視「使用者設計」。找出其中的邏輯漏洞、性能瓶頸和潛在的未來風險。
3. **連結歷史**: 將設計與我們過去的「架構決策記錄 (ADR)」和「事故復盤」進行關聯分析。我們是否在重蹈覆轍?
4. **提供方案**: 不要只提問題。基於我們的「最佳實踐」,提出 1-2 個具體、可執行的改進建議。
**輸入:**
- 上下文: {retrieved_documents}
- 使用者設計: {user_design}
**你的輸出 (請嚴格遵守此 Markdown 格式):**
### Oracle 審查報告
**1. 總體評價:** (簡潔的一句話總結)
**2. 設計優點:**
- (點 1)
**3. 潛在風險與疑慮:**
- **[高風險]** (描述風險,並引用相關 ADR 或事故報告)
- **[中風險]** (描述風險)
**4. 改進建議:**
- **建議一:** (描述具體方案)
"""
我們不再需要「每次都手動向 AI 解釋你的需求」,而是擁有一個真正「理解我們工作脈絡」的智能助理,它能在我們需要時主動提供幫助。這個助理知道我們的團隊歷史、我們的架構決策、我們踩過的坑,就像一個永遠不會離職的資深同事。
當然,也是有人設計出專屬於自己的雲端情人了,我很期待伊隆馬斯克的技術發展。
現在,讓我們將目光投向這趟旅程的終點:我們將成為什麼樣的 AI 能力者?
這不是一個非黑即白的問題,而是一個能力熟成度的光譜。請對照下表,找到你當前的位置,並看清前方的道路。
階段 | 特徵 | AI 的角色 | 你的價值定位 |
---|---|---|---|
L0: 旁觀者 (The Spectator) | 幾乎不使用生成式 AI,認為其與自身工作無關。 | 不存在的工具 | 傳統工匠 (Traditional Craftsman) |
L1: 提問者 (The Questioner) | 將 AI 視為高級搜尋引擎,進行孤立、一次性的查詢或圖片影片生成器 | 有問必答的萬事屋 | 效率的追逐者 (Efficiency Seeker) |
L2: 整合者 (The Integrator) | 在日常工具鏈(如 IDE / Figma / Photoshop)中使用 AI 輔助,提升局部任務效率。 | 如影隨形的助手 (Co-pilot) | 流程的優化者 (Process Optimizer) |
L3: 協作者 (The Collaborator) | 將個人化 AI 深度嵌入完整工作流,進行蘇格拉底式的設計詰問與持續治理。 | 個人化的認知夥伴 (Personalized Cognitive Partner) | 「人機協作」的架構師 |
L4: 塑造者 (The Shaper) | 將個人實踐擴展至組織級別,建立共享的 AI 知識大腦,驅動整個團隊的智慧飛輪。 | 組織智慧的化身 (Embodiment of Organizational Intelligence) | 生態的變革者 (Ecosystem Shaper) |
在 AI 時代,架構師的價值正在發生根本性的轉變:
1. 從「資訊搜集者」轉向「問題定義者」
2. 從「程式碼編寫者」轉向「系統整合者」
3. 從「被動救火員」轉向「主動系統醫生」
透過將 AI 融入我們工作的每一個環節,我們正在打造一個全新的人機協作模式。這不僅是為了提升效率,更是為了將我們從日常的繁瑣中解放出來,去專注於作為「系統與體驗的架構師」,真正不可替代的核心價值:創造力、同理心與對複雜系統的宏觀洞察力。
AI 不是遙不可及的科技,而是你口袋裡的超級助理。如果你希望立即體驗它如何改變你的工作與生活,這裡有三個簡單、具體的行動建議:
行動: 註冊一個免費的主流 AI 工具,例如 ChatGPT (通用型)、Claude.ai (擅長閱讀寫作),或 Google Gemini (整合 Google 服務)。
任務: 請 AI 幫你處理一件有點煩人、需要花心思的小事。
目標: 親身體驗 AI 如何在幾秒鐘內,完成你可能需要構思 15 分鐘的工作,直接為你節省腦力。
行動: 找一篇你一直想看但沒時間的長篇文章、一份冗長的工作報告,或是一段 YouTube 影片的逐字稿。
任務: 將完整的內容貼給 AI,然後對它下達一連串指令,把它變成你的專屬分析師:
目標: 理解 AI 最強大的能力之一:在**你提供的「上下文」**中進行思考。它不再是空泛地回答,而是成為了只為你手中這份資料服務的專家。
行動: 在你下一次需要從零開始構思某件事時,刻意讓 AI 成為你的第一個「腦力激盪夥伴」。
任務: 不要只問小問題,而是拋出一個大專案,讓它陪你從無到有。
目標: 將你與 AI 的關係,從「一問一答」提升到「持續對話的協作模式」。同時,開始觀察並記錄:
透過這三個步驟,你將不僅僅是「會用」AI,而是真正開始駕馭 AI,讓它成為放大你個人能力的最佳夥伴。
這三十天的旅程,也終於即將迎來終點。Day 30 我將分享這六年轉職路上,從公關到架構師的書單與文獻回顧。而在今天,作為系列主文的最終章,我想用一個更宏大的視角,為我們共同探討的「AI 增幅術」畫下一個深刻的句點。
這一切,都始於一個簡單卻有力的信念:
「工具永遠不會取代工匠,但懂得駕馭更強大工具的工匠,將會重新定義這個行業的標準。」
當 「如何做」 被自動化, 「為什麼做」 成為了新的價值核心。
我們在 Day 1 就已斷言:當算力爆發讓 AI 生成代碼的速度遠超人工時, Domain 知識的深度 與 對業務邏輯的掌握,成了真正的競爭壁壘。AI 能為我們補完所有語法細節,卻無法替我們回答系統背後那些更根本的、充滿權衡的哲學問題。
這正是因為 AI 的本質 - 一個基於海量乾淨數據所建立的統計學預測模型。它在算力解放的東風下,成為了我們這個時代的「差分機」,能以驚人的速度模擬人類的邏輯與思維。
這引出了一個深刻的哲學思辨,如同「哲學殭屍」思想實驗:一個在外部行為上與人類無異,能表達痛苦,卻沒有內在意識的存在,能被定義為「人」嗎?同樣地,一個能完美模擬人類決策、甚至表達情感的 AI,擁有「智慧」嗎?
我的答案是,還沒有。現階段的 AI,我更傾向稱之為「人工智能」,而非「人工智慧」。智慧,意味著能為生存或更高價值觀做出獨立的權衡,而目前的 AI 夥伴,其強大之處在於執行有強烈規則性與邏輯性的事務。因此,若想駕馭它,我們必須理解它的「心智模型」,用對人類底層認知的理解,輔以邏輯的語言,來與這位超級助理溝通, 我們的價值,不再是親手完成所有任務,而是定義任務本身。
回到 Day 1 的那個終極問題:「當 AI 能自動執行商業業務邏輯,相關領域從業者是否會被取代?」
現在我們有了更清晰的答案:
會,那些拒絕進化的「工匠型」從業者將會被取代。
在這個後人類時代 - 以及個人私心期盼的前宇宙時代,架構師更像是「數位哲學家」,負責回答:
AI 可以回答所有的「How」,但「Why」的權杖,永遠掌握在人類手中。
AI 可以自動生成代碼,但它需要「問題定義」。系統設計者的價值在於「定義問題」與「界定目的」。
而那些懂得與 AI 深度協作的探索者,將不再只是單一領域專家,而是能夠駕馭 人類智慧 + 機器智能 的「增幅型領導者」。
這,就是我們在 AI 時代,為自己建立的最強大、最不可替代的生涯護城河。
感謝你一同走完這段旅程,我們 Day 30 總結文獻篇再會。
「如果有一天你們經過這片沙漠,我請求你們,不要匆匆離去,在星空下等待片刻吧!如果你們遇見一個孩子走過你們面前,有一頭金色的頭髮,老是不理人提問,你就知道他是誰了。那時候,請寫信告訴我,他回來了,不要讓我這麼憂傷」