系列精選
查看全部工程師日誌
寫 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 層架...
/fork 已經不是你以為的那個 /fork:Claude Code 三種分身該用哪一個
你想在 Claude Code 裡開一個分身去做一件事,手上有三個做法:/subtask、/fork、或者在某個 skill 的 frontmatter 寫 context: fork。 它們的官方說明讀起來都像「開一個 subagent 幫你做事」,選錯了也不會噴錯,就是結果跟你想的不一樣。差別其實只在一個地方:那個分身知不知道你們剛才在幹嘛。 把這一點想清楚,該用哪個幾乎自己浮出來。所以先從這裡拆。 三種分身,差在記憶怎麼給想像你手上有一疊卷宗,你已經跟同事討論了兩個小時。 /subtask 是把這疊卷宗影印一份給旁邊的同事。他知道前因後果,知道你們剛才否決過哪個方案,做完回來跟你講一句結論。它在同一個 session 裡跑,繼承你的對話。 /fork 是你自己站起來走到另一間會議室,帶著整份卷宗,從這個時間點分岔出去。原本那間會議室繼續開,新的那間也繼續開,兩邊各走各的路。它會複製整個 session 成一個新的背景 session,在 claude agents 裡有自己一列。 skill 的 context: fork 是叫一個外面的人進來,他手上只有一張工單。官方文件...
AI 與科技新聞摘要 - 2026/08/05
今年 AI 產業的爭論主軸,已經從「它能做什麼」換成「它做錯的時候算誰的」。 今天六則新聞各自給了一個答案。法院給了一個、開源社群給了一個、企業內部給了一個、政府給了一個,還有一個是供應商幫你決定的。六個答案沒有一個把責任留在最有能力預防問題的那一方手上。 一、法院說:agent 逛你的網站,算使用者在逛第九巡迴法院 8 月 4 日撤銷了 Amazon 對 Perplexity 的預先禁令,Comet 瀏覽器的 AI agent 可以回去 Amazon 上買東西了。 核心持論很值得逐字讀:法院認為 Perplexity 的工具並沒有「存取」Amazon 的電腦,存取的是使用者,只是借助了 AI agent。Perplexity 可以把使用者已經打開的 Amazon 頁面截圖傳回自己的伺服器來完成任務,那不算存取 Amazon 的伺服器。就算 Perplexity 從使用者手上拿到帳號資訊、用它去指示 Assistant,法院也認為那還沒到能把存取行為歸給開發者所需的控制程度。 合議庭承認手上幾乎沒有現成判例可用,寫得很直白:關於「怎麼歸屬像 Assistant 這種 AI age...
以前去背,你得先拍一張沒有人的背景照:RobustVideoMatting 讓影片自己記得上一幀
要把一個人從影片裡摳出來換到別的背景,五年前的標準流程是租一間有綠幕的棚,把光打勻,然後在後製軟體裡下色鍵。 綠幕之後出現的第一代替代方案叫 Background Matting,到 BGMv2 已經相當堪用。它不要棚了,但要你先拍一張「沒有人的純背景照」當參考。這一步聽起來很小,實際上它把用途鎖死了:攝影機不能動,光線不能變,你也不能在人已經站在畫面裡的時候才想到要去背。 同一時期的另一條路是 trimap。你逐幀標出「這裡一定是人、這裡一定是背景、這一圈我不確定」,模型負責把不確定的那一圈算清楚。品質很好,代價是有人要坐在那裡標。 再往後,一般的 neural matting 終於不需要任何額外輸入了。丟一張圖進去就吐一張 alpha。問題換了個地方冒出來:它把影片當成一疊照片,每一幀各算各的。人一動,邊緣就逐幀跳動,看起來在閃;被東西擋住再出現,前後也接不起來。 RobustVideoMatting(下稱 RVM)是 ByteDance 在 WACV 2022 發表的模型,論文題目直接把答案寫在裡面:Robust High-Resolution Video Matting ...
AI 與科技新聞摘要 - 2026/08/04
你手上有哪個技術決定,是發現錯了以後能在一週內退出來的? 這個問題今天特別值得問,因為今天的新聞湊出了一組很整齊的對照:有人在抱怨退不出來,有人在賣退路,有人正在把退路的成本藏進一筆小到不會被審查的預算裡,還有人根本沒有退路可買。 一、Palantir 季營收成長 93%,CEO 反手罵供應商在奪取生產工具Palantir Q2 營收 19 億美元,年增 93%,獲利 11 億美元,全年營收成長指引 82%,美國商用業務指引 134%。這種數字通常伴隨一封春風得意的股東信。 Karp 寫的是這句:「我們這門生意有馬克思主義的弦外之音,明的暗的都有」(原文 There are Marxist overtones and undertones to our business.),並說 AI 實驗室不管是有意或無意,都在「奪取其名義上合作夥伴的生產工具」。法說會上講得更白:對方一邊把你的 IP 和專業知識搬到他們的模型上,一邊另建競爭事業。報導列出一批既投資或合作 Anthropic 與 OpenAI、又同時在設計、醫療、法律、藥物開發被這些實驗室正面競爭的公司。 用詞誇張,但底層的結...
Claude API 的 context editing 與 memory tool 完整教學:清掉舊對話之前,先讓它把重點寫下來
2025 年 9 月 29 日,Anthropic 同一天推了兩個 beta。一個叫 memory tool,一個叫 context editing。當時多數人只注意到前者,因為「讓 AI 有記憶」聽起來比「自動清掉舊的工具結果」性感得多。 十個月後回頭看,這兩個功能的命運差很多。memory tool 已經在 2026 年 2 月 17 日轉正式版、不需要 beta header 了。context editing 到今天還是 beta。中間還冒出第三個主角,把前兩個的定位整個重排了一次。 這篇把這條時間線走完,順便把參數和踩坑點講清楚。 在那之前,這件事是你自己的問題先講清楚問題長什麼樣,不然後面所有設計都看不出道理。 假設你寫一個 agent,它會呼叫搜尋工具。第一次搜尋回來 3,000 個 token,第二次又 3,000,跑到第三十次的時候,你的 messages 陣列裡塞了九萬個 token 的搜尋結果,其中二十七次的內容早就沒人要看了。可是它們還在,每一輪都要重新送給模型、重新計費。 2025 年 9 月之前,處理這件事完全是你的責任。你要自己算 token、自己決...
換一家 agent 接手做到一半的事:portable-resume 為什麼把你的舊對話當成攻擊者
重構做到第三個小時,改到第 40 個檔案,context 滿了。/compact 跑完,agent 回來接著做,然後它問我為什麼這個 service 要拆兩層。 那是兩小時前我跟它一起決定的,理由當時還討論了三段。現在那三段不在它腦袋裡了。 第一個反應是自己補。我把 ~/.claude/projects 底下那包 JSONL 翻出來,撈幾輪相關的貼回去。貼太少它接不上前後文,貼太多當場再爆一次。繞了半天才意識到我在做的事情叫「人工壓縮」,而且做得比 /compact 還爛。 第二個反應是換家做。額度反正也快見底,切去 Codex 接手。結果卡在更前面一步:對話搬不出來。Claude Code 存 JSONL、Codex 存 SQLite(還可能用 zstd 壓過)、Cursor 存 vscdb、goose 存自己的 sessions.db。每家都把歷史鎖在自家私有格式裡,彼此不通。所以你能做的只有一件事,就是跟新 agent 從頭再講一遍。 一個叫 resume 但跟履歷無關的東西resume-skills 這個 repo 名字很容易誤會。這裡的 resume 是動詞「續接」,不...
Claude Code keybindings 完整教學 — 你綁的那個鍵,可能連終端機都沒放它出來
你在 Claude Code 裡按下 Ctrl+Shift+R,它到底收到了什麼? 這個問題不是修辭。答案可能是「一個明確的 Ctrl+Shift+R 事件」,也可能是「什麼都沒收到」,還可能是「收到了但被別的東西先吃掉了」。而這三種結果決定了你寫在 ~/.claude/keybindings.json 裡的那行設定會不會生效。 所以先別急著決定要綁什麼。把一次按鍵從你的手指走到「Claude Code 執行某個動作」的路徑拆開,中間有四道關卡,每一道都會攔掉一部分組合。搞懂路徑之後,該綁什麼幾乎是自動浮現的。 (本文的機制與表格出自 Claude Code 官方 keybindings 文件,我本機跑的是 2.1.220。文中我沒實測的部分會明講。) 第一關:終端機願不願意載這個組合鍵盤不是直接跟 Claude Code 講話的。你按下的組合會先被終端機轉成一串位元組,Claude Code 讀到的只是那串位元組。這個中間人有它自己的規矩,而規矩比大多數人想的嚴格。 最好懂的例子是 Ctrl+M。在終端機的世界裡,Ctrl+M 送出的位元組跟 Enter 一模一樣(都是 CR)...
AI 與科技新聞摘要 - 2026/08/03
日本九州有一個縣,同時放著全球一大部分的車用晶片、影像感測器和台積電的海外新廠。7 月 28 日下午,那個縣震了規模 7.1。今天是震後第六天,各廠的復工時間表陸續出來了,而時間表本身就是一份脆弱度清單。 一、熊本震後復工時序:最不痛的是台積電熊本縣 7 月 28 日的強震讓菊陽町一帶的半導體廠全面停機。停下來的名單包括台積電子公司 JASM、Sony 的影像感測器廠、瑞薩電子的川尻與錦兩座工廠、三菱電機在合志市與菊池市的功率半導體廠,以及東京威力科創的九州廠。 復工節奏差很多。瑞薩的錦工廠在震後隔天(7 月 29 日)晚間就恢復生產,7 月 31 日上午回到原本產能;熊本市的川尻工廠要等到 8 月 5 日才逐步重啟。Sony 那座 24 小時運轉的影像感測器廠,預計 8 月 4 日起分階段復工,要到 8 月中旬才回得到震前水準。三菱電機兩座廠 7 月 30 日下午重啟設備。台積電 JASM 原本預定上週五決定是否在今天恢復生產。 有意思的是曝險的分布。法人對 JASM 停工一週的營收影響估算約 1,400 萬美元,大約占台積電第三季指引的 0.03%。也就是說,這場地震對名單上...
ScopedValue 沒有 set():Java 25 拿掉這個方法,才是它取代 ThreadLocal 的關鍵
要把一個 traceId 從 Controller 帶到最底層的 DAO,中間不想改十七個方法簽名,你會怎麼做? 十年來標準答案只有一個:塞進 ThreadLocal,set() 完就走,離開前記得 remove()。這招我自己寫過、review 過、也修過別人忘記 remove 的那種 bug。它能用,只是那個 finally 區塊像是隨身攜帶的道歉信。 Java 25 把 ScopedValue 正式轉正了(JEP 506,五輪 preview 之後定案)。網路上多數介紹會說它「離開作用域自動解除,不用 remove」。這句沒錯,但把重點放錯地方了。我用 JDK 25.0.2 把兩邊行為跑了一遍,跑完覺得真正的差別是另一件事:**ScopedValue 沒有 set()**。 下面每個有輸出區塊的段落都是實跑結果(java Probe.java,JBR 25.0.2),沒有輸出的地方是機制說明,我會講明哪些我沒測。 舊做法:那個 finally 到底在防什麼那個 finally 到底在防什麼?開一個大小為 1 的執行緒池,第一個任務 set 完就結束,第二個任務什麼都不做,直...
台灣科技業還缺 19.3 萬人,只是缺的不是你會的那一種
工程師這個職業在台灣,出現了「不一定更吃香」的數據。沒有人被誰取代,稀缺性只是換了個地方站。 這句話聽起來像唱衰,但數字給的其實是好消息與壞消息各一半,而多數人只看到其中一半就開始焦慮或開始嘴硬。 缺口沒有消失,它換了一排隊伍104 人力銀行今年 4 月 28 日發布的《2026 年科技業人才報告書》裡,科技業每月人才缺口是 19.3 萬人。這個數字沒有縮小的跡象,產業還是嚴重缺人。 問題出在缺的位置。同一份報告裡,軟體與工程類每月徵才 2.5 萬人,年減 5%。而操作與技術類年增 30%、製程規劃類年增 29%、品保品管類年增 21%,半導體業整體職缺年增 23%。軟體及網路業的徵才人數,從 2024 下半年高峰的 8 萬人,掉到 2026 年的 6.3 萬人。 104 的人才永續長鍾文雄給的定調是,企業對工程師的需求「從『量』的擴張轉向『質』的盤整」。媒體把這個現象叫位移效應。 我對「位移」這個詞的感覺比「取代」複雜得多。被取代是一件明確的事,你會知道發生了,而且會有人出來討論該怎麼辦。位移不會。位移是你原本站的那個位置慢慢變得沒那麼重要,而旁邊那個你從來沒考慮過的位置變重要...









