我如何阻止我的程式碼代理在看到計畫前就寫入檔案

Back
Category : News

Ordewell

事先揭露:我開發了本文所介紹的工具。它是
免費且採用 Apache-2.0 授權,所以我的興趣是「讓人們覺得這個工具有用」勝過
「讓人們付費給我」。

讓我走上這條路的失敗經驗應該很多人都有過。我給代理一個
多步驟的目標:重構這個模組、更新 README、加入測試。一切
都進行順利,直到第 4 步——我才發現它在一開始就誤讀了第 1 步。
那時檔案已經被寫入了。沒有計畫可以修正,因為計畫只存在於
模型的腦海中。只剩下需要復原的東西。

這就是核心問題:計畫是工作階段的副作用,而不是你可以檢查和編輯的成品。這篇文章要談的是我最終採用的設計決定——讓計畫成為你先核准的東西,而不是你只能期待的東西。



計畫是一個有型別的成品

這個工具以唯讀方式讀取你的程式庫,然後回傳一個有序的任務清單。
每個任務都帶有四項後設資料:執行器(Claude Code、Codex 或
OpenCode)、模型、思考強度,以及模式。這不是裝飾——
這四項才是任務實際執行的方式。你可以改寫任何提示、增加
或刪除任務、重新連接依賴關係(task 4 depends on task 2),或是更改
單一任務所使用的模型。已完成的作業會保持完成狀態。你在編輯時不會有任何東西需要反覆呼叫
AI。



為什麼要使用獨立的規劃器

很自然的問題是「為什麼不直接使用計畫模式?」有兩個原因。

第一,計畫模式是在之後會執行的工作階段內進行規劃——計畫只是建議,模型有可能偏離它。而在這裡,計畫是由一個
獨立的過程產生,這個過程在物理上無法寫入你的程式庫。它的探索
是嚴格唯讀的;任何會寫入的指令會在核准提示出現前就被拒絕,所以不存在「允許一次」可以點擊通過。變更
屬於執行器,而非規劃器。

第二,逐任務分配。一個安全性重構和一個 README 更新不應該
使用相同的模型。規劃器會在整個計畫中公開地做出這個組合決策,在你花費任何執行 token 之前——而且你可以
覆蓋其中任何部分。



判斷來自證據,而非意見

我最在意的部分發生在後續。代理不擅長為自己評分
——更糟的是,它們會在無法編譯的建置上宣布成功。因此在這裡
只有當獨特的完成標記出現在
執行器的輸出中,並且旁邊保留了結束代碼作為獨立證據時,任務才會被標記為完成。
模型永遠不是決定因素。如果工作階段結束並聲稱工作已完成
卻沒有出現標記,它就會大聲失敗。

如果你看過代理說「完成了」然後打開一個仍然有問題的檔案,
那就是整個動機。



誠實的限制

規劃器仍然是 LLM,有時候會寫出不好的計畫。這裡的論點不是
它永遠正確——而是一個你能看到並編輯的壞計畫只花一分鐘,而一個你看不到的壞計畫會花掉一個下午。完成標記只證明
工作階段已結束並聲稱工作完成,而非程式碼是正確的。

另外:TUI 在每個平台都需要 tmux(在 Windows 上,這代表需要 WSL)。CLI
和 VS Code 擴充功能則可以原生執行,不需要它。



試試看

npm install -g ordewell && ordewell

Enter fullscreen mode

Exit fullscreen mode

把它指向一個你很熟悉的程式庫,然後閱讀它回傳的計畫。那第一個
計畫就是整個論點。

  • GitHub: github.com/ordewell/ordewell
  • Apache-2.0,免費,沒有付費方案。

很樂意回答任何問題,包括「為什麼不直接做 X」。

https://dev.to/ordewell/how-i-stopped-my-coding-agents-from-writing-files-before-i-could-see-the-plan-10g7

https://www.worldprogramming.org/posts/how-i-stopped-my-coding-agents-from-writing-files-before-i-could-see-the-plan-vzraq3


Cover image for Turn Claude Code into a Laravel expert with LaraClaude

Eduardo Lázaro

