系列精選
查看全部工程師日誌
寫 Code 之外的生活觀察 — 理財、旅遊、健康、居住、時事評論
Elasticsearch 完整指南
從零開始學 Elasticsearch — 環境建置到生產環境優化
Claude Code 完整教學
從入門到進階 — Hooks、Sub-agents、MCP、Skills 開發全攻略
AZ-305 Azure 架構師認證
Azure 解決方案架構設計師五日課程筆記
Java / Spring 學習筆記
Java 核心語法、Stream API、併發控制、Spring Boot 實戰
AI Agent 架構全解析
從 harness 骨架拆解現代 AI Agent — 以 Claude Code 為例的 7 層架...
越覺得自己分辨得出,越容易中招:AI 深偽詐騙時代該重設的信任判準
上禮拜滑臉書,張忠謀跟他太太出現在一支影片裡,笑得很慈祥,說要送書給有緣人,順便帶大家進一個「穩健佈局」的投資群組。畫面很清楚,嘴型對得上,連那個熟悉的溫和語調都在。留言區一堆人在問怎麼加入。 你會不會點? 先講事實:台積電早就發過聲明,張忠謀夫婦、魏哲家都沒有經營任何公開社群帳號,也沒辦過這種活動。那支影片是假的。可是它逼真到連留言區都在排隊。問題來了,真正該問的問題其實不是「這支影片做得多像」,而是你到底憑什麼決定要不要相信螢幕上的一張臉。 眼見為憑,第一次大規模失效人類幾萬年來最省成本的信任機制,就是「我親眼看到、親耳聽到」。它便宜、快、大部分時候夠用,所以我們的大腦把它設成了預設值:看到臉先信,聽到聲音先信,有懷疑再說。 deepfake 幹的事情,是第一次讓這個預設值大規模失靈。以前偽造一個名人站台要成本、要技術、要冒被抓的風險;現在生成一支假影片、複製一段聲音,幾分鐘、幾乎零成本。這裡有個很不對稱的東西:詐騙方的成本趨近於零,你的下行卻可能是畢生積蓄。 只要一件事的下行很大、上行有限,理性的做法就是別碰。你點進那個投資群組,最好的結果是「沒被騙」,也就是回到原點;最壞...
AI 與科技新聞摘要 — 2026/07/19(賭錯了,帳單寄給誰)
一個駭客,一份 2023 年的舊源碼,把 AI 音樂公司 Suno 的爬蟲清單攤在陽光底下:十一萬小時的 YouTube Music、Deezer、Genius,連 podcast 的 RSS 都沒放過。公司對外的說法一直是「訓練資料來自公開網路上的音樂檔」,源碼裡寫的,是另一回事。 我看這禮拜的新聞,腦子裡一直轉同一個問題。不是「誰的模型比較強」,是「這場豪賭要是賭錯了,痛的會是誰」。你會發現答案幾乎都一樣:不是按下按鈕的那個人。 一、Suno 被駭,爬蟲清單攤在陽光下404 Media 揭露了細節。駭客說他在 2025 年 11 月用一次供應鏈攻擊,拿到 Suno 一名員工的 GitHub 與雲端憑證,順著摸進源碼。裡面清清楚楚寫著要去哪裡抓資料:genius_hq、youtube_music、freesound、jamendo、deezer 一路列下去,光 YouTube Music 就標了十一萬小時,還特地去搜歌曲的 a cappella 版本,好把人聲軌拆出來訓練。順帶外洩的,還有幾十萬名付費用戶的 email、電話跟部分刷卡資料。Suno 的回應是這批是「已經沒在用的...
@RequestMapping 省掉的不是幾行 XML,是你腦子裡那張請求分派表
要讓 /users 這個網址對到一段處理程式,Servlet 時代你得先開一個 class 繼承 HttpServlet,覆寫 doGet,再翻到 web.xml 補上兩段 XML:一段 <servlet> 宣告這個 class,一段 <servlet-mapping> 把它綁到 /users。兩段分開寫,中間靠一個 <servlet-name> 字串對上。字串打錯,編譯器不會理你,Tomcat 起來之前你也不會知道,等到瀏覽器噴 404 才回頭找,原來是 mapping 裡的名字少打一個字。 同樣一件事,現在你只要在方法上面掛一行 @GetMapping("/users")。 大部分人講到這裡就結束了,結論是「註解比較簡潔,少打很多字」。這句話沒錯,但它把重點講小了。註解省下的不是那幾行 XML,是那張「哪個請求該交給哪段程式」的分派表本身。這張表以前存在你腦子裡,也散在每個 doGet 的 if-else 裡。現在它被搬走了。這篇就順著同一個動作,一段一段對照,看那張表是怎麼從你手上消失的。 掛一個網址上去,以前要動三個...
拆解 harness:AI Agent 的能動性到底從哪來(AI Agent 架構全解析 1/8)
先講結論:讓 agent 會「動」的,不是那顆模型你每天用的 ChatGPT、Claude,本質上是一次問、一次答:你丟一段文字進去,它吐一段文字出來,然後就結束了。它可以在回答裡「說」自己要去查資料、改檔案、寄信,但它一件也做不了——沒有手、沒有記憶、沒有權限。 那為什麼像 Claude Code 這種東西,可以真的打開你的 repo、改十幾個檔案、跑測試、看到紅字再回頭修? 答案不在模型身上,在模型外面那一圈程式碼。這圈程式碼有個名字,叫 harness(骨架、外層架構)。模型負責推理與決策;harness 負責給它工具、幫它記住狀態、在它闖禍前先攔一手。一句話:agent 的能動性,是 harness 給的,不是模型自帶的。 這是一個 8 篇的系列。我會帶你從最裡面那個小小的迴圈開始,一層一層把 harness 拆開,看清楚一個現代 AI agent 到底由哪些零件組成。這一篇是開篇導讀——先讓你看懂全貌,後面 7 篇再逐層鑽進去。內容全部來自一份很扎實的開源教材 hardness1020/awesome-agent-architecture,它把現代 agent 拆成 8...
在 Slack @Claude 就生出一個 PR:Claude Code in Slack 完整教學
你在 Slack 頻道打一句「@Claude 幫我把這個 timeout 的 bug 查一下」,然後回去喝咖啡。三分鐘後,thread 裡多了一個 PR 連結。 這中間發生了什麼?先別急著問它能拿來幹嘛。先看它收到你這句話之後,第一件事做什麼,把這條流程拆開,什麼時候該用、什麼時候不該用,答案自己會浮出來。 第一步:它先判斷你到底想幹嘛你 @Claude 的那句話進來,它做的第一件事不是動手寫 code,是分類。判斷你這句是要它「寫程式」,還是只是要它「聊聊、分析一下」。 管這件事的設定叫 Routing Mode,有兩種。Code only 很單純,不管你說什麼都當成 coding 任務丟給 Claude Code。Code + Chat 聰明一點,會自己分流:像在寫程式的丟去 Claude Code,像在問問題的就當一般對話回。萬一它判斷錯了,把你的 coding 需求當成閒聊,你可以按一個「Retry as Code」把它掰回來。 拿生活場景比喻,這就是公司前台。你進門,前台先問你「找工程部,還是諮詢櫃台?」,問對了,後面才不會把你帶錯地方。Routing Mode 就是在...
AI 與科技新聞摘要 20260718
同一個禮拜,一家公司靠著「市場終於相信它會賺到 AI 的錢」衝上全球市值第一,另一家只因為一個模型晚交了幾週,一天蒸發掉快兩千億美元。市場到底在為哪一種東西付錢? 答案比大家願意承認的難聽:付的是敘事,不是地基。敘事漲得快、崩得也快;真正抽不走的那部分,藏在沒人愛看的營收數字裡。這禮拜六條新聞,剛好把這條縫拉開給你看。 一、Apple 市值一度超車 Nvidia,重登全球第一07-17 盤中,Apple 股價衝到 332 美元附近,市值逼近 4.88 兆美元,一度壓過 Nvidia 的 4.84 兆,兩邊當天多次互換第一名,收盤 Nvidia 才小幅反超。Apple 今年以來漲了約 23%,市場對它的說法從「AI 落後者」翻成「AI 變現受益者」。 值得盯的不是誰第一,是這個位子換人坐的理由。Apple 這半年沒推出什麼驚天動地的模型,漲的是「敘事」,大家開始相信它能把 AI 塞進十幾億台裝置去收錢。股價領先於事實,這在多頭裡是常態。但要記得,靠敘事撐起來的領先,跟靠出貨撐起來的領先,是兩種東西。前者換個故事就會掉下來。(來源:CNBC) 二、Google Gemini 3.5 ...
graphify:在陌生 codebase 裡找東西,其實不是搜尋問題
在一個你沒寫過的 codebase 裡搞懂某個功能怎麼實作,這件事一直被當成搜尋問題。開 grep、打關鍵字、翻結果。但它其實不是搜尋問題,是一張圖的問題。 grep 一次只回答一件事:哪幾行出現了這個字串。可是你翻 codebase 的時候,腦子裡真正想知道的通常不是「這個字在哪」,是「這個函式被誰呼叫、它又呼叫了誰、我改它會炸到哪裡」。那是關係,不是字串。grep 看得到點,看不到線。 你其實一直在用腦袋拼一張圖回想一下上次接手別人的專案。你打開一個 controller,看到它注入了一個 service,跳過去;service 又依賴三個 repository,再跳過去;其中一個 repository 繼承了某個 base class,藏在另一個目錄。翻到第七個檔案的時候,前三個檔案的關係你已經記不清了,得往回捲。 你在做的事,是拿肉眼跟短期記憶,手動把一張依賴關係圖拼出來。拼得慢、還很容易漏。graphify 做的,就是把這張你本來要用腦拼的圖,先幫你建好。 它的做法不玄。用 tree-sitter 把大約 40 種語言的原始碼解析成 AST,從裡面抓出 import、呼...
Claude Code 結構化輸出完整教學:別再用 grep 硬撈 AI 的回答,讓它吐 JSON
以前想在腳本裡用 Claude Code,流程大概是這樣:claude -p 丟一個 prompt 進去,它吐回一段文字,然後你寫一串 grep 加 sed,從那段文字裡把你真正要的那個答案撈出來。 能跑。但每次跑起來心臟都懸著。因為那段文字是「講給人聽的」——它今天回「結果是 42」,明天心情好一點回「經過分析,我認為結果應該是 42 喔」,你的 grep '結果是 ([0-9]+)' 就當場失效。你不是在解析資料,你是在猜 AI 這次會怎麼講話。 這篇要講的,就是怎麼把這件事從「猜」變成「讀」。 口頭報告 vs 填好的表格先用一個生活場景把問題講清楚。 你向路人問路,他跟你講一長串:「你先直走,看到那個很大的全家左轉,走一小段有間麵店再右轉……」你得一邊聽一邊在腦子裡記路口。他要是換個講法、順序調一下,你就記錯。這是純文字。 換個方式:他直接給你一張紙,上面第一格寫「第 1 個路口:左轉」、第二格寫「第 2 個路口:右轉」。你不用聽懂他整段話,你只要看第幾格。這就是結構化輸出。每個資訊有固定的位置,你按位置去取,不管對方今天話多話少,那一格永遠在那裡。 Cla...
AI 與科技新聞摘要 20260717
這禮拜打開 AI 新聞,主詞悄悄換人了。 上禮拜大家還在比哪個模型跑分高,這禮拜檯面上站著的,全是國家。中國在上海辦大會、南韓端出快九千億美元的十年計畫、黃仁勳飛去日本組產業聯盟。模型照樣一個接一個出,但決定這張牌桌多大的,已經不是實驗室,是政府。而在國家忙著蓋地基的同時,另一頭有人反過來把「模型本身」愈送愈便宜。這兩股力量把 AI 產業往兩個方向扯,值得一條一條看。 一、WAIC 2026 在上海開幕,習近平自 2018 年來首次親自出席世界人工智慧大會(WAIC)2026 以「AI Partnership for a Brighter Future」為題在上海開幕,習近平是 2018 年首屆以來第一次親自到場;前一天(07-16)並舉行「世界人工智慧合作組織」的成立簽署儀式。 一個技術大會辦到國家元首親自站台、還催生出一個國際級的合作組織,訊號不在技術,在定位。當 AI 被綁上「國際治理」跟「主權敘事」,它就從一個產業問題,變成一個誰也不敢先鬆手的政治問題。這裡真正的下行風險,不是哪個模型失控,是各國一旦把 AI 寫進國家戰略,往後任何一次技術合作或斷供,都會被放大成外交事件...
fable-method:一個要下架的模型,留下的弱模型解題心法
2026 年 7 月初,Anthropic 訂閱制裡一個叫 Fable 5 的模型,被公告要下架。 模型下架這種事,通常沒人會多看一眼。換一個更新更強的頂上,舊的就讓它走。但這次有人做了件反過來的事:趁它還在線上,逼它把「自己到底是怎麼解題的」一五一十講出來,然後把這套心法蒸餾成一組任何模型都能照著跑的 Claude Code skill。 這東西叫 fable-method。它的賭注一句話就講完:一個照著結構化 loop 走的中階模型,會贏過一個自由發揮的更強模型。品質不是靠模型多聰明堆出來的,是靠結構、證據、跟誠實這三件事。 聽起來像雞湯?剛好相反。這套規則裡沒有一條是拍腦袋想出來的,每一條後面都拖著一個會打自己臉的失敗測試。這點後面會講。 在打卡鐘出現之前先把時間往回拉一點,看看 fable-method 出現以前,大家是怎麼跟弱模型相處的。 便宜的、地端的、半夜沒人盯著的模型,最常出包的地方其實不是「題目太難算不出來」。是程序上的偷懶:需求還沒看完就開工、修好一個 bug 就宣告全部完成、測試根本沒跑卻寫下一行漂亮的 all tests pass、沒人叫它做的動作它自己跑...









