作者: kerwin77106

  • Needle 2 教學:手機也能跑本地 Agent

    Needle 2 教學:手機也能跑本地 Agent

    📌 本文重點

    • Needle 2:14MB、本地可跑的 Agent LLM
    • 在手機、Pi、穿戴裝置上做工具呼叫與自動化
    • 完全本地推理,低延遲且隱私友善
    • 適合智慧家居、語音助理、穿戴與教育機器人

    用一句話講清楚:Needle 2 是一個只有 14MB、能在 200 美元以內設備上流暢跑的本地 Agent LLM,讓你在手機、樹莓派上直接做工具呼叫與智慧自動化,不用雲端大模型。

    官網與原始介紹:
    – 官方網站:https://cactuscompute.com/needle
    – Hacker News 貼文:https://news.ycombinator.com/item?id=XXXX
    – LocalLLaMA 討論:https://www.reddit.com/r/LocalLLaMA/comments/1vkqy66/needle_2_14mb_agentic_llm_for_phones_wearables/


    核心功能:小,但有 Agent 能力

    1. 超迷你體積:14MB 模型、28MB RAM 就能跑

    Needle 2 是一個 約 45M 參數、2bit 量化壓縮的語言模型,整個模型打包成一個 14MB binary,推理時只吃約 28MB 記憶體。

    💡 關鍵: Needle 2 只要約 28MB RAM 就能推理,讓「在 Pi 和手機上跑 Agent LLM」變成現實。

    它基於 Cactus 提出的 Simple Attention Networks(簡化版注意力架構),犧牲部分模型規模,換來極低的計算量和能耗。實際效能:

    • Raspberry Pi 5:約 500 tokens/sec
    • VR 裝置(Meta Quest 3S / Apple Vision Pro):400–1500 tokens/sec
    • 約 200 美元等級手機(Samsung A 系列):300–700 tokens/sec

    能做什麼行動?
    – 先檢查你的設備是否有 至少 64MB RAM 可用(實務上 Pi 5 / Android 都足夠)。
    – 決定要放在哪台機器當「本地腦袋」:家裡的 Raspberry Pi、舊 Android 手機、或一台廉價 mini PC。


    2. Agent 能力:能理解指令、做工具呼叫

    Needle 2 不是只會聊天,而是設計成 agentic LLM:

    • 能根據系統提示決定是否呼叫工具(API / 裝置控制)
    • 支援 結構化輸出(JSON 等),方便接到你的程式邏輯
    • 專門對「手機操作、智慧家居控制、機器人指令」這類任務做了優化

    在工具呼叫和「手機裝置操作」基準測試上,Needle 2 的表現與 LFM2.5(230M 參數)和 Apple Foundation Model 等,接近甚至部分場景持平,但模型體積卻小了 5–70 倍。

    💡 關鍵: Needle 2 在工具呼叫表現接近百兆參數等級模型,卻能以小 5–70 倍的體積在邊緣設備上運行。

    能做什麼行動?
    – 先想好 你要讓它控制什麼:燈光、家電、機器人、APP、自訂 API。
    – 為每個動作做一個 簡單工具介面(HTTP endpoint、MQTT topic 或 Python function),預留給 Needle 2 來呼叫。


    3. 完全本地:低延遲 + 隱私友善

    Needle 2 最大的賣點不是「厲害」,而是夠小,才能真正放在邊緣設備:

    • 所有推理都在你自己的 Pi / 手機上跑
    • 不需要把語音、對話內容傳出去
    • 本地 TTS / ASR 加上 Needle 2,就能做 完全離線的語音助理

    💡 關鍵: 結合本地 ASR/TTS 與 Needle 2,可以打造完全離線、資料不出機器的語音助理系統。

    能做什麼行動?
    – 對隱私敏感的場景(家裡、兒童教育、醫療輔助)優先考慮放 Needle 2,而不是雲端 API。
    – 若你已用 Home Assistant 或其他 IoT 中樞,把 Needle 2 放在同一台機器上,就能做到「指令 → 本地推理 → 本地控制」。


    適合誰用:4 個具體場景

    1. 離線語音 / 文字助理

    需求情境:露營、船上、地下室、或任何網路不穩的地方,你仍然想有 AI 助理幫忙查資料、整理備忘、操作裝置。

    基本架構:
    1. 麥克風 → ASR(語音轉文字)模型
    2. 文字 → Needle 2 推理(決定要回話或呼叫工具)
    3. 回覆文字 → TTS(文字轉語音)模型

    TTS 可以參考 NVIDIA 在 Hugging Face 上開源的 Magpie TTS 系列:
    – 介紹:https://huggingface.co/blog/nvidia/magpie-tts-multilingual-voice-agents
    – 多語言、延遲低,適合作為本地語音回覆模組

    能做什麼行動?
    – 選一個輕量 ASR(可用 Whisper 小模型或其它 Tiny ASR),加上 Magpie TTS + Needle 2,在 Pi 5 上做一個「離線語音盒子」。
    – 第一步先只做 文字模式:在 Pi 上跑 Needle 2 和簡單 web chat,再再加語音。


    2. 智慧家居自動化中樞(搭配 Home Assistant)

    需求情境:你希望可以自然說「我要看電影模式」,系統自己:關燈、開投影、拉窗簾,而不是自己寫一堆硬規則。

    基本 workflow:
    1. Home Assistant 收到語音或文字指令
    2. 將指令丟給 Needle 2,並提供「目前設備狀態」的上下文
    3. Needle 2 輸出一個 JSON:要執行哪些自動化(開燈、調亮度、設溫度)
    4. Home Assistant 解析 JSON,執行對應動作

    能做什麼行動?
    – 在 Home Assistant 所在的機器(常見就是 Pi)上安裝 Needle 2,做一個 簡單 HTTP 服務,接收文字、回傳 JSON。
    – 設計一個固定格式的 prompt,例如:「你只能輸出 JSON,包含 actions: [],每個 action 有 device_id 和 command」;這樣 Home Assistant 比較好接。


    3. 穿戴式小助理(手錶、VR 裝置)

    需求情境:在 VR / AR 裝置裡,要一個能即時協助你操作菜單、記錄備忘、提示下一步的輕量 AI。

    Needle 2 在 Meta Quest 3S、Apple Vision Pro 上有 400–1500 tokens/sec 的速度,足夠做即時互動:

    基本 workflow:
    1. 系統在背景持續送「使用者現在在看什麼畫面、有哪些按鈕」給 Needle 2
    2. 使用者說「幫我開上次的檔案」,Needle 2 根據 UI 狀態決定操作步驟
    3. Needle 2 輸出一系列「點擊/選擇」指令,交給裝置 API 執行

    能做什麼行動?
    – 若你在做 VR 應用,先嘗試在裝置上跑 Needle 2 的 on-device 推理(官方有 binary 版本)。
    – 先用「純文字模擬」:把 UI 狀態描述成文字給 Needle 2,看它能否產出正確的操作序列。


    4. 教育 / DIY 機器人

    需求情境:學生或 Maker 想做一台會說話、能理解「去拿紅色積木」這種指令的簡易機器人,但硬體預算有限。

    基本設計:
    1. 使用者下指令(語音或文字)
    2. Needle 2 把自然語言轉成「機器人行為計畫」:走幾步、轉幾度、夾取哪個物體
    3. 下游控制程式把計畫翻成馬達指令

    能做什麼行動?
    – 把 Needle 2 放在機器人主控板(Pi / Jetson / 廉價 SBC),透過 UART / I2C 控制下層微控制器。
    – 先做「模擬模式」:給 Needle 2 一個簡化的世界(只有桌面、幾個物品),驗證它能否產出合理計畫,再接上真實硬體。


    怎麼開始:從下載到跑出第一個回應


    1. 下載模型:GitHub / Hugging Face

    Needle 2 主入口:
    – 官方頁面:https://cactuscompute.com/needle

    通常會提供:
    – 單一 binary 檔(約 14MB):內含模型權重與推理引擎
    – 示例程式碼(Python / C / Android)

    能做什麼行動?
    – 在你的開發機(桌機或筆電)先下載並跑一次,確認能輸出文字,再移到 Raspberry Pi / Android。


    2. 在 Raspberry Pi 上安裝與推理範例

    以 Raspberry Pi 5 + Raspberry Pi OS 為例:

    # 更新系統
    sudo apt update && sudo apt upgrade -y
    
    # 安裝基本工具
    sudo apt install -y git python3 python3-pip
    
    # 下載 Needle 2 binary(以官方提供連結為準)
    wget https://cactuscompute.com/needle/needle2_pi5.bin -O needle2
    chmod +x needle2
    

    最簡單文字對話範例(假設 binary 支援 CLI 模式):

    # 啟動互動模式
    ./needle2 --prompt "你是一個住在家裡的本地助理,回答使用者問題。"
    

    若有 Python 綁定,可以像這樣:

    from needle2 import Needle
    
    agent = Needle(model_path="./needle2")
    
    response = agent.generate(
        "幫我規劃一個今天晚上的家務待辦清單,用 JSON 格式輸出。"
    )
    print(response)
    

    能做什麼行動?
    – 先在 Pi 上跑出第一個文字回覆,再加入 HTTP server(Flask / FastAPI),讓其他設備可以丟請求給 Needle 2。


    3. 在 Android 上運行 Needle 2

    官方通常會提供 Android demo app 或 AAR 庫:

    大致步驟:
    1. 在 Android Studio 建立新專案
    2. 引入 Needle 2 的 AAR 或 JNI 庫
    3. 在 MainActivity 裡初始化模型

    示意程式碼(概念):

    class MainActivity : AppCompatActivity() {
        lateinit var needle: NeedleAgent
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            needle = NeedleAgent(this, modelPath = "needle2_android.bin")
    
            findViewById<Button>(R.id.sendBtn).setOnClickListener {
                val input = findViewById<EditText>(R.id.inputText).text.toString()
                val output = needle.generate(input)
                findViewById<TextView>(R.id.outputText).text = output
            }
        }
    }
    

    能做什麼行動?
    – 先做一個「純文字聊天 app」,確認速度在你的 Android 上是能接受的,再加麥克風、TTS。對高階機種,可以往即時語音助理發展;對低價機種,先鎖定文字用途即可。


    4. 與 IoT / Home Assistant / TTS / ASR 的整合路線

    把 Needle 2 變成真正的「中樞」,你可以用以下路線:

    1. Needle 2 HTTP 服務(在 Pi / mini PC 上)
    2. 提供 /chat(純文字)
    3. 提供 /plan(輸出 JSON,給自動化用)

    4. Home Assistant / IoT 平台

    5. 建立自訂整合,將使用者指令送到 /plan
    6. 解析 JSON,執行對應燈光、插座、場景

    7. 語音層

    8. ASR:Whisper 小模型或其他輕量 ASR
    9. TTS:NVIDIA Magpie TTS(多語言、低延遲),或其他本地 TTS

    能做什麼行動?
    – 先完成「文字 → Needle 2 → JSON → Home Assistant」的閉環,自動化一個簡單場景(開燈 / 關燈)。
    – 確認穩定後,再加語音層,最後再優化 prompt、加入安全限制(例如不允許某些危險指令)。


    Needle 2 vs 其他輕量模型:怎麼選?

    若你在考慮其它本地 LLM,下面表格可以幫你快速定位(僅示意,聚焦用途):

    名稱 核心功能 免費方案 適合誰
    Needle 2 14MB agent LLM,工具呼叫、IoT 開源權重 手機、Pi、穿戴、機器人
    Ling-3.0-tiny 8B MoE,高效推理、多任務 開源權重 有 GPU / M 系列筆電的開發者
    雲端 ChatGPT / Claude 大模型、通用對話與程式輔助 API / 訂閱 不在意隱私、重視效果的使用者

    Ling-3.0-tiny 參考:https://www.reddit.com/r/LocalLLaMA/comments/1vkqwso/inclusionailing30tiny_8b_a13b_moe_hugging_face/

    簡單判斷:
    – 只有 Pi / 低價手機 → 用 Needle 2 當主力
    – 有不錯 GPU / MacBook M 系列 → 可以用 Ling-3.0-tiny 做桌面助理,Needle 2 留給 IoT


    收尾:下一步行動清單

    如果你想現在就動手,建議照這個順序來:

    1. 去 https://cactuscompute.com/needle 下載 Needle 2,在桌機跑一次簡單對話
    2. 在 Raspberry Pi 5 上部署 Needle 2,做出一個最簡單的 HTTP /chat API
    3. 把家裡一個設備(例如客廳燈)接到 Home Assistant,用 Needle 2 產生 JSON 操作指令
    4. 若你有時間,再加上 ASR + Magpie TTS,讓整套系統能用語音控制

    做到第 3 步,你就已經擁有一個「完全集中在家裡跑、本地決策的智慧家居 Agent」。之後要擴充,只是慢慢多接幾個工具而已。


    🚀 你現在可以做的事

    • 立刻前往 Needle 官方頁面 下載 binary,先在桌機跑一個簡單對話測試
    • 在 Raspberry Pi 上部署 Needle 2,包一層簡單 HTTP /chat 或 /plan API 讓家中設備可呼叫
    • 選一個場景(客廳燈或一台機器人),實作「文字指令 → Needle 2 → JSON 計畫 → 實際動作」的完整閉環
  • Claude Code 自動模式:開發者必玩實測

    Claude Code 自動模式:開發者必玩實測

    📌 本文重點

    • Auto 模式會自動判斷你在寫新功能、改舊程式或除錯
    • 能整合看錯誤、改程式、再執行的完整 workflow
    • 適合用來快速理解專案結構並分階段重構
    • Claude Code 是雲端 AI pair programmer,可搭配既有 IDE / Git

    Claude Code 的 Auto 模式,就是一個會自己判斷你現在在寫新功能、改舊程式還是除錯,主動選工具幫你的 AI 助手,讓你少切視窗、多寫程式。


    一句話先懂:Auto 模式在解決什麼事?

    一般用 AI 寫程式,你要自己決定「現在是要叫它生程式碼、還是幫我跑測試、還是查錯?」;Claude Code 的 Auto 模式直接幫你讀懂上下文與指令,自己決定要:

    • 生成程式碼(Code generation)
    • 讀檔案、理解專案結構
    • 執行程式或測試來 debug
    • 對現有程式碼做重構與優化

    你只要「像對同事講話」描述需求,它會自己選對功能、跑對步驟。

    Auto 模式介紹原文(英):https://claude.com/blog/auto-mode-default-in-claude-code


    核心功能:你可以拿它來做什麼?

    1. 程式碼生成:從需求到檔案結構,一次到位

    Auto 模式不只會產生一個函式,而是會:

    1. 根據你的描述設計檔案與目錄結構
    2. 建立/修改多個檔案
    3. 必要時幫你寫簡單測試或使用說明

    實際用法:

    在 Claude Code 裡直接丟一句:

    幫我用 Node.js + Express 寫一個簡單的 REST API,有 /users CRUD,資料先用記憶體暫存就好,請建立基本專案結構,包含入口 index.js 和路由檔。

    Auto 模式會:

    • 自動建立 index.js、routes/users.js 等檔案草稿
    • 解釋怎麼啟動 server
    • 提出可以加測試或 logging 的建議(你可以選要不要做)

    你可以立刻把這些檔案複製到本機專案,或之後改用 API / IDE 插件串接。

    💡 關鍵: Auto 模式會從需求一路幫你拉到完整檔案結構與啟動方式,減少你查 boilerplate 的時間


    2. 錯誤修正:看 log、改程式、再跑一次

    Auto 模式最大的差別是:它能整合「看錯誤 +改程式+再執行」的流程,而不是只回你「原因可能是什麼」。

    基本 workflow:

    1. 貼上錯誤訊息或測試失敗 log
    2. 說你想要的結果
    3. 讓 Auto 模式決定哪個檔案要改、改什麼

    範例 prompt:

    這是 pytest 的錯誤輸出,test_calculate_price 一直 fail。請幫我找出原因並修改對的檔案,然後給我修正後的程式碼片段就好。

    Auto 模式會:

    • 根據 stack trace 推斷是哪個函式有問題
    • 在對應檔案裡標出問題區塊,提出修改
    • 說明為什麼這樣改可以解決測試失敗

    如果你在 Claude Code 裡有上傳整個 repo,它還能 cross-file 看「其他地方怎麼用這個函式」,避免修一個地方壞一片。


    3. 重構與優化:不只是「換個寫法」

    Auto 模式的重構能力,不只做到「把程式碼變漂亮」,而是會考慮:

    • 函式命名與責任分界
    • 檔案拆分與模組化
    • 重複邏輯抽取
    • 加上必要的 docstring 或註解

    實際用法:

    我這個檔案功能太多了,請你先幫我讀完整檔,整理現在的功能清單,再給一個重構計畫,最後一步一步修改程式碼(可以分成幾個 commit 的建議)。

    你可以照它的「重構計畫」拆成多次對話,逐步套用變更,避免一次大改爆掉。


    4. 多檔案理解:真正懂你的專案結構

    Claude Code 可以讓你上傳整個專案(zip 或接 repo),Auto 模式就能:

    • 建立專案索引(檔案、目錄、framework)
    • 在回答時引用相關檔案片段
    • 針對特定模組做修改而不干擾其他部分

    建議使用方式:

    • Side project:直接把整個專案 zip 上去
    • 公司專案:選擇跟要改的功能相關的子資料夾(避免洩漏敏感資訊)

    之後問問題時,多加一句:

    以上是整個 backend/ 資料夾,請先幫我看懂架構,再建議要改哪個檔案比較安全。


    適合誰用?4 個常見場景 workflow

    1. Side project:快速起專案 + 小步調整

    目標: 少查 boilerplate,多花時間在核心功能。

    建議 workflow:

    1. 在 Claude Code 開一個新 Project,upload 空白或半成品 repo
    2. 用 Auto 模式下指令:
    3. 「幫我補上 basic auth middleware」
    4. 「加一個簡單的設定檔,讓環境變數可以統一管理」
    5. 每次改完都讓它幫你檢查:
    6. 「請確認這個改動不會影響現有路由」

    2. LeetCode / 刷題:不只拿答案,而是練思路

    目標: 用 Claude 當「教練」,不是答案機器。

    建議用法:

    1. 先自己寫出初版解法,貼上程式碼
    2. 對 Auto 模式說:

    這題是 LeetCode [題號],我現在這個解法是 O(n^2),你先不要直接給最優解,請先用中文講解我這個解法的缺點,再給我 1~2 個提示,讓我自己改成更好的做法。

    1. 如果真的卡住再說:

    好,我卡住了,請給我最優解程式碼,並註解標註關鍵步驟。

    💡 關鍵: 明講「先不要給最優解」,能把 Auto 模式變成教練角色,幫你訓練思路而不是只抄答案


    3. 公司專案 debug:看 log + 看多檔案一次搞定

    目標: 把時間留在理解業務邏輯,而不是瞎猜錯在哪。

    安全建議:不要上傳含敏感資料的設定檔(例如 .env、金鑰)。

    實際流程:

    1. 上傳與出錯功能相關的資料夾(例如 services/ + routes/)
    2. 貼上 production log(可匿名化部分內容)
    3. 指令範例:

    這個錯誤只會在特定客戶出現,請幫我看 log 和程式碼,推論最可能的 2–3 個原因,並給我修正建議,請避免大改架構,先以最小修補為主。

    Auto 模式會:

    • 依 log 指到對應函式
    • 確認相關呼叫鏈(跨檔案)
    • 提出幾種修法(你可以挑最保守的)

    4. 重構舊程式碼:從「先讀懂」到「分階段改」

    目標: 讓 AI 先幫你梳理舊專案,再陪你一起拆成小改動。

    建議 prompt 流程:

    1. 先丟整個舊模組:

    這是 5 年前寫的舊模組,請幫我用中文整理:主要功能、依賴關係、明顯的技術債。

    1. 再要求重構計畫:

    請幫我規劃三個階段的重構:第一階段只做安全重構(不改 public API),第二階段開始調整資料結構,第三階段再考慮換框架。

    1. 每個階段再開新對話,讓 Auto 模式只針對相關檔案提出修改建議。

    怎麼開始用 Claude Code Auto 模式?

    1. 入口在哪?怎麼開啟 Auto 模式

    1. 進入 Claude 網站:https://claude.com
    2. 登入帳號(目前有免費層級)
    3. 左側選單點 Claude Code
    4. 建立一個新的 Code project
    5. Auto 模式現在是預設啟用,你在對話框直接輸入需求即可

    在 Auto 模式下,你會看到它自動在右側「檔案區」建立或修改檔案,並標示變更。

    💡 關鍵: Auto 模式預設啟用,加上有免費層級,讓你幾乎沒有門檻就能開始實驗這套 workflow


    2. 上傳專案與基本設定

    上傳方式:

    • 直接拖曳 zip 檔到 Claude Code 頁面
    • 或選擇多個檔案 / 資料夾上傳

    實際設定建議:

    上傳完第一件事,先講明規則:

    這個專案是 Next.js + Prisma,請你之後所有建議都遵守現有架構與命名規則,不要改動資料庫 schema,除非我有明講可以改。

    這可以避免 Auto 模式「好心重構」結果打壞你既有設計。


    3. Prompt 寫法:幾個好用範例

    你可以用這幾個模板直接改關鍵字使用:

    1. 加新功能

    現在的程式已經有 [功能 A],我想加一個 [功能 B]。請先說明你打算改哪些檔案,然後一步一步給我要新增的程式碼片段,避免一次大改。

    1. 找 bug

    這裡是錯誤 log + 相關程式碼。請幫我推論可能原因,優先從最小修補開始,並標出你建議修改的行數與內容。

    1. 重構

    請先用中文說明這個檔案目前在專案裡的角色,再幫我做「不改行為」的重構:只優化可讀性與結構,不要改動任何輸入輸出格式。


    4. 和現有 IDE / Repo 搭配的方式

    目前 Claude Code 本身是「雲端工作區」,典型搭配方式:

    1. Repo 主控權在 Git
    2. 在本機 / 公司標準 Git flow 照常開分支
    3. 把要改的檔案複製到 Claude Code(或壓成 zip 上傳)
    4. 讓 Auto 模式生成 /修改程式碼
    5. 再把修改貼回本機,自己下 commit

    6. 與 IDE 搭配的建議

    7. 在 IDE 裡跑程式與測試(確保環境一致)
    8. Claude Code 負責「看多檔案、出建議」
    9. 你在 IDE 裡套用變更並做最後檢查

    這樣你不用完全換工作環境,只是多一個「雲端 AI pair programmer」,專門處理跨檔案的理解與改動建議。


    延伸比較:Claude Code 跟其他工具怎麼選?

    如果你也在看 Muse Code 或 Codex CLI,可以參考 Towards AI 的架構比較文:
    https://pub.towardsai.net/muse-code-vs-claude-code-vs-codex-cli-7-architecture-differences-worth-evaluating-428c935997f2

    以下是簡化後的使用情境比較:

    名稱 核心功能 免費方案 適合誰
    Claude Code 雲端對話式 Auto 模式、讀多檔案 有免費層級 想用瀏覽器做 code review、重構
    Muse Code 偏 IDE 插件、即時補全 依產品方案而定 喜歡在原本 IDE 即時輔助
    Codex CLI 命令列整合、腳本自動化 視使用方案而定 愛用 terminal、寫自動化腳本

    如果你常在瀏覽器看 PR、或需要快速理解陌生 repo,Claude Code + Auto 模式會特別合用;要深度整合 IDE 再考慮搭配其他工具。


    小結:先讓 Auto 模式幫你「看懂專案」,再叫它出手

    建議第一次使用 Claude Code Auto 模式時,不要直接叫它改一大堆,而是:

    1. 先上傳你要改的部分專案
    2. 叫它用中文整理架構與風格
    3. 再從小需求開始讓它出手(修一個 bug、重構一個檔案)

    習慣這種「先理解、再修改」的工作流後,你會發現 Auto 模式最適合拿來處理那些「自己看得懂但看很久」的問題,把時間留給真正需要你決策的設計與產品細節。


    🚀 你現在可以做的事

    • 到 https://claude.com 開一個新的 Claude Code 專案,試著用 Auto 模式生成一個小型 REST API
    • 把你現在一個正在 debug 的 side project 壓成 zip 上傳,請 Auto 模式依 log 幫你找出 2–3 個可能原因
    • 挑一個舊專案模組,上傳後讓 Auto 模式先用中文整理架構,照文中「三階段重構」流程實驗一次
  • 祖克柏的開源超智能:誰來扛風險?

    祖克柏的開源超智能:誰來扛風險?

    📌 本文重點

    • Meta 用開源超智能換算力與生態控制權
    • 能力民主化,但風險與責任被轉嫁到使用者
    • 開源強代理模型將成為資安與監管新戰場

    我的立場很簡單:Meta 的「開源超智能」確實在技術上解放了全球開發者,但也同時把安全、版權與監管風險,推給了整個生態。這不是單純的「開源 vs 封閉」價值選擇,而是一場誰掌握算力、誰承擔代價的權力重分配。


    一、祖克柏的「人人擁有超智能」敘事,背後是算力拍賣與快速蒸餾

    從 Mark Zuckerberg 那篇超過 6500 字的宣言《The Future is for Everyone》來看,他塑造的是一個極具感染力的故事:

    每個人都能擁有一個在自己設備上運行的「個人超智能」,而不是向幾家雲端巨頭租用智慧。

    Muse Glimmer 就是這個願景的技術樣板:

    • 30B 開放權重、多模態、Agent 能力
    • 經量化後在單張 RTX 3090(約 22–23GB VRAM)上即可跑滿 256k 長上下文、多模態投影與草稿推理
    • Apache 2.0 授權,商用友好、限制極少

    💡 關鍵: 單張 RTX 3090 即可跑滿 256k 長上下文的 30B 模型,象徵 Frontier 級能力首次真正進入消費級硬體可及範圍。

    表面上,這是對 OpenAI、Anthropic 等封閉路線的直接反擊,宣稱「真正的 AI 民主化」要讓大家能自己跑模型、自己改權重。但如果把宣言和 The Decoder 報導放在一起看,就會看到另一層更務實的賭注:

    1. 快速蒸餾他家 Frontier Model:祖克柏公開為「蒸餾其他實驗室模型」辯護,主張減少對美國實驗室的限制,以防「被中國超車」。這是一種高強度能力競賽邏輯,而不是單純的技術開放情懷。
    2. 「賣算力」與拍賣模式:Meta 構想的是透過拍賣算力來變現 AI 基礎設施,開源權重吸引生態繁榮,最後回到算力與平台的集中控制。
    3. 少審查、快迭代:在宣言中,他明確把 OpenAI/Anthropic 的安全審查描繪為拖慢美國競爭力的阻力,主張更少限制、更快迭代——這聽起來像是「民主化」,實際上是一種風險外部化:能力給大家、風險由大家自己收拾。

    結論:祖克柏的主賭注不是「人人都擁有智慧」,而是「人人都幫我驗證與擴散智慧」,同時由 Meta 掌握算力拍賣的閘門。開源是管道,不是目的。


    二、封閉審慎 vs 去中心化本地模型:Meta 要搶的是敘事主導權

    過去一年,AI 路線正在形成三極:

    • 封閉審慎派:如 OpenAI、Anthropic,透過 API 供給能力,嚴格管控模型更新與功能下放,採取高強度安全與政策配套(使用條款、紅隊測試、風險披露)。
    • 本地去中心化派:像 LocalLLaMA 社群、各種開源模型聯盟,強調「不用信任雲端巨頭,自己在機器上跑 Frontier 級能力」。
    • 混合策略派:既做雲端平台,又大量釋出開源權重,讓自己變成生態的「公共基礎設施」。這就是 Meta 想扮演的位置。

    Muse Glimmer 的關鍵不是性能,而是位置:

    • 開放權重、多模態、Agent 能力,直接對準本地 LLM 生態;
    • 消費級 GPU 即可跑得動,象徵「你不用再被封閉巨頭綁在 API 上」;
    • 同時由 Meta Superintelligence Labs 掌舵,宣稱「我們是那個把超智能帶給所有人的人」。

    但如果仔細對比路線,就會發現 Meta 的卡位邏輯:

    1. 輸出能力,不輸出責任:OpenAI 把模型封在 API 裡,是為了讓安全團隊能控制功能釋出速度與使用範圍;Meta 則把權重整包拋給社群,在精神上是「自由」,在責任上則是「你自己看著辦」。
    2. 借用去中心化敘事,維持基建集中化:Muse Glimmer 能在本地跑,卻仍需要大量上游算力訓練;祖克柏的算力拍賣構想,讓 Meta 成為超智能時代的 GPU 央行。
    3. 對政策場景的前置佈局:當 EU AI Act、德州負責任 AI 基建等監管開始要求「可控、可審計」時,Meta 可以說:「我們只是提供開源工具,真正的風險在下游使用者與部署方。」把自己推向技術供應鏈的陰影地帶。

    結論:Meta 把開源、去中心化敘事當作政治資產,用來對抗封閉巨頭的「安全論述」,同時為自己爭取更寬鬆的監管空間。

    💡 關鍵: 開源敘事在這裡不是技術哲學,而是用來換取更寬鬆監管與更大話語權的政治資產。


    三、開源強代理模型的新壓力:資安、隱私與監管都被「甩鍋」給生態

    把 Muse Glimmer 這類強代理開源模型放進現實系統,你會看到一整串未被正面回答的問題。

    1. 資安:Agent 可以幫你工作,也可以幫攻擊者找門

    Glimmer 的設計就是「always-on local agent workflow」——永遠在線的本地代理。這在資安場景裡意味著:

    • Agent 可以主動呼叫工具、操作檔案系統、連線 API;
    • 一旦 prompt injection 或插件被攻破,攻擊者就多了一個會自己幫忙探索系統的「智能助手」。

    有研究已經示範:當 AI Agent 被植入惡意指令後,可以在企業內部自動尋找脆弱服務(某種意義上的「gym 被 agent 入侵」場景),把傳統資安防線轉化為持續對抗一個懂得上下文、能自我迭代的攻擊工具。在開源代理模型更易取得、功能更完整的世界裡,這種風險只會常態化。

    2. 隱私:本地 != 安全,介面與插件才是最大破口

    Towards AI 指出,本地模型並不自動等於隱私保障:

    • UI 遙測、錯誤上報、第三方插件權限,都可能在你以為「一切都在筆電裡」時,默默把資料送出;
    • 現代 Agent 框架本身就鼓勵連結外部工具(CRM、雲存儲、郵件系統),形成複雜的資料流。

    在 Muse Glimmer 這樣的模型語境下,「在 RTX 3090 上跑得動」容易被市場誤讀成「資料不用出公司就安全」,但實際上你只是把雲端風險,換成本地整合風險——而少了封閉平台那層集中式審計能力。

    3. 監管:EU AI Act 和地方負責任 AI 基建,會回頭找誰算帳?

    EU AI Act 已經實體化為「罰款是真的、義務具體的」法規,包含:

    • 數據來源與版權透明度
    • 生成內容標示與責任歸屬
    • 風險評估與持續監控

    當你用 Muse Glimmer 做客服、內容生成或決策支持,你仍必須對上述義務負責,無法以「模型是開源的、是社群做的」為理由規避。而在 Import AI 討論的各種政策建議裡,也開始出現對算力、模型開放程度的調控構想——開源不再是「不受管」,而是「需要更精細分類的管」。

    問題在於:Meta 並沒有提供與其能力相稱的安全、版權與合規框架,只提供了權重。風險與合規成本自然就落在所有使用者與下游供應商身上。

    💡 關鍵: 模型越強、越開源,安全與合規成本越往下游轉嫁,真正被壓力測試的會是企業與整合商,而不是模型供應者本身。


    結語:別被「民主化」口號感動,要主動談清楚安全邊界與監管配套

    對開發者、中小企業與技術決策者來說,Muse Glimmer 與開源超智能既是禮物,也是考題:

    • 在技術面,它讓你在單張消費級 GPU 上運行 Frontier 級 Agent,大幅降低原型設計與私有部署的門檻,這值得肯定,也必須善用。
    • 在風險面,它把 資安、隱私、版權與合規的責任全部丟回到使用端與整合商,任何一個沒設計好的 Agent 流程、沒審計的插件,都可能變成你自己的「超智能災難」。

    我的具體建議是:

    1. 技術選型時,把「安全與合規成本」當成一級考量:不是只問「能不能跑在 3090 上」,要問「誰來寫風險評估、誰來負責 EU AI Act 報告」。
    2. 要求大型開源供應者給出清楚的安全邊界文件:包括推薦的 Agent 權限模型、工具沙箱範式、合規樣板,而不是只有權重與 benchmark。開源也必須開源責任框架。
    3. 產業聯盟與監管機構要把「開源超智能」納入政策討論核心:不要只盯著封閉巨頭的 API 行為,也要問:開源強代理在公共基礎設施裡的角色是什麼?算力拍賣要不要被視為關鍵基建?

    祖克柏的開源超智能不是單純的好或壞,而是一次權力重新分配的提案:誰來掌控超級算力,誰來承擔系統性風險。如果產業只停留在「民主化」的感動,而不主動要求安全邊界與監管配套,最後買單的只會是那些以為自己「擁有智慧」的小玩家——卻在風險來臨時,發現自己只是這場豪賭裡的散戶。

    🚀 你現在可以做的事

    • 盤點你現有或規劃中的 Agent 系統,列出所有工具權限與資料流,寫一版最小權限與風險評估草案
    • 檢視你關注的開源模型(例如 Muse Glimmer)的官方文件,整理出已有與缺失的安全與合規指引清單
    • 追蹤 EU AI Act 與本地相關 AI 法規,將「開源強代理」納入公司內部合規與技術標準討論議程
  • MCP 無狀態化後的企業 Agent 新架構

    MCP 無狀態化後的企業 Agent 新架構

    📌 本文重點

    • MCP 無狀態後,會話管理回到 Agent / Orchestrator
    • ACL、租戶隔離集中在 MCP Gateway 控制
    • Loop / graph / memory 拉升到框架層,工具端保持純 stateless

    MCP 改成無狀態(stateless)之後,一個很直接的好處是:你不必再在工具層維護「會話」。會話管理、記憶、ACL、租戶隔離,全部拉回到 Agent 平台或中間層控管。

    好處是:

    • 工具 server 更單純、可橫向擴展、可獨立部署與審核
    • 可觀察性與安全治理集中在一層,易於做 ADR 類型的觀察與基準測試
    • 任何「狀態」錯誤不會被藏在 MCP server 裡,而是明確暴露在 orchestration 層

    以下用一個典型架構:前端 Orchestrator + MCP Gateway + 多個工具 server,拆解你需要怎麼重構。


    重點說明:MCP 無狀態後的三個核心變更

    1. 會話被砍掉:改用 request-scoped metadata

    新版 MCP 刪除 session / conversation state,協議只管:

    • 一次呼叫的 工具名稱(tool)、參數(args)
    • 一組可選的 metadata / headers

    上下文與記憶不再由 MCP 持有,而是由:

    • Client / Orchestrator:維護任務 graph、loop、記憶
    • 中間層(MCP Gateway):附加租戶、風險標籤、追蹤 id
    • 工具端:只在必要時讀取 metadata,自己不產生「隱藏狀態」

    你要把原本塞在 MCP session 內的資訊,改寫成 每個 request 都帶的 metadata(如:tenant_id, agent_task_id, risk_level)。

    💡 關鍵: MCP 不再維護任何會話狀態,所有上下文都改成「每次請求顯式帶 metadata」,讓狀態集中在可治理的 Orchestrator 層。

    2. Stateless MCP 上做 ACL 與租戶隔離

    沒有 session,不代表不能做授權。反而更乾淨:

    • 每個 MCP request 都帶 caller identity(user / agent / tenant)
    • Gateway 根據 metadata 做 per-tool ACL,決定能不能 call 該工具
    • 工具 server 自身只 trust Gateway 轉給它的 identity,不自己管理 session

    典型做法是在 MCP 層定義:

    • x-tenant-id:租戶隔離
    • x-agent-id:是哪個 agent runtime/workflow
    • x-permissions:如 read:db,write:file,由 Gateway 檢查是否符合 policy

    3. Loop / Graph / Memory 抬升到框架層

    之前很多人把:

    • 迴圈控制(while loop)
    • 任務 graph / sub-agent 派工
    • 記憶(conversation history / RAG context)

    塞在 MCP server 裡,以為「工具端順便幫我記住上下文」。無狀態之後,你必須把這些搬到 Agent runtime / orchestration framework:

    • Loop:由 Orchestrator 控制是否繼續呼叫 MCP 工具
    • Graph:用 DAG / state machine(例如:Prefect、Temporal、自建 FSM)管理多步驟流程
    • Memory:由獨立記憶服務(Vector DB / KV store)持有,MCP 工具只接收明確的 context(如 docs_chunk_ids)

    這對專案的實際好處是:所有高風險邏輯集中在可治理的層,可以對 loop 數量、工具調用頻率、記憶寫入/讀取做 FinOps、審計與基準測試,而不是到處分散在工具端。

    💡 關鍵: Loop、graph 與 memory 全部拉回 Orchestrator,才能精準控管成本、風險與審計路徑。


    實作範例:用 request metadata 重建「會話」與治理

    以下用一個簡化範例示範:

    • 前端 Orchestrator(可能是自家 Agent runtime)
    • MCP Gateway(實際對接工具 server)
    • 多個 stateless MCP 工具

    1. Orchestrator:每次工具呼叫都帶 context_id / tenant

    # orchestrator.py
    import uuid
    from mcp_client import MCPClient  # 假設有這個 client SDK
    
    client = MCPClient(base_url="https://mcp-gateway.internal")
    
    async def run_agent_task(user_id: str, tenant_id: str, task_input: str):
        task_id = str(uuid.uuid4())
    
        # 這裡的 memory / graph 在 orchestrator 層
        memory_context = load_memory_for_user(user_id)
        workflow_state = init_workflow_state(task_input, memory_context)
    
        while not workflow_state.done:
            tool_request = workflow_state.next_tool_call()
    
            response = await client.call_tool(
                tool_name=tool_request.name,
                args=tool_request.args,
                headers={
                    "x-tenant-id": tenant_id,
                    "x-user-id": user_id,
                    "x-agent-task-id": task_id,
                    "x-workflow-step": str(workflow_state.step),
                    "x-risk-level": "normal",
                },
            )
    
            workflow_state = workflow_state.apply_tool_result(response)
            persist_step_log(task_id, workflow_state, response)
    
        save_memory_for_user(user_id, workflow_state.memory_delta)
        return workflow_state.final_output
    

    重點:

    • 沒有 session id,只有 task_id + step,所有狀態在 orchestrator 層
    • 每個 request 都有完整的治理 metadata,可給 ADR 類工具做觀察與威脅檢測

    💡 關鍵: 用 task_id + step 取代 session,把整個任務完整還原成可審計的步驟序列。

    2. MCP Gateway:per-tool ACL + 租戶隔離

    // mcp-gateway.ts (Node/TypeScript pseudo-code)
    import { verifyToken, checkAclPolicy } from "./auth";
    import { routeToToolServer } from "./router";
    
    async function handleMcpRequest(req, res) {
      const { toolName, args } = req.body;
      const headers = req.headers;
    
      const token = headers["authorization"];
      const identity = await verifyToken(token); // 解析 user/agent/tenant
    
      const tenantId = headers["x-tenant-id"] ?? identity.tenantId;
      const agentTaskId = headers["x-agent-task-id"];
    
      // ACL 檢查:哪些工具可被哪個 identity 使用
      const allowed = await checkAclPolicy({
        identity,
        tenantId,
        toolName,
      });
      if (!allowed) {
        return res.status(403).json({ error: "tool_not_allowed" });
      }
    
      // 建立統一的 observability context
      const observabilityContext = {
        tenantId,
        userId: identity.userId,
        agentId: identity.agentId,
        agentTaskId,
        toolName,
        timestamp: Date.now(),
        requestId: generateRequestId(),
      };
    
      logRequest(observabilityContext, args); // 提供給 ADR / SIEM
    
      const toolResponse = await routeToToolServer(toolName, args, {
        "x-tenant-id": tenantId,
        "x-agent-task-id": agentTaskId,
        "x-request-id": observabilityContext.requestId,
      });
    
      logResponse(observabilityContext, toolResponse);
      return res.json(toolResponse);
    }
    

    重點:

    • ACL 與租戶隔離在 Gateway 層,而不是工具 server 內部
    • observability context(requestId, agentTaskId, toolName)可以直接餵給 ADR 類似的威脅檢測/基準測試

    3. MCP 工具 server:純 stateless,禁止偷塞 state

    # tools/db_query_server.py
    from fastapi import FastAPI, Header
    
    app = FastAPI()
    
    @app.post("/tools/db_query")
    async def db_query(query: str, x_tenant_id: str = Header(...), x_agent_task_id: str = Header(None)):
        # 僅用 tenant_id 做資料邊界控制,不維護會話
        if not is_tenant_allowed_to_query(x_tenant_id, query):
            return {"error": "tenant_query_not_allowed"}
    
        result = execute_query_for_tenant(query, x_tenant_id)
    
        # 嚴禁在 server 內部開 global session dict
        return {
            "rows": result,
            "meta": {
                "agent_task_id": x_agent_task_id,
            },
        }
    

    重點:

    • 工具 server 僅依賴 headers 決定授權與資料範圍
    • 不建議在工具 server 開 global cache 作為「會話記憶」,避免破壞 stateless 模型與可觀察性

    建議與注意事項:遷移時常見坑與最佳實踐

    1. Server 假設有持久連線 / session

    舊版 MCP 或自家協定常常:

    • 用 WebSocket / 長連線維護 session
    • 把 user state 放在 in-memory dict(例如 sessions[user_id])

    在改成 stateless MCP 時:

    • 所有 state 都要變成可持久化的 store(DB / Redis / Vector DB),由 Orchestrator 控制
    • 工具端只讀取 request headers,不再假設「同一連線就是同一會話」

    實務建議:

    • 先畫出「哪些資料被當作 session state 使用」
    • 將它們搬到 明確的 Memory API 上(例如:load_memory(user_id) / save_memory(user_id, delta))

    2. 工具端偷塞 state,導致 log 無法重建任務路徑

    常見情境:

    • 工具 server 依賴 local cache / global dict 記住「上一次呼叫結果」
    • log 只有 request/response,但沒記錄「為什麼 agent 會做出這個決策」

    在 MCP 無狀態模型下,要做到可觀察性與安全基準測試(ADR 類工具),你需要:

    • 每個 step 的決策都由 Orchestrator log(含 prompt, context, tool call)
    • 工具 response 只是一個 pure function 輸出,不混入隱藏狀態

    實務建議:

    • 強制所有工具 server 通過 MCP Gateway,Gateway 追加 x-request-id,並集中 log
    • 在 Orchestrator 保存 完整任務 graph,例如:
    {
      "agent_task_id": "task-123",
      "steps": [
        {"step": 1, "tool": "search_docs", "request_id": "r-1"},
        {"step": 2, "tool": "db_query", "request_id": "r-2"}
      ]
    }
    

    有了這些資料,像 Uber 的 ADR 就可以做:

    • 單一任務的威脅路徑分析(哪一步嘗試讀敏感資料)
    • 持續的安全基準測試(某種輸入是否總是觸發高風險工具)

    3. Loop / Graph / Memory 不要塞在 MCP 裡

    受「while loop 就是 agent」的影響,很多人以前:

    • 在 MCP server 裡面直接實作 while loop 反覆 call LLM
    • 把 graph / workflow 寫在工具端 code 裡

    這在無狀態更新後會變成技術負債:

    • 難以在平台層做 FinOps(每個 loop 要花多少 token / 工具成本)
    • 難以對 loop 數量與深度做 安全限制(避免無限迴圈或風險疊加)

    最佳實踐:

    • Loop:在 Orchestrator(或專門的 agent runtime)層,用明確的限制,如 max_steps, max_cost
    • Graph:用可視化、可配置的 workflow 定義(YAML / JSON / DSL),不寫死在 MCP 工具程式碼裡
    • Memory:獨立成一個工具或服務(如 memory.read, memory.write),由 ACL 管控誰能讀寫

    4. 安全與治理:利用 stateless 做更強的控制平面

    MCP 無狀態其實大幅簡化了 企業級治理:

    • 所有工具呼叫都經過同一層 Gateway,可以:
    • 限制每個 agent / tenant 的 工具配額與成本
    • 對特定工具設高風險標籤,必須經過額外審核或輸入過濾
    • Observability context(tenantId, agentTaskId, toolName, requestId)可以直接餵給:
    • ADR / SIEM / 自家監控平台,做威脅檢測與基準測試

    實務上,你可以定義一個簡單的 治理 schema:

    # governance.yaml
    agents:
      finance_report_agent:
        max_tool_calls: 50
        allowed_tools:
          - db_read_only
          - email_notify
        risk_budget: medium
    
    tools:
      db_read_only:
        risk_level: high
        requires_human_review: true
    

    然後在 Orchestrator + MCP Gateway 共同實作:

    • 在 loop 前檢查 max_tool_calls
    • Gateway 看到 risk_level: high 時,會把這些 call 寫入特別的安全 log,供 ADR 分析

    結論

    MCP 無狀態化的關鍵結論:

    • 會話狀態不再是協議責任,而是 Agent 平台責任
    • 上下文與記憶要由 client / orchestration / memory 工具明確持有
    • stateless 帶來更乾淨的可觀察性與安全治理模型,能與 ADR 這類工具自然整合

    如果你的企業 Agent 平台還在仰賴 MCP session 或工具端隱藏 state,現在是重構的好時機:把 loop、graph、memory、ACL、租戶隔離全部拉回到框架層,留給 MCP 的只有乾淨、可審核、可擴展的工具呼叫。

    🚀 你現在可以做的事

    • 審視現有 MCP / 工具 server,列出所有依賴 session 或 in-memory state 的地方,規劃改成 metadata + Orchestrator state
    • 為 MCP Gateway 增加 x-tenant-id、x-agent-task-id、x-request-id 等 headers,並接入現有的 ADR / SIEM / 監控系統
    • 設計一份 governance.yaml 或類似設定檔,為主要 agent 定義 max_tool_calls、allowed_tools 與 risk_budget,並在 Orchestrator 中強制執行
  • Kitesurf:讓 AI 真的會自己上網的瀏覽器

    Kitesurf:讓 AI 真的會自己上網的瀏覽器

    📌 本文重點

    • Kitesurf 是專給 AI 用的雲端 headless 瀏覽器
    • 可與 Cloudflare Workers 深度整合做自動化腳本
    • 很適合把重複的網頁操作交給 Agent 執行

    一句話先說清楚:Kitesurf 是一個給 AI 用的雲端 headless 瀏覽器,讓你可以把「打開網頁、點按鈕、抓資料」這種重複操作,交給 Agent 自己跑。

    官方介紹與新聞:
    – Kitesurf 技術新聞報導(TechCrunch):https://techcrunch.com/2026/08/07/cloudflare-launches-kitesurf-a-browser-built-for-ai-agents/
    – Cloudflare 產品首頁(可留意 Kitesurf 區塊):https://www.cloudflare.com/


    核心功能:給 Agent 用的瀏覽器長什麼樣

    1. 雲端托管,資源比傳統瀏覽器省

    一般你要讓 AI 幫你「用瀏覽器」,有兩種常見做法:

    • 在本機或伺服器跑一個 Chrome + Puppeteer / Playwright
    • 用第三方爬蟲平台代抓資料

    問題在於:瀏覽器超吃資源,一開幾十個 tab,CPU、RAM 都會爆;而且部署、維護都很麻煩。

    Kitesurf 的做法:

    • 在 Cloudflare 雲端托管瀏覽器實例,不用自己維護機器
    • 專門為「自動化任務」優化,比 Chromium 跑同樣任務用更少資源(來源:TechCrunch 報導)

    💡 關鍵: 把瀏覽器搬上 Cloudflare,能在不爆 CPU/RAM 的前提下,大量並行跑 Agent 任務。

    你可以直接採取的行動:

    1. 先盤點手上「需要瀏覽器、但完全不需要人眼看」的任務,例如每天打開 10 個網站抓價格、每週登入後台匯出報表。
    2. 把這些任務列成清單,準備遷移到 Kitesurf(後面教你怎麼寫最小範例)。

    2. 為 AI agent 打好的控制介面:DOM、截圖、表單填寫

    Kitesurf 的定位不是「給人看的瀏覽器」,而是給程式和 LLM 控制的瀏覽器實例。

    實際可用的能力大致包含:

    • 打開網址、導頁(類似 page.goto(url))
    • DOM 操作與查詢(抓特定元素文字、點按鈕、選擇下拉選單)
    • 截圖與元素截圖(讓 LLM 用圖像理解頁面)
    • 表單填寫與送出(登入、填問卷、提交後台表單)

    這對你有什麼實作上的意義?

    • 可以把「在某個 SaaS 後台點 10 次才能拿到報表」寫成腳本,交給 Agent 每天自動跑
    • 可以讓 LLM 不是只「看 API」,而是真的去打開你指定網站、看 DOM、再整理成結論

    💡 關鍵: Kitesurf 把「點按鈕、填表單、抓文字」這種人類動作,變成 LLM 可以直接呼叫的程式接口。

    你可以直接採取的行動:

    1. 準備一個你最常手動重複操作的網站,例如:電商後台、競品官網、資料庫查詢頁。
    2. 把你平常「人類操作步驟」拆成:打開哪個網址、點哪個按鈕、複製哪段文字,待會用 DOM 操作重現。

    3. 和 Cloudflare Workers / KV / Queues 的組合

    Kitesurf 最大的優勢之一,是長在 Cloudflare 生態系裡,可以直接跟既有服務串起來:

    • Cloudflare Workers:用 JavaScript / TypeScript 寫邏輯,呼叫 Kitesurf 打開頁面、抓資料、回傳給前端或 API 使用者
    • KV / D1 / 專用儲存:把抓到的結果存起來,做快取或歷史紀錄(例如價格走勢)
    • Queues / Cron Triggers:排程定期跑瀏覽任務,例如每天 9 點跑一次、每 5 分鐘抓一次競品價格

    你可以直接採取的行動:

    1. 如果你還沒有 Cloudflare 帳號,先到 https://dash.cloudflare.com/ 註冊免費帳號。
    2. 打開 Workers 介面,建立一個新的 Worker 專案,準備寫 Kitesurf 腳本。

    適合誰用?三種具體場景

    1. 競品與價格監控(行銷、電商營運)

    需求長這樣:

    • 每天要看 5–10 個競品頁面,記錄價格、折扣、是否有新品
    • 有 API 的就調 API,沒有 API 的就只好人工看

    用 Kitesurf + Workers,你可以:

    • 寫一個 Worker,定期叫 Kitesurf 打開競品頁面
    • 用 DOM 抓出「商品名稱、價格、標籤(如:限時優惠)」
    • 存到 Cloudflare KV / D1 或打回自己的後端

    可立即行動:

    • 選 3 個最關鍵的競品頁面,先做一版「只抓價格、標題」的最小腳本,之後再慢慢擴充。

    2. 批次表單填寫、報表下載(營運、後勤)

    典型情境:

    • 每週要登入 3 個系統,下載 CSV 報表
    • 或每天要在某個後台幫客戶批次建立任務 / 建案

    用 Kitesurf 可以:

    • 自動登入(在安全前提下,密碼用 Workers 的 secret 管理)
    • 用表單填寫 API 一次送出多筆資料
    • 把下載的檔案直接丟到你自己的儲存或觸發後續流程

    可立即行動:

    • 選一個「最痛」的後台操作流程,先嘗試只自動完成前 2 步(登入 +進入報表頁),驗證 Kitesurf 能正常操作,再慢慢接續。

    3. 讓客製 chatbot / agent「會自己上網」

    你可能已經有這些東西:

    • 一個幫你回答內部 FAQ 的 chatbot
    • 一個幫你寫 Email 的小 agent

    但它們通常只:

    • 用向量資料庫 + 你給的文件
    • 無法自己上網查新的資訊或打開內部 web 工具

    用 Kitesurf 時,你可以:

    • 在 agent 的工具集中,多加一個「瀏覽器工具」
    • 當使用者問的是需要去網站查的問題,LLM 會先呼叫 Kitesurf 打開指定網站
    • 讀取 DOM / 截圖後再整理成回答

    可立即行動:

    • 先選一個固定網站,例如公司的內部儀表板或公開文檔站,做一個「專門會查這個站」的小 agent,實驗效果。

    Kitesurf vs 其他「瀏覽器 Agent」怎麼選?

    市面上也有其他主打「瀏覽器自動化 Agent」的工具,例如 Hark、Rindler。這裡簡單用表格幫你比:

    名稱 核心功能 免費方案 適合誰
    Kitesurf 雲端 headless 瀏覽器,深度整合 Cloudflare Workers / KV / Queues 依 Cloudflare 定價,通常有免費級別 開發者、想在既有 Cloudflare 架構中加入 Agent 的團隊
    Hark 成品型瀏覽器 Agent,幫你在瀏覽器內完成任務 依產品方案,偏 SaaS 想直接用「會自己操作瀏覽器的助手」的終端使用者
    Rindler 團隊 web 工作流程自動化,偏向表單填寫、資料整理等場景 有試用方案(參考 Product Hunt:https://www.producthunt.com/products/rindler) 行銷、業務、資料分析團隊,想快速自動化重複網頁操作

    延伸閱讀:
    – Hark 報導:https://techcrunch.com/2026/08/05/hark-previews-its-browser-use-agent-for-completing-tasks/
    – Rindler Product Hunt:https://www.producthunt.com/products/rindler

    選擇原則:

    • 如果你 會寫 JS/TS,而且已經或打算用 Cloudflare Workers,選 Kitesurf
    • 如果你只是想要一個「幫你用瀏覽器的成品助手」,不想寫程式,優先看 Hark、Rindler 這類 SaaS

    💡 關鍵: 能寫程式就選 Kitesurf 自建流程,不想碰程式碼就用 Hark / Rindler 這種成品 SaaS。


    怎麼開始:用 Workers 寫一個最小 Kitesurf 範例

    以下示範一個「最小可行」的流程:

    • 在 Cloudflare Workers 用 TypeScript 呼叫 Kitesurf
    • 打開某個網站(比如一個公開新聞頁)
    • 抓特定 DOM 資料(例如標題)並回傳 JSON

    注意:目前 Kitesurf 仍偏新產品,實際 API 介面可能會調整,下方程式碼屬概念示意,重點在於「整體串接思路」。

    1. 建立 Worker 專案

    在終端機:

    npm install -g wrangler
    wrangler init kitesurf-demo
    cd kitesurf-demo
    

    在 wrangler.toml 中設定好帳號等基本資訊。

    2. 在 Worker 中呼叫 Kitesurf

    假設 Cloudflare 為 Kitesurf 提供一個 REST API,可以透過 fetch 呼叫,示意程式碼如下:

    export default {
      async fetch(request: Request, env: any, ctx: ExecutionContext): Promise<Response> {
        const url = new URL(request.url)
        const target = url.searchParams.get('target') ?? 'https://example.com'
    
        // 呼叫 Kitesurf 建立瀏覽器工作,打開頁面、抓指定 selector
        const kitesurfResp = await fetch('https://api.cloudflare.com/kitesurf/sessions', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
            'Authorization': `Bearer ${env.KITESURF_API_TOKEN}`,
          },
          body: JSON.stringify({
            url: target,
            actions: [
              // 這裡描述要做的事:打開頁面後抓某個元素文字
              {
                type: 'extract',
                selector: 'h1',
                name: 'title',
              },
            ],
          }),
        })
    
        const data = await kitesurfResp.json()
    
        // 回傳整理過的結果給使用者
        return new Response(JSON.stringify({
          target,
          title: data.results?.title ?? null,
        }), {
          headers: { 'Content-Type': 'application/json' },
        })
      },
    }
    

    使用方式:部署 Worker 後,打:

    curl "https://你的-worker-url/?target=https://news.yoursite.com/article"
    

    就會得到類似:

    {
      "target": "https://news.yoursite.com/article",
      "title": "某某新聞標題"
    }
    

    你可以直接採取的行動:

    • 把上面的範例改成抓你自己常看的網站標題或價格欄位,驗證 DOM 抽取是否正常。

    延伸:接上 OpenAI / Claude / DeepSeek,做一個「會查網站」的小 Agent

    有了 Kitesurf,就可以把「查網站」變成 LLM 的一個工具。流程示意:

    1. 使用者對你的 API / 前端聊天介面提問
    2. 你的後端(或 Worker)判斷:這題需要上網查,則
    3. 先呼叫 Kitesurf,打開指定網站、抓到 DOM / 截圖
    4. 把抓到的資料丟給 LLM(OpenAI / Claude / DeepSeek 等),請它整理成易讀回答

    範例流程簡化(概念)

    // 1. 先用 Kitesurf 抓資料
    const siteData = await callKitesurf({ url: 'https://example.com/pricing' })
    
    // 2. 把資料丟給 LLM
    const llmResp = await fetch('https://api.openai.com/v1/chat/completions', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${env.OPENAI_API_KEY}`,
      },
      body: JSON.stringify({
        model: 'gpt-4o-mini',
        messages: [
          {
            role: 'system',
            content: '你是幫使用者讀網頁並整理重點的助理。',
          },
          {
            role: 'user',
            content: `以下是某網站的價格資訊 DOM 內容,請幫我整理成 3 點重點:\n${siteData.text}`,
          },
        ],
      }),
    })
    
    const answer = await llmResp.json()
    

    你可以直接採取的行動:

    • 選擇你慣用的 LLM(例如 OpenAI、Claude、DeepSeek),先在 Worker 中寫好「接收資料、整理成簡單 summary」的基礎流程,再把 Kitesurf 的結果接進去。

    安全提醒:不要把敏感憑證丟進 Agent 上下文

    讓 AI Agent 可以自己上網,很容易踩到安全雷,這裡列幾個實務注意事項:

    1. 憑證管理用 Workers secrets,不要硬寫在程式碼或 prompt 裡
    2. 例如 KITESURF_API_TOKEN、網站登入密碼,都用 wrangler secret put 管理
    3. 限制 Agent 能操作的網域與行為
    4. 只允許它打你指定的幾個網域,避免亂逛整個網路
    5. 嚴格控管「可以送出表單的頁面」,避免 Agent 誤發郵件或誤改設定
    6. 對輸入做驗證
    7. 使用者輸入的 URL 要做白名單檢查,不要讓任何人用你的 Agent 當跳板亂爬網站

    你可以直接採取的行動:

    • 在寫第一版 Kitesurf + LLM agent 時,就先實作「允許的網域列表」與 secrets 管理,避免之後擴充時重構成本過高。

    總結:先從一個小任務開始,讓 Kitesurf 幫你接手瀏覽器

    Kitesurf 的本質就是:把瀏覽器變成一個可程式化的雲端元件,讓你的 Agent 能確實「會自己上網做事」。

    建議上手順序:

    1. 在 Cloudflare 建立 Worker,寫一個最小範例:打開網址、抓一段文字
    2. 接上你慣用的 LLM,做一個「會讀特定網站並整理重點」的小 Agent
    3. 再把你每天或每週的重複瀏覽器操作,一個個搬到 Kitesurf 上

    從一個最小任務開始,你會很快感受到差別:原本要人盯著螢幕點 20 次的流程,變成一支 Worker + 一個 Agent 就能搞定。

    🚀 你現在可以做的事

    • 到 Cloudflare 註冊帳號並建立一個 kitesurf-demo Worker 專案
    • 挑一個每天重複造訪的網站,照文中範例寫 DOM 抽取腳本
    • 選一個 LLM(如 gpt-4o-mini),把 Kitesurf 抓到的資料接進去做摘要 Agent
  • ChatGPT 免費版無限聊這樣用才划算

    ChatGPT 免費版無限聊這樣用才划算

    📌 本文重點

    • 免費版現在可「無限文字聊天」,能長期聊完一個專題
    • 新增 Think 推理按鈕,讓模型在重要問題上「多想一會」
    • GPT‑5.6 Luna 免費打底,Sol 適合高標準的長期專案
    • 把同一主題集中在長會話,搭配筆記工具形成個人知識庫

    一句話定位:現在的 ChatGPT 免費版,不再只是玩玩看,而是可以陪你長期寫稿、備考、寫小程式的「常駐 AI 助理」。

    官方說明參考(OpenAI Blog)、The Verge 報導、TechCrunch 報導。


    核心功能:免費版變成「可長期工作」的三個關鍵

    1. 無限文字聊天:真正可以把一個專題聊到完

    它是什麼?

    OpenAI 宣布:免費與 Go 用戶的「文字對話」不再有明確次數上限,可以長時間、多輪對話,過去常見的「你今天用量已達上限」在純文字情境下會大幅減少。

    💡 關鍵: 免費用戶的純文字聊天幾乎不再受次數限制,長期討論同一專題變得可行。

    但還是有幾個實際限制:

    • 只有純文字是無限:
    • ✅ 純文字提問、純文字回答:不限次數。
    • ❌ 上傳檔案(PDF、PPT、程式碼壓縮檔)、圖片、影片:仍有流量與頻率限制。
    • 模型記憶仍有限:
    • 同一個對話裡,模型能「記得」的內容有容量上限,太長時前面細節會被壓縮或遺忘。

    你可以怎麼用?

    • 把一個專題集中在一個長對話:
    • 求職:從履歷 → 自傳 → 模擬面試,全都在同一串對話裡進行。
    • 專題報告:先整理題目,再請它拆章節、逐段寫草稿、反覆潤稿。
    • 避免把同一主題打散在不同聊天室:讓模型前後文更完整。

    實作提示句範例:

    「我們接下來都在同一個對話裡工作,你幫我完成一份關於 XXX 的專題。先幫我釐清目標與大綱,之後我會一直在這串對話補充資料與修改。」


    2. 新的 Think / 推理按鈕:讓模型「多想一會」

    它是什麼?

    OpenAI 為免費與 Go 用戶新增了 「Think」按鈕(或界面上的「多想一下」「深度推理」之類字樣),

    • 平常提問 → 直接給答案(速度快,但推理較淺)。
    • 對複雜問題 → 按 Think,模型會用更長時間思考、進行多步推理,再輸出答案。

    The Verge 報導 與 The Decoder 都提到,這個按鈕本質上是「延長模型推理時間」。

    💡 關鍵: Think 按鈕不是換模型,而是讓同一模型在同一題目上花更多算力做多步推理,以提升正確性。

    什麼時候要按 Think?

    把它當成「需要正確性與邏輯性」時才按:

    • 需要多步驟推理:
    • 例如:「請幫我設計一週的讀書計畫,要考慮我每天能讀多久、各科目權重、歷屆考古題。」
    • 需要結構清楚的方案:
    • 專案拆解、流程設計、學習路線圖、商業邏輯分析。
    • 簡單聊天、查單一句翻譯,不需要按。

    實作方式:

    1. 先正常問問題,輸入時加上:

      「這個問題需要嚴謹推理,請使用 Think 功能,多想一會再回答。」

    2. 送出後,在介面上按下 Think(或系統提示你要不要讓它多想一會)。
    3. 收到答案後,繼續往下追問細節,而不是重新開新對話。

    3. Luna / Sol 分工:免費 vs 付費怎麼選?

    OpenAI 現在主要用兩個模型來分工:

    • GPT‑5.6 Luna:較小、較輕量,免費用戶的主力模型。
    • GPT‑5.6 Sol:較強版本,精度與一致性更好,主要給付費層級。

    根據 OpenAI 官方部落格 與多家媒體報導:

    • 免費用戶:
    • 預設使用 Luna,享有 無限文字聊天。
    • 一樣可以用 Think 按鈕,讓 Luna「想久一點」。
    • 付費(例如 ChatGPT Plus / Team):
    • 可選用 Sol,並可能有更多高階功能(更強推理、更好的程式能力)。

    可以把它想成:

    模型 核心功能 免費方案 適合誰
    GPT‑5.6 Luna 日常對話、寫作、翻譯、簡單程式碼,支援無限文字聊與 Think ✅ 免費可用,文字聊天不限次數 學生、一般上班族、剛開始用 AI 的人
    GPT‑5.6 Sol 更精準的回答、更穩定推理,適合複雜專案與開發 ❌ 多在付費方案 工程師、重度內容創作者、需要穩定品質的工作者

    💡 關鍵: 先用免費 Luna 完成 80% 工作,再依需求決定是否為剩下 20% 的高精度需求付費升級到 Sol。

    你可以怎麼做?

    • 先用免費 Luna 打底:
    • 把它當「草稿機」「想法整理工具」。
    • 有長期專案、程式需求再考慮升級:
    • 想要長期維護一個專案或文件庫,而且品質要求高,再切到 Sol / 付費層級。

    適合誰用:三大實戰場景

    1. 日常寫作與翻譯:長篇稿、履歷、Email

    適合誰:寫報告的學生、寫提案的 PM、需要中英互翻的上班族。

    具體可以怎麼用:

    1. 長篇稿件(文章、簡報講稿):
    2. 開一個對話命名:「公司內訓簡報稿」。
    3. 提示:
      > 「接下來這個對話只做一件事:幫我寫一份關於 XXX 的簡報稿。先幫我列大綱,用條列說明每頁要講什麼。」
    4. 之後所有修改、補充全在這個對話裡做。

    5. 履歷與 Cover Letter:

    6. 把原有履歷貼上,請它:
      • 重寫成不同版本(技術版/管理版)。
      • 翻成英文、調整語氣。
    7. 重要修改時按 Think,讓它更認真檢查結構與邏輯。

    8. Email 與翻譯:

    9. 日常回信直接貼中文:
      > 「幫我寫一封給客戶的英文 Email,語氣專業但不要太生硬,內容如下……」
    10. 要求:
      • 給兩個版本:較正式 / 較口語。

    2. 知識學習與考試準備:反覆問答不怕額度

    OpenAI 的使用數據(OpenAI Signals)顯示,很多人已經把 ChatGPT 當成「學習教練」。無限文字聊天剛好補上過去的痛點:

    實戰方式:

    1. 建立「科目專用」對話:
    2. 例如:「專門用來準備多益」「專門用來學 Python 基礎」。
    3. 第一句就說清楚:
      > 「從現在開始,這個對話專門用來準備 XXX 考試,你擔任家教,我是學生。先幫我診斷程度,再幫我排一個四週讀書計畫。」

    4. 長期 Q&A,不怕問太多:

    5. 每天把不懂的題目丟進同一對話:
      • 請它先解題,再用「高中生聽得懂」的方式重講一次。
    6. 遇到觀念題,按 Think 要求它:
      > 「請逐步解釋,每一步都說明為什麼。」

    7. 考前總整理:

    8. 在同一對話裡:
      • 要求它整理「這一週你教我的重點摘要」。
      • 請它出 10 題模擬題,照你的錯題再調整難度。

    3. 工程與資料工作:用 Think 處理複雜需求,專注在「小腳本」

    給工程師與資料工作者的實話:免費 Luna 寫得出程式,但穩定度與大型專案能力不如 Sol。最划算的用法是:

    • 把它當成「小腳本產生器」與「除錯助手」,不要期待它一次產出整個系統。

    可行用法:

    1. 小工具腳本:
    2. 例如:
      • 讀取 CSV、清洗欄位、輸出新的檔案。
      • 簡單網頁爬蟲(合法範圍內)。
    3. 提示:
      > 「請用 Python 寫一個腳本:讀取這個 CSV,移除缺失值,並把日期欄位轉成 YYYY-MM-DD,最後輸出成 new.csv。」
    4. 收到程式碼後自己在本機跑,遇到錯誤再貼錯誤訊息,請它協助除錯。

    5. SQL / 資料查詢:

    6. 把資料表結構貼給它,請它:
      • 幫你寫查詢語句。
      • 解釋每一段的意思。
    7. 複雜查詢時按 Think,讓它仔細拆邏輯。

    8. 演算法與概念講解:

    9. 不要直接叫它「幫我寫一個完整後端服務」,而是:
      • 請它解釋演算法原理。
      • 幫你寫單一函式或單元測試。

    怎麼開始:從帳號到日常工作流程

    1. 帳號與版本選擇

    1. 前往 chatgpt.com 或官方 App。
    2. 註冊 / 登入帳號。
    3. 保持在免費層級即可先用:
    4. 確認介面顯示的是 GPT‑5.6 Luna(通常預設)。
    5. 如果未來要升級,再考慮 Plus / Team 以使用 GPT‑5.6 Sol。

    2. 把同一主題集中在一個長會話裡

    操作習慣調整:

    • 每個重要主題開一個對話並命名:
    • 例如:「多益備考」「Q4 行銷提案」「資料分析腳本」。
    • 對話開頭先設定規則:
    • 你的角色(學生 / PM / 工程師)。
    • 它的角色(家教 / 編輯 / 程式教練)。
    • 工作目標與時間範圍。

    好處:

    • 模型能累積上下文,越聊越懂你的風格與需求。
    • 未來回顧時,有完整脈絡可查。

    3. 什麼時候要按 Think?

    可用這個簡單判斷:

    • ✅ 按 Think:
    • 需要邏輯正確、步驟清楚(讀書計畫、專案拆解、程式設計流程)。
    • 需要模型幫你「設計方案」、不是只給片段答案。
    • ❌ 不用按:
    • 單句翻譯、簡單重寫、日常聊天。

    你也可以在提示裡明講:

    「這題很重要,請用深度推理模式回答,如果不確定請標註不確定之處。」

    4. 和自己的知識庫 / Notion 串成工作流程

    免費版還是沒有「內建你的私有資料庫」,但可以用以下方式接起來:

    1. 在 Notion / Obsidian 中建立主題頁:
    2. 例如:「多益學習紀錄」「專案 X 知識庫」。
    3. 每次在 ChatGPT 中得到有用內容:
    4. 把最終版本貼回 Notion:
      • 大綱、重點整理、程式碼片段、讀書計畫等。
    5. 下次對話時:
    6. 先從 Notion 把相關內容複製一段給它,讓它「回想」上下文。
    7. 再繼續往下工作。

    你可以設定一個每日例行:

    • 早上:開啟「今天工作計畫」對話,請 ChatGPT 幫你排程。
    • 工作中:隨時在相應對話裡提問、寫稿、寫腳本。
    • 晚上:把重要成果整理回 Notion,形成自己真正擁有的知識庫。

    總結一句: 把 ChatGPT 免費版當成「長期可用、但偶爾需要你自己收尾」的助手——善用無限文字對話與 Think 按鈕,再配合自己的筆記工具,你可以在不付費的情況下,先把 80% 的日常工作和學習搬到 AI 上。

    🚀 你現在可以做的事

    • 立刻到 chatgpt.com 開一個新帳號,建立 2~3 個「專題專用」對話(例如:多益、履歷、資料分析)
    • 在其中一個對話裡貼上你正在寫的文章或報告,照文中示範提示請它重組大綱與草稿
    • 選一個主題在 Notion 建立頁面,今天就把一段 ChatGPT 對話結果整理貼回去,開始累積你的 AI 協作知識庫
  • Google AI 大地震:巨頭失速的關鍵分水嶺

    Google AI 大地震:巨頭失速的關鍵分水嶺

    📌 本文重點

    • DeepMind 從長期 AGI 研究轉向產品與營收壓力
    • Jeff Dean 出走象徵 Google 研究文化斷代
    • Google 失速將加速 AI 多極化與新創崛起

    這次 Google DeepMind 的人事重組,不是單純「高層輪調」,而是老牌 AI 巨頭在新一輪大模型戰中失速的明顯信號。當 Demis Hassabis 從 CEO 被「上調」為 Chair、Jeff Dean 直接離開創業,真正暴露的,是 Google 在 研究 vs 產品、長期 vs 短期 之間早已撕裂的戰線。若這次調整失敗,全球 AI 權力中心將加速從傳統網路巨頭,轉移到新創與開源陣營。


    一、從「星艦研究院」到「KPI 工廠」:Demis 被上調,DeepMind 被降維

    表面上,Google 對外說法是:Demis Hassabis 轉任 Google DeepMind Chair 與 Alphabet 首席科學家,由原 CTO Koray Kavukcuoglu 接任 CEO、負責日常營運,這被包裝為「讓 Demis 專注長期 AGI 研究與跨部門科學願景」。

    但從產業結構來看,這更像是:DeepMind 從一艘獨立航行的「AGI 星艦」,被拖回 Alphabet 航母艦隊的指揮體系,變成一個高階研發部門。

    幾個跡象很關鍵:

    • MIT Tech Review 披露,Google 一邊面臨 旗艦 Gemini 新版延遲、一邊承受 人才流失與士氣低落,重組是為了讓 DeepMind 更直接為產品線負責,而不是只做「Paper-first」研究。
    • The Verge 則點出內部多年來的矛盾:Demis 偏長期研究與安全,Google 產品線則被廣告、Android、雲端等事業單位的短期營收壓力綁死。
    • 當 Demis 被拉到「更高層級」做策略與科學顧問,實際上是將他從 day-to-day 權力核心抽離,改由更擅長「工程落地與產品節奏」的管理層接手。

    這裡有一個結構性矛盾:

    AGI 型研究組織天然需要「十年賭注」的節奏,但上市公司被迫按「季度財報」調整方向。

    Google 過去靠搜尋與廣告養出一個可以不看營收的 DeepMind;但在 OpenAI、Anthropic、Meta 全面衝刺模型迭代、產品變現之後,DeepMind 被要求「從科研艙回到營收甲板」。

    💡 關鍵: DeepMind 被拉回季度營收節奏,象徵「純研究護城河」已被「產品落地速度」取代。

    這意味著什麼?

    • 對研究者:DeepMind 不再是那個可以只做 AlphaGo、AlphaFold、激進 RL 的「純研究樂園」,而是要和 Gemini、Assistant、Cloud AI 的產品路線綁在一起。
    • 對公司:Google 正在承認一個殘酷事實——在大模型時代,純研究不再是護城河,模型落地速度才是。

    關鍵風險在於:如果 Demis 被邊緣化成「象徵性科學家」,而真正的決策權落回到傳統 BU 領導手上,DeepMind 失去的可能不只是文化,而是原本最吸引頂尖研究員的「長期冒險空間」。


    二、Jeff Dean 出走:Google 研究文化正式「斷代」

    Jeff Dean 的離開,比 Demis 的職務變動更像一記重擊。這不只是「一位傳奇工程師離職」,而是 Google Research 文化的一個世代終點。

    根據 TechCrunch 與 Wired,Jeff Dean 與多位頂尖 AI 研究者共同創立 Discovery Loop,專注以 AI 推動 科學發現、藥物研發、晶片設計 等高複雜度領域。訊號非常明確:

    • 這群人選擇的是 「高風險長期研究」+「更靈活的組織」,而不是繼續待在一個被季度目標與產品節奏綁死的超級巨頭。
    • 他們押注的不是「下一個聊天機器人」,而是 AI + 科學 這條更長期的賽道——這本來應該是 Google 最擅長、也最有資源做的事情。

    在產業層面,這件事透露三個重要動向:

    1. Google 失去的不只是人,是「研究正統性」。
      過去十年,Jeff Dean 與 Google Brain/DeepMind 的論文與基礎設施(TensorFlow、TPU 等)讓 Google 成為 AI 研究的精神中心。這批人離開,等於宣告:「最前沿研究不一定要在 Google 才做得出來。」

    2. 頂尖人才的風險偏好正在改變。
      一線研究者不再把「大公司安全感」放第一,而是更在意:股權空間、研究自由度、能否直接定義產品與研究路線。在 OpenAI、Anthropic、Mistral、xAI 甚至中國的新創裡,他們看到的是:可以做「公司級」而非「部門級」的賭注。

    3. Google 內部的「研究 vs 產品」拉扯,已經用腳投票。
      當 MIT Tech Review、The Verge 同時談到 Google AI 內部的士氣低落、旗艦模型延遲、組織政治糾纏,再對照 Jeff Dean 選擇離開而不是「在體制內改革」,這就是一種明白無誤的信號:Google 已經不再是做長期研究的最佳宿主。

    這一刻起,AI 研究話語權正開始從 Google 這類老牌巨頭,挪向新創與開源社群。

    💡 關鍵: Jeff Dean 等核心人物出走,象徵「頂尖 AI 研究中心」從 Google 轉移到新創與開源陣營。


    三、Google AI 重組的外溢效應:新創、開源與中國模型的戰略窗口期

    這場 Google AI 大地震,不只是一家公司內部的戲碼,而是整個產業權力重排的加速器。

    1. 對 OpenAI / Anthropic / Mistral:頂尖人才與敘事紅利

    • OpenAI、Anthropic 在產品與安全敘事上,本來就持續壓制 Google;現在隨著 Google 高層動盪、Gemini 延遲,他們更容易吸走不滿現狀的 Google/DeepMind 研究員。
    • Mistral 這類歐洲新創,則在 開源大模型 之戰上給出另一種選擇——介於封閉 SaaS 模式與完全社群驅動之間的「開放商業」模式。對於厭倦 Google 內部政治的工程師,這樣的組織反而更有吸引力。

    簡單說:Google 每一次組織調整與權力鬥爭,都是競爭對手最好的招募廣告。

    2. 對開源社群:Google 影響力下修,社群自治強化

    過去十年,Google 是開源 AI 生態的重量級玩家:TensorFlow、JAX、TPU、各種論文與工具鏈。但大模型時代的節奏改變了:

    • 當 Google 把資源從「開放研究」挪向「商業化 Gemini」,它在開源社群的影響力自然下修。
    • 反之,Meta 透過 Llama 系列、Mistral 透過商業友善 License,正在重新占領「開源大模型」的制高點。

    Google 的撤退,等於預留了一塊空地給新一代開源領導者。

    💡 關鍵: 當 Google 將重心轉向商業化 Gemini,開源大模型的領導權正被 Meta、Mistral 等新玩家接手。

    3. 對中國模型與本地巨頭:地緣與監管的相對優勢

    在美國巨頭忙於內部整併與監管壓力的同時,中國與其他地區的大模型陣營會看到兩件事:

    • 技術擴散加速:Jeff Dean 等人出走,新創公司與開源專案勢必會把更多基礎研究成果公開,變成全球可用的技術積木。
    • 話語權再平衡:當 Google 與 OpenAI 的競爭焦點逐漸集中在北美市場與監管博弈,其他地區玩家可以用更靈活的方式在場景落地、垂直領域(醫療、政務、制造)中卡位。

    結論是:Google 的失速,打開的是一個「多極 AI 世界」的窗口,而不是另一家美國巨頭的真空。


    結語:對開發者與使用者,這不是吃瓜,是重新選邊站的時刻

    從組織創新的角度看,Google DeepMind 這次重組是一個非常清楚的訊號:在大模型 / AGI 時代,「誰有未來」不再只是看模型參數與推理速度,而是看哪種組織結構最能同時承受長期研究與短期產品壓力。

    對不同角色,我會給出這樣的具體行動建議:

    • 給開發者 / 研究員:
    • 若你在大公司:務實評估,你的組織是「產品導向」還是「研究導向」? 若兩者都做不好,這是考慮轉向新創或開源社群的信號。
    • 若你在選平台:不要再只看「哪家模型當前最強」,而要看 API 穩定性、開源策略、社群活躍度。一個被內部政治拉扯的平台,不會是長期可靠的基礎設施。

    • 給產品團隊 / 創業者:

    • 善用「巨頭失速窗口期」,在垂直場景(醫療、金融、教育、製造)上提前固化你的數據與分發渠道。等 Google 重整完畢再進場,你已經很難搶回心智。
    • 優先考慮 多模型架構,避免單押 Google 或任何一家閉源供應商,讓你的產品對組織動盪具備「供應商容錯」。

    • 給終端使用者與 CTO:

    • 對高敏感度業務(法務、金融、醫療),不要完全依賴單一巨頭的閉源 SaaS,而是將 開源 LLM + 商業雲服務 的組合納入選項。
    • 在評估供應商時,把一項新指標拉進來:「組織穩定度與人才流失率」。在 AGI 長跑中,組織崩潰比模型落後更可怕。

    總結一句:Google 這次 AI 大地震,是整個產業的壓力測試。如果連資源最多、論文最多、TPU 最多的 Google,都難以同時做出「長期研究」與「短期產品」,那麼未來能站上舞台中心的,極可能是 更輕、更開放、決策鏈更短的新型組織。對開發者與團隊而言,現在不只是觀望,而是必須 用腳、用代碼、用技術選型,重新選一次你要跟隨的創新秩序。

    🚀 你現在可以做的事

    • 實際盤點你的技術棧與供應商,評估是否需要引入開源 LLM 與多模型架構
    • 去搜尋 Jeff Dean Discovery Loop 與相關新創,觀察頂尖人才正押注哪些方向
    • 在 GitHub 搜尋 Gemini、Llama、Mistral 相關專案,建立一份可替換的大模型候選清單
  • Qwen3.8-Max 長任務實戰與部署攻略

    Qwen3.8-Max 長任務實戰與部署攻略

    📌 本文重點

    • 長任務要以任務級 state 而非單次 context 設計
    • 混合雲端超大模型與本地 27B 降本增效
    • 透過分層記憶、快照與觀察性實現可恢復長任務

    阿里把 Qwen3.8-Max (2.4T) 拉到開源權重,加上 Qwen3.8-27B 這種「中杯」模型,對工程團隊最大意義是:第一次可以在自己掌控的環境裡,穩定做「跑幾天、不斷線、能恢復」的長任務——重現論文、長鏈路 refactor、甚至晶片設計流程,而不是被單次 context 長度與單次 API call 綁死。

    💡 關鍵: 開源 2.4T 級模型 + 27B 中杯,使「跨天長任務」首次在自控環境中變得可行且可恢復。

    這篇從工程視角拆三件事:長任務架構設計、部署選型與多模型搭配、企業級觀察性與成本防護欄,最後用一個「重現論文實驗 / 多階段 refactor」的管線當具體範例。


    重點說明:長任務超大模型的工程切面

    1. 長任務/長上下文的核心設計要點

    Qwen3.8-Max、Kimi K3、DeepSeek V4 Flash 這類模型都強調能處理「多階段、跨天」任務。工程上關鍵不是單次 context 有多長,而是:

    1. Checkpoint 分段:
    2. 對長任務維持 任務級 state,而非完全依賴模型的上下文。
    3. 每一階段輸出轉成 結構化快照(JSON、向量庫),用來恢復 /續跑,而不是重餵全部原始對話。

    4. 任務分解 + 多階段推理管線:

    5. 超大模型負責:規劃 + 難推理 + 棘手 code review。
    6. 中型模型(例如 Qwen3.8-27B)負責:常規 summarization、log 解讀、重複模式生成。
    7. Pipeline 以「任務節點 (TaskNode)」為最小單位,每個節點可重跑,可掛 cache。

    8. 長鏈路記憶:分層設計:

    9. 熱記憶:當前階段所需的 1–2k 關鍵 tokens,直接進 context。
    10. 冷記憶:向量索引(RAG)、中間結果快照。
    11. 超大模型變成「查詢 +推理」引擎,而不是所有歷史都塞進它的 prompt。

    2. 部署選項:雲 API vs 自架 GPU / 集群

    現在 Qwen3.8-Max 提供 付費 API,權重預計開源;Qwen3.8-27B 已確認可在 約 17GB VRAM 上跑(Daniel Han 的實測)。工程決策可以粗略這樣切:

    💡 關鍵: 約 17GB VRAM 即可跑 27B,使中小團隊能低成本自架中型模型配合雲端超大模型。

    雲 API(Max / Kimi / DeepSeek)適合:

    • 須最高模型能力、推理品質優先。
    • 任務量不大但單次任務超長、需要穩定長鏈路追蹤。
    • 不想維護推理集群、只做應用層(產品團隊常見)。

    自架 GPU / 集群(27B / 7B)適合:

    • 高吞吐、預算敏感,能接受稍弱能力換大量併發。
    • 有 On-prem 合規需求(金融、醫療資料不能出域)。
    • 想做定制微調、系統 prompt、工具集成深度控制。

    典型架構是 混合多模型:

    • 雲端 Qwen3.8-Max / DeepSeek V4 Flash:只用在「規劃 /關鍵判斷 /難度最高的 code reasoning」節點。
    • 本地 Qwen3.8-27B:跑 routine summarization、日常 RAG query、內部工具代理。

    3. 與 DeepSeek / Kimi 的差異與 Trade-off

    從現有 benchmark 和社群評價來看:

    • 能力:Qwen3.8-Max 在 coding /軟體任務上略優,整體接近 Kimi K3 / DeepSeek V4 Flash。
    • 推理延遲:超大模型延遲本來就高,雲 API 通常會有 長任務模式(寬限 timeout + 狀態追蹤)。自架時則要自己處理超長推理的 timeout /重試。
    • 記憶管理:Kimi / DeepSeek 已內建較成熟的長記憶機制(server 端 RAG + 任務追蹤);Qwen 開源權重的優勢是:你可以自己決定 記憶層級與格式,不被封閉系統限制。
    • 成本模式:
    • Qwen3.8-Max API 標價示例:Input \$2 /M tokens、Output \$6 /M tokens(依 Reddit 貼文),長任務要小心爆成本。
    • 自架 27B:一次性硬體 + 電費,長期大量任務通常更便宜,但需要 DevOps 能力。

    💡 關鍵: Input \$2 /M、Output \$6 /M tokens 的定價,逼迫架構上用「Max 做關鍵推理 + 27B 處理日常」來控制長任務成本。


    實作範例:以「重現一篇論文實驗 / 多階段 codebase refactor」為例

    以下是一個簡化的長任務管線,支援:

    • 論文解析 → 實驗設計 → Code 生成 → 結果分析
    • 隨時 resume,有 觀察性 (logging) 與 成本防護欄。

    1. 任務管線與分層記憶設計

    先定義任務節點與狀態儲存:

    # pseudo-code: 任務節點 / pipeline 定義
    class TaskNode:
        def __init__(self, name, model_role, handler):
            self.name = name              # e.g. "paper_analysis"
            self.model_role = model_role  # "max" or "27b"
            self.handler = handler        # 可重跑的邏輯
    
    class LongTaskState:
        def __init__(self, task_id):
            self.task_id = task_id
            self.snapshots = {}   # {node_name: snapshot_json}
            self.logs = []        # for observability
    
        def save_snapshot(self, node_name, data):
            self.snapshots[node_name] = data
            # 實際上會寫入 DB 或 object storage
    
        def load_snapshot(self, node_name):
            return self.snapshots.get(node_name)
    
        def log(self, level, msg, meta=None):
            self.logs.append({"level": level, "msg": msg, "meta": meta})
    

    接著建立「分層記憶」:把論文內容、codebase 索引到向量庫,用 RAG 控制熱 /冷記憶:

    # pseudo-code: 分層記憶 (RAG + 快照)
    class MemoryLayer:
        def __init__(self, vector_store, snapshot_store):
            self.vector_store = vector_store
            self.snapshot_store = snapshot_store
    
        def query_paper(self, question, top_k=5):
            return self.vector_store.search("paper", question, top_k)
    
        def query_codebase(self, question, top_k=10):
            return self.vector_store.search("code", question, top_k)
    
        def load_intermediate(self, task_id, node_name):
            return self.snapshot_store.get(task_id, node_name)
    
        def save_intermediate(self, task_id, node_name, data):
            self.snapshot_store.put(task_id, node_name, data)
    

    2. 多模型推理管線:Qwen3.8-Max + Qwen3.8-27B

    假設你有:

    • max_client:雲端 Qwen3.8-Max API 客戶端。
    • local27_client:本地部署 Qwen3.8-27B 客戶端(例如 vLLM / llama.cpp)。
    # pseudo-code: 選模型 + 成本防護欄
    MAX_INPUT_LIMIT = 200_000   # 依你的預算與 API 限制調整
    
    def call_model(model_role, prompt, max_output_tokens=4096):
        if model_role == "max":
            if len(prompt) > MAX_INPUT_LIMIT:
                raise ValueError("input tokens exceed MAX_INPUT_LIMIT")
            return max_client.generate(
                model="qwen-3.8-max",
                input=prompt,
                max_output_tokens=max_output_tokens,
                # 可以加上 temperature, top_p 等
            )
        else:
            return local27_client.generate(
                model="qwen-3.8-27b",
                input=prompt,
                max_output_tokens=max_output_tokens,
            )
    

    以下是三個節點示意:

    1. 論文解析(Max):任務規劃 + 實驗拆解。
    2. codebase 分析(27B + RAG):找出需 refactor 的模組。
    3. 關鍵 refactor 方案(Max):高階設計 + 風險分析。
    # 節點 1:論文解析
    
    def handle_paper_analysis(state: LongTaskState, memory: MemoryLayer, paper_text: str):
        ctx = state.load_snapshot("paper_analysis")
        if ctx:  # 支援 resume
            return ctx
    
        prompt = f"""
    你是一名資深研究工程師,請從以下論文中抽取:
    1. 實驗設定 (dataset, metrics, hyperparams)
    2. 關鍵貢獻
    3. 可能的工程落地風險
    
    輸出 JSON,schema:
    {{
      "experiments": [{{"name": str, "config": dict}}],
      "contributions": [str],
      "risks": [str]
    }}
    
    論文內容:
    {paper_text}
    """
        resp = call_model("max", prompt, max_output_tokens=8192)
        result = json.loads(resp["output_text"])  # 需加 error handling
        state.save_snapshot("paper_analysis", result)
        return result
    
    # 節點 2:codebase 分析 (RAG + 27B)
    
    def handle_code_analysis(state: LongTaskState, memory: MemoryLayer, question: str):
        cached = state.load_snapshot("code_analysis")
        if cached:
            return cached
    
        docs = memory.query_codebase(question, top_k=20)
        context = "\n\n".join(d["content"] for d in docs)
    
        prompt = f"""
    你是資深後端工程師,根據以下 code 片段,找出需要改動的模組與檔案路徑,並說明原因。
    
    [相關程式碼摘錄]
    {context}
    
    問題:{question}
    
    請輸出為 JSON,schema:
    {{
      "modules": [{{"path": str, "reason": str}}]
    }}
    """
        resp = call_model("27b", prompt, max_output_tokens=4096)
        result = json.loads(resp["output_text"])  # 需加 error handling
        state.save_snapshot("code_analysis", result)
        return result
    
    # 節點 3:關鍵 refactor 方案 (Max)
    
    def handle_refactor_plan(state: LongTaskState, memory: MemoryLayer):
        plan = state.load_snapshot("refactor_plan")
        if plan:
            return plan
    
        paper_info = state.load_snapshot("paper_analysis")
        code_info = state.load_snapshot("code_analysis")
    
        prompt = f"""
    你是一名首席軟體架構師。根據以下資訊設計一個分階段 refactor 方案,要求:
    - 每階段可獨立部署
    - 每階段都有 rollback 計畫
    - 清楚列出對實驗結果重現的影響
    
    [論文實驗摘要]
    {json.dumps(paper_info, ensure_ascii=False)}
    
    [需要改動的模組]
    {json.dumps(code_info, ensure_ascii=False)}
    
    請輸出為 JSON,schema:
    {{
      "phases": [{{"id": int, "description": str, "files": [str], "risk": [str], "rollback": [str]}}]
    }}
    """
        resp = call_model("max", prompt, max_output_tokens=8192)
        result = json.loads(resp["output_text"])  # 需加 error handling
        state.save_snapshot("refactor_plan", result)
        return result
    

    3. 企業環境下的觀察性、任務恢復與成本控制

    在企業環境跑長任務,以下三件事必做:

    1. 觀察性 (logging & metrics):

    2. 每個 TaskNode 紀錄:開始 /結束時間、使用模型、input_tokens / output_tokens 數、錯誤碼。

    3. 放進集中式 log (如 ELK、ClickHouse),可追蹤某次 pipeline 的 token 成本。

    4. 任務恢復 (resume):

    5. 每個節點輸出都用 state.save_snapshot,並寫入 DB / object storage。

    6. entrypoint 支援 resume_from=node_name,方便從中間節點重跑,而不是從頭吞全部 context。

    7. 成本防護欄:

    8. 全局 quota:一天內對 Qwen3.8-Max 的 input /output tokens 上限,超過就 fallback 到 27B 或排隊。

    9. batch 策略:大量相似小任務(例如 log summary)批次送給 27B,本地處理;只把「需要人決策」的部分交給 Max。

    建議與注意事項:常見坑與最佳實踐

    1. context 爆炸:

    2. 不要把整篇論文 + 整個 codebase 都塞進 prompt,即使模型支持 1M tokens。

    3. 用 RAG +中間結果快照:先用 27B 做初步萃取,再用 Max 做重推理,context 控制在幾千 tokens 內。

    4. token 成本失控:

    5. 對 Qwen3.8-Max 這種 \$2/\$6 per M tokens 的模型:

      • 所有節點都要紀錄 input_tokens / output_tokens,計算 pipeline 單價。
      • 高頻任務優先跑本地 27B,只在需要「deep reasoning」時升級到 Max。
    6. 長鏈路 state 不一致:

    7. 不要把「模型上次說的東西」當唯一真相。所有關鍵中間結果都要轉成 明確 schema (JSON)。

    8. 上游節點輸出要做 schema validation(可以用 Pydantic)與版本控管,避免後續節點因格式變動直接崩壞。

    9. 多模型切換的延遲 /錯誤處理:

    10. 對雲端 Max:加 重試與退避機制,長任務時避免整個 pipeline 因一個 500 error 失敗。

    11. 設計好 fallback 策略:Max 超時時,先用 27B 生成較粗的答案,讓任務不中斷,事後再補。

    12. 自架 27B 的 VRAM 預算:

    13. Qwen3.8-27B 在約 17GB VRAM 可跑是利好,但那是經過量化 /優化後的情境。

    14. 生產環境請預留額外 VRAM 給:並發請求、KV cache、RAG embedding 模型;單張 24GB 以上 GPU 會比較安全。

    結論:如果你手上有需要「跨天、跨多階段、多次嘗試」的長任務(論文重現、超大型 refactor、風控模組設計),現在可以用 Qwen3.8-Max + Qwen3.8-27B + 分層記憶 (RAG+快照) 搭起一個真正工程化可恢復的管線,把超大模型從「一次性助手」變成「可監控、可控成本的長程代理」。

    🚀 你現在可以做的事

    • 在自家 codebase 中實作文中的 TaskNode 與 LongTaskState,搭起最小可用長任務管線
    • 部署一個本地 Qwen3.8-27B(如用 vLLM 或 llama.cpp),並接上雲端 Qwen3.8-Max 做多模型實驗
    • 為現有 LLM 任務加入 token 計費 log 與 MAX_INPUT_LIMIT 檢查,建立成本防護欄與 resume_from 能力
  • 用 loopx+Cloudflare computer 組一支 AI 遠端團隊

    用 loopx+Cloudflare computer 組一支 AI 遠端團隊

    📌 本文重點

    • 用 loopx 管理長期、多 Agent 任務
    • 用 Cloudflare computer 給 Agent 一個可操作桌面
    • 示範「研究助理小隊」自動化 workflow
    • 提供可直接複製的安裝與最小範例程式碼

    讓多個 AI 工具像遠端同事一樣,長期幫你操作電腦工作,而不是每天重來一次,這就是 loopx 搭配 Cloudflare computer 想解決的問題。

    這篇會帶你:
    – 用 loopx 管長期任務與多 Agent 協作
    – 用 Cloudflare computer 給 Agent 一個真的「電腦桌面」可操作
    – 示範一個「研究助理小隊」workflow
    – 最後給你一套可直接複製的安裝+最小範例程式碼


    兩個工具在多 Agent 工作桌中的分工

    先用一張表快速對比:

    名稱 核心功能 免費方案 適合誰
    loopx 長任務 state kernel、目標管理、自動喚醒、多 Agent 交接 開源免費 要讓多個 Agent 長期合作、需要配額控管的人 / 團隊
    cloudflare/computer 給 Agent 一個可操作的桌面與瀏覽器環境 開源免費 想讓 Agent 實際「點、打、開網頁」做自動化的人

    一句話理解:
    – loopx = 專案經理+任務系統
    – Cloudflare computer = 共享遠端桌面

    💡 關鍵: loopx 管的是「長期任務與協作」,Cloudflare computer 管的是「實際電腦操作」,兩者分工清楚才有穩定、多 Agent 的自動化工作桌。


    loopx 核心功能:讓任務可以「長跑」而不是一次性對話

    1. State kernel:任務狀態集中管理

    loopx 自稱是「state kernel」,重點是:
    – 每個長期目標(project)都有自己的 持久狀態:目前做到哪、還有哪些 Todo、哪些已完成
    – 支援多 Agent:你可以把不同工具(例如寫程式 Agent、搜尋 Agent)接到同一個目標底下

    你可以採取的行動:
    – 為每個長期任務(例:產品研究、側專案)在 loopx 建立一個 goal
    – 把「任務進度」從 Notion / Google Sheet 移到 loopx 的 state 裡,讓 Agent 直接讀寫

    2. 長期目標管理+可執行待辦(Todos)

    loopx 允許你把大目標拆成細任務,並且讓 Agent 自己執行:
    – 設定 goal:例如「整理 10 家競品的功能表」
    – 拆成 todos:如「收集官網資料」「彙整成表格」
    – 每個 todo 都是可以被 Agent 調用的可執行項目,完成後會記錄在 evidence log

    你可以採取的行動:
    – 把人類原本寫在代辦軟體的任務,改成由 loopx 管理的 todos
    – 讓 LLM(例如 Claude 或 GPT)根據現有 evidence,自動產生下一個 todo

    3. 自動喚醒與配額感知

    loopx 的特色是「懂得停與再啟動」:
    – 配額感知:你可以設定 API 使用額度,讓 Agent 在接近上限時減少動作或暫停
    – 自動喚醒:當條件達成(例如有新資料、時間到了),loopx 會再喚醒 Agent 繼續跑

    你可以採取的行動:
    – 設定每天最多 token 或 API 次數,避免帳單爆掉
    – 設時間型任務:例如每天早上 9 點喚醒研究 Agent 更新資料

    💡 關鍵: 有配額感知與自動喚醒,才能讓多 Agent 長期運作而不怕超支或中斷,再用條件喚醒續跑。

    4. 可驗證交接(verifiable handoffs)

    多 Agent 最大的麻煩是「交接混亂」。loopx 幫你:
    – 每個 Agent 的輸出都記在 evidence log
    – 下一個 Agent 拿到的不只是文字,而是「帶證據的任務狀態」

    你可以採取的行動:
    – 定義每個 Agent 的輸出 schema(例如必須輸出 JSON 帶 evidence link)
    – 用 loopx 的 handoff 機制,把「搜尋結果」交給「整理 Agent」


    Cloudflare computer:給 Agent 一台可操作的電腦

    Cloudflare computer 的概念很直接:

    把一台「遠端桌面」包成程式介面,讓 Agent 控制滑鼠、鍵盤、瀏覽器。

    1. 桌面與瀏覽器控制

    功能你可以想成:
    – Agent 能開啟瀏覽器、輸入網址、點擊、捲動
    – 可以截圖或讀取目前畫面內容,回傳給 LLM 分析

    你可以採取的行動:
    – 把原本你每天重複點網頁、下載報表的流程,寫成一個 computer 任務
    – 讓 Agent 用瀏覽器登入某些工具,抓資料後再交給 loopx 管理

    2. TypeScript 開源,易整合現有工具鏈

    Cloudflare computer 用 TypeScript 寫成:
    – 可以直接在 Node.js / Bun 環境跑
    – 易跟現有的前後端專案整合

    你可以採取的行動:
    – 在現有 Node 專案中新增一個 agent-runner.ts,專門讓 LLM 控制 computer
    – 把 computer 的操作記錄(log)丟回 loopx 作為 evidence


    範例 workflow:「研究助理小隊」

    目標:

    每週自動更新一次「某個產業的最新資料整理」,包含連結、摘要與重點整理。

    角色分工

    • Agent A:資料搜尋員
    • 使用 Cloudflare computer 操作瀏覽器
    • 任務:搜尋關鍵字、打開前幾個結果、抓取主要內容與連結

    • Agent B:整理與筆記員

    • 接收 Agent A 的 evidence(網址、內容)
    • 用 LLM 整理成表格與文字摘要

    • loopx:專案管理員

    • 建立 goal「產業周報」
    • 安排每週排程,自動喚醒 Agent A
    • 管理 todos 與 handoff:
      • todo:search_industry_updates
      • handoff:把 evidence 傳給 B
      • todo:summarize_and_export

    實際跑起來會長怎樣?

    1. 每週一上午,loopx 喚醒 Agent A,執行 search_industry_updates。
    2. Agent A 用 Cloudflare computer 開 Google / Twitter,找到本週新資料,保存成 evidence(JSON + 原始內容)。
    3. loopx 把 evidence 當作 handoff,指定給 Agent B。
    4. Agent B 讀取 evidence,用 LLM 整理成:
    5. 一張 Markdown 表格
    6. 一份 1-2 頁的摘要
    7. loopx 把結果寫回某個儲存位置(例如 Git repo、Notion API、或本地檔案)。

    你可以採取的行動:
    – 先從「每週一個產業」開始,實驗多 Agent 交接流程
    – 再把產業數量增加、或增加第三個 Agent 負責「翻譯」「產出簡報」

    💡 關鍵: 把搜尋、整理、輸出拆給不同 Agent,並用 loopx 管理 handoff,就能讓「產業周報」自動每週生成。


    怎麼開始:安裝與最小範例

    1. 安裝 loopx(Python)

    前提:你需要 Python 3.10+、一個虛擬環境,與至少一個 LLM API(例:Qwen、Claude、GPT)。

    # 建議開虛擬環境
    python -m venv venv
    source venv/bin/activate  # Windows 改用 venv\Scripts\activate
    
    pip install loopx  # 以實際 repo 為準,若尚未上傳到 PyPI,則:
    # pip install git+https://github.com/huangruiteng/loopx.git
    

    最小 Python 範例(示意):

    from loopx import StateKernel, Goal
    from loopx.llm import OpenAIClient  # 或你自包的 Qwen / Claude client
    
    llm = OpenAIClient(api_key="YOUR_KEY", model="gpt-4o")
    kernel = StateKernel(llm=llm)
    
    # 建立一個長期目標
    goal = Goal(
        name="industry_weekly_report",
        description="產業最新資訊每週整理一次",
    )
    
    kernel.register_goal(goal)
    
    # 定義一個簡單 todo:產生本週提綱
    @kernel.todo("draft_outline")
    def draft_outline(state):
        """用 LLM 為本週產業周報產出提綱"""
        prompt = f"根據目前 evidence,為本週產業周報列出 5 個小節標題。" 
        outline = kernel.llm.complete(prompt)
        state["outline"] = outline
        return outline
    
    if __name__ == "__main__":
        # 執行一次 todo(之後可用排程呼叫)
        result = kernel.run_todo("industry_weekly_report", "draft_outline")
        print(result)
    

    若你要接 Qwen / Claude / GPT,做法很像:
    – 包一層 LLMClient 類別,統一 complete(prompt) 介面
    – 把 API key 放在環境變數,避免硬編碼


    2. 安裝 Cloudflare computer(TypeScript)

    前提:Node.js 18+。

    mkdir ai-computer && cd ai-computer
    npm init -y
    npm install @cloudflare/computer
    

    最小 TypeScript 範例(簡化示意):

    import { Computer } from "@cloudflare/computer";
    
    async function main() {
      const computer = new Computer();
      const session = await computer.start();
    
      // 開啟一個網址
      await session.open("https://www.google.com");
    
      // 在搜尋框輸入關鍵字並送出(實際 API 以官方為準)
      await session.type("生成式 AI 產業新聞");
      await session.enter();
    
      // 取得畫面截圖或文字
      const screenshot = await session.screenshot();
      // 把 screenshot 路徑或 base64 傳回 Python 的 loopx 作 evidence
    
      await session.close();
    }
    
    main().catch(console.error);
    

    你可以採取的行動:
    – 先把 Cloudflare computer 當成「可腳本化的瀏覽器」,先寫死流程
    – 確認操作穩定後,再把指令改由 LLM 產生(例如:llm.plan_steps() → session.*)


    3. 把兩者接在一起:權限與工具調用

    建議做法:
    – 以 loopx 為中心:所有外部工具(Cloudflare computer、資料庫、檔案系統)都當成「工具函式」
    – 每個 Agent 有一份「工具白名單」,例如:
    – 搜尋 Agent:只允許呼叫 computer.search_web()
    – 整理 Agent:只允許存取檔案與 loopx state

    簡單示意(Python pseudo-code):

    from tools import call_computer  # 這裡透過 HTTP/IPC 呼叫 TS 程式
    
    @kernel.tool("search_web")
    def search_web(query: str):
        # 把 query 傳給 Node/TS 的 Cloudflare computer
        result = call_computer(query)
        return result  # 回傳給 LLM 作 evidence
    

    你可以採取的行動:
    – 先定義一小組安全工具(例如:只讀網頁、不能亂下載檔案)
    – 在 LLM prompt 中明確寫上「只可呼叫這些工具」
    – 逐步放寬權限,視實際需求增加更多操作


    適合誰用?

    幾個具體場景:

    • 個人創作者:
    • 每週產業周報、內容題材研究、自動整理靈感庫
    • 小型團隊 / 新創:
    • 客戶調研、競品追蹤、Release Note 整理
    • 讓 Agent 先跑一輪收集與整理,人類最後審閱
    • 開發者 / 資訊人員:
    • 想實驗多 Agent 架構、測試不同 LLM(Qwen、Claude、GPT)
    • 把既有爬蟲、報表腳本逐步改成由 Agent 控制

    如果你已經在用 LLM 做單次問答,下一步可以是:
    – 用 loopx 把「一次問答」變成「持續進行的專案」
    – 用 Cloudflare computer 讓 Agent 真正動手「操作電腦」


    總結:先從一個「長任務」開始

    不要一次想太大,可以這樣開始:

    1. 選一個你每週都要重複做的知識工作(例:產業新聞整理)。
    2. 用 loopx 建立 goal+一兩個 todo,接上你現有的 LLM(Qwen / Claude / GPT)。
    3. 用 Cloudflare computer 把搜尋步驟自動化,先寫死流程,再交給 Agent 控制。
    4. 把 evidence 與結果記錄下來,逐步擴充更多 Agent。

    一旦這個「研究助理小隊」跑起來,你就等於多了一支可以長期運作的遠端 AI 團隊。


    🚀 你現在可以做的事

    • 到 GitHub 查看並 git clone loopx 專案,在本機跑起最小範例
    • 依照文中的 Node.js 步驟安裝 @cloudflare/computer,寫一個可自動打開網站的腳本
    • 選一個你每週重複的知識工作,照文中 workflow 建立第一個「研究助理小隊」並實際跑一週
  • 用手機跑 128K AI 小助手:LFM2.5 實戰

    用手機跑 128K AI 小助手:LFM2.5 實戰

    📌 本文重點

    • LFM2.5-2.6B 支援 128K 長上下文,可一次處理整本文件
    • 內建多步驟 Agent 與 tool calling,可拆解任務自動執行
    • 量化後記憶體 < 2.5GB,手機 CPU 也能跑到 17–30 tok/s
    • 適合本地文件助理、批量任務與離線手機 AI 助理

    一台手機就能跑的長上下文 AI 小助手,幫你在本地處理文件、批量任務和簡易自動化,不靠雲端也能用得上 AI。

    參考來源:Reddit LocalLLaMA 討論、LFM2.5-2.6B 發布帖、OnePlus 13 實測,以及 Hugging Face 專題文:Deploy local agents everywhere with LFM2.5-2.6B。


    核心功能:為什麼是「一台手機就能跑的 Agent」?

    1. 128K 長上下文:整本報告一次丟進去

    • 它是什麼:LFM2.5-2.6B 支援約 128K tokens 上下文,大約可以一次吃下數十萬字的內容。
    • 具體能做什麼:
    • 整本 PDF 報告、技術文件、會議紀錄一次丟進去,讓模型幫你摘要、對比、找重點。
    • 長期對話不會「忘記前文」,可以當持續的工作助理。
    • 你可以馬上做的事:
    • 準備 1–2 本常用的 PDF(如年度報告、專案文件),作為之後測試的資料集。

    💡 關鍵: 支援約 128K tokens 的長上下文,讓單次對話就能覆蓋整本報告或多份文件,減少來回上傳與分段處理的麻煩。

    2. 多步驟 Agent + 工具呼叫:不只是聊天,是能「自己拆步驟」的小幫手

    • 它是什麼:模型後訓練時就針對多步驟代理流程(multi-step agent workflows),並支援 tool calling 格式,能主動:
    • 判斷需要使用工具(如讀檔、發 API)。
    • 先規劃步驟,再分批完成任務。
    • 適合的工具類型:
    • 檔案讀寫工具:讀取本地 txt、md、pdf(先轉文字)。
    • Web API:查天氣、查匯率、打公司內部 API。
    • 你可以馬上做的事:
    • 想一個「需要拆步驟」的工作流程,例如:整理一週郵件 → 分類 → 摘要 → 拉出待辦清單,留著稍後做 Agent 範例。

    3. 本地推理友善:記憶體 < 2.5GB,在手機 CPU 跑到 17–30 tok/s

    • 它是什麼:LFM2.5-2.6B 約 2.69B 參數,官方提供 Q4_K_M GGUF 量化版本,在手機上記憶體占用低於 2.5GB。
    • 實測數據:
    • Reddit 用戶在 OnePlus 13 手機上純 CPU 跑,約 17 tok/s。
    • Liquid AI 官方報告在某些推理與工具調用基準上,和 Qwen 3.5 9B 類模型接近,但資源需求低很多。
    • 你可以馬上做的事:
    • 確認自己的設備:RAM 至少 4GB(桌機 / 筆電更好),手機 Android 版本支援安裝第三方推理 App 或自訂引擎。

    💡 關鍵: 在純 CPU 手機上僅需不到 2.5GB 記憶體就能跑到約 17 tok/s,代表即使沒有高階 GPU,也能實際部署長上下文本地 AI。


    適合誰用:三個實戰場景

    1. 本地文件助理:長文閱讀、知識庫整理

    場景:你有大量 PDF 報告、技術文件,平常用雲端模型怕機密外流,或上傳很慢。

    可以怎麼用 LFM2.5:

    1. 在桌機用 llama.cpp 跑 LFM2.5,讀取本地資料夾中的文件(轉成文字)。
    2. 把多份文件丟進同一個上下文,請它:
    3. 「幫我整理這三份報告的差異,列出一頁摘要+決策建議。」
    4. 「從這堆文件找出所有提到 2025 年預算的段落。」

    你可以立刻做的事:

    • 整理一個 docs/ 資料夾,把 3–5 份常用文件轉成純文字(txt),準備接入 LFM2.5。

    2. 批量任務 Agent:整理郵件、報告、待辦清單

    場景:你每天有一堆重複的小事,例如「每週整理專案更新」、「把會議紀錄轉成待辦」。

    可以怎麼用 LFM2.5:

    1. 寫一個簡單腳本從郵件或系統導出文字(如 weekly_emails.txt)。
    2. 讓 Agent 執行一套固定流程:
    3. 讀入所有文本 → 按專案或標籤分類。
    4. 每類輸出摘要與關鍵日期。
    5. 最後產生「本週待辦清單」。

    你可以立刻做的事:

    • 決定一個你每週都在做的重複整理任務,想好輸入格式(例如一個大 txt),稍後在工具呼叫範例裡實作。

    3. 手機上的離線問答與簡易自動化

    場景:出差在外、網路不穩,也想有一個在手機上的「私人 AI 小助理」。

    可以怎麼用 LFM2.5:

    1. 在手機安裝支援 GGUF 的本地推理 App(如某些社群版 llama.cpp App,或自行編譯)。
    2. 把常用資料(旅遊行程、公司 FAQ、個人筆記)放進手機,讓模型作為離線問答庫。
    3. 再加上幾個簡單工具:
    4. 查本地檔案(行程、備忘錄)。
    5. 呼叫 Web API(天氣、匯率)— 有網路時也能用。

    你可以立刻做的事:

    • 在手機上預留至少 3–4GB 空間和足夠 RAM,並確認能安裝第三方推理 App 或有 adb 環境可連接自製引擎。

    怎麼開始:從桌機到手機,一步步實作

    步驟一:在 Hugging Face 下載模型與量化權重

    1. 打開 Hugging Face 模型頁:
    2. 搜尋 LFM2.5-2.6B 或直接從官方 Blog 連結進入:https://huggingface.co/LiquidAI。
    3. 選擇 GGUF 格式(例如官方提到的 Q4_K_M 量化版本)。
    4. 使用 git lfs 或直接瀏覽器下載:

    bash
    git lfs install
    git clone https://huggingface.co/LiquidAI/lfm2-5-2-6b-gguf

    你可以立刻做的事:

    • 安裝 git lfs,測試是否能順利 clone 大檔案。

    步驟二:用 llama.cpp 在桌機跑起來

    1. 安裝 llama.cpp:

    bash
    git clone https://github.com/ggerganov/llama.cpp
    cd llama.cpp
    make

    1. 把剛下載的 GGUF 模型放到 ./models/lfm2-5-2-6b-q4_k_m.gguf。
    2. 用基本推理指令測試:

    bash
    ./main \
    -m models/lfm2-5-2-6b-q4_k_m.gguf \
    -c 128000 \
    -n 256 \
    -p "你是一個中文助理,請用繁體中文回覆。幫我總結這段文字:..."

    你可以立刻做的事:

    • 先把 -c 設小一點(例如 8192),確認能跑,再逐步拉高到 128K 測試極限。

    💡 關鍵: 先以較小上下文長度測試穩定性,再逐步拉高到 128K,可以避免一開始就因資源不足導致崩潰。

    步驟三:在手機或低端設備配置推理引擎

    你有兩條路可以選:

    方案 核心功能 免費方案 適合誰
    原生 llama.cpp 編譯 直接在 Android / Linux 編譯 llama.cpp,跑 GGUF 模型 開源免費 喜歡動手編譯、可用 adb 的技術玩家
    第三方推理 App 安裝社群開發的本地 LLM App,匯入 GGUF 模型 多數免費或開源 想快速在手機體驗本地 AI 的一般使用者

    大致步驟示意(原生編譯路線):

    1. 在桌機用 adb 連上 Android 手機,確認有 shell:

    bash
    adb shell

    1. 把編譯好的二進位與模型檔推上手機:

    bash
    adb push ./main /data/local/tmp/
    adb push ./models/lfm2-5-2-6b-q4_k_m.gguf /data/local/tmp/

    1. 在手機上跑:

    bash
    cd /data/local/tmp
    chmod +x main
    ./main -m lfm2-5-2-6b-q4_k_m.gguf -c 32768 -n 128 -p "請用繁體中文介紹你自己。"

    你可以立刻做的事:

    • 測試一次 adb shell 是否正常;如果你偏好 GUI,搜尋一款支援 GGUF 的 LLM App,確認可以匯入模型檔。

    步驟四:串接簡單工具(檔案讀取 + Web API)

    LFM2.5 支援 tool calling 格式,你可以在自己的程式裡定義工具,讓模型決定何時呼叫。

    以下以 Python + llama.cpp HTTP 伺服器為例(概念示意):

    1. 先啟動 llama.cpp 的伺服器模式:

    bash
    ./server \
    -m models/lfm2-5-2-6b-q4_k_m.gguf \
    -c 128000 \
    --host 127.0.0.1 --port 8080

    1. 在 Python 定義兩個工具:讀檔與查匯率:

    python
    tools = [
    {
    "name": "read_file",
    "description": "讀取本地文字檔內容",
    "parameters": {
    "type": "object",
    "properties": {
    "path": {"type": "string"}
    },
    "required": ["path"]
    }
    },
    {
    "name": "get_fx_rate",
    "description": "查詢美元對新台幣即時匯率",
    "parameters": {
    "type": "object",
    "properties": {}
    },
    }
    ]

    1. 當模型輸出 tool call 時,由你的程式實際執行:

    python
    def call_tool(name, args):
    if name == "read_file":
    with open(args["path"], "r", encoding="utf-8") as f:
    return f.read()
    if name == "get_fx_rate":
    # 這裡打某個匯率 API
    return "目前 USD/TWD 約為 32.1"

    你可以立刻做的事:

    • 先做最簡單版本:只寫一個 read_file 工具,讓模型幫你讀取某個 txt,並摘要內容。

    收尾:下一步可以做什麼?

    如果你已經在桌機跑起 LFM2.5,有幾個很實際的下一步:

    • 把你的「每週重複工作」整理成一個 Agent 流程,固定用同一組工具+提示詞執行。
    • 把常用的公司文件、技術文檔轉成文字,作為 128K 上下文的知識庫。
    • 在手機上先跑小上下文(8K/16K),確認效能,再逐步增加到 32K,觀察速度和可用性。

    LFM2.5-2.6B 的重點不在「有多大」,而在「足夠聰明又能在你手邊的設備上跑」,只要你願意花一個週末,把下載、llama.cpp、簡單工具串接三件事做完,就能擁有一個真正屬於自己的本地 AI 小助手。

    🚀 你現在可以做的事

    • 到 Hugging Face 下載 LFM2.5-2.6B 的 Q4_K_M GGUF 模型,並在桌機用 llama.cpp 跑通基本推理
    • 準備一個 docs/ 資料夾與一個「每週重複任務」,作為之後 Agent 與長上下文測試用資料
    • 在手機上安裝支援 GGUF 的本地 LLM App 或配置 adb 環境,預留 3–4GB 空間準備導入模型