系列精選
查看全部工程師日誌
寫 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 層架...
調 Prompt 最有效的第一步,是別自己動手調
你寫了一段 prompt,叫 Claude 幫你把一批客訴分類。跑出來一看,一半分錯。你回頭改措辭,把「請分類」改成「請仔細分類」,再跑,還是錯。第三次你開始加那種強調詞:「務必」「一定要」「非常重要」,彷彿多喊幾聲它就會認真一點。結果呢?該錯的還是錯。 這個場景我猜你不陌生。大部分人卡在這裡,直覺反應都是「我技巧不夠,得去學 prompt engineering」,然後收藏了一堆「50 個 prompt 咒語」的文章。但你有沒有想過,問題可能不在你會的技巧太少,而在「你在自己硬寫」這件事本身。 先試過的那幾條死路加強調詞沒用,這件事其實有道理。模型不是聽你「語氣」做事的,你把「務必」講十遍,對它來說跟講一遍差不多。真正決定輸出品質的,是 prompt 的結構。任務講清楚了嗎?輸入輸出的邊界標出來了嗎?有沒有給它一兩個範例,讓它知道「對的長什麼樣」? 我試的第二條路是狂貼範例。這條有效一點,但很快就亂了:範例格式不統一、跟指令混在一起,prompt 變成一大坨,自己回頭看都眼花。手動整理這些結構是苦工,而且是那種「你知道該做、但很不想做」的苦工。 原來這步不用自己做轉折點是我發現...
AI 與科技新聞摘要 2026/07/21:對手變房東,政府變關卡
AI 公司最愛掛在嘴邊的一句話是「我們不綁死任何單一供應商」。這一週的幾條新聞,剛好把這句話戳出幾個洞。表面上它們互不相干——一樁算力租約、一次模型跳票、幾張晶片出口許可,可是只盯著單一則,你會漏掉底下那件正在發生的事:整個產業的命脈,正一節一節收斂到少數幾個點上。 一、Anthropic 傳向 Meta 租最高 100 億美元算力據 Reuters,Anthropic 正在跟 Meta 洽談租用運算能力,兩年規模上看 100 億美元,用來撐住 Claude 的需求。談判還在早期,Meta 目前也沒有成熟的對外賣算力業務,未必談得成。 真正該注意的不是金額,是關係本身。Meta 的 Llama 和 Anthropic 的 Claude 是正面對打的競品,這筆租約會讓兩家同時變成「對手兼客戶」。當你的算力房東就是你的競爭對手,議價權、優先權、甚至斷租的風險,全都握在對方手上。這種依賴不會出現在任何一季的財報數字裡,但它是實打實的下行風險。上行有限(省點自建成本),下行卻可能是關鍵時刻被掐脖子。 來源:TechFundingNews 二、Meta 推出 Muse Spark 1.1,...
大任務為什麼會壓垮 agent:讓它撐住的四招(AI Agent 架構全解析 3/8)
第一篇和第二篇我們把一個 agent 的骨架搭起來了:核心迴圈會呼叫模型、執行工具、把結果塞回對話,然後再問一次模型。這套流程處理「幫我讀這個檔、改那一行」綽綽有餘。但只要任務一變大,你自己在 Claude Code 裡大概都體驗過那個場景:它跑到一半開始鬼打牆,忘了三步前答應要做的事,或是對話長到某個點突然變慢、變貴,最後乾脆漏掉一半需求。 模型沒變笨,它只是扛不住了。大任務會從兩個方向壓垮一個 agent:一是沒有一份看得見的計畫,走著走著就迷路;二是 context window 被塞爆,該記住的東西被無關的雜訊擠出去。這一篇要講的 Layer 2,就是專門解決「扛不住」的四招:planning & todos、subagents、skills、context management。它們的共同目標只有一句話:讓 agent 在面對真正複雜的工作時,還能保持頭腦清醒。 第一招:planning & todos,先把大任務拆成 ticket你接到一個橫跨十幾個檔案的重構,第一件事會做什麼?不會是打開第一個檔案就開始改,而是先在 Jira 上開一串 ticket,...
該不該幫 Claude Code 設 session 上限?v2.1.212 三道保險絲的取捨
先分清楚:你是坐在旁邊,還是放它自己跑Claude Code 在 v2.1.212(2026-07-17)悄悄加了三個 session 級的資源上限。官方 changelog 講得很平淡,多數人滑過去大概也不會多想。但這三個開關的價值,完全取決於你怎麼用 Claude Code,所以在講該不該動它們之前,得先把使用情境切成兩種。 第一種,你坐在終端機前面,一句一句跟它對話,它每要動一次危險操作你都看得到。這種情況下,這三個上限你幾乎可以當它不存在。第二種,你把一個任務丟給它,關掉螢幕去睡覺,或乾脆掛在排程上每天自動跑。這種情況下,這三個數字就從「裝飾」變成「保險絲」。 我用電箱裡的保險絲來想這件事最順。保險絲不是拿來限制你用電的,你想開幾盞燈、吹不吹冷氣,它一概不管。它只在一種時刻起作用:電線快要走火、整間房子有燒起來的風險時,「啪」一聲把電切掉。這三個上限的角色一模一樣。平常你感覺不到它們,它們只在 agent 陷入某種失控迴圈、準備把你的 token 額度燒到見底的那一刻,跳出來把電閘拉下。 三根保險絲各自防的是什麼火先把三個開關擺出來,順便說清楚每一根防的是哪一種走火。它們...
AI 與科技新聞摘要 2026/07/20:產業的重量,正往少數幾個點集中
軍備競賽這個比喻,這禮拜開始有點不夠用了。如果只看標題,你會覺得又是一輪你追我趕:誰的模型分數高一點、誰的晶片快一點。但把這幾天的消息並排放著看,浮上來的其實是另一個字:集中。運算、模型能力、平台入口,正快速往少數幾個點聚攏。集中會讓整個系統跑得更快,也會讓它更怕單一個點出事。而有意思的是,同一批新聞裡,還藏著一股從反方向推回來的力量——開源。以下六則,就照這條線來看。 一、Kimi K3 登頂前端競技場,開源權重下週落地Moonshot AI(月之暗面)發表了 Kimi K3,一個 2.8 兆參數、支援 100 萬 token 上下文的稀疏 MoE 模型。它在 LMArena 的「前端程式競技場」以 1679 分登頂,據報壓過了 Claude Fable 5、GPT-5.6 Sol 與 GLM-5.2,開源權重預告在 07-27 釋出。DeepSeek 也預告 V4 穩定版將在 07-24 開源,兩波權重擠在同一週。 值得先踩一下煞車:這些名次多半來自廠商自報,獨立測試還指出 K3 的幻覺率升到約五成,權重公開前沒辦法完全驗證。所以「登頂」這件事,比較穩妥的讀法不是「它最強」,...
agent 是怎麼跑起來的:核心迴圈的四塊拼圖(AI Agent 架構全解析 2/8)
一張只會講話的嘴原始的模型呼叫,說穿了很無聊。你把一串訊息送進去,它吐一段文字回來,然後就沒了。你問它「台北今天要不要帶傘」,它可以回你一整段條理分明的「我得先查一下天氣預報、再看看降雨機率」,可是它連一次查詢都發不出去。它是一張很會講話的嘴,沒有手,也沒有記性。 上一篇把一台 agent 拆成兩半:model 負責推理和決策,harness 是包在模型呼叫外圍那一圈程式碼,負責遞工具、幫忙記事、必要時踩煞車。那篇講的是分工的觀念。這一篇要把手伸進去,看 harness 的心臟,也就是迴圈本身,到底怎麼一圈一圈轉起來。 我想先講一件容易被忽略的事:核心迴圈的四個零件,不是誰坐下來一次設計出來的。它是一個痛點逼出下一個零件,這樣累積出來的。看懂這個「一塊一塊長出來」的順序,比背下四個名詞有用得多。所以這篇的順序,跟著它們一個逼出一個的先後走。 先把四個名字報一下,等一下你會看到它們是怎麼接力出場的: 零件 它補上的能力 一句話類比 agent loop 反覆問模型「下一步做什麼」,直到收工 一顆會跳的心臟 tool runtime 把模型講的工具名字接到真正的程式碼...
越覺得自己分辨得出,越容易中招:AI 深偽詐騙時代該重設的信任判準
上禮拜滑臉書,張忠謀跟他太太出現在一支影片裡,笑得很慈祥,說要送書給有緣人,順便帶大家進一個「穩健佈局」的投資群組。畫面很清楚,嘴型對得上,連那個熟悉的溫和語調都在。留言區一堆人在問怎麼加入。 你會不會點? 先講事實:台積電早就發過聲明,張忠謀夫婦、魏哲家都沒有經營任何公開社群帳號,也沒辦過這種活動。那支影片是假的。可是它逼真到連留言區都在排隊。問題來了,真正該問的問題其實不是「這支影片做得多像」,而是你到底憑什麼決定要不要相信螢幕上的一張臉。 眼見為憑,第一次大規模失效人類幾萬年來最省成本的信任機制,就是「我親眼看到、親耳聽到」。它便宜、快、大部分時候夠用,所以我們的大腦把它設成了預設值:看到臉先信,聽到聲音先信,有懷疑再說。 deepfake 幹的事情,是第一次讓這個預設值大規模失靈。以前偽造一個名人站台要成本、要技術、要冒被抓的風險;現在生成一支假影片、複製一段聲音,幾分鐘、幾乎零成本。這裡有個很不對稱的東西:詐騙方的成本趨近於零,你的下行卻可能是畢生積蓄。 只要一件事的下行很大、上行有限,理性的做法就是別碰。你點進那個投資群組,最好的結果是「沒被騙」,也就是回到原點;最壞...
AI 與科技新聞摘要 — 2026/07/19(賭錯了,帳單寄給誰)
一個駭客,一份 2023 年的舊源碼,把 AI 音樂公司 Suno 的爬蟲清單攤在陽光底下:十一萬小時的 YouTube Music、Deezer、Genius,連 podcast 的 RSS 都沒放過。公司對外的說法一直是「訓練資料來自公開網路上的音樂檔」,源碼裡寫的,是另一回事。 我看這禮拜的新聞,腦子裡一直轉同一個問題。不是「誰的模型比較強」,是「這場豪賭要是賭錯了,痛的會是誰」。你會發現答案幾乎都一樣:不是按下按鈕的那個人。 一、Suno 被駭,爬蟲清單攤在陽光下404 Media 揭露了細節。駭客說他在 2025 年 11 月用一次供應鏈攻擊,拿到 Suno 一名員工的 GitHub 與雲端憑證,順著摸進源碼。裡面清清楚楚寫著要去哪裡抓資料:genius_hq、youtube_music、freesound、jamendo、deezer 一路列下去,光 YouTube Music 就標了十一萬小時,還特地去搜歌曲的 a cappella 版本,好把人聲軌拆出來訓練。順帶外洩的,還有幾十萬名付費用戶的 email、電話跟部分刷卡資料。Suno 的回應是這批是「已經沒在用的...
@RequestMapping 省掉的不是幾行 XML,是你腦子裡那張請求分派表
要讓 /users 這個網址對到一段處理程式,Servlet 時代你得先開一個 class 繼承 HttpServlet,覆寫 doGet,再翻到 web.xml 補上兩段 XML:一段 <servlet> 宣告這個 class,一段 <servlet-mapping> 把它綁到 /users。兩段分開寫,中間靠一個 <servlet-name> 字串對上。字串打錯,編譯器不會理你,Tomcat 起來之前你也不會知道,等到瀏覽器噴 404 才回頭找,原來是 mapping 裡的名字少打一個字。 同樣一件事,現在你只要在方法上面掛一行 @GetMapping("/users")。 大部分人講到這裡就結束了,結論是「註解比較簡潔,少打很多字」。這句話沒錯,但它把重點講小了。註解省下的不是那幾行 XML,是那張「哪個請求該交給哪段程式」的分派表本身。這張表以前存在你腦子裡,也散在每個 doGet 的 if-else 裡。現在它被搬走了。這篇就順著同一個動作,一段一段對照,看那張表是怎麼從你手上消失的。 掛一個網址上去,以前要動三個...
拆解 harness:AI Agent 的能動性到底從哪來(AI Agent 架構全解析 1/8)
先講結論:讓 agent 會「動」的,不是那顆模型你每天用的 ChatGPT、Claude,本質上是一次問、一次答:你丟一段文字進去,它吐一段文字出來,然後就結束了。它可以在回答裡「說」自己要去查資料、改檔案、寄信,但它一件也做不了——沒有手、沒有記憶、沒有權限。 那為什麼像 Claude Code 這種東西,可以真的打開你的 repo、改十幾個檔案、跑測試、看到紅字再回頭修? 答案不在模型身上,在模型外面那一圈程式碼。這圈程式碼有個名字,叫 harness(骨架、外層架構)。模型負責推理與決策;harness 負責給它工具、幫它記住狀態、在它闖禍前先攔一手。一句話:agent 的能動性,是 harness 給的,不是模型自帶的。 這是一個 8 篇的系列。我會帶你從最裡面那個小小的迴圈開始,一層一層把 harness 拆開,看清楚一個現代 AI agent 到底由哪些零件組成。這一篇是開篇導讀——先讓你看懂全貌,後面 7 篇再逐層鑽進去。內容全部來自一份很扎實的開源教材 hardness1020/awesome-agent-architecture,它把現代 agent 拆成 8...









