[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-windsurf-flow-context-engine-2026-zh":3,"article-related-windsurf-flow-context-engine-2026-zh":28,"series-tools-663a3bd8-6160-4b37-bf18-e3c54e7541d2":85},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":11,"views":25,"created_at":26,"published_at":27,"topic_cluster_id":11},"663a3bd8-6160-4b37-bf18-e3c54e7541d2","windsurf-flow-context-engine-2026-zh","Windsurf Flow 怎麼讓上下文不斷線","\u003Cp>\u003Ca href=\"https:\u002F\u002Fcodeium.com\u002Fwindsurf\" target=\"_blank\" rel=\"noopener\">Windsurf\u003C\u002Fa> 想解的問題很直白。AI 寫碼工具常常忘東忘西。你剛改完一個檔案，它下一句又像沒看過 repo 一樣。\u003C\u002Fp>\u003Cp>這件事很傷。因為它不是只會多問幾次。它會直接拖慢你。\u003Ca href=\"\u002Fnews\u002Fcursor-vs-windsurf-4-tasks-same-prompts-zh\">Wind\u003C\u002Fa>s\u003Ca href=\"\u002Fnews\u002Fcursor-3-unified-workspace-agents-zh\">ur\u003C\u002Fa>f 的 Flow 系統，就是在處理這個痛點。\u003C\u002Fp>\u003Cp>它把 codebase 索引、session history、rules、memories 串起來。講白了，就是讓 AI 盡量記得你剛做了什麼。不是只看你現在打了什麼字。\u003C\u002Fp>\u003Ch2>上下文才是核心\u003C\u002Fh2>\u003Cp>很多人以為 AI 寫碼工具比的是模型大小。其實常見問題不是模型不會寫。是它不知道你在改哪個服務，也不知道團隊怎麼命名。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775272013033-va0v.png\" alt=\"Windsurf Flow 怎麼讓上下文不斷線\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>Winds\u003Ca href=\"\u002Fnews\u002Fcursor-3-autonomous-agents-platform-update-zh\">ur\u003C\u002Fa>f 把這個缺口當成主問題。它的想法很簡單。上下文要跟著工作流程更新。你切檔案、跑 terminal、開新 tab，系統都要跟上。\u003C\u002Fp>\u003Cp>這裡的核心是 \u003Ca href=\"https:\u002F\u002Fwww.pinecone.io\u002Flearn\u002Fretrieval-augmented-generation\u002F\" target=\"_blank\" rel=\"noopener\">RAG\u003C\u002Fa>。不是每個 repo 都重訓模型。先建立索引，再在需要時抓相關片段。這樣比較快，也比較實際。\u003C\u002Fp>\u003Cul>\u003Cli>RAG 先把 codebase 做成可搜尋索引\u003C\u002Fli>\u003Cli>session history 會記住你剛做的操作\u003C\u002Fli>\u003Cli>rules 管團隊規範\u003C\u002Fli>\u003Cli>memories 管長期記住的事\u003C\u002Fli>\u003C\u002Ful>\u003Cp>說真的，這比「模型很聰明」更重要。因為實務上，AI 最常犯的錯不是語法錯。是它抓錯檔案，或抓到過期資訊。\u003C\u002Fp>\u003Cp>Windsurf 的 Flow 不是在賭模型自己想通。它是在設計一個資料管線。這種思路比較像工程，不像行銷話術。\u003C\u002Fp>\u003Ch2>Cascade 怎麼吃進上下文\u003C\u002Fh2>\u003Cp>Windsurf 的深度模式叫 \u003Ca href=\"https:\u002F\u002Fcodeium.com\u002Fwindsurf\" target=\"_blank\" rel=\"noopener\">Cascade\u003C\u002Fa>。它不是只吃你當下那一句 prompt。它會先把多層資訊整理好，再送進 LLM。\u003C\u002Fp>\u003Cp>流程大概是這樣。先載入全域規則，再載入專案規則。接著讀 memories、開啟中的檔案、索引片段，最後加上最近的編輯與 terminal 指令。\u003C\u002Fp>\u003Cp>這順序很重要。因為它同時保留「你想做什麼」和「現在做到哪」。如果沒有這層整理，AI 很容易答非所問。\u003C\u002Fp>\u003Cblockquote>“You can’t have a conversation with a machine that doesn’t remember what you just said.” — Satya Nadella, Microsoft Build 2023 keynote\u003C\u002Fblockquote>\u003Cp>這句話放在這裡很貼切。AI 工具如果記不住前文，互動就會一直重置。你每次都得重講一次背景，超煩。\u003C\u002Fp>\u003Cp>對除錯來說，這差很多。你跑完測試失敗後，再問它下一步，它可以直接看到剛剛的錯誤。你不用再貼一次 log。\u003C\u002Fp>\u003Ch2>索引、M-Query、和 Tab 的差別\u003C\u002Fh2>\u003Cp>Windsurf 會在你開專案時先做 indexing。它掃描 repo，把檔案和 symbol 轉成 embeddings，再放進 vector index。這樣之後才能快速找相關內容。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775272012962-8gd9.png\" alt=\"Windsurf Flow 怎麼讓上下文不斷線\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>文章提到 embeddings 是 768 維。這個尺寸很常見。夠表達語意，又不會讓搜尋成本太誇張。對大型 repo 來說，這種平衡很實際。\u003C\u002Fp>\u003Cp>它還提到一個叫 \u003Ca href=\"https:\u002F\u002Fcodeium.com\u002Fwindsurf\" target=\"_blank\" rel=\"noopener\">M-Query\u003C\u002Fa> 的檢索方法。目的很直接。比起單純 cosine similarity，它想抓得更準。\u003C\u002Fp>\u003Cul>\u003Cli>Embeddings：768 維\u003C\u002Fli>\u003Cli>M-Query：比單純相似度搜尋更精準\u003C\u002Fli>\u003Cli>Free：本機索引為主\u003C\u002Fli>\u003Cli>Team \u002F Enterprise：支援遠端 repo 索引\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這裡也要分清楚。Tab completion 和 Cascade 不是同一條管線。Tab 要快，通常只看游標附近、最近符號、短距離上下文。\u003C\u002Fp>\u003Cp>所以 Tab 會很即時，但也更容易看走眼。這不是它笨。是它被設計成低延遲工具，不是深度推理引擎。\u003C\u002Fp>\u003Ch2>規則、記憶、和快取不能混在一起\u003C\u002Fh2>\u003Cp>Windsurf 把靜態規則和持久記憶分開。這點我覺得很對。因為團隊規範和臨時決策，本來就不是同一種資料。\u003C\u002Fp>\u003Cp>專案規則放在 \u003Ca href=\"https:\u002F\u002Fdocs.codeium.com\u002Fwindsurf\u002Fwindsurf-rules\" target=\"_blank\" rel=\"noopener\">.windsurfrules\u003C\u002Fa>。像是 runtime、framework、ORM、test runner、logging 格式，這些都適合寫進去。\u003C\u002Fp>\u003Cp>Memories 則比較像長期筆記。像是團隊從 REST 改成 GraphQL，或某個 parser 有 ISO offset bug。這種資訊會變，適合放記憶，不適合寫死。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca href=\"https:\u002F\u002Fdocs.codeium.com\u002Fwindsurf\u002Fwindsurf-rules\" target=\"_blank\" rel=\"noopener\">.windsurfrules\u003C\u002Fa>：每次互動都會載入\u003C\u002Fli>\u003Cli>Memories：跨 session 保留的事實\u003C\u002Fli>\u003Cli>Tab：低延遲補全\u003C\u002Fli>\u003Cli>Cascade：多步驟推理與編輯\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這種切法也解釋了很多使用者的抱怨。你覺得 AI 答得怪，問題不一定在模型。可能是索引還沒跑完，或你把應該寫進 rules 的東西丟進 prompt。\u003C\u002Fp>\u003Cp>講白了，好的 AI 寫碼工具不是只看模型能力。它還看你怎麼餵資料。這跟資料工程很像。\u003C\u002Fp>\u003Ch2>價格和定位透露了什麼\u003C\u002Fh2>\u003Cp>Windsurf 的方案也很能看出定位。文章列到 Free、Pro、Team、Enterprise 幾種層級。Pro 大約是每月 15 美元。Team 和 Enterprise 大約每人每月 24 到 25 美元。\u003C\u002Fp>\u003Cp>差異不只是 context window。高階方案還有更大的索引量、更多 pinned slots、遠端 repo 索引。這些都很像給團隊用的功能，不是給單人玩票。\u003C\u002Fp>\u003Cp>如果你的前端、後端、共用 library 分在不同 repo，遠端索引就很重要。沒有這個功能，AI 只能看一小塊。那種感覺很像只拿到半張地圖。\u003C\u002Fp>\u003Cul>\u003Cli>Free：本機索引\u003C\u002Fli>\u003Cli>Pro：每月 15 美元\u003C\u002Fli>\u003Cli>Team \u002F Enterprise：每人每月約 24 到 25 美元\u003C\u002Fli>\u003Cli>高階方案：更多 context 與遠端 repo 索引\u003C\u002Fli>\u003C\u002Ful>\u003Cp>競品很多。像 \u003Ca href=\"https:\u002F\u002Fwww.cursor.com\u002F\" target=\"_blank\" rel=\"noopener\">Cursor\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fai\u002F\" target=\"_blank\" rel=\"noopener\">JetBrains AI\u003C\u002Fa>，還有 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot\" target=\"_blank\" rel=\"noopener\">GitHub Copilot\u003C\u002Fa>，都在搶 AI 寫碼場景。\u003C\u002Fp>\u003Cp>但 Windsurf 的差異點很明確。它不是只拼補全。它是在拼上下文編排。這個方向我覺得更接近真實工作流。\u003C\u002Fp>\u003Ch2>這套設計放到產業裡怎麼看\u003C\u002Fh2>\u003Cp>AI 寫碼工具這一年很像在比誰更會「懂專案」。光會生成程式碼，已經不夠了。真正有用的是，它能不能知道你現在在改哪個模組。\u003C\u002Fp>\u003Cp>這也是為什麼 indexing、rules、memories 會變重要。它們讓工具從「會講話」變成「會跟著專案走」。這對大型 codebase 特別有感。\u003C\u002Fp>\u003Cp>我也覺得這會改變團隊習慣。以前大家靠 code review 補知識。現在如果工具能先讀懂 repo，很多低階重工就能少一點。\u003C\u002Fp>\u003Cp>但前提很現實。你要先把 .codeiumignore 設好，別讓 node_modules、dist、secret 一起進索引。你也要等 indexing 跑完，不然你在測的是半成品。\u003C\u002Fp>\u003Cp>如果是新專案，我會先寫好規則檔，再讓工具跑一輪索引。這比一開始就亂問，效果好很多。\u003C\u002Fp>\u003Ch2>結尾：別把上下文當附加功能\u003C\u002Fh2>\u003Cp>Windsurf Flow 最有意思的地方，是它把上下文當主角。不是把 AI 當魔法盒，而是當一個需要資料、規則、記憶的工作夥伴。\u003C\u002Fp>\u003Cp>我猜接下來大家會更在意這件事。不是誰的模型參數多幾億，而是誰能把 repo 狀態維持得更準。這才是實際差距。\u003C\u002Fp>\u003Cp>如果你最近在挑 AI 寫碼工具，我建議你先問自己一件事。它能不能記住你剛做了什麼。答案如果是否定的，那它多半還不夠好用。\u003C\u002Fp>","Windsurf Flow 用索引、記憶與規則維持 AI 上下文。本文拆解 Cascade、Tab、RAG 與 .windsurfrules 的運作方式，並比較它和其他 AI 寫碼工具的差異。","markaicode.com","https:\u002F\u002Fmarkaicode.com\u002Fwindsurf-flow-context-engine\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775272013033-va0v.png","tools","zh","9e741ead-c3f3-4c24-936b-09a29042fe1f",[17,18,19,20,21,22,23,24],"Windsurf","Flow","Cascade","RAG","AI寫碼","上下文管理",".windsurfrules","embeddings",5,"2026-04-04T03:06:35.776413+00:00","2026-04-04T03:06:35.668+00:00",{"tags":29,"relatedLang":44,"relatedPosts":48},[30,32,34,36,37,38,40,42],{"name":17,"slug":31},"windsurf",{"name":20,"slug":33},"rag",{"name":23,"slug":35},"windsurfrules",{"name":24,"slug":24},{"name":22,"slug":22},{"name":19,"slug":39},"cascade",{"name":21,"slug":41},"ai寫碼",{"name":18,"slug":43},"flow",{"id":15,"slug":45,"title":46,"language":47},"windsurf-flow-context-engine-2026-en","How Windsurf Flow Keeps Context Alive","en",[49,55,61,67,73,79],{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"d3ec03a8-a805-4a21-9826-72a74a72b625","databricks-model-serving-llm-deploy-guide-zh","Databricks Model Serving 讓 LLM 部署變簡單","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525998117-7ur8.png","2026-06-03T22:32:51.005996+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"4dd225a8-bf6c-4768-a486-a27956c7033d","opencode-digitalocean-model-freedom-zh","OpenCode+DigitalOcean 讓你切換模型","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525116428-1q7g.png","2026-06-03T22:18:06.969758+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"4bdcf208-fb80-484e-b4b6-06af035a6df1","modulate-aws-voice-chats-into-signals-zh","Modulate 用 AWS 把語音聊天做成訊號","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780519733892-rxue.png","2026-06-03T20:48:22.697917+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"f44a28d3-2305-43de-b5fa-21217d561054","amazon-rekognition-content-moderation-filter-zh","Amazon Rekognition把審核變成過濾器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780517005409-bxfc.png","2026-06-03T20:02:57.634353+00:00",{"id":74,"slug":75,"title":76,"cover_image":77,"image_url":77,"created_at":78,"category":13},"80f6f40b-3217-45e4-acff-7b2f6d261779","codex-workspace-limits-tell-you-why-zh","Codex 讓工作區限額錯誤說人話","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780514293711-ltqa.png","2026-06-03T19:17:41.340056+00:00",{"id":80,"slug":81,"title":82,"cover_image":83,"image_url":83,"created_at":84,"category":13},"daa3d568-4bc5-4f29-aa64-225928ace9b4","book-2-turns-sneaker-drop-into-merch-zh","Book 2 把球鞋發售變成周邊系統","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780513400116-8jeh.png","2026-06-03T19:02:49.03795+00:00",[86,91,96,101,106,111,116,121,126,131],{"id":87,"slug":88,"title":89,"created_at":90},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":127,"slug":128,"title":129,"created_at":130},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":132,"slug":133,"title":134,"created_at":135},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]