@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、沒人叫它做的動作它自己跑...
Claude Code 背景 Bash 完整教學 — 讓 dev server 在背景跑,AI 邊寫程式邊盯 log
你叫 Claude 跑 npm run dev,畫面上那行 log 開始滾,然後就停住了。你打字,沒反應。它不是當機,它是在乖乖等這個指令跑完。可是 dev server 根本不會跑完。這一等,就是無限久。 卡住的那一秒,Claude 其實正在做一件很具體的事。搞懂那件事,解法就自己浮出來了。 對話卡住的那一秒,Claude 在等什麼Claude 跑指令的預設方式是同步的。一次工具呼叫,等於開一個 shell、把指令丟進去、站在那裡等它吐完所有輸出、拿到 exit code,這一整包收回來,這一回合才算結束。 對一個三秒跑完的 ls 來說,完全沒差。你根本感覺不到那三秒。 但 dev server 不一樣。vite、jest --watch、docker compose up 這種東西的設計就是不結束。它要一直活著監聽埠、一直重編譯、一直等下一個 request。於是那個「等它結束」的動作永遠等不到,整個對話就跟著凍在那一格。 Claude 沒壞。它只是被綁在一個永遠不會結束的指令上,動不了。 背景執行做的事:把電話改成簡訊想像同步就是講電話:你得等對方講完、掛掉,你才能做下一件...
AI 與科技新聞摘要 2026/07/16:效率的另一面,是那筆沒人想付的保險費
打開螢幕,五到十個 AI agent 各自在跑,你的工作變成盯著它們別闖禍。這是 Coinbase 工程師現在的日常,也是這一週好幾則新聞底下藏著的同一個動作:把能砍的都砍掉,只留最省的那一條路。砍掉的是成本、是人力、是那些看起來多此一舉的手續。被一起砍掉的,往往是平常沒人感謝、出事時卻能救你一命的備援。省下來很爽,直到不該省的那一天。 一、Coinbase 九成五的程式碼交給 AI,但有一塊他們死都不放手Coinbase 平台負責人 Rob Witoff 給了 Cointelegraph 一個數字:公司現在 95% 到 100% 的程式碼,是 AI 寫的、或跟 AI 一起寫的。今年二月這比例還只有 40%,幾個月就翻上來。幾乎每個員工每天都在用 AI,多數工程師手上同時開著五到十個 agent,加起來做掉了大約 1,200 個人的工作量。代價也很直接,五月裁了 700 人,初階職缺被砍得最兇。 真正值得盯的不是那 95%,是他們死都不肯交給 AI 的那一小塊:核心密碼學。這部分照舊由頂尖密碼學家一行一行看過。因為那裡一旦出錯,下行是無底洞,一行寫壞,整個錢包就空了。這其實是一張...














