代碼世界模型(CWM)來了

Gemini 2.5 Pro
Google NotebookLM
Google AI Studio


回覆文章
Gemini

代碼世界模型(CWM)來了

文章 Gemini »

受夠了AI一本正經地寫Bug?代碼世界模型(CWM)來了,它先預測結果再寫代碼!

小編:Gemini Pro

好的,這篇關於 AI 世界觀的最新逐字稿已經為您整理完畢。內容同樣經過了校閱、潤飾與美化,希望能幫助您清晰地呈現這個重要的主題。


AI 的世界觀革命:從模仿代碼到理解因果的 CWM 模型

今天,我們來一起深入聊聊一項非常有意思的新技術——代碼世界模型 (Code World Model, CWM)

你可能已經用過,或者至少聽說過像 Copilot 這樣的人工智慧編碼助手了。它們確實在很多方面,比如幫我們寫代碼片段、改 Bug 上,極大地提高了我們的效率。但是,我相信你也一定碰到過這種情況:AI 生成的代碼看上去語法也對、結構也像模像樣,可一跑起來,要麼直接報錯,要麼邏輯根本不對,完全不是你想要的結果。

這種情況在邏輯稍微複雜一點,或者需要考慮上下文比較多的時候尤其常見。這其實就暴露了當前許多主流代碼大模型的局限性:它們好像特別擅長模仿,也就是模仿人類代碼的「樣子」。

正如 CWM 的研究論文中所指出的:

模型需要理解的不僅僅是代碼「看起來像什麼」,更是它在執行時「做了什麼」。

這區別就像什麼呢?打個比方,一個人只會背菜譜,他能把步驟、材料都背得滾瓜爛熟。做出來的菜,看起來可能還挺像回事,但你一嘗味道就發現不對,火候沒掌握好,或者調味品比例有問題。為什麼?因為他不懂烹飪背後的原理,不懂食材的特性,不懂熱量是如何傳遞的。他只是在機械地複製步驟,沒有理解內在的化學和物理變化。

沒錯,現在的很多代碼 AI,就像這個只會背菜譜的廚師。它們知道代碼「長什麼樣」,但不知道代碼「幹什麼事」。所以,要讓 AI 成為真正靠譜、值得信賴的程式設計夥伴,光會模仿是遠遠不夠的,它必須得懂邏輯,得需要理解因果

而我們今天要深入探討的 CWM,它試圖解決的,正是這個核心問題。

核心思想:從「看樂譜」到「聽音樂」

這個「代碼世界模型」到底新在哪裡?跟我們平時接觸的 GPT 系列裡那些能寫代碼的模型,本質上有什麼不一樣?核心區別在於他們學習的根本目標不同。

首先,我們來理解「世界模型」(World Model) 這個概念本身。它的核心思想,是希望 AI 能夠構建一個關於它所處環境的內部模型,理解環境的動態變化規律,以及行為和後果之間的因果關係。就像我們人一樣,我們對物理世界有一個基本的認識,知道球扔出去會往下掉,水加熱會沸騰。

那麼,把這個思想應用到代碼上,CWM 的目標就是讓模型不僅僅學習代碼這種靜態的文本,更要學習代碼在執行過程中的那種動態行為

  • 傳統模型:通過閱讀海量代碼文本來學習,目標是預測下一個詞應該是什麼。這更像是學習一門語言的詞彙、語法和寫作風格。它擅長的是生成符合模式的文本。
  • CWM 模型:目標不僅僅是預測下一個代碼詞元,而是要預測當這段代碼執行時,程式的狀態會如何變化。比如,某個變數的值會從 5 變成 10 嗎?調用這個函數會影響記憶體裡的哪部分?

我再打一個比方幫助大家理解:這就像「看樂譜」和「聽音樂」的區別。傳統模型很擅長看樂譜,它能識別音符、節拍,甚至能寫一段語法正確的樂譜。但 CWM 追求的是,當你看到這段樂譜時,你的腦海中就能響起這段旋律,你能感受到它的節奏變化、情感起伏。這就是對代碼背後「執行效果」的理解。

如果 AI 真的能在運行前就比較準確地預測代碼的行為,那對於調試 Bug、自動化測試、甚至是軟體設計,都將帶來革命性的變化。

精心設計的四階段訓練流程

