五月閱讀清單
原文由 Alex O'Callaghan 于 發布,訂閱此部落格
這是五月版的精選閱讀,分享本月讀到的有趣內容,你也可以在此閱讀上個月的文章。
更多遭入侵的 npm 套件
又過了一個月,又出現更多供應鏈攻擊。數個 TanStack 套件遭到入侵,這是一起「Mini Shai-Hulud」攻擊。Tanner Linsley 分享了一篇詳細的事後分析,說明攻擊是透過 GitHub Actions 的設定漏洞發生的。之後又有 317 個 npm 套件遭到入侵,手法是使用同一個會自我複製的憑證竊取腳本,只要找到任何 npm 憑證,就會在套件之間自行散播。
這再次強烈提醒我們要採取措施來強化供應鏈安全。我們已將所有專案升級到最近釋出的 pnpm v11,它預設將 minimumReleaseAge 設為 1 天。這類攻擊大多很快就會被發現,保留一些緩衝時間應該有助於抵禦這類攻擊。
同樣在資安相關的主題上,我這個月發現了 Varlock——一個很有趣的工具,它能讓 Agent 知道有哪些密鑰可用,卻不會讓它們直接存取密鑰的實際內容。確保密鑰不會以明文形式存放在你的電腦上,也能在不慎拉取到這類套件時,幫助防範憑證竊取攻擊。
模型訓練與 Opus 4.8
Anthropic 發布了一篇關於其對齊訓練方法變化的部落格文章,詳細說明透過倫理抉擇背後的原則與推理來訓練 Claude,如何提升了 Agent 的對齊效果。思考這套做法如何應用到我們自己打造的技能上也很有意思——僅僅列出期望行為的具體範例,對於 Agent 遇到全新情境時是遠遠不夠的。
OpenAI 則發表了一篇有趣的文章,談「哥布林從何而來」。在訓練「nerdy」人格特性時,無意間讓模型對生物隱喻給予了過高的獎勵,以至於最後他們不得不在系統提示中特別要求模型不要談論哥布林。
Anthropic 也在月底發布了 Claude Opus 4.8,距離 4.7 僅僅一個多月。
用 Agent 開發
Addy Osmani 發表了一篇關於長時間運行 Agent 的不同策略的文章,不過我對於用這種策略來撰寫正式環境的程式碼仍持保留態度。
Birgitta Böckeler 關於程式碼 Agent 的可維護性感測器的文章值得一讀,談到了要讓 Agent 具備自我修正能力,所不可或缺的各種防護機制與檢查。
我也讀了 Helio Medeiros 關於使用 DORA 指標衡量 AI 導入成效的文章。這與我目前在 Mintel 透過打造回顧型 Agent所嘗試的有系統性做法很相似。
有趣的觀點
Mark Erikson 分享了一篇長文,講述他對 AI 程式開發工具從懷疑、恐懼到接受的心路歷程。
Tuhin Nair 寫了一篇關於資深開發者如何傳達自身專業的文章。裡面有些觀點我很認同,談到工程師如何思考、以及如何與業務部門的其他人溝通。文章中建議用一套「speed」系統來快速實驗,這個想法或許很吸引人,但對於實務上如何設置足夠的防護機制,以及當「speed 版」已經賣給客戶後,要花多少額外心力去收拾殘局等細節,卻沒有多加著墨。
Lalit Maganti 分享了一篇關於不要回答第一個問題的文章。我覺得對於任何在平台團隊工作、或為其他工程師打造工具的人來說,都很有共鳴。
Web 平台與前端
Chrome 團隊發布了一篇關於宣告式局部更新(Declarative Partial Updates)的文章。這項提案試圖讓亂序的 HTML 串流與更有效率的 HTML 插入成為 Web 平台的一部分。基本上,就是要讓島嶼架構(islands architecture)成為 Web 的一等公民。
Storybook 10.4 已經釋出。對我來說最有趣的是它新增了對 TanStack React 的一等支援。
Yangshun Tay 撰文談論前端開發正在如何改變,並對前端開發者該把學習與發展重心放在哪裡提出了建議。
我這個月也發現了 D2。我在部落格上一直用 Mermaid 來畫圖,但在自訂樣式上遇到了一些麻煩,D2 看起來是個值得一試的強大替代方案。
值得一讀的技術文章
2004 年的 RuneScape 如何將一款多人線上 RPG 塞進 56k 撥接網路是一篇深入的技術剖析,講述 2004 年的 RuneScape 客戶端如何透過瀏覽器中的 Java applet 設計出高效率的客戶端與伺服器通訊。這是一篇很有趣的文章,也是我早期的遊戲回憶之一,更是我初次見識到 Web 強大之處的起點。
Netflix 技術部落格發表了一篇關於打造即時服務拓撲圖的文章。做法很有意思,雖然在技術實作細節上著墨不多,而且看起來有不少是 AI 生成的內容。這讓我很有共鳴,因為我在工作中也正嘗試讓 Agent 能夠跨系統探索,過程中才意識到有多少跨系統的依賴關係根本沒有被清楚地記錄下來,有多少知識其實只存在於人們的腦中。
最後是 Google 部落格上一篇關於在程式碼審查回覆中加入脈絡的短文。裡面提供了一些非常實用的指引,說明你該如何回應程式碼審查的意見,並在回覆中補充你是怎麼或為何這樣處理回饋的脈絡。
隨機一篇部落格
留言
登入後參與討論