系列精選
查看全部工程師日誌
寫 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 層架...
半夜那批任務回了空白,HTTP 卻是 200:stop_reason "refusal" 與 server-side fallback
講清楚這篇的來源:開頭那批空白是為了把問題講清楚而設的情境,不是我的事故報告。全文是讀 Anthropic 官方文件寫的,我沒有實際打過這個 API,fallbacks 沒設過、refusal 回應也沒收過。欄位名、header 值、分類清單、計費規則都出自文中連到的三頁官方文件,程式碼區塊逐字照抄。fallbacks 還在 beta,行為可能會變。要動生產環境,以你打的第一個請求的實際回應為準。 批次任務跑完,資料庫裡有十七筆的 summary 欄位是空的。 翻 log,那幾筆的 HTTP 狀態碼全部是 200。try/except 一條都沒進去,重試計數器停在 0,監控面板上的 error rate 平得像張紙。使用者是隔天早上自己發現報告缺頁才來問的。 你把原始回應撈出來,content 是 [],空陣列。再往下兩行,有一個你沒什麼印象的值: 1"stop_reason": "refusal" 先排除掉最像的那兩個第一個直覺是 max_tokens。輸出被截斷嘛,這種事天天有。 但截斷的長相不是這樣。你去看 usage,outp...
AI 與科技新聞摘要 - 2026/09/04
一支公發的 iPhone,放在中東某個基地裡某個人的口袋。手機不知道主人叫什麼名字,但它身上帶著一串廣告識別碼,在每個 app 裡都是同一串。那串碼沒有名字,只有一個特性:穩定。穩定到可以被買下來、被拼起來、被畫成一條每天重複的路線。 然後真的有人去買了。 一、美軍關掉公發裝置的廣告追蹤 ID,起因是有人在商業市場上買到了美軍的位置美國國防部關閉了軍職人員裝置上的廣告識別碼。範圍涵蓋陸軍、空軍、海軍、陸戰隊與特種作戰司令部,對象是聯邦軍用企業網路上的公發 iPhone、Android 裝置與 Windows 電腦。 時程要照抄,因為原文自己就沒有寫齊。多數軍種只說是「今年稍早」實施,唯一給了明確月份的是空軍,TechCrunch 的原句是「The Air Force told Wyden it implemented its changes more recently in July.」其他軍種到底哪一天完成,外界不知道,我也不替它們補一個日期。 起因來自參議院。Ron Wyden(Senate Intelligence Committee 的資深民主黨籍參議員)在今年稍早提出這...
Codex CLI 還是 Claude Code:這題先看你已經在付誰的錢
大部分「Codex CLI vs Claude Code」的比較文都在問錯的問題。它們問誰寫 code 比較準、誰的 context 管理比較聰明,然後給你一張兩欄的表,最後結論是「各有優缺點,看你的需求」。 看你的需求——這四個字等於什麼都沒說。 真正該問的是這個:你公司已經買了 ChatGPT 的 seat 嗎?如果買了,Codex CLI 對你的邊際成本是零。codex 這個 CLI 本身是 Apache-2.0 的開源軟體(gh api repos/openai/codex 查到的 license.spdx_id 就是 Apache-2.0,archived 是 false,最後一次 push 就在查詢當天 2026-09-04),付費方案買的是用量上限,不是產品本身。官方的說法是 Codex 包含在 ChatGPT Free、Go、Plus、Pro、Business、Enterprise 裡面,沒有獨立的 Codex 訂閱這種東西。 Claude Code 那邊的門檻不一樣。官方文件寫得很直白:「Most surfaces require a Claude subscr...
那句引文是誰抄出來的:拆開 Claude Citations 的切塊與索引
補寫於 2026 年 9 月 4 日,日期掛回文章原本該發的那天。文中的版本號與「目前」指的是撰寫當日的官方文件狀態。 模型回答的最後一行寫著「來源:使用手冊第 12 頁」。你翻到第 12 頁,那句話不在上面。這個 12 是怎麼算出來的? 答案通常很掃興:它沒算。那個頁碼跟正文是同一批 token,一起被生成出來的,所以它跟旁邊那句話一樣,是根據上下文挑一個看起來最合理的數字填進去。prompt 寫得再嚴格也改不掉這件事,「請務必附上原文出處與頁碼」只會讓它挑得更認真,挑出來的仍然是猜的。引用在這個做法裡只是一種文字風格,沒有任何機制保證它指得到東西。 Claude 的 Messages API 有個開關會把這條產生路徑整個換掉。開關本身只有一行 citations: {"enabled": true},但它背後動了三層東西:引文由誰產生、文件在哪一層被切開、座標由誰計算。這三層決定了你拿到的東西有多可靠,也決定了你的前端要重寫多少。所以這篇從底下往上拆,拆完再回頭講怎麼開。 第一層:那段引文是誰產生的開了 citations 之後,回應裡...
AI 與科技新聞摘要 - 2026/09/03
補寫於 2026 年 9 月 4 日,日期掛回文章原本該發的那天。內容以該日當天的公開資訊為準,每則都附了原始來源與日期。 一個能自己找出程式漏洞的模型,該賣給誰? 這聽起來像研討會的圓桌題目,9 月 2 日它變成一份要填的申請表。答案先擱著,因為前後兩天還有四件事在問同一個問題的不同版本:晶圓廠的產能、一家開源模型平台的所有權、一筆說不清是新增還是重講的投資承諾,還有一樁沒揭露價格的併購。 從那樁沒揭露價格的併購講起。 一、Palo Alto Networks 花 5 億美元買下 Console,一年七樁5 億美元這個價格,是兩位知情人士講的,現金加股票,TechCrunch 掛的是獨家。雙方 9 月 1 日宣布時並沒有揭露財務條件,所以嚴格說,這是二手數字。 Console 成立於 2024 年,創辦人是 Andrei Serban(報導沒寫他的正式職稱,我也不補)。募資紀錄很短:2025 年 6 月種子輪 620 萬美元由 Thrive Capital 領投,A 輪 2,300 萬美元由 DST Global 與 Thrive 共同領投,被併購前估值 1.57 億美元。...
九份 ADR:一個畫圖技能包怎麼把設計品味變成 CI 關卡
補寫於 2026 年 9 月 4 日,日期掛回文章原本該發的那天。文中對 diagram-design 的描述以撰寫當日的官方文件與 skill 原始碼為準。 2026 年 4 月,GitHub 上多了一個叫 diagram-design 的 repo。作者 Cathryn Lavery 做它的理由很生活化:她自己寫部落格要配圖,每次不是跟 Figma 耗三十分鐘,就是乾脆不放圖。 不到五個月,這個 repo 衝到三萬顆星。翻進去會發現它沒有函式庫、沒有 CLI、也沒有 web app,就是一包寫給 AI coding agent 讀的畫圖規格。你對 Claude Code 說「幫我畫一張架構圖:前端、後端、資料庫、Redis 快取」,它照著規格手寫 inline SVG,吐一個雙擊就能開、離線也看得懂的單檔 HTML 給你。 在它出現以前那之前,工程師要在文章裡塞一張圖,路只有三條。開 Figma 手拖,品質可控但時間吃到飽。寫 Mermaid,語法五分鐘搞定,可是排版邏輯完全插不上手,你只能接受它給的那個結果。第三條是直接叫 AI 畫,然後拿到那種東西:圓角方框、深色底、...
這個 session 的模型到底是誰決定的:Claude Code 模型來源的優先序
以前要決定 Claude Code 跑哪個模型,能動的地方只有兩個:~/.claude/settings.json 裡的 model,還有你在對話裡打的 /model。檔案管長期、指令管當下,衝突的時候誰贏也很直覺,就是後打的那個贏。整件事三十秒查得完。 八月過完之後,這個題目變成五個地方。 先說這篇跟站上另外兩篇的分工。〈Claude Code keybindings 完整教學〉那篇提過 modelPicker,但它整篇在講綁鍵,modelPicker 只是路過。〈pilotfish 把模型綁死在八個角色上〉那篇提過 CLAUDE_CODE_SUBAGENT_MODEL,講的是別人家專案怎麼設計角色分工,不是 Claude Code 自己的解析順序。站上也有不少「該選哪個模型」的選型建議。這篇跟那些都不同:不談選哪個,只談同一件事有五個地方可以設的時候,實際生效的是哪一個。 從前:檔案一層,指令一層舊的心智模型只需要記一條規則。設定檔有層級(managed settings 最高,往下是 --settings、.claude/settings.local.json、.claud...
AI 與科技新聞摘要 - 2026/09/02
這一輪拿到錢的公司,賣的東西越來越像保險。不是做出新的能力,是替別人已經做出來的能力擔保:你的 agent 載了誰寫的工具、你的基礎設施改了什麼會連動到哪裡。有人把複雜度往外推的同時,就有人靠「幫你盯著那堆複雜度」開公司。以下五則都是 2026 年 9 月 1 日發布的消息。 一、AIR 募得 5,000 萬美元,要替企業檢查 agent 用了誰寫的工具資安新創 AIR 完成兩輪種子期募資,合計 5,000 萬美元(第一輪 1,000 萬、第二輪 4,000 萬)。創辦團隊出身以色列 Unit 8200 情報部隊,目前約 40 人,客戶 20 家以上,其中約 25% 是大型企業。CEO 是 Yair Saban,CTO 是 Niv Hoffman。投資人名單包含 Sequoia Capital 與 Greenoaks Capital,另有 Cognition 的 president Zach Frankel、Wiz 共同創辦人 Yinon Costica、Clay 共同創辦人 Varun Anand 等人參與。 產品做三件事。Discovery 負責找出公司系統裡到底有哪些 AI...
A2A 從 v0.3 升到 v1.0:會噴錯的那幾條,反而最好修
A2A 從 v0.3 升上 v1.0,十一個 JSON-RPC 方法全部改名。這是整份 breaking change 清單裡最不需要擔心的一段。 先把分工講清楚,這篇不重複別人的地盤。A2A 是什麼、它跟 MCP 各自負責 agent 生態的哪一段、TaskState 那組狀態怎麼運作,站上 8 月 22 日那篇〈一個 agent 中途反問你問題,這件事在 MCP 的抽象裡沒有位置〉已經拆過一輪。這篇只做一件事:手上有照 v0.3 寫的 client,直接往 v1.0 升,會在哪裡壞、哪裡先壞、哪裡壞了你還不知道。 時間差先擺出來。gh api 查 releases,v0.3.0 是 2025 年 7 月 30 日,v1.0.0 到 2026 年 3 月 12 日才發,最新的 v1.0.1 是 2026 年 5 月 28 日。中間隔了七個多月,那七個多月裡寫成的程式碼、教學、範例,全部是舊名字。 為什麼改名反而是最安全的一段規格 docs/specification.md 的 §5.3 Method Mapping Reference 給了一張對照表。這張表是全集,不是舉例: ...
你寫的 deny 規則,可能根本沒擋到:Claude Code 權限規則的五種漏擋形態
這篇 9 月 2 日才動筆,發文日期掛回當天。文中的版本號與「目前」指的是撰寫當日的官方文件狀態。 settings.json 存檔,關掉編輯器。deny 規則寫好了,看起來很合理。 然後你就停在一個有點尷尬的地方:你要怎麼知道它真的有在擋? 站上先前那篇〈Claude Code 權限系統完整教學〉講的是 allow、deny、ask 三種規則怎麼寫、* 怎麼用,那是把規則寫出來的部分。這篇不重講那些,這篇只談一件事:規則寫出來之後,它可能沒有涵蓋到你以為它涵蓋的範圍。定位是寫過規則的人回頭自檢,不是入門。 你能做的兩種驗證,各自只證明得了一小塊想確認規則有效,直覺上有兩招。第一招是叫 Claude 跑一次你想擋的那個指令,看它會不會停下來問你。這招有用,但它只證明了一件事:你剛剛打的那一種寫法被擋住了。同一件事在 shell 裡通常有五六種寫法,你試的是其中一種。這跟「我 grep 不到就代表它不存在」是同一個毛病,證據的涵蓋範圍比你要下的結論小。 另一招是看 Claude Code 啟動時有沒有警告你。這招在特定情況下真的有用,2.1.246 版(npm 上是 2026 ...