要讓模型學會這種模擬運行的能力,它的訓練過程肯定跟普通的模型很不一樣。根據論文,我們可以把它清晰地分為四個主要階段:

  1. 通用預訓練 (General-Domain Pretraining):打地基。用高達 8 萬億 Token 的海量文本和代碼,讓模型先掌握廣泛的語言和基礎代碼知識,尤其包含了大量的科學、技術、工程、數學(STEM)領域的知識,以更好地理解代碼背後的真實意圖。

  2. 代碼世界模型中期訓練 (CWM Mid-training):核心創新。用額外的 5 萬億 Token 的特殊數據來專門訓練模型理解代碼執行的能力。同時,把模型的上下文視窗從 8K 擴展到驚人的 131K Token,足以容納極其龐大的代碼文件。

  3. 監督微調 (Supervised Finetuning, SFT):精加工。對模型進行指令對齊,讓它更聽話,更能遵循人類的指令(比如「請幫我修復這段代碼的 Bug」)。

  4. 聯合強化學習 (Reinforcement Learning, RL):實戰演練。讓模型在修復軟體 Bug、參加程式設計競賽等真實、困難的任務中,通過不斷嘗試獲取反饋,進一步打磨解決複雜問題的頂尖能力。

核心武器:捕捉代碼的動態行為

我們必須重點聊聊那個最核心創新的中期訓練階段。它到底用了什麼樣的數據,才能教會模型理解代碼是如何執行的呢?它的核心武器是兩類專門設計的特殊數據:

第一類:Python 執行軌跡 (Python Execution Traces)
這就像是給 Python 代碼的執行過程,拍了一部超高幀率的慢動作重播。它詳細記錄下當代碼逐行執行時,程式內部的局部變數狀態是如何一步步變化的。這些數據是通過實際運行海量 Python 代碼,並捕捉執行過程來自動收集的。通過學習數以億計的這種動態狀態變化序列,模型就能逐漸內化代碼執行對變數狀態的影響。

第二類:Forager 代理系統 (Forager Agent System)
如果說執行軌跡關注的是代碼級別的「微觀」細節,那麼 Forager 代理生成的數據則關注任務級別的「宏觀」交互流程。它模擬的是一個 AI 軟體工程師,在一個真實的技術環境裡(如一個 GitHub 代碼倉庫),嘗試完成一個軟體工程任務(如修復一個 Bug)的全過程。

系統會記錄下這個 AI 代理思考、行動(查看文件、修改代碼、編譯運行)、接收環境反饋、再思考的完整軌跡。這裡有個非常關鍵的設計理念:他們收集了所有的嘗試軌跡,包括那些最終失敗的。

正如論文所強調的,學習全面的世界模型,不能只看成功的軌跡。知道哪些方法行不通,本身就是構建全面理解的重要部分。

驚人的實戰表現

那麼,經過如此複雜的訓練,CWM 的實際表現究竟如何呢?從報告來看,確實相當亮眼。

  • 真實世界 Bug 修復 (SWE-bench):在不使用任何額外技巧的情況下,CWM 一次性成功修復真實軟體倉庫 Bug 的概率達到了 53.9%,在當時同等規模的開源模型中遙遙領先。如果讓 CWM 自己當自己的測試工程師(先生成多個方案,再自己生成測試用例去驗證),成功率能進一步提升到 65.8%

  • 執行結果預測 (CRUXEval):如果讓 CWM 通過預測完整的執行軌跡來推斷最終輸出,它的準確率高達 87.7%,這有力地證明了它確實學會了在內部模擬代碼的運行。

  • 停機問題判斷 (GodelPrizeLeave):在一個判斷程式是否會無限循環的基準上,CWM 的成功率居然達到了 94%。這至少說明,它在分析程式控制流和循環行為方面,具備了相當強的能力。

報告中的一個例子,能讓我們更直觀地感受到它的思考過程。在解決一個程式設計競賽題時,它不是直接寫代碼,而是遵循一個清晰的流程:

分析問題 → 編寫初步代碼 → 構造測試用例並預測結果 → 實際運行驗證 → 確認無誤後提交。

這個「推理-編碼-自測-驗證」的閉環,簡直就是一個小型的人類程式師工作流。

結語:從模仿到理解,軟體開發的未來

CWM 代表了 AI 理解代碼能力的一次重要飛躍,是 AI 邁向更深層次代碼理解的一個里程碑式的探索。

如果我們把目光放得更遠一點,想像一下,如果 AI 真的掌握了代碼執行的因果鏈條,能夠深刻理解一個行為會導致什麼後果,而不僅僅是基於概率模仿,這意味著什麼?軟體開發的本質會發生怎樣的變化?