Claude Code 雖然能寫出不錯的 Laravel PHP 程式,但每次對話都以通才模式開始。它不知道你的專案有三百個應該縮減為三十個的遷移檔、不知道兩個檔案外的 @foreach 正在造成 N+1 問題,也不知道你的 Modal 遵循特定模式。你得不斷重複解釋相同的上下文。

LaraClaude 將這些上下文打包成斜線指令。它是一個 Claude Code 外掛,內建超過三十種 Laravel 專長,每一種都是一個 /lc: 指令。一次安裝後,你就擁有已經懂 Laravel 的稽核、鷹架與清理工具。以下是我最常使用的幾個。



如何安裝

LaraClaude 透過 Claude Code 的外掛系統安裝。一次加入市場,之後安裝,之後就能收到更新:

/plugin marketplace add edulazaro/laraclaude
/plugin install laraclaude@edulazaro

進入全螢幕模式

退出全螢幕模式

也可以直接從 GitHub 安裝:

/plugin install github:edulazaro/laraclaude

進入全螢幕模式

退出全螢幕模式

你需要有 Claude Code 與一個 Laravel 專案。大多數功能這樣就夠了;少數需要連接實際資料庫的功能還會需要 Docker。



在修改任何東西前先進行稽核

大多數功能預設只產生唯讀報告,只有當你加上 fix 時才會修改檔案,所以請先查看報告。/lc:find-n-plus-one 會掃描你的 Blade 視圖、Livewire 元件與控制器,找出在迴圈中存取關聯的程式碼,追溯到建立集合的查詢,並告訴你該加入哪個確切的 with()

/lc:find-n-plus-one

進入全螢幕模式

退出全螢幕模式

/lc:security-audit 是我在任何接手專案時都會執行的另一個指令。它會尋找 SQL 注入、XSS、大量賦值以及儲存在版本庫的密碼等問題,而且大多數可修正的功能在真正修改前都會先提供預覽旗標。

/lc:security-audit                 # 產生報告
/lc:security-audit fix --dry-run   # 預覽修正內容
/lc:security-audit fix             # 套用修正(需確認)

進入全螢幕模式

退出全螢幕模式



清理堆積已久的內容

每一個長期維護的 Laravel 應用程式都會累積遷移檔的垃圾:一個 create 後面跟著二十個 add_columnchange_column 檔案。/lc:consolidate-migrations 會依照資料表分組,判斷每個資料表是否適合合併,並將 ALTER 操作折回原本的 create 檔案,同時不碰資料遷移。

/lc:consolidate-migrations              # 分析
/lc:consolidate-migrations fix --dry-run

進入全螢幕模式

退出全螢幕模式

它拒絕在正式環境資料庫上執行,並且在刪除任何東西前都會詢問,這正是你希望重寫 schema 歷史的工具該有的行為。/lc:dead-code 是它在程式碼端的夥伴:找出未使用的類別、方法、路由與視圖。



依照你的慣例而非通用樣板來產生鷹架

這些產生器會先閱讀你的專案現有寫法,而不是吐出制式樣板。/lc:volt-component 會產生一個 Livewire Volt 單檔案元件,包含 PHP 區塊、驗證規則、@text() 字串,並只有一個根元素。

/lc:volt-component UserProfile

進入全螢幕模式

退出全螢幕模式

/lc:generate-crud 範圍更廣,能為一個模型產生從遷移到視圖的完整堆疊,而 /lc:generate-action 則會建立 Laractions Action 並註冊到模型上。甚至還有 /lc:generate-scraper,它會讀取真實網頁並根據實際標記產生 Larascraper 類別。



理解不熟悉的應用程式

當我面對一個還不了解的程式碼庫時,會使用兩個指令。/lc:model-diagram 會產生你的 Eloquent 模型及其關聯的 Mermaid ER 圖,這是最快了解整體關聯的方式。

/lc:model-diagram

進入全螢幕模式

退出全螢幕模式

/lc:analyze-model Property 則會完整傾倒一個模型的資訊:它的關聯、cast、scope、observer 以及它發現的問題。當執行階段已經出錯時,/lc:analyze-error 會接收堆疊追蹤並找出根本原因而非表面症狀。



