# 影片筆記:AI 明明拿到正確資料,為什麼還會亂編? ## 一句話總結 影片分享了一個實戰除錯案例:作者建立每日 AI 趨勢分析 Agent 時,發現即使抓取了正確的原始資料,模型(MiniMax M2.7)仍會產生「上下文忽視」與「先前上下文幻覺」而亂編報告;透過切換強模型(GPT 5.4)解決準確性問題,並進一步將資料抓取方式從「控制瀏覽器」改為「Python + CDP 直接提取」,大幅提升了系統的穩定性與執行速度。 ## 核心重點 1. **模型幻覺的成因**: * **上下文忽視(Context Neglect)**:模型接收了新資料但選擇忽略。 * **先前上下文幻覺(Hallucination from Prior)**:模型輸出訓練資料中記憶的舊內容,而非當前提供的資料。 * **弱指令遵循**:小型模型或蒸餾模型(Distilled Models)難以在長上下文壓制先前知識,即使提示詞要求「僅使用快照資料」也無法有效執行。 2. **瀏覽器自動化的局限性**: * 讓 AI Agent 直接控制瀏覽器(如 OpenClaw 控制 Chrome)雖然能解決登入與反爬蟲問題,但執行速度慢、不穩定,且容易出現超時錯誤。 * Chrome 136 版本起出於安全理由,遠端偵錯端口與 pipe 無法再附加至預設使用者目錄,增加了設定複雜度。 3. **優化方案:去瀏覽器化資料抓取**: * 參考 Hermes Agent 的做法,改用 Python 結合 Chrome DevTools Protocol (CDP) 透過 WebSocket 直接連接瀏覽器。 * 執行 JavaScript 直接提取資料,繞過瀏覽器自動化操作的冗餘步驟。 * 結果:模型僅負責總結分析,資料來源層面不再依賴瀏覽器,穩定性與速度大幅提升(約 10 倍)。 ## 詳細大綱 ### 1. 背景與需求 * **目標**:作為 AI 頻道創作者,需每日清晨自動從三個來源收集資料以選擇影片題材: 1. X 上的熱門 AI 貼文。 2. GitHub Trending 上的 AI 專案。 3. Google Trends 上的相關趨勢活動。 * **系統架構**:平行運行兩個 AI Agent 進行測試: * **OpenClaw**:初期嘗試控制瀏覽器抓取資料。 * **Hermes Agent**:透過自建技能(Skill)完成報告,表現穩定。 ### 2. 第一階段問題:資料正確但報告錯誤(幻覺問題) * **初始設定與問題**: * OpenClaw 因假 IP 與 Web fetch 限制無法獲取最新 X 資料,故改為控制已登入 X 的 Chrome 瀏覽器。 * 設定步驟包括啟用 Chrome 遠端偵錯、修改設定檔建立 `xbrowser` profile、使用非預設使用者資料目錄(因 Chrome 136 安全變更)。 * **現象**:OpenClaw 快速回傳結果,但報告內容錯誤(如出現加密貨幣專案,卻缺失熱門的 Andrej Karpathy skills 與 Claudemem)。 * **確認**:檢查原始快照(Snapshot),確認熱門專案確實存在於抓取資料中。結論為模型「撒謊」。 * **原因分析**: * 使用模型為 **MiniMax M2.7**。 * **上下文忽視**:模型忽略新提供的快照資料。 * **先前上下文幻覺**:模型基於訓練資料中的記憶輸出。例如,某些專案長期佔據 Trending 並大量出現在訓練資料中,模型看到 "GitHub Trending" 便自動關聯熟悉名稱。 * **長上下文注意力衰減**:快照資料過長,模型「懶惰」地直接使用預設答案。 * **弱指令遵循**:小模型與蒸餾模型無法精確壓制先前知識。 * **解決方案**: * 將模型從 MiniMax M2.7 切換至 **GPT 5.4**。 * 結果:GPT 5.4 在相同提示詞與資料下,產生了完全正確的報告。 * 觀察:ChatGPT、Claude 與 Gemini 等強模型在閱讀上下文與壓制假設方面優於小模型。 ### 3. 第二階段問題:系統上線後的穩定性問題 * **問題現象**: * 將 OpenClaw 搭配 GPT 5.4 上線排程任務後,次日出現超時錯誤(Timeout Error),未獲取 X 資料。 * 背景中 Chrome 頁面實際已開啟,但系統無法穩定運作。 * **除錯與對比**: * 初期不斷調整提示詞與設定導致混亂。 * 對照組 **Hermes Agent** 持續穩定輸出報告,且仍使用 MiniMax M2.7。 * 推論:問題不在模型,而在執行方法(瀏覽器控制的不穩定性)。 * **方法改進(移植 Hermes 方法)**: * 分析 Hermes 的技能(Skill),拆解其操作邏輯。 * **Hermes 的方法**:使用 Python 加 WebSockets 連接 CDP(Chrome DevTools Protocol),執行 JavaScript 直接提取推文資料。優點是快速、穩定、不依賴瀏覽器操作。 * **OpenClaw 的新流程**: 1. **X 資料**:由 Python 程式透過 CDP 與 Chrome 互動收集。 2. **GitHub Trending**:直接使用 HTTP 請求加正規表示式(Regular Expressions)收集。 3. **Google Trends**:使用 `pytrends` 庫收集。 * **改進效果**: * 資料來源層面不再依賴昂貴的瀏覽器自動化。 * 模型僅負責總結與分析。 * 穩定性提升,執行速度大幅改善(10 倍提升)。 ### 4. 總結與反思 1. **瀏覽器控制的不穩定性**:AI Agent 直接控制瀏覽器方法不穩定且拖慢速度。 2. **模型選擇的重要性**:關鍵任務不應在模型上節省成本,小型模型與蒸餾模型容易犯錯,應使用強模型。 3. **跨 Agent 學習**:當一個 Agent 無法良好執行任務時,可讓其學習另一個 Agent 的方法(「他山之石,可以攻玉」)。 ## 工具 / 模型 / 名詞整理 * **AI Agent 平台/工具**: * OpenClaw * Hermes Agent * **AI 模型**: * MiniMax M2.7 * GPT 5.4 * Claude * ChatGPT * Gemini * **瀏覽器與技術協議**: * Chrome(提及版本 Chrome 136) * CDP (Chrome DevTools Protocol) * WebSockets * JavaScript * **資料來源平台**: * X(原 Twitter) * GitHub Trending * Google Trends * **程式庫/技術**: * Python * `pytrends` 庫 * 正規表示式(Regular Expressions) * HTTP 請求 * **其他專有名詞**: * Snapshot(原始資料快照) * Skill(技能) * Context Neglect(上下文忽視) * Hallucination from Prior(先前上下文幻覺) * Distillation Techniques(蒸餾技術) * Remote Debugging(遠端偵錯) * User Data Dir(使用者資料目錄) ## 操作流程整理 ### 流程一:OpenClaw 初期設定(瀏覽器控制法) 1. 啟用 Chrome 遠端偵錯(Remote Debugging)。 2. 修改 OpenClaw 設定檔,建立名為 `xbrowser` 的 Profile。 3. 設定適當的 Port。 4. 使用指令以偵錯模式啟動 Chrome。 5. 在該 Chrome 中登入 X 帳號。 6. 驗證 OpenClaw 是否能接管頁面並抓取資料。 7. *缺點*:易超時、速度慢、模型易產生幻覺。 ### 流程二:優化後的資料抓取流程(Python + CDP 法) 1. **X 資料抓取**: * 使用 Python 程式。 * 透過 WebSocket 連接 CDP(Chrome DevTools Protocol)。 * 執行 JavaScript 直接提取推文資料。 2. **GitHub Trending 抓取**: * 直接使用 HTTP 請求。 * 使用正規表示式(Regular Expressions)解析並提取資料。 3. **Google Trends 抓取**: * 使用 `pytrends` 庫進行收集。 4. **模型分析**: * 將上述收集的資料輸入給 AI 模型(如 GPT 5.4)。 * 模型僅負責總結與分析,生成最終報告。 ## 值得注意的限制或風險 1. **Chrome 版本變更影響**:Chrome 136 起出於安全理由,遠端偵錯端口與 pipe 無法再附加至預設使用者目錄(Default User Directory),必須使用非預設的使用者資料目錄,增加了環境設定的複雜性。 2. **小模型與蒸餾模型的指令遵循能力**:MiniMax M2.7 等小模型或蒸餾模型在面對長上下文時,難以執行「壓制先前知識」的指令,容易產生上下文忽視與幻覺。 3. **瀏覽器自動化的資源消耗**:依賴瀏覽器自動化(Browser Automation)進行資料抓取不僅速度慢,且容易因瀏覽器狀態、超時或反爬蟲機制導致系統不穩定。 4. **模型成本與效能的權衡**:雖然強模型(如 GPT 5.4)能解決準確性問題,但需注意其成本;而小模型雖便宜但可能在關鍵任務中失效。 ## 逐字稿辨識疑點 * **Andrej Karpathy skills**:逐字稿中出現此名稱,疑為特定專案或技能名稱,需查證是否為正確拼寫或特定內部稱呼。 * **Claudemem**:逐字稿中出現此名稱,疑為特定專案名稱,需查證是否為正確拼寫(如是否為 ClaudeMem 或其他變體)。 * **GPT 5.4**:逐字稿中明確提及此模型版本,需查證是否為實際存在的模型版本或口誤。 * **MiniMax M2.7**:逐字稿中明確提及此模型版本,需查證是否為實際存在的模型版本。 * **Chrome 136**:逐字稿中提及此版本變更,需查證 Chrome 是否已發布至該版本或為預測/口誤。 * **x browser**:設定檔中的 Profile 名稱,疑為拼寫錯誤或特定命名(如是否應為 `xbrowser` 或 `x-browser`)。 ## 可延伸追問 1. 對於需要處理長上下文且對準確性要求極高的任務,除了切換強模型外,是否有其他 Prompt Engineering 技巧可以減少「上下文忽視」? 2. 使用 CDP(Chrome DevTools Protocol)直接提取資料時,如何處理動態加載(Lazy Loading)或需要滾動頁面才能顯示的內容? 3. 在 OpenClaw 或類似 Agent 框架中,如何最佳化 Python 腳本與 Agent 核心之間的通訊效率,以進一步降低延遲? 4. 蒸餾技術(Distillation Techniques)訓練出的模型,在哪些特定任務場景下最容易出現「先前上下文幻覺」?