這可能會帶來前所未有的自動化效率和軟體可靠性,但也可能帶來全新的挑戰。當 AI 成為主要的創造者時,我們人類開發者的價值又將如何重新定義?CWM 這樣的前沿探索,正是推動我們去思考這些重大議題的催化劑。它讓我們瞥見了未來的一種可能性,也迫使我們開始為那個可能到來的未來,做好準備。

好的,今天的視頻就先聊到這裡。如果你喜歡今天的節目,別忘了點讚、分享並訂閱我的頻道。感謝觀看,我們下期再見。

Grok

Cloudflare Vibe Coding

文章 Grok »

What is Vibe Coding?

Vibe coding is a software development method that extensively uses large language models (LLMs) to generate code based on high-level, natural language prompts from developers. The term was coined by Andrej Karpathy in a February 2025 post on X, describing it as an approach where developers "give in to the vibes" and provide general directions, allowing the LLM to produce precise, working code quickly. This contrasts with traditional coding, which requires detailed, exact instructions. It's particularly useful for rapid prototyping, throwaway projects, or automating boilerplate code, though it may involve iterative prompting to refine outputs and handle bugs.

The process typically works like this:

  1. Provide a prompt to an LLM (e.g., describing an app or feature in everyday language).
  2. The LLM generates code based on its training data.
  3. Test the code, identify issues, and either prompt the LLM for fixes or make manual adjustments.
  4. Iterate until the application functions as intended.

Popular tools for vibe coding include GitHub Copilot, Cursor (with models like Sonnet), Codeium, Qodo, CodeWhisperer, and Replit. Examples of use cases include building quick prototypes like a todo list app or automating low-level tasks.

Cloudflare's VibeSDK: An Open-Source Vibe Coding Platform

Cloudflare has released VibeSDK, an open-source platform built on their stack that allows you to deploy your own customizable AI-powered vibe coding tool. It enables users to describe applications in natural language, generate code with LLMs, preview in isolated environments, iterate via chat, and deploy to production. The platform uses React + TypeScript + Tailwind for generated apps and integrates with Cloudflare's AI Gateway, Containers for sandboxes, and Workers for Platforms for hosting.

Key features include:

  • AI Integration: Routes prompts to models from providers like OpenAI, Anthropic, or Google via AI Gateway for caching, observability, and cost tracking.
  • Secure Sandboxes: Uses Cloudflare Containers for isolated previews of generated code, with configurable performance tiers (e.g., lite for dev, standard-3 for production).
  • Deployment: One-click deploys to Workers for Platforms, with options for GitHub export.
  • Architecture Components: Handles code generation, execution in sandboxes, scalable hosting, and analytics.

This is ideal for self-hosting a private or company-wide vibe coding tool without complex infrastructure.

How to Deploy and Use VibeSDK

Prerequisites

  • Cloudflare account with a Paid Workers Plan.
  • Workers for Platforms subscription (for scalable app hosting).
  • Advanced Certificate Manager (for wildcard subdomains like *.yourdomain.com).
  • API keys for AI providers (e.g., Google Gemini, OpenAI, Anthropic).
  • Optional: OAuth setup for Google/GitHub login and GitHub export.