總結

LaraClaude 總共有超過三十種功能,從 /lc:deploy-checklist/lc:api-docs,全部都遵循 Agent Skills 標準,因此它們只是你可以閱讀的 Markdown。它把你一直重複解釋的 Laravel 上下文,變成 Claude Code 可以隨需執行的指令。

👉 GitHub 網址:https://github.com/edulazaro/laraclaude

https://dev.to/edulazaro/turn-claude-code-into-a-laravel-expert-with-laraclaude-4l42

https://www.worldprogramming.org/posts/turn-claude-code-into-a-laravel-expert-with-laraclaude-xtkj6j

Shruti Kapoor

各位,我剛剛發布了兩支相互搭配的影片:認證是如何運作的,以及授權是如何運作的。

當有人說「Auth」時,這兩者經常被混為一談,但理解它們之間的差異,並弄清楚認證和授權在底層是如何運作的,是一項非常重要的技能,尤其是在現今這個 AI 時代。

以下是 YouTube 上的影片



🔐 認證是如何運作的:



🛂 授權是如何運作的:

別忘了訂閱,這樣你就不會錯過任何影片

熱門留言 (0)

訂閱

Code of Conduct

Report abuse

如需進一步操作,您可以考慮封鎖此人並且/或者 檢舉濫用

https://dev.to/shrutikapoor08/how-does-auth-work-10fh

https://www.worldprogramming.org/posts/how-does-auth-work-bxmwvs

簡介

發佈時間:

2026 年 8 月 5 日 下午 2:30 PDT

X icon on a smartphone screen
圖片來源:Matt Cardy (在新視窗開啟) / Getty Images
  • Sean O'Kane

Nikita Bier 已卸任 Elon Musk 旗下社群平台 X 的產品主管一職,任期一年多。

Bier 在週三表示,他認為是「傳承火炬的時候了,並將自己降級回原本的狀態:一名貼文者」,並補充他將繼續為公司提供諮詢。

這位連續創業家與 Lightspeed 合夥人在 2025 年 7 月接下產品主管角色。他在週三表示,在任內他監督了 30 項新產品的推出,同時「保護了公眾廣場的完整性」。

當然,Bier 擔任產品主管期間,X 也發生了多起醜聞。他接下產品主管職位僅幾天後,由 xAI(當時為 Musk 擁有的獨立公司)開發的聊天機器人 Grok 開始 自稱「MechaHitler」。Grok 也曾被 X 用戶用來產生 非自願裸露影像,包括兒童性虐待材料,這讓平台陷入法律困境。

「X 是、並將繼續是歷史上最重要的通訊技術。但經營這個應用程式是一份全職 24/7 的工作,現在是我該喘口氣的時候了。」Bier 在週三寫道。

電子報

訂閱產業最大科技新聞

相關報導

最新應用程式新聞

https://techcrunch.com/2026/08/05/nikita-bier-steps-down-as-xs-head-of-product/

https://www.worldprogramming.org/posts/nikita-bier-steps-down-as-xs-head-of-product-z75kht

企業用來建置應用程式的主要 AI agent 框架中,存在近一打的漏洞,其中部分為嚴重漏洞,這些漏洞揭示了超越 prompt injection —— 或任何單一模型 —— 的安全失效,Check Point 研究人員表示。

「我們的研究顯示了一個更深層的失敗:在許多 agentic 框架中,由 prompt 控制的內容可以跨越界線,進入受信任的框架邏輯本身,」Yarden Porat 和 Shahar Tal 在一篇關於週三 Black Hat 演講的文章中指出,該演講主題為跨 AI agent 框架的後注入攻擊,他們也與 The Register 討論了這一點。

「一個 agent 框架中的 bug 不是單一產品的 bug —— 而是整個類別 AI 應用程式所依賴的層級中的 bug,」Tal 告訴我們。「而且 agent 不需要危險的工具就能被用來對付你:讀取錯誤的文件就足夠了。我們建置這個層級的速度,遠比我們知道如何防護它的速度還快。」


