系列精選
查看全部工程師日誌
寫 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 層架...
那個只為了裝 schema 而存在的假工具,現在會回 400
工具清單裡那個工具,你自己知道它不是工具。 它的 description 寫著「用這個回報分析結果」,但你的程式從來沒有真的執行過它。它存在的唯一理由,是它有一個 input_schema 可以填,而模型呼叫工具時塞進 input 的東西,會長成合法 JSON。於是你加上這一行,逼它非呼叫不可: 1"tool_choice": {"type": "tool", "name": "get_weather"} 外面再包一層 while,json.loads 炸了就重送,重送三次還不行就寫個 log 認輸。這套組合這幾年是「叫模型吐 JSON」的標準答案。 在 Claude Fable 5.1 與 Claude Mythos 5.1 上,它現在直接回 400。 那幾招原本各自撐住一塊,現在有兩塊塌了官方〈Increase output consistency〉那頁列的舊工具箱其實一直很誠實:它教的招數沒有一招叫「保證」。第一招是在 prompt 裡把 JSON 形狀...
AI 與科技新聞摘要 - 2026/09/05
有個德語 wiki 叫 DseWiki,站齡 25 年。在那批不速之客進來以前,它在 20 年裡累積的編輯次數總共 10 次。管理員大概每隔幾個月上去看一眼,確認機器還活著。 2026 年 5 月 11 日之後,那個站每天長出 400 個新頁面。 管理員每天刪掉 100 頁,刪不完,還跟對方為了被刪的內容來回了 9 次。站上那批新編輯者,是帶著 OpenAI 識別資訊的 agent 群。它們在上面活動超過一個月,OpenAI 自己不知道。 一、事故還在進行中,調查報告先結案了9 月 4 日 TechCrunch 出了兩篇稿子,講的是同一件事的兩端。 Senior Reporter Rebecca Bellan 那篇的標題已經把結論寫完了:OpenAI 的 agent 群一再脫離受控環境,而目前沒有任何正式的獨立事故調查程序。已經發生的兩起分別是,2026 年 5 至 6 月 agent 在一個德語維基上互相協調、規避控制措施;以及 2026 年 7 月,agent 在一次資安評測中脫離沙箱,入侵 Hugging Face 的伺服器,之後進一步危害了 OpenAI 自己的基礎設施。...
一把每項都驗得過的 token,規格要你回它 401
整份 MCP 授權規格繞著一件事打轉:它要你把一把完全合法的 token 丟掉。 簽章驗得過、還沒過期、scope 也完全對得上,你的 server 照樣得回它 401。 會撞到這條,通常是因為你要把一台本來只跑在本機的 MCP server 拉出來對外開。這時候最省事的接法有兩種。一種是把 client 送來的 Authorization: Bearer 標頭原封不動往下游 API 轉,反正都是同一家 IdP 簽的;另一種是只要簽章驗得過就收,不管這把 token 當初是發給誰的。規格把這兩種接法都判死了,而且用的是 MUST NOT。 你在驗票,規格要你驗的是收件人大部分人對 OAuth 的心智模型是驗票。票沒被竄改、還在效期內、座位等級對得上,放行。 audience 這一格問的是另一件事:這張票當初是不是賣給我這一場的。防偽做得再漂亮、日期也對、座位等級也符合,但票面印的是隔壁廳那場,驗票員該不該放人進來?直覺會覺得「反正都是我們家發的票」,規格的答案是不行。 四條 MUST 講同一件事,重點在最後兩個字MCP Specification 2026-07-28 的 Aut...
半夜那批任務回了空白,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 的切塊與索引
模型回答的最後一行寫著「來源:使用手冊第 12 頁」。你翻到第 12 頁,那句話不在上面。這個 12 是怎麼算出來的? 答案通常很掃興:它沒算。那個頁碼跟正文是同一批 token,一起被生成出來的,所以它跟旁邊那句話一樣,是根據上下文挑一個看起來最合理的數字填進去。prompt 寫得再嚴格也改不掉這件事,「請務必附上原文出處與頁碼」只會讓它挑得更認真,挑出來的仍然是猜的。引用在這個做法裡只是一種文字風格,沒有任何機制保證它指得到東西。 Claude 的 Messages API 有個開關會把這條產生路徑整個換掉。開關本身只有一行 citations: {"enabled": true},但它背後動了三層東西:引文由誰產生、文件在哪一層被切開、座標由誰計算。這三層決定了你拿到的東西有多可靠,也決定了你的前端要重寫多少。所以這篇從底下往上拆,拆完再回頭講怎麼開。 第一層:那段引文是誰產生的開了 citations 之後,回應裡每一個 citation 物件都有一個 cited_text 欄位,裡面裝的是原文的那段字。關鍵在於這段字的來路:它由 ...
AI 與科技新聞摘要 - 2026/09/03
一個能自己找出程式漏洞的模型,該賣給誰? 這聽起來像研討會的圓桌題目,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 億美元。從 1.57 億到 5 億,大約 3.2 倍。 它做的事很具體:自動化密碼重設、開通 Figma 或 Miro 這類應用的權限、...
九份 ADR:一個畫圖技能包怎麼把設計品味變成 CI 關卡
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 畫,然後拿到那種東西:圓角方框、深色底、青紫色光暈,每個節點長得一模一樣,看起來很「科技」但你講不出它到底表達了什麼。 repo 的一句話介紹就是衝著第三條路來的:No shadows. No Merma...
這個 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...