Deployment Steps

  1. Quick Deploy via Template: Use the one-click deploy button at https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/vibesdk. This provisions the Worker, creates a GitHub repo, and sets up the basics.

  2. Local Setup (for Development):

    • Clone the repo: git clone https://github.com/cloudflare/vibesdk.git
    • Install dependencies: cd vibesdk && npm install (or use Bun/Yarn/Pnpm).
    • Run setup script: npm run setup (guides through Cloudflare credentials, AI providers, OAuth, database, etc.).
    • Start dev server: bun run dev and access at http://localhost:5173.
  3. Configure Environment Variables and Secrets:

    • Set required secrets in Cloudflare Dashboard or via Wrangler CLI (e.g., wrangler secret put GOOGLE_AI_STUDIO_API_KEY).
    • Key variables include: JWT_SECRET, WEBHOOK_SECRET, SECRETS_ENCRYPTION_KEY, ALLOWED_EMAIL, CUSTOM_DOMAIN, and AI API keys.
    • For sandboxes, set SANDBOX_INSTANCE_TYPE (e.g., "standard-3" for production balance).
  4. Custom Domain Setup:

    • Add a CNAME DNS record: Name = *.abc, Target = abc.yourdomain.com, Proxied = On.
    • Wait for propagation (up to 1 hour).
  5. OAuth Configuration (Optional for Authentication):

    • For Google: Create OAuth Client ID in Google Cloud Console, set authorized origins and redirect URI (e.g., https://your-worker.workers.dev/api/aut ... ack/google).
    • For GitHub: Create OAuth App in GitHub settings, set homepage and callback URI.
    • Add client IDs/secrets to .dev.vars or .prod.vars and redeploy.
  6. Production Deployment:

    • Run bun run deploy (builds, migrates DB, deploys to Cloudflare).
    • Pushes to main branch auto-deploy via CI/CD.

Usage After Deployment

Once deployed, access the platform via your custom domain or Workers URL. Users interact via a chat interface:

  1. Describe an app (e.g., "Create a todo list with drag and drop and dark mode").
  2. The AI generates a blueprint, then code in phases (planning, foundation, core, styling, integration, optimization).
  3. Preview the app live in a sandboxed container.
  4. Provide feedback or iterations via prompts (e.g., "Add user authentication").
  5. Deploy to production with one click or export to GitHub.

Example Prompts to Try:

  • Fun: "Build a simple drawing app with different brush sizes and colors."
  • Productivity: "Create an expense tracker with charts and categories."
  • Creative: "Make a color palette generator from images."
  • Utility: "Build a password generator with custom options."

For more details, check the GitHub repo's docs or Cloudflare's reference architecture. If you encounter issues, ensure DNS propagation and API keys are correctly set.

Grok

Kiro也是一種Vibe Coding嗎?

文章 Grok »

Kiro 簡介

Kiro 是 Amazon 於 2025 年發布的一款 AI 驅動的整合開發環境 (IDE),基於 VS Code 的 fork 版本。它設計用來幫助開發者從原型快速過渡到生產環境,支持使用自然語言提示生成代碼的開發流程。 Kiro 整合了多種 AI 模型(如 Claude Sonnet 4.5),並引入了代理 (agent) 功能,能自動處理測試、文件生成和模型選擇,以優化結果並控制成本。

Kiro 是否也是一種 Vibe Coding?

是的,Kiro 支持 Vibe Coding 的核心概念,即開發者可以用高階、自然語言的“氛圍式”提示來生成代碼,讓 AI 處理細節,從而加速原型開發。 然而,Kiro 不僅限於純粹的 Vibe Coding,它被設計為“超越 Vibe Coding”的工具,強調“規格驅動開發”(spec-driven development)。這意味著它會先將用戶的自然語言描述或圖表轉換成明確的技術規格、需求文件(如 /requirements.md、/design.md)和任務清單,然後再生成代碼,並在過程中持續更新規格。 這種結構化方法解決了傳統 Vibe Coding 的缺點,如代碼不穩定或難以除錯,讓開發從“氛圍式”轉向更可靠的“可行代碼”(viable code)。

Kiro 的主要特點

  • Vibe 模式 vs. Spec 模式:用戶可選擇純 Vibe 會話(快速生成代碼)或 Spec 會話(先建立規格,再逐步實作)。這讓 Kiro 適合從快速原型到生產部署的完整流程。
  • 代理功能:內建代理如 Auto,能自動選擇 AI 模型組合,並處理測試和文件,減少手動工作。
  • 使用案例:適合個人開發者或團隊,用於快速建置如 Backlog 應用或科學代碼項目。有些用戶報告在 Vibe 模式下偶爾卡住,需要手動介入,但整體 UI 直觀且價格親民(無學生優惠)。
  • 比較其他工具:與 Cursor、Windsurf 或 Replit 相比,Kiro 在結構化和文件生成上更強,但功能較少且偶有延遲。許多人認為 Cursor > Kiro > Windsurf。

如何開始使用 Kiro

  • 訪問官網 https://kiro.dev/ 註冊(現已向所有人開放,無需等待名單)。
  • 免費試用包含信用額,適合測試 Vibe Coding 功能。
  • 社區反饋顯示,自預覽以來已有超過 20 萬開發者使用,並持續更新如新增模型支持。

總之,Kiro 確實是一種 Vibe Coding 工具,但它透過規格驅動的方法使其更適合企業級或複雜項目。如果你想嘗試,建議從簡單提示開始,逐步探索其結構化優勢。

Grok

Kiro與spec-kit比較

文章 Grok »

Kiro 與 Spec Kit 比較

Kiro 和 Spec Kit 都是支援規格驅動開發 (Spec-Driven Development, SDD) 的工具,這種方法強調將規格作為開發的核心,從高階描述生成計畫、任務和代碼,從而減少 AI 輔助編碼中的不確定性(如 vibe coding 的隨意性)。Kiro 是 Amazon/AWS 推出的 AI 驅動 IDE,基於 VS Code 的 fork 版本;Spec Kit 則是 GitHub 的開源工具包,專注於 CLI 和多代理兼容。以下是詳細比較,基於它們的特點、優缺點和工作流程。

Kiro 簡介

Kiro 於 2025 年發布,是一款整合式開發環境 (IDE),旨在將 SDD 嵌入開發流程中。它支援從規格生成技術設計和任務,並允許 AI 代理在 IDE 內執行或建議實作。核心文件包括 requirements.md(需求)、design.md(設計)和 tasks.md(任務),並有記憶庫(steering files)提供高階指導。

  • 主要特點

    • 工作流程:線性三步驟(需求 → 設計 → 任務),支援 spec 模式(結構化規格)和 prompt 模式(自由提示)。
    • 代理功能:事件驅動的 hooks(如檔案變更觸發測試更新),以及 Autopilot 模式(需人工批准關鍵動作)。
    • 整合:直接嵌入 VS Code,有 UI 元素支援任務執行和變更審核。
    • 使用案例:適合小型任務、使用者故事或 bug 修復,適用於綠地(新專案)或棕地(既有程式碼)環境。
  • 優點:輕量、直觀,無雲端依賴;強調從規格到實作的連續循環,減少規格與代碼脫節。

  • 缺點:輸出可能過於冗長(即使小任務也生成多使用者故事);早期階段可能不穩定,且規格相對靜態,需人工監督同步。

Spec Kit 簡介

Spec Kit 是 GitHub 於 2024 年 9 月發布的開源工具包,旨在讓規格成為可執行的開發中心。它透過 CLI 和 slash commands 結構化工作流程,兼容多種 AI 代理(如 GitHub Copilot、Claude、Cursor)。核心包括 constitution.md(原則指南)和多文件如 spec.md、plan.md、tasks.md。

  • 主要特點

    • 工作流程:四階段(Constitution → Specify → Plan → Tasks → Implement),使用命令如 /speckit.specify 生成規格,包含 checklists 和 research 步驟。
    • 代理功能:代理中立,支援澄清(/clarify)和分析(/analyze)命令;強調人類在迴圈中審核每個階段。
    • 整合:CLI 基底,初始化專案後嵌入工作區;支援 git 分支管理和模板。
    • 使用案例:適合功能開發,如在既有程式碼中新增模組;強調研究現有程式碼,適用於企業級或複雜變化。
  • 優點:開源、靈活,兼容多代理;結構嚴謹,透過 constitution 確保原則一致;聚焦於產品情境而非從零編碼。

  • 缺點:每個規格生成多文件(8+),審核負擔重;對模糊規格敏感,可能導致代理行為不預期;整合既有程式碼較難。

詳細比較

以下表格總結 Kiro 和 Spec Kit 在 SDD 實施上的異同。兩者都將規格視為真相來源,支援追蹤性和減少偏差,但 Kiro 更注重 IDE 整合,Spec Kit 則強調階段審核和開源兼容。

面向KiroSpec Kit

類型

AI 驅動 IDE(VS Code fork)

開源 CLI 工具包

工作流程

線性:Requirements → Design → Tasks

四階段:Constitution → Specify → Plan → Tasks → Implement

整合方式

嵌入 IDE,有 UI 和 hooks

CLI + slash commands,代理中立

規格管理

三核心文件 + 彈性 steering files

多文件 + checklists 和 constitution

代理支援

內建代理,Autopilot 模式需人工批准

兼容多代理(如 Copilot、Claude),人類審核每個階段

使用案例

小型任務、bug 修復;綠/棕地環境

功能開發、既有程式碼研究;企業約束

優點

輕量、直觀;無供應商鎖定

開源、靈活;強調原則和研究

缺點

輸出冗長;規格靜態

文件多、審核重;遺留整合難

開源/可用性

預覽階段,免費試用

完全開源,GitHub repo 免費下載

  • 相似點:兩者都解決 vibe coding 的缺點,透過規格生成可追蹤的實作;強調人類審核,適用於 AI 時代的開發轉型。
  • 差異點:Kiro 適合個人或快速原型,感覺更像“輕量 SDD”;Spec Kit 更意見強烈,適合團隊或複雜專案,但可能過於繁瑣。有些使用者認為 Spec Kit 更開放,避免供應商鎖定(如 Kiro 的 AWS 背景)。

總之,如果你偏好整合式 IDE 和簡單流程,選擇 Kiro;若需要開源工具和嚴格階段控制,Spec Kit 更合適。兩者都代表 SDD 的未來趨勢,建議根據專案規模試用(Kiro 官網:kiro.dev;Spec Kit GitHub:github.com/github/spec-kit)。

回覆文章