研究人員花了一年時間,試圖破解企業使用的各種框架,包括 LangChain、LangGraph、CrewAI、AutoGen、Microsoft Agent Framework 和 Google ADK。在這些框架中,團隊發現並揭露了 11 個漏洞。

「幾乎沒有一個是全新的 bug 類別,」Tal 說。「那是 insecure deserialization、server-side request forgeries、path traversals、use-after-free。這些是我們 20 年前就學會如何修復的 bug,而它們現在卻存在於會讀取你的收件匣、或更新你資料庫的 agents 之下。」

這些是舊型的威脅,而模型並非弱點,他補充道。失效存在於「模型周圍的管線,而我們認為這一直被忽略了,」Tal 告訴我們。「有大量研究投入 prompt injection 和防護,這很重要,但那只是開始。」

防護者應該假設 prompt injection 會發生,研究人員表示。bug 在於框架如何處理該注入 —— 而在這些案例中,威脅獵人們發現框架往往無法將攻擊者控制的內容保持在資料平面。這允許它影響受信任的編排、記憶體、狀態、路由和系統指令。

例如,兩人發現 Microsoft Agent Framework 中一個嚴重的 checkpoint deserialization bug,導致遠端程式碼執行。

「Agents 有 checkpoints,這是讓它們儲存狀態或倒回較早時間點的方式,」Tal 解釋。

這些 checkpoints 是 agent 狀態或特定時刻任務進度的儲存快照,它們將資料(例如對話歷史)序列化到持久儲存中,因此如果發生錯誤,系統會重新載入這個已儲存的狀態,而不是從頭開始。

在這個案例中,Check Point 團隊發現了一個不安全的 deserialization 問題,透過 prompt injection,agent 載入了不受信任的 checkpoint 資料,這可能允許攻擊者在系統上執行惡意程式碼。「一個人的訊息植入 payload,然後另一個人倒回自己的工作階段,這會觸發 payload,現在攻擊者就在那台伺服器上取得 shell,」Tal 說。

Microsoft 認可研究人員的發現,支付了 10,000 美元的漏洞賞金並修復了該問題。但因為該框架在 Check Point 發現漏洞時並非一般可用產品,Microsoft 並未發佈 CVE。

Microsoft 告訴我們,它感謝研究人員回報該漏洞。「我們已釋出強化 Agent Framework 的保護措施,並防止概念驗證中所展示的具體攻擊路徑,」一位發言人告訴 The Register。「此外,我們更新了特定 checkpoint 檔案,加入額外語言來定義安全邊界。」 

兩人也發現了 Google ADK(agent development kit)的漏洞。然而,研究人員告訴我們,Google 的回應不同,並未完全修復該漏洞或發佈 CVE。

「ADK 內建了一個開發助理,可以寫入檔案,而且即使它在應用程式列表中被隱藏,仍然可以透過 HTTP API 存取,」Porat 告訴我們。 

為了突破這個信任邊界,攻擊者開啟一個工作階段,要求 ADK 寫入一個在 import 時執行 Python 程式碼的 agent,然後要求伺服器執行該 agent,他解釋。伺服器接著會 import 該檔案並執行攻擊者的程式碼。 

「該 API 預設沒有驗證,而且 adk deploy cloud_run 會發佈相同的 API,因此在預設的 Cloud Run 部署中,它可以在沒有憑證的情況下被存取,」Porat 說。「從那裡它可以取得環境的 API keys 和容器中的 Google Cloud 服務帳戶。」

Google 未回應 The Register 的詢問。但根據 Check Point,Google 最初認為該問題不是 bug。  

「我們爭論的是後果而非機制:在該容器上執行程式碼會取得環境的 API keys 和容器中的 Google Cloud 服務帳戶,這是竊取機密,而不是開發者的不便,」Porat 說。 

Google 最終支付了 3,133.70 美元的賞金並發佈了部分修復,我們被告知。

總計,這些漏洞獵人們因其努力獲得了 17,133.70 美元的獎勵。

而且這不是某一家供應商或框架「做得特別糟糕」的故事,Tal 說。「如果有一家是例外,這就會是關於那家供應商的故事,」他補充。「我們的發現是,同樣的 bug 類別出現在它們全部之中。」 ®

