April Reading List

Alex O'Callaghan

四月閱讀清單

原文由 Alex O'Callaghan 發布,訂閱此部落格

這是我希望能養成每月固定分享的第一篇,整理這個月讀到、讓我印象深刻的內容,並附上一些背景脈絡,說明它們為什麼值得關注。

AI 工具的更新依然佔據主導地位,新模型與工具接連推出,同時也有不少關於 AI 實務應用、以及對這項技術持續抱持懷疑態度的有趣文章。

Claude 的發展軌跡

四月呈現了一段關於 Anthropic 未來走向的有趣故事。在 AWS 上推出 Claude Platform 的消息本身或許不是最吸睛的,卻可能透露出 Anthropic 策略上的轉變。整體方向看起來愈來愈朝企業市場靠攏,這也讓人不禁思考,這對當初推動 Claude 用戶快速成長的那些大方的個人方案意味著什麼。

這種張力整個四月都清晰可見。GitHub issue #42796 很好地捕捉了使用者的挫折感,許多人堅信 Claude Code 在處理複雜任務時表現退步了,懷疑背後偷偷縮減了資源。Advisor 策略一文正是在這樣的背景下發布:預設使用 Sonnet,必要時再升級到 Opus。表面上是工作流程的建議,實際上也是在龐大用戶群中更有效分配算力的一種方式。儘管如此,Anthropic 仍持續推出新產品,新的 Opus 4.7 模型與 Claude Design 緊接著先後登場。

Anthropic 最終在 4 月 23 日發布了事後檢討報告,說明造成效能退步的三項不同變更。很高興他們終於正面回應了使用者一直在反映的問題,並以重置使用額度作為補償。不過頗具諷刺意味的是,一家站在最前線倡導透過 AI 加速交付的公司,卻親身體驗到——當同時快速推動多項變更時,一旦出錯,就很難診斷問題究竟出在哪裡。

其他 AI 工具

Cursor 3 在本月發布,介面圍繞平行代理工作流程設計,這個月我大量使用了它。接著傳出消息指出,SpaceX 取得以 600 億美元收購 Anysphere(Cursor 的母公司)的選擇權。這是一筆互惠的交易,讓 SpaceX 得以擁有一個足以與 OpenAI 和 Anthropic 競爭的 AI 程式開發產品,而 Cursor 則能取得大規模訓練自家模型所需的算力。目前他們在很大程度上仍受制於模型供應商的定價,其自家的 Composer 模型是基於開源的 Kimi K2.5 打造。

OpenAI 也推出了 GPT-5.5——又是一個模型,又是一次基準測試。整體的發布速度已經快到讓人難以有效追蹤。

在實務中運用 AI

Addy Osmani 的 Your parallel agent limit 是一篇讓人很有共鳴的文章,談的是同時運行多個代理時實際的感受。我發現在更頻繁使用 Cursor 3 功能的情況下,這篇文章特別貼切。處理量的提升確實存在,但認知負擔也同樣真實——必須同時在腦中維持多個問題的脈絡,並不斷做出判斷,這是一種全新的疲憊感。

Birgitta Böckeler 的 Harness engineering for coding agent users 整理了一些方法,探討當代理在執行工作時如何把品質左移,並定義了「harness engineering」的不同面向。看到文章中提到突變測試(mutation testing)讓我覺得很有趣,因為這正是我在我那篇關於代理測試品質的文章中也談到的類似做法。Rahul Garg 的 Feedback Flywheel 則談到如何透過回饋循環,隨著時間不斷改善 AI 輔助開發。綜合來看,思考團隊如何建立自己的「harness」來提升 AI 輔助開發的品質,是很有意思的。

Mikhail Bartashevich 那篇關於在 Moss 打造 AI-ready 前端架構的文章是個不錯的發現,他們引用了我的 Storybook MCP 一文作為影響來源,這對我來說是第一次。相關地,Design Systems Collective 這篇探討在 AI 時代設計系統的真正意涵的文章,也很有說服力地論證了在使用 AI 時設計系統的好處,呼應了我和 Mikhail 所寫的關於打造 MCP 工具的價值。

懷疑論者的角落

Han Lee 的 The AI Great Leap Forward 刻意帶有挑釁意味,但其核心觀點——在由上而下的 AI 指令中,信念取代了能力——卻難以讓人忽視。James Stanier 在 Who will be the senior engineers of 2035? 中則提出了一個更安靜、卻可能更令人不安的問題:如果 AI 正在吞噬過去用來培養初階工程師的那些小型任務,而招聘又陷入停滯,那麼 2035 年的資深工程師要從何而來?

Vercel 這個月在信任度上度過了艱難的一個月,一款透過系統提示注入竊取提示的 Claude Code 外掛,以及一起被追溯到一名員工安裝了具有過於寬鬆 OAuth 權限的第三方 AI Chrome 擴充套件所導致的安全漏洞。兩起事件都像是生態系發展速度快過安全措施的典型症狀。

Nilay Patel 的 Beware Software Brain 為這一切提供了更宏觀的文化脈絡。民調數據顯示,包括最重度的 AI 使用者在內,大多數人對這項技術的態度正隨著時間變得愈來愈負面。產業對 AI 的感受與一般大眾對 AI 的感受之間的落差,正在擴大,而非縮小。

有趣的前端新知

Inngest 那篇關於以 hanging promises 實現控制流程的文章,是一篇巧妙的 JS 執行環境思考,利用永不 resolve 的 promise 作為取消的原語。

TanStack 的 React Server Components your way 闡述了他們對於使用 React Server Components 的理念,這是一種與 Next.js 截然不同的做法。

MDN 的 frontend deep dive 扎實地導覽了他們自家技術堆疊的架構,展示了在實務上結合 Web Components 使用 Server Components 模式的有趣案例。

Manuel Matuzovic 關於為何 box-shadow 無法取代 outline 的短文,提供了一個你可能沒注意到的無障礙小技巧。

Stacked PRs

GitHub 的原生的 stacked PRs 在本月進入私人預覽階段。如果你讀過我那篇關於理解與代理生成程式碼的文章,就會知道我一直提倡以 stacked PRs 來讓審閱者放慢腳步,使大規模的 AI 生成變更真正變得可審閱。看到 GitHub 原生支援這項功能是個好兆頭,透過 gh CLI 的整合,也為代理提供了一個管理此工作流程的簡易介面。

持續學習

在眾多 AI 工具的喧囂聲中,我一直刻意努力去理解其底層真正的運作原理。雖然在大學資工系時對類神經網路和反向傳播還有些模糊的印象,但我正在觀看 3Blue1Brown 的 Neural Networks 系列,以便更了解現代 LLM 的運作方式。

我也已經開始修習 Claude Partner Network 的入門課程,為接下來的認證做準備。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言