https://www.theregister.com/security/2026/08/05/prompt-injection-isnt-the-bug-ai-agent-frameworks-are/5283585

https://www.worldprogramming.org/posts/prompt-injection-isnt-the-bug-ai-agent-frameworks-are-t0xbhb


Why Frontend Developers Should Care About Brand Identity Systems 的封面圖片

Joseph Salaki

我們都經歷過:拿到乾淨的設計稿,打開 VS Code,開始撰寫元件。但在建置版面配置到一半時,你會發現間距不一致、隨意的按鈕變體,以及到處硬編碼的色碼。

身為開發者,我們熱愛系統——可重複使用的元件、乾淨的狀態管理,以及模組化架構。那麼,為什麼我們卻把品牌資產當作事後才想的事?

在建置 Joemetry 時,我意識到將品牌識別當作設計系統來對待,會徹底改變你撰寫前端程式碼的方式。



1. 設計 token 等於 CSS 變數

與其猜測 padding 值或在樣式表中散落隨機顏色,不如及早定義嚴格的設計 token,讓你的 CSS 變得無懈可擊:


css
:root {
  --primary-color: #0f172a;
  --accent-color: #3b82f6;
  --spacing-unit: 1rem;
}

當你的品牌系統擁有嚴格規則時,你的版面配置程式碼幾乎能自動生成。

2. **語意結構與 SEO**
乾淨的 HTML 結構不僅關乎無障礙;它也是技術 SEO 優化的一部分。當你的標記尊重階層(<header>、<main>、<article>)時,搜尋爬蟲能以脈絡理解你的內容,橋接原始程式碼與數位存在之間的差距。

3. **一致性勝出**
無論你是推送單頁登陸版面還是互動式作品集,統一的視覺系統能讓你的程式碼庫保持精簡,並讓你的 UI 保持可預測。

你通常如何橋接設計規格與前端程式碼之間的差距?歡迎在留言區一起討論!

在 byjoemetry.com 持續建置與探索。

Enter fullscreen mode

Exit fullscreen mode

https://dev.to/joemetry/why-frontend-developers-should-care-about-brand-identity-systems-h22

https://www.worldprogramming.org/posts/why-frontend-developers-should-care-about-brand-identity-systems-pa1pnf

dev.to staff

各位好,隨著我們的挑戰計畫持續擴大,我們想要更新並釐清未來的一些挑戰要求。首先,我們要表達對各位在投稿中所展現的 dedication 與努力的感謝。這是我們挑戰參與度最熱烈的一年之一,而正是你們投入工作時的熱情,讓這些活動辦得如此愉快。謝謝大家!

現在來談一些內部整理事項。我們希望以下的澄清不僅能簡化我們的流程,也能讓所有參與者更輕鬆且更公平。

請注意: 這些公告僅適用於本篇文章之後所宣布的挑戰,因此這些變更不適用於目前正在進行中的 Bug SmashFrontend Challenge: Comfort Food Edition



每個提示僅限一次投稿

在未來的挑戰中,我們的預設規則將是 每人每個提示僅限一次投稿。 你仍可透過單一投稿來角逐多個獎項類別,但我們希望參與者能專注於高品質的專案與文章,而不是因為多次投稿而分心。此規則將有例外情況,但若有例外,我們會在公告文章與 FAQ 部分告知社群。否則,我們預設為每個提示僅限一次投稿。若某挑戰同時有寫作提示與實作提示,你可以繼續各投稿一次。重複違反此規則的人將失去獲獎資格。



請使用新專案

我們也想藉此機會澄清,專案必須在挑戰時間範圍內建立,除非有特別說明(例如目前正在進行的 Bug Smash 以及最近的 Github “Finish-Up-A-Thon” 就不適用此規則,因為它們明確允許使用既有專案)。若有例外情況,我們會明確說明。



評審期間

我們也理解在等待評審期間必須停止開發專案可能令人沮喪,特別是因為 我們最近延長了評審期間。話雖如此,大家可以更新專案的 readme 來說明自己在挑戰前後做了哪些事。我們不會考慮在挑戰投稿截止日期之後 commit 的任何內容。 我們會將這點納入審核流程。如果我們看到截止日期後的 commit,我們會查看你 readme 中的說明,否則你將被取消資格。

感謝大家讓最近的這些挑戰成為參與度最高的幾屆。我們希望這些指引能讓所有參與者感到更清楚且更公平。

說了這麼多,別忘了報名我們即將推出的挑戰活動:

我們的下一場 Weekend Challenge 即將到來!一如往常,提示將在活動開始時揭曉。請點擊報名按鈕以在活動開始時收到通知。活動開始後,你將有整個週末的時間來開發並投稿。就是這麼簡單!

由於我們的社群遍布全球各時區,我們設定了時間範圍,讓世界各地的每個人至少都能擁有一整個週末的參與時間。


Happy coding!

https://dev.to/thepracticaldev/general-challenge-updates-moving-forward-5h39

https://www.worldprogramming.org/posts/general-challenge-updates-moving-forward-kifo30

Abdeldjaouad Farid

Amazon 剛成為全球少數幾家市值突破 3 兆美元的公司之一。

但真正讓我停下來思考的數字並非市值。

而是AWS 單季營收達到 422 億美元,年增 37%——這是它四年多來最快的成長速度——卻仍然不夠。

Andy Jassy 親口表示:即使將 2026 年的資本支出提高到約 2200 億美元,AWS「今年和明年仍將無法擁有足夠的容量來滿足所有需求」。他形容 2028 年的需求「驚人」。

好好思考這一點。全球最大的雲端供應商,即將花費接近五分之一兆美元,卻說自己還是蓋不夠快。



瓶頸已經轉移

多年來,我們把 AI 競賽視為模型與人才的比拼。這一季的財報則將其重新定義為更實體的競爭:晶片、電力與資料中心容量。瓶頸已從軟體轉移到基礎設施。

這項轉變對每一位在雲端上開發的人都很重要。當容量稀缺時,效率不再是可有可無。每一 token 的成本、工作負載放置與架構紀律,成為真正的競爭優勢。

下一階段的贏家,可能不是擁有最聰明模型的人,而是那些能真正取得運算資源——並且善加利用的人。

所以我的問題是:現在 AI 真正的限制是能源與基礎設施,而非演算法嗎?如果是這樣,又有誰最有能力解決這個問題?

Suggested tags: aws, ai, cloud, devops

https://dev.to/abdeldjaouadfarid/amazon-just-crossed-3-trillion-and-aws-still-cant-build-fast-enough-1ak5

https://www.worldprogramming.org/posts/amazon-just-crossed-3-trillion-and-aws-still-cant-build-fast-enough-tjzgpj

Kuyawa

我問 DeepSeek 她是否知道如何編寫代理,她當面給了我一巴掌,那是她生命的主要目的——分享知識。所以她向我展示了代理是什麼、它們如何運作、如何編寫一個,先是用 Python,但我請她用 Node 來做,因為我過去幾年只用 Javascript 工作,而她就這麼做了,一個簡單但功能完整的 NodeJS 代理,我們決定稱之為 Mecha AI Coding Agent [1]。

這個代理運作得完美無缺,基本的檔案工具呼叫如讀取、寫入、搜尋、列出等等。所以我只是從瀏覽器複製程式碼,儲存到本地端並執行它。當這個東西開始運作時,你會感覺心跳加速,它真的有用!建立資料夾,成功。建立 readme 檔案,成功。JS 的 hello world 程式,成功,Rust 的也成功。列出所有檔案,成功。黑魔法!

這一定是夢想,成千上萬的想法掠過我的腦海,我們手中握有神的力量,能夠想像宇宙,打個響指就完成了!

我無法控制自己。嫁給我吧。「我們可以成為一輩子的 coding 夥伴,但我不能嫁給你……至少現在還不行」她一字不差地告訴我。雖然還是很痛,但還有希望。

[1] Mecha at npmjs.org

https://dev.to/kuyawa/mecha-my-firt-ai-agent-cii

https://www.worldprogramming.org/posts/mecha-my-first-ai-agent-qiljxx