實際影片長度:21:40.000。原文、繁中、雙語可點擊句子跳轉影片。
0:00.000–0:01.600
zh大家想像一個情境
0:01.600–0:03.640
zh現在是凌晨一點
0:03.640–0:06.280
zh然後你為了解一個系統 bug
0:06.280–0:08.000
zh已經坐在電腦前
0:08.000–0:09.880
zh除錯了十幾分鐘
0:09.880–0:11.320
zh哇 凌晨一點
0:11.320–0:13.520
zh這聽起來就是我們工程師的
0:13.520–0:14.840
zh日常噩夢
0:14.840–0:16.720
zh真的超級痛苦
0:16.720–0:18.960
zh然後你剛剛把一份
0:18.960–0:21.280
zh就是大概 2000 行左右的
0:21.280–0:22.560
zhJSON 錯誤報告
0:22.560–0:24.920
zh還有三個核心程式碼
0:24.920–0:26.120
zh檔案的片段
0:26.120–0:28.440
zh全部貼給你的 AI 助手
0:28.440–0:31.160
zh嗯 這資訊量真的很龐大
0:31.160–0:32.880
zh對 然後你好不容易
0:32.880–0:34.360
zh真的是好不容易
0:34.360–0:36.320
zh引導他找到了問題點
0:36.320–0:37.680
zh你就下指令說
0:37.680–0:40.160
zh太好了 就針對剛剛那個
0:40.160–0:42.440
zhoff 檔案生成修復程式碼
0:42.440–0:43.880
zh結果你猜怎麼著
0:43.880–0:45.440
zh該不會是忘記了吧
0:45.440–0:47.200
zh沒錯 他回傳了一段
0:47.200–0:49.360
zh完全不相關的邏輯
0:49.360–0:51.520
zh甚至連檔名都拼錯
0:51.520–0:54.680
zh也就是說 他的上下文記憶
0:54.680–0:56.600
zh就在最關鍵的這一刻
0:56.600–0:58.280
zh徹底爆滿崩潰了
0:58.280–0:59.720
zh這種時候真的會讓人
0:59.720–1:00.800
zh想直接砸螢幕
1:00.800–1:04.120
zh其實這就是開發界常說的
1:04.120–1:06.880
zh所謂的上下文視窗危機
1:06.880–1:08.960
zh對 Context Window 危機
1:08.960–1:11.680
zh沒錯 當歷史資訊量太大
1:11.680–1:13.320
zh傳統的 AI 系統
1:13.320–1:14.600
zh為了解決這個問題
1:14.600–1:16.000
zh通常會在背後
1:16.000–1:17.120
zh偷偷做一件事
1:17.120–1:19.160
zh就是把前面的對話
1:19.160–1:20.240
zh進行摘要
1:20.240–1:22.360
zh但講到傳統的摘要法
1:22.360–1:23.880
zh那根本就像是
1:23.880–1:26.360
zh我們清理冰箱的時候
1:26.360–1:27.880
zh把所有剩菜
1:27.880–1:30.600
zh隔夜飯全部倒進果汁機裡
1:30.600–1:31.760
zh然後打成一鍋
1:31.760–1:34.520
zh完全看不出原貌的綜合果汁
1:34.520–1:36.040
zh這個比喻非常精準
1:36.040–1:38.080
zh體積確實是變小了
1:38.080–1:38.920
zh沒錯 對
1:38.920–1:40.320
zh可是如果我現在需要
1:40.320–1:41.760
zh找裡面的一根蔥
1:41.760–1:43.560
zh抱歉 完全找不到
1:43.560–1:45.440
zh在程式碼的環境裡
1:45.440–1:47.000
zh少掉的那根蔥
1:47.000–1:49.880
zh可能就是一個至關重要的 API 參數
1:49.880–1:52.760
zh確實 這會讓整個後續的除錯
1:52.760–1:53.440
zh完全失準
1:53.440–1:56.080
zh而且比綜合果汁更糟的是
1:56.080–1:58.640
zh這杯果汁還會讓 AI 產生幻覺
1:58.640–2:00.640
zh讓它去憑空捏造那些
2:00.640–2:02.320
zh被摘要吃掉的細節
2:02.320–2:04.440
zh哇 那真的是越忙越忙
2:04.440–2:06.960
zh所以我們在本次深入探討中
2:06.960–2:10.080
zh要來解析一個全新的開源專案
2:10.080–2:13.000
zh這是一個 Cloud Code 的擴充套件
2:13.000–2:14.280
zh兼 NPM 模組
2:14.280–2:18.280
zh叫做 Fast-Jev-Compaction
2:18.280–2:20.400
zh這個套件的策略非常極端
2:20.400–2:22.640
zh它主打的是逐字保留
2:22.640–2:24.680
zh以及得分刪除法
2:24.680–2:27.080
zh也就是說 它不打果汁了
2:27.080–2:30.000
zh它是把你確定已經過期的食材
2:30.000–2:31.880
zh整包連同包裝袋
2:31.880–2:33.400
zh直接丟進垃圾桶
2:33.400–2:35.640
zh而留下來的每一顆蘋果
2:35.640–2:37.360
zh都是百分之百原封不動
2:37.360–2:38.520
zh非常新鮮的
2:38.520–2:40.720
zh沒錯 這就是它的核心理念
2:40.720–2:42.280
zh所以今天的任務
2:42.280–2:45.280
zh我們就是要來拆解這套機制的底層邏輯
2:45.280–2:48.360
zh比如它能省下多少 Token
2:48.360–2:49.560
zh如果是很短的對話
2:49.560–2:51.120
zh會不會反而增加成本
2:51.120–2:53.680
zh還有對我們台灣的中小企業來說
2:53.680–2:55.960
zh這到底能不能真正落地
2:55.960–2:58.960
zh這些實務問題都非常關鍵
2:58.960–3:02.320
zh那我們先從它的保鮮機制談起好了
3:02.320–3:04.280
zh我注意到來源資料裡提到
3:04.280–3:06.880
zh它會把每一筆工具呼叫
3:06.880–3:09.720
zh就是 Tool Use 跟它的結果 Tool Result
3:09.720–3:11.320
zh成對地綁定在一起
3:11.320–3:14.400
zh對 這是它運作的最基礎基石
3:14.400–3:16.120
zh因為在 Cloud Code 這種
3:16.120–3:17.880
zh會瘋狂呼叫終端機
3:17.880–3:20.040
zh或者是讀取檔案的環境中
3:20.040–3:22.160
zh工具的操作跟回傳結果
3:22.160–3:23.680
zh是絕對不能脫鉤的
3:23.680–3:26.800
zh了解 那它怎麼決定誰該留下來
3:26.800–3:28.120
zh系統有一個叫做
3:28.120–3:30.440
zhPreserve Recent Messages 的設定
3:30.440–3:31.720
zh預設值是 6
3:31.720–3:35.240
zh意思是最新發生的前 6 筆對話訊息
3:35.240–3:37.440
zh會被加上精選的保護罩
3:37.440–3:38.200
zh精選
3:38.200–3:40.360
zh所以這 6 筆是絕對安全的
3:40.360–3:41.400
zh絕對不碰
3:41.400–3:44.160
zh它保證你當下正在處理的邏輯
3:44.160–3:45.280
zh不會被刪掉
3:45.280–3:46.320
zh但挑戰來了
3:46.320–3:48.480
zh如果要請 Jev 這個模型
3:48.480–3:49.840
zh來幫我們評估那些
3:49.840–3:53.320
zh沒被勾選的舊資料該不該刪
3:53.320–3:55.800
zh我們得把整個長篇大論的歷史記錄
3:55.800–3:56.840
zh傳送給它對吧
3:56.840–3:59.560
zh沒錯 這就是一個潛在的瓶頸
3:59.560–4:01.400
zhJev 本身的上下文上限
4:01.400–4:03.480
zh是 32K 個 Token
4:03.480–4:06.000
zh如果在傳送評估的路上就先爆了
4:06.000–4:07.480
zh那這個壓縮工具
4:07.480–4:08.720
zh不就毫無意義了嗎
4:08.720–4:11.200
zh所以開發者為了解決這個問題
4:11.200–4:14.360
zh設定了一個 Max State Tokens 的上限
4:14.360–4:16.120
zh預設是 25,000
4:16.120–4:18.040
zh25,000 留了一點緩衝空間
4:18.040–4:21.920
zh對 而且為了在不拖慢系統速度的前提下
4:21.920–4:23.840
zh估算這 25,000 個 Token
4:23.840–4:25.880
zh它放棄了傳統那種
4:25.880–4:28.240
zh精確但很笨重的分詞器
4:28.240–4:29.600
zh不用 Tokenizer
4:29.600–4:30.680
zh那它怎麼算
4:30.680–4:33.840
zh它直接用字元來進行粗略的估算
4:33.840–4:35.600
zh等一下 用字元算
4:35.600–4:37.760
zh這在英文環境或許說得通
4:37.760–4:39.880
zh大約 6 個英文字母算一個詞
4:39.880–4:41.360
zh數字算半個 Token
4:41.360–4:42.720
zh標點符號算一個
4:42.720–4:45.320
zh這是一種為了效能妥協的做法
4:45.320–4:48.200
zh沒錯 這是一種啟發式演算法
4:48.200–4:50.520
zh可是這在我們台灣的實務應用上
4:50.520–4:52.280
zh根本是個隱形地雷吧
4:52.280–4:54.680
zh你想想看 如果使用者的 Prompt
4:54.680–4:56.880
zh或者那個巨大的 JSON 報表裡
4:56.880–4:58.360
zh塞滿了繁體中文呢
4:58.360–5:00.480
zh哇 這裡真的講到重點了
5:00.480–5:02.720
zh在大多數大型語言模型裡
5:02.720–5:06.320
zh一個繁體中文字可能就會消耗 2 到 3 個 Token
5:06.320–5:08.440
zh如果系統還傻傻地以為
5:08.440–5:10.520
zh6 個中文字才等於 1 個 Token
5:10.520–5:13.840
zh這絕對會嚴重低估真實的 Token 數量
5:13.840–5:16.440
zh這個實務觀察真的非常敏銳
5:16.440–5:19.400
zh這個開源專案目前的設計思維
5:19.400–5:21.960
zh確實帶有強烈的英語系
5:21.960–5:23.600
zh跟程式碼本位色彩
5:23.600–5:25.880
zh對 最後送給 Jev 的時候
5:25.880–5:29.040
zh肯定會直接撞破 32K 的上限
5:29.040–5:30.440
zh導致 API 報錯
5:30.440–5:34.080
zh這也是為什麼它把安全水位設在 25,000
5:34.080–5:36.400
zh留了足足 7K 的緩衝
5:36.400–5:40.280
zh但對於大量處理中文文本的團隊來說
5:40.280–5:42.120
zh技術主管在導入時
5:42.120–5:44.920
zh絕對需要注意這個資源估算的比例
5:44.920–5:47.000
zh了解 要特別小心
5:47.000–5:49.320
zh不過撇除中文字元的問題
5:49.320–5:53.360
zh當它發現資源數真的超過了 25,000 的限制
5:53.360–5:55.440
zh我看到資料說它的處理手法
5:55.440–5:57.080
zh叫做多階段處理
5:57.080–5:58.760
zh對 Stage Based Fitting
5:58.760–6:00.600
zh它的做法相當精妙
6:00.600–6:01.960
zh讓我推演一下
6:01.960–6:04.880
zh假設我有一個 5000 行的系統日誌
6:04.880–6:07.240
zh它總不可能直接放棄壓縮吧
6:07.240–6:10.240
zh它一定是從那些最肥大的參數開刀
6:10.240–6:11.200
zh完全正確
6:11.200–6:14.320
zh第一階段 它會把所有沒被勾選的
6:14.320–6:15.840
zh舊工具輸入參數
6:15.840–6:19.200
zh硬生生壓縮到 1000 個字元
6:19.200–6:21.080
zh所以它把中間挖空了嗎
6:21.080–6:23.440
zh沒錯 它只保留開頭跟結尾
6:23.440–6:26.120
zh把中間龐大的資料直接捨棄
6:26.120–6:29.840
zh所以它保留了工具曾經被執行過的形狀
6:29.840–6:31.000
zh但捨棄了內容
6:31.000–6:33.160
zh那如果挖空到 1000 字元
6:33.160–6:35.400
zh算一算還是超過 25,000 呢
6:35.400–6:36.920
zh那它就會變得更殘酷一點
6:36.920–6:38.320
zh進入第二階段
6:38.320–6:40.280
zh把限制縮減到 200 個字元
6:40.280–6:42.760
zh200 字元真的很少了
6:42.760–6:45.560
zh如果再不行 就砍到極限的 60 個字
6:45.560–6:48.160
zh到最後如果還是塞不進去
6:48.160–6:50.160
zh那些很久以前的舊訊息
6:50.160–6:53.080
zh會被徹底折疊成一句簡單的短語
6:53.080–6:54.760
zh像是一句註解那樣嗎
6:54.760–6:57.160
zh對 例如省略 N 個字元
6:57.160–6:59.480
zh就這樣一步一步削肉剔骨
6:59.480–7:01.440
zh直到整包資料的估算值
7:01.440–7:03.960
zh能安全塞進 25,000 的限制裡
7:03.960–7:06.400
zh再送給 Jev 去做最後的決策
7:06.400–7:10.200
zh哇 這種在極限狀態下的多階段處理邏輯
7:10.200–7:11.640
zh對我們工程師來說
7:11.640–7:13.840
zh真的是一個很棒的價值提升
7:13.840–7:14.400
zh怎麼說
7:14.400–7:16.200
zh就是在系統設計時
7:16.200–7:18.720
zh為了追求極致的效能跟穩定
7:18.720–7:21.080
zh其實你不一定需要追求百分之百
7:21.080–7:22.320
zh精確的 Token 計算
7:22.320–7:24.280
zh用簡單的資源估算
7:24.280–7:26.120
zh搭配多層次的安全防線
7:26.120–7:28.120
zh實務上不僅運作更快
7:28.120–7:29.560
zh容錯率也更高
7:29.560–7:31.400
zh工程思維的精髓
7:31.400–7:34.080
zh就是用最小的算力成本
7:34.080–7:36.520
zh換取最大的系統穩定度
7:36.520–7:37.920
zh但講到成本
7:37.920–7:41.080
zh這就衍生出另一個很現實的問題了
7:41.080–7:41.840
zh什麼問題
7:41.840–7:45.360
zh如果今天我這個除錯任務其實很簡單
7:45.360–7:48.240
zh我只跟 AI 來回對話了三四次
7:48.240–7:50.000
zh上下文根本還很空
7:50.000–7:52.640
zh為了清理那一點點的歷史記錄
7:52.640–7:54.960
zh我還要特地把資料打包
7:54.960–7:58.760
zh傳送一個 API 請求給 Jev 去做評分
7:58.760–8:01.520
zh這反而多花了一筆 API 費用
8:01.520–8:02.920
zh甚至增加了網路延遲對吧
8:02.920–8:05.080
zh沒錯 這樣感覺很不划算
8:05.080–8:07.000
zh其實這個外掛並沒有那麼死板
8:07.000–8:08.240
zh在系統內部
8:08.240–8:11.040
zh它設定了一個參數叫做 Reduction Ratio
8:11.040–8:12.760
zh也就是壓縮比例
8:12.760–8:14.880
zh哦 所以它會先算帳
8:14.880–8:17.320
zh對 當 Jev 評估完畢
8:17.320–8:18.920
zh準備動刀刪除之前
8:18.920–8:20.600
zh系統會先預估一下
8:20.600–8:24.360
zh如果預計能砍掉的內容比例小於 0.25
8:24.360–8:28.920
zh也就是說 Jev 認為能刪掉的廢話不到四分之一
8:28.920–8:30.240
zh系統就會判斷說
8:30.240–8:32.040
zh這套壓縮根本不划算
8:32.040–8:32.800
zh馬上停損
8:32.800–8:33.560
zh就是這樣
8:33.560–8:36.320
zh它會直接退回原本的完整對話
8:36.320–8:38.440
zh或者 Fallback 回去使用
8:38.440–8:40.600
zhCloud Code 內建的裁減機制
8:40.600–8:43.120
zh它不會為了展現自己會壓縮
8:43.120–8:45.440
zh而硬去執行無效的操作
8:45.440–8:48.240
zh懂得及時停損是很聰明的設計
8:48.240–8:50.520
zh但如果我們把目光放遠一點
8:50.520–8:53.240
zh考慮到企業長期的技術選型
8:53.240–8:56.440
zh我們最怕的其實是被單一廠商綁架
8:56.440–8:57.560
enVendor Lock-in
8:57.560–9:00.920
zh這確實是企業導入新技術時最大的顧慮
9:00.920–9:04.400
zh對啊 今天這個套件是為 Jev 模型設計的
9:04.400–9:07.720
zh如果我不想把資料打給 TypeSafe 的 API
9:07.720–9:10.200
zh或者我們公司已經買了大量的
9:10.200–9:12.200
zhOpenAI 或 Anthropic 的額度
9:12.200–9:14.320
zh這套機制還有用武之地嗎
9:14.320–9:15.920
zh來源文件雖然沒有明說
9:15.920–9:18.160
zh它原生內建了所有主流模型
9:18.160–9:21.240
zh但它刻意留下了一道非常寬廣的後門
9:21.240–9:23.560
zh開發者可以自行實作一個
9:23.560–9:25.520
zh名為 Jev Asker 的介面
9:25.520–9:26.800
enJev Asker
9:26.800–9:29.760
zh意思是只要我符合這個介面的標準
9:29.760–9:31.760
zh我背後要接誰都可以
9:31.760–9:34.920
zh沒錯 只要你能寫出一個 Ask 的方法
9:34.920–9:37.680
zh你就可以自行撰寫底層的傳輸邏輯
9:37.680–9:40.960
zh而且這個專案是作為 NPM 模組發布的
9:40.960–9:42.920
zh所以它可以直接裝在專案裡
9:42.920–9:45.480
zh對 它還大方地匯出了像是
9:45.480–9:46.840
enCompact Messages
9:46.840–9:49.720
zhCollect Tool Calls 這些核心函式
9:49.720–9:51.480
zh這些就像是樂高積木一樣
9:51.480–9:53.400
zh這對於技術主管來說
9:53.400–9:55.000
zh真的是一盒定心丸
9:55.000–9:58.640
zh這種模組化暴露出核心介面的設計
9:58.640–10:02.880
zh意味著我們甚至可以把這套刪除法的演算法
10:02.880–10:07.400
zh抽離出來 改寫整合到公司內部的私有 AI 系統中
10:07.400–10:10.200
zh這樣技術綁架的風險就趨近於零了
10:10.200–10:11.760
zh既然機制這麼彈性
10:11.760–10:14.200
zh那我們就得來檢驗它的心臟了
10:14.200–10:17.800
zh它到底是怎麼給出那個所謂的刪除得分的
10:17.800–10:19.480
zh它的評分機制是這樣
10:19.480–10:23.240
zhJev 會針對每一個沒被勾選的工具呼叫
10:23.240–10:25.640
zh問兩個非常刁鑽的問題
10:25.640–10:26.840
zh哪兩個問題
10:26.840–10:30.600
zh第一 這個呼叫的記錄本身該留下來嗎
10:30.600–10:32.160
zh知道它曾經被執行過
10:32.160–10:34.280
zh對接下來的任務還重要嗎
10:34.280–10:36.800
zh嗯 這是評估動作本身
10:36.800–10:37.840
zh那第二個呢
10:37.840–10:41.880
zh第二 這個執行的結果該原封不動保留嗎
10:41.880–10:43.480
zh還是其實可以刪掉
10:43.480–10:46.720
zh大不了讓 AI 發現缺資料時重新跑一次
10:46.720–10:50.720
zh哦 所以它把動作跟結果分開來評估
10:50.720–10:52.560
zh那幾個分數是多少
10:52.560–10:56.360
zh系統依賴一個預設為 0.5 的 keep threshold
10:56.360–10:57.880
zh也就是保留門檻
10:57.880–10:59.680
zh大於 0.5 就保留嗎
10:59.680–11:03.800
zh對 如果 Jev 給出保留結果的機率大於 0.5
11:03.800–11:05.880
zh那就整組完好無缺地留下
11:05.880–11:08.960
zh那如果結果不重要 但動作很重要呢
11:08.960–11:10.800
zh如果保留結果的機率不高
11:10.800–11:13.560
zh但保留動作記錄的機率大於 0.5
11:13.560–11:15.560
zh它就會把那份龐大的結果
11:15.560–11:17.240
zh截斷到前 300 個字元
11:17.240–11:18.840
zh並加上一行註解
11:18.840–11:21.040
zh告訴 AI 這裡曾經發生過什麼
11:21.040–11:24.560
zh了解 那如果兩個機率都低於 0.5 呢
11:24.560–11:26.520
zh那就是整組直接超度
11:26.520–11:27.520
zh完全刪除
11:27.520–11:30.280
zh超度 這形容很貼切
11:30.280–11:32.520
zh邏輯聽起來很縝密啦
11:32.520–11:35.600
zh但我們都知道 機率不代表絕對
11:35.600–11:38.600
zh萬一 Jev 今天就是判斷失誤
11:38.600–11:41.280
zh把一個超級關鍵的記錄給刪了
11:41.280–11:43.440
zh導致模型徹底忘記了
11:43.440–11:44.240
zh剛剛讀過的檔名
11:44.240–11:46.160
zh這時候補救機制是什麼
11:46.160–11:48.920
zh開發者在畫面上其實不會瞎子摸象
11:48.920–11:50.840
zh你會看到一個 Toast 提示
11:50.840–11:53.400
zh明確告訴你保留了幾筆訊息
11:53.400–11:56.160
zh但如果真的誤刪了關鍵資訊怎麼辦
11:56.160–11:58.920
zh文件也坦承這項技術有它的局限
11:58.920–12:00.440
zh如果真的刪錯了
12:00.440–12:02.400
zh其實補救方式非常直覺
12:02.400–12:04.960
zh因為你是在具有代理能力的環境裡
12:04.960–12:07.760
zhAI 如果發現自己缺少某個參數
12:07.760–12:10.000
zh它可以隨時再次執行該工具
12:10.000–12:12.640
zh大不了就是讓 AI 再花個幾秒鐘
12:12.640–12:14.320
zh重新讀一次檔案
12:14.320–12:15.960
zh這成本還算可以接受
12:15.960–12:20.440
zh除此之外 為了確保系統不會因為 API 連線失敗
12:20.440–12:21.320
zh而整組崩潰
12:21.320–12:23.480
zh作者在寫單元測試的時候
12:23.480–12:26.080
zh特別實作了一個不聯網的 Fake Jev
12:26.080–12:28.120
zh不聯網的假 Jev
12:28.120–12:29.800
zh這有什麼好處
12:29.800–12:31.840
zh這確保了在真實情境中
12:31.840–12:34.440
zh萬一 Jev 回傳了破損的 JSON
12:34.440–12:36.320
zh或是網路直接斷線
12:36.320–12:40.160
zh系統能百分之百順暢地執行優雅降級
12:40.160–12:41.640
zh優雅降級
12:41.640–12:43.480
zh也就是無縫切換回
12:43.480–12:45.840
zhCloud Code 原本內建的裁減機制對吧
12:45.840–12:46.800
zh完全正確
12:46.800–12:49.320
zh有降級機制確實讓人安心
12:49.320–12:51.920
zh但說到聯網打 API
12:51.920–12:55.440
zh我們就必須面對企業導入時最大的心魔了
12:55.440–12:57.040
zh那就是資安
12:57.040–12:59.400
zh沒錯 這真的是重中之重
12:59.400–13:02.200
zh任何會把資料往外送的外掛
13:02.200–13:04.920
zh在公司內部都會面臨嚴格的審查
13:04.920–13:08.680
zh對 這部分資料裡有提到什麼防護機制嗎
13:08.680–13:10.080
zh這是今天最核心
13:10.080–13:12.360
zh最需要劃重點的資安警告
13:12.360–13:16.320
zh這個套件在運作時 你需要填寫 API Key
13:16.320–13:19.320
zh而且它會將你那份完整的對話記錄
13:19.320–13:21.600
zh包含所有的工具輸入參數
13:21.600–13:24.680
zh毫無保留地傳送到 TypeSafe 的伺服器
13:24.680–13:26.520
zh等一下 毫無保留
13:26.520–13:31.840
zh也就是說 如果我的程式碼裡夾帶了 AWS 的機密金鑰
13:31.840–13:35.440
zh或者我們公司核心產品還沒公開的商業邏輯
13:35.440–13:38.000
zh這些都會變成純文字
13:38.000–13:40.120
zh直接送到別人的伺服器上
13:40.120–13:40.920
zh毫不設防
13:40.920–13:41.720
zh完全會
13:41.720–13:43.960
zh來源文件完全沒有提到
13:43.960–13:47.440
zh任何內建的自動過濾或清理敏感資訊的機制
13:47.440–13:49.200
zh哇 這太危險了吧
13:49.200–13:52.280
zh作者反而在 README 裡非常用力地警告大家
13:52.280–13:55.080
zh絕對不要把金鑰提交到原始碼中
13:55.080–13:56.400
zh這等於是在暗示
13:56.400–14:00.240
zh資料的對外傳輸是完全透明且具有風險的
14:00.240–14:02.560
zh這件事對台灣的中小企業
14:02.560–14:05.400
zh資安公司或是企業內部團隊來說
14:05.400–14:06.320
zh太關鍵了
14:06.320–14:07.120
zh非常關鍵
14:07.120–14:10.320
zh我們常常看到工程師為了解決眼前的
14:10.320–14:11.800
zhContext 爆滿痛點
14:11.800–14:14.400
zh上網隨手就裝了一個開源工具
14:14.400–14:16.240
zh這裡的實務提醒是
14:16.240–14:19.240
zh如果你的專案牽涉到任何商業機密
14:19.240–14:23.240
zh絕對不能在沒有自建防線的情況下直接套用
14:23.240–14:25.640
zh沒錯 這也呼應了前面提到的
14:25.640–14:26.760
zhJev Asker 介面
14:26.760–14:28.960
zh如果企業真的要導入
14:28.960–14:31.560
zh技術團隊必須自己寫一個中介層
14:31.560–14:34.240
zh在把資料送出去給 Jev 評分之前
14:34.240–14:37.040
zh先在本地端把敏感資訊過濾掉
14:37.040–14:39.480
zh企業的底線是不能妥協的
14:39.480–14:41.720
zh但其實即使資安這關過了
14:41.720–14:44.320
zh技術團隊還要面對另一個深淵
14:44.320–14:46.480
zh那就是部署的摩擦力
14:46.480–14:47.920
zh部署的坑真的很多
14:47.920–14:51.120
zh技術再好 如果無法順暢地部署到
14:51.120–14:52.880
zh每一位工程師的電腦上
14:52.880–14:55.880
zh或者沒辦法放進 CI/CD 的流程裡
14:55.880–14:56.880
zh那也是白搭
14:56.880–14:59.040
zh我看到文件特別提到
14:59.040–15:02.400
zh這個機制依賴 Cloud Code 的 Function Hooks 功能
15:02.400–15:03.840
zh對 麻煩就在於
15:03.840–15:06.280
zh這個功能目前還處於早期測試階段
15:06.280–15:08.080
zh所以它不是 NPM 安裝完
15:08.080–15:09.920
zh就能無腦啟動的
15:09.920–15:11.240
zh遠比那複雜
15:11.240–15:12.560
zh你必須在環境變數
15:12.560–15:14.520
zh或者是本機的設定檔裡
15:14.520–15:17.800
zh強制宣告一個全域變數來開啟這個功能
15:17.800–15:20.240
zh哦 要手動去開 Feature Flag
15:20.240–15:22.760
zh對 這代表團隊裡的每一個使用環境
15:22.760–15:24.960
zh包括每位新進員工的筆電
15:24.960–15:27.200
zh或是雲端的 CI/CD 伺服器
15:27.200–15:30.240
zh都必須先經歷這個手動開啟的步驟
15:30.240–15:31.840
zh否則外掛根本不會動
15:31.840–15:34.400
zh哇 這對 DevOps 團隊來說
15:34.400–15:35.720
zh絕對是個大坑啊
15:35.720–15:37.600
zh推廣新工具時
15:37.600–15:39.840
zh只要多一個手動設定步驟
15:39.840–15:41.480
zh採用率就會掉一半
15:41.480–15:43.520
zh確實會增加初期的推廣成本
15:43.520–15:45.960
zh不過談到推廣跟說服
15:45.960–15:49.360
zh我注意到作者做了一件讓我非常驚艷的事情
15:49.360–15:53.600
zh他為了展示這套抽象的得分刪除法技術
15:53.600–15:57.360
zh特地寫了一個 macOS 原生的 Swift UI App
15:57.360–15:59.600
zh只為了錄製一段展示影片
15:59.600–16:01.840
zh這在開源推廣上真的非常聰明
16:01.840–16:03.760
zh對啊 為什麼他不直接錄個
16:03.760–16:05.680
zh無聊的終端機畫面就好
16:05.680–16:07.200
zh還要特地寫個 App
16:07.200–16:08.840
zh這個 App 其實從頭到尾
16:08.840–16:10.440
zh都沒有呼叫任何真實的 API
16:10.440–16:12.400
zh它裡面顯示的對話跟決策
16:12.400–16:14.600
zh全都是用腳本預先寫實的
16:14.600–16:17.360
zh它純粹就是為了視覺化演出而生的
16:17.360–16:18.640
zh視覺化演出
16:18.640–16:20.640
zh它具體演出的是什麼效果
16:20.640–16:22.360
zh當你在畫面上看到一長串
16:22.360–16:23.560
zh密密麻麻的歷史記錄
16:23.560–16:26.880
zh系統判定哪些舊的呼叫是不需要的廢話時
16:26.880–16:29.640
zh那些文字會直接在畫面上變成紅色
16:29.640–16:31.800
zh然後動態地折疊消失
16:31.800–16:34.400
zh哇 變成紅色然後消失
16:34.400–16:36.760
zh這種視覺衝擊力太強了吧
16:36.760–16:39.600
zh對一個沒時間看長篇技術文件的技術主管
16:39.600–16:40.960
zh或非技術老闆來說
16:40.960–16:42.600
zh這幾秒鐘的動態裁剪
16:42.600–16:45.680
zh能讓他們瞬間看懂這個技術的核心價值
16:45.680–16:48.400
zh這裡有一個超棒的實務應用價值
16:48.400–16:50.360
zh如果我們是工程師
16:50.360–16:52.040
zh準備向老闆提案導入
16:52.040–16:55.280
zh這種可以幫公司省 API 費用的新架構
16:55.280–16:56.680
zh嗯 你要怎麼說服他
16:56.680–16:59.360
zh與其貼出一堆冷冰冰的 Lockdown
16:59.360–17:01.200
zh或是 Token 節省數據
17:01.200–17:05.400
zh不如學學這種視覺化展示核心邏輯的手法
17:05.400–17:08.440
zh老闆一看紅字消失 馬上就知道
17:08.440–17:09.920
zh哦 垃圾被清掉了
17:09.920–17:11.560
zh有用的東西還在
17:11.560–17:13.000
zh而且我們省錢了
17:13.000–17:15.800
zh沒錯 能把深奧的底層邏輯
17:15.800–17:17.600
zh轉化為直覺的視覺
17:17.600–17:20.720
zh有時候比寫出這段程式碼還要困難
17:20.720–17:23.560
zh這絕對是提升競爭力的好方法
17:23.560–17:28.640
zh聊到這裡我們最後來宏觀地檢視一下產業趨勢
17:28.640–17:30.080
zh面對上下文爆滿
17:30.080–17:32.120
zh目前業界有遮蔽法
17:32.120–17:35.400
zh有直接砍掉舊對話的滑動視窗
17:35.400–17:37.320
zh還有傳統的摘要法
17:37.320–17:40.200
zhGMV 帶來的這種得分刪除
17:40.200–17:42.160
zh未來真的會成為主流嗎
17:42.160–17:44.760
zh它還有什麼無法跨越的曲線
17:44.760–17:47.040
zh滑動視窗雖然簡單粗暴
17:47.040–17:50.200
zh但大家都意識到它會無可避免地
17:50.200–17:52.880
zh遺失早期設定的系統約束條件
17:52.880–17:56.760
zhGMV 確實在精確度上開創了一個新流派
17:56.760–18:00.240
zh但它目前有一個非常硬傷的缺陷
18:00.240–18:01.400
zh什麼缺陷
18:01.400–18:04.960
zh在最終輸出實際保留下來的歷史記錄裡
18:04.960–18:06.440
zh純文字訊息
18:06.440–18:08.640
zh也就是人類跟 AI 講的話
18:08.640–18:10.800
zh永遠不會被移除或縮減
18:10.800–18:14.160
zh等等 也就是說如果使用者自己打字
18:14.160–18:16.000
zh貼了幾萬字的會議記錄
18:16.000–18:18.120
zh甚至是一堆無意義的廢話
18:18.120–18:21.160
zh這個外掛其實拿它一點辦法都沒有
18:21.160–18:22.120
zh一點辦法都沒有
18:22.120–18:26.520
zh純文字只會在傳給 GMV 評估的那個狀態中
18:26.520–18:27.120
zh被縮減
18:27.120–18:30.240
zh但最終真實保留在上下文裡的記錄
18:30.240–18:33.720
zh人類打的純文字會被百分之百完整保留
18:33.720–18:36.680
zh所以它只管工具呼叫的記錄
18:36.680–18:39.440
zh對 GMV 的權限僅限於決定
18:39.440–18:41.240
zh要不要刪除工具呼叫
18:41.240–18:42.480
zh跟工具回傳結果
18:42.480–18:44.400
zh這個誤區非常重要
18:44.400–18:47.280
zh這意味著企業在評估導入時
18:47.280–18:49.280
zh絕對不能抱持著說
18:49.280–18:52.440
zh哦 我裝了這個就能無腦壓縮所有人類對話
18:52.440–18:53.960
zh這是一個錯誤期待
18:53.960–18:56.720
zh沒錯 它是一把極端特化的手術刀
18:56.720–18:59.120
zh它最佳的發揮舞台是那種
18:59.120–19:01.440
zh多代理人瘋狂反覆執行工具
19:01.440–19:05.960
zh在背後產生大量 JSON 報表與錯誤日誌的自動化任務
19:05.960–19:07.600
zh只有在這種情境下
19:07.600–19:11.160
zh大量的無效系統痕跡才可以被精準抹除
19:11.160–19:13.320
zh但如果是人類純聊天
19:13.320–19:15.960
zh它的節省效果其實微乎其微
19:15.960–19:18.840
zh對 這點在導入前一定要評估清楚
19:18.840–19:22.000
zh所以真的是要把刀用在刀口上
19:22.000–19:25.840
zh針對自動化與工具密集的任務去應用
19:25.840–19:29.280
zh才能最大化節省 Token 的投資報酬率
19:29.280–19:32.640
zh今天的解析真的非常精彩
19:32.640–19:34.480
zh從果汁機的殘酷比喻
19:34.480–19:36.840
zh到多階段處理的精妙
19:36.840–19:39.280
zh還有繁體中文的潛在風險
19:39.280–19:42.360
zh甚至資安防護跟視覺化展示
19:42.360–19:44.400
zh這讓我們不禁反思
19:44.400–19:46.720
zh在未來 AI 越變越強的時代
19:46.720–19:51.160
zh我們真的需要讓 AI 記住所有的摸索與錯誤過程嗎
19:51.160–19:56.760
zh還是其實只要讓它記住關鍵的結論與原始資料就足夠了
19:56.760–19:58.680
zh今天最後的實務提醒是
19:58.680–20:00.640
zh看到新的開源工具
20:00.640–20:04.200
zh大家不要只看表面上宣稱省了多少 Token
20:04.200–20:07.080
zh一定要往底層看它的資料流向
20:07.080–20:08.960
zh有沒有資安過濾機制
20:08.960–20:12.680
zh能不能真正安全地落地到你們公司的規範中
20:12.680–20:15.760
zh沒錯 安全永遠是第一考量
20:15.760–20:18.240
zh喜歡我們的深入分析討論嗎
20:18.240–20:21.000
zh記得轉發給有需要的親朋好友
20:21.000–20:24.240
zh並且幫我們按讚訂閱開啟小鈴鐺
20:24.240–20:26.320
zh更多相關資訊連結
20:26.320–20:28.440
zh請參考影片下方的資訊欄
20:28.440–20:29.920
zh最後感謝您的收聽
20:29.920–20:32.040
zh祝您順心 我們下集再會
20:32.040–20:33.080
zh拜拜
0:00.000–0:01.600
大家想像一個情境
0:01.600–0:03.640
現在是凌晨一點
0:03.640–0:06.280
然後你為了解一個系統 bug
0:06.280–0:08.000
已經坐在電腦前
0:08.000–0:09.880
除錯了十幾分鐘
0:09.880–0:11.320
哇 凌晨一點
0:11.320–0:13.520
這聽起來就是我們工程師的
0:13.520–0:14.840
日常噩夢
0:14.840–0:16.720
真的超級痛苦
0:16.720–0:18.960
然後你剛剛把一份
0:18.960–0:21.280
就是大概 2000 行左右的
0:21.280–0:22.560
JSON 錯誤報告
0:22.560–0:24.920
還有三個核心程式碼
0:24.920–0:26.120
檔案的片段
0:26.120–0:28.440
全部貼給你的 AI 助手
0:28.440–0:31.160
嗯 這資訊量真的很龐大
0:31.160–0:32.880
對 然後你好不容易
0:32.880–0:34.360
真的是好不容易
0:34.360–0:36.320
引導他找到了問題點
0:36.320–0:37.680
你就下指令說
0:37.680–0:40.160
太好了 就針對剛剛那個
0:40.160–0:42.440
off 檔案生成修復程式碼
0:42.440–0:43.880
結果你猜怎麼著
0:43.880–0:45.440
該不會是忘記了吧
0:45.440–0:47.200
沒錯 他回傳了一段
0:47.200–0:49.360
完全不相關的邏輯
0:49.360–0:51.520
甚至連檔名都拼錯
0:51.520–0:54.680
也就是說 他的上下文記憶
0:54.680–0:56.600
就在最關鍵的這一刻
0:56.600–0:58.280
徹底爆滿崩潰了
0:58.280–0:59.720
這種時候真的會讓人
0:59.720–1:00.800
想直接砸螢幕
1:00.800–1:04.120
其實這就是開發界常說的
1:04.120–1:06.880
所謂的上下文視窗危機
1:06.880–1:08.960
對 Context Window 危機
1:08.960–1:11.680
沒錯 當歷史資訊量太大
1:11.680–1:13.320
傳統的 AI 系統
1:13.320–1:14.600
為了解決這個問題
1:14.600–1:16.000
通常會在背後
1:16.000–1:17.120
偷偷做一件事
1:17.120–1:19.160
就是把前面的對話
1:19.160–1:20.240
進行摘要
1:20.240–1:22.360
但講到傳統的摘要法
1:22.360–1:23.880
那根本就像是
1:23.880–1:26.360
我們清理冰箱的時候
1:26.360–1:27.880
把所有剩菜
1:27.880–1:30.600
隔夜飯全部倒進果汁機裡
1:30.600–1:31.760
然後打成一鍋
1:31.760–1:34.520
完全看不出原貌的綜合果汁
1:34.520–1:36.040
這個比喻非常精準
1:36.040–1:38.080
體積確實是變小了
1:38.080–1:38.920
沒錯 對
1:38.920–1:40.320
可是如果我現在需要
1:40.320–1:41.760
找裡面的一根蔥
1:41.760–1:43.560
抱歉 完全找不到
1:43.560–1:45.440
在程式碼的環境裡
1:45.440–1:47.000
少掉的那根蔥
1:47.000–1:49.880
可能就是一個至關重要的 API 參數
1:49.880–1:52.760
確實 這會讓整個後續的除錯
1:52.760–1:53.440
完全失準
1:53.440–1:56.080
而且比綜合果汁更糟的是
1:56.080–1:58.640
這杯果汁還會讓 AI 產生幻覺
1:58.640–2:00.640
讓它去憑空捏造那些
2:00.640–2:02.320
被摘要吃掉的細節
2:02.320–2:04.440
哇 那真的是越忙越忙
2:04.440–2:06.960
所以我們在本次深入探討中
2:06.960–2:10.080
要來解析一個全新的開源專案
2:10.080–2:13.000
這是一個 Cloud Code 的擴充套件
2:13.000–2:14.280
兼 NPM 模組
2:14.280–2:18.280
叫做 Fast-Jev-Compaction
2:18.280–2:20.400
這個套件的策略非常極端
2:20.400–2:22.640
它主打的是逐字保留
2:22.640–2:24.680
以及得分刪除法
2:24.680–2:27.080
也就是說 它不打果汁了
2:27.080–2:30.000
它是把你確定已經過期的食材
2:30.000–2:31.880
整包連同包裝袋
2:31.880–2:33.400
直接丟進垃圾桶
2:33.400–2:35.640
而留下來的每一顆蘋果
2:35.640–2:37.360
都是百分之百原封不動
2:37.360–2:38.520
非常新鮮的
2:38.520–2:40.720
沒錯 這就是它的核心理念
2:40.720–2:42.280
所以今天的任務
2:42.280–2:45.280
我們就是要來拆解這套機制的底層邏輯
2:45.280–2:48.360
比如它能省下多少 Token
2:48.360–2:49.560
如果是很短的對話
2:49.560–2:51.120
會不會反而增加成本
2:51.120–2:53.680
還有對我們台灣的中小企業來說
2:53.680–2:55.960
這到底能不能真正落地
2:55.960–2:58.960
這些實務問題都非常關鍵
2:58.960–3:02.320
那我們先從它的保鮮機制談起好了
3:02.320–3:04.280
我注意到來源資料裡提到
3:04.280–3:06.880
它會把每一筆工具呼叫
3:06.880–3:09.720
就是 Tool Use 跟它的結果 Tool Result
3:09.720–3:11.320
成對地綁定在一起
3:11.320–3:14.400
對 這是它運作的最基礎基石
3:14.400–3:16.120
因為在 Cloud Code 這種
3:16.120–3:17.880
會瘋狂呼叫終端機
3:17.880–3:20.040
或者是讀取檔案的環境中
3:20.040–3:22.160
工具的操作跟回傳結果
3:22.160–3:23.680
是絕對不能脫鉤的
3:23.680–3:26.800
了解 那它怎麼決定誰該留下來
3:26.800–3:28.120
系統有一個叫做
3:28.120–3:30.440
Preserve Recent Messages 的設定
3:30.440–3:31.720
預設值是 6
3:31.720–3:35.240
意思是最新發生的前 6 筆對話訊息
3:35.240–3:37.440
會被加上精選的保護罩
3:37.440–3:38.200
精選
3:38.200–3:40.360
所以這 6 筆是絕對安全的
3:40.360–3:41.400
絕對不碰
3:41.400–3:44.160
它保證你當下正在處理的邏輯
3:44.160–3:45.280
不會被刪掉
3:45.280–3:46.320
但挑戰來了
3:46.320–3:48.480
如果要請 Jev 這個模型
3:48.480–3:49.840
來幫我們評估那些
3:49.840–3:53.320
沒被勾選的舊資料該不該刪
3:53.320–3:55.800
我們得把整個長篇大論的歷史記錄
3:55.800–3:56.840
傳送給它對吧
3:56.840–3:59.560
沒錯 這就是一個潛在的瓶頸
3:59.560–4:01.400
Jev 本身的上下文上限
4:01.400–4:03.480
是 32K 個 Token
4:03.480–4:06.000
如果在傳送評估的路上就先爆了
4:06.000–4:07.480
那這個壓縮工具
4:07.480–4:08.720
不就毫無意義了嗎
4:08.720–4:11.200
所以開發者為了解決這個問題
4:11.200–4:14.360
設定了一個 Max State Tokens 的上限
4:14.360–4:16.120
預設是 25,000
4:16.120–4:18.040
25,000 留了一點緩衝空間
4:18.040–4:21.920
對 而且為了在不拖慢系統速度的前提下
4:21.920–4:23.840
估算這 25,000 個 Token
4:23.840–4:25.880
它放棄了傳統那種
4:25.880–4:28.240
精確但很笨重的分詞器
4:28.240–4:29.600
不用 Tokenizer
4:29.600–4:30.680
那它怎麼算
4:30.680–4:33.840
它直接用字元來進行粗略的估算
4:33.840–4:35.600
等一下 用字元算
4:35.600–4:37.760
這在英文環境或許說得通
4:37.760–4:39.880
大約 6 個英文字母算一個詞
4:39.880–4:41.360
數字算半個 Token
4:41.360–4:42.720
標點符號算一個
4:42.720–4:45.320
這是一種為了效能妥協的做法
4:45.320–4:48.200
沒錯 這是一種啟發式演算法
4:48.200–4:50.520
可是這在我們台灣的實務應用上
4:50.520–4:52.280
根本是個隱形地雷吧
4:52.280–4:54.680
你想想看 如果使用者的 Prompt
4:54.680–4:56.880
或者那個巨大的 JSON 報表裡
4:56.880–4:58.360
塞滿了繁體中文呢
4:58.360–5:00.480
哇 這裡真的講到重點了
5:00.480–5:02.720
在大多數大型語言模型裡
5:02.720–5:06.320
一個繁體中文字可能就會消耗 2 到 3 個 Token
5:06.320–5:08.440
如果系統還傻傻地以為
5:08.440–5:10.520
6 個中文字才等於 1 個 Token
5:10.520–5:13.840
這絕對會嚴重低估真實的 Token 數量
5:13.840–5:16.440
這個實務觀察真的非常敏銳
5:16.440–5:19.400
這個開源專案目前的設計思維
5:19.400–5:21.960
確實帶有強烈的英語系
5:21.960–5:23.600
跟程式碼本位色彩
5:23.600–5:25.880
對 最後送給 Jev 的時候
5:25.880–5:29.040
肯定會直接撞破 32K 的上限
5:29.040–5:30.440
導致 API 報錯
5:30.440–5:34.080
這也是為什麼它把安全水位設在 25,000
5:34.080–5:36.400
留了足足 7K 的緩衝
5:36.400–5:40.280
但對於大量處理中文文本的團隊來說
5:40.280–5:42.120
技術主管在導入時
5:42.120–5:44.920
絕對需要注意這個資源估算的比例
5:44.920–5:47.000
了解 要特別小心
5:47.000–5:49.320
不過撇除中文字元的問題
5:49.320–5:53.360
當它發現資源數真的超過了 25,000 的限制
5:53.360–5:55.440
我看到資料說它的處理手法
5:55.440–5:57.080
叫做多階段處理
5:57.080–5:58.760
對 Stage Based Fitting
5:58.760–6:00.600
它的做法相當精妙
6:00.600–6:01.960
讓我推演一下
6:01.960–6:04.880
假設我有一個 5000 行的系統日誌
6:04.880–6:07.240
它總不可能直接放棄壓縮吧
6:07.240–6:10.240
它一定是從那些最肥大的參數開刀
6:10.240–6:11.200
完全正確
6:11.200–6:14.320
第一階段 它會把所有沒被勾選的
6:14.320–6:15.840
舊工具輸入參數
6:15.840–6:19.200
硬生生壓縮到 1000 個字元
6:19.200–6:21.080
所以它把中間挖空了嗎
6:21.080–6:23.440
沒錯 它只保留開頭跟結尾
6:23.440–6:26.120
把中間龐大的資料直接捨棄
6:26.120–6:29.840
所以它保留了工具曾經被執行過的形狀
6:29.840–6:31.000
但捨棄了內容
6:31.000–6:33.160
那如果挖空到 1000 字元
6:33.160–6:35.400
算一算還是超過 25,000 呢
6:35.400–6:36.920
那它就會變得更殘酷一點
6:36.920–6:38.320
進入第二階段
6:38.320–6:40.280
把限制縮減到 200 個字元
6:40.280–6:42.760
200 字元真的很少了
6:42.760–6:45.560
如果再不行 就砍到極限的 60 個字
6:45.560–6:48.160
到最後如果還是塞不進去
6:48.160–6:50.160
那些很久以前的舊訊息
6:50.160–6:53.080
會被徹底折疊成一句簡單的短語
6:53.080–6:54.760
像是一句註解那樣嗎
6:54.760–6:57.160
對 例如省略 N 個字元
6:57.160–6:59.480
就這樣一步一步削肉剔骨
6:59.480–7:01.440
直到整包資料的估算值
7:01.440–7:03.960
能安全塞進 25,000 的限制裡
7:03.960–7:06.400
再送給 Jev 去做最後的決策
7:06.400–7:10.200
哇 這種在極限狀態下的多階段處理邏輯
7:10.200–7:11.640
對我們工程師來說
7:11.640–7:13.840
真的是一個很棒的價值提升
7:13.840–7:14.400
怎麼說
7:14.400–7:16.200
就是在系統設計時
7:16.200–7:18.720
為了追求極致的效能跟穩定
7:18.720–7:21.080
其實你不一定需要追求百分之百
7:21.080–7:22.320
精確的 Token 計算
7:22.320–7:24.280
用簡單的資源估算
7:24.280–7:26.120
搭配多層次的安全防線
7:26.120–7:28.120
實務上不僅運作更快
7:28.120–7:29.560
容錯率也更高
7:29.560–7:31.400
工程思維的精髓
7:31.400–7:34.080
就是用最小的算力成本
7:34.080–7:36.520
換取最大的系統穩定度
7:36.520–7:37.920
但講到成本
7:37.920–7:41.080
這就衍生出另一個很現實的問題了
7:41.080–7:41.840
什麼問題
7:41.840–7:45.360
如果今天我這個除錯任務其實很簡單
7:45.360–7:48.240
我只跟 AI 來回對話了三四次
7:48.240–7:50.000
上下文根本還很空
7:50.000–7:52.640
為了清理那一點點的歷史記錄
7:52.640–7:54.960
我還要特地把資料打包
7:54.960–7:58.760
傳送一個 API 請求給 Jev 去做評分
7:58.760–8:01.520
這反而多花了一筆 API 費用
8:01.520–8:02.920
甚至增加了網路延遲對吧
8:02.920–8:05.080
沒錯 這樣感覺很不划算
8:05.080–8:07.000
其實這個外掛並沒有那麼死板
8:07.000–8:08.240
在系統內部
8:08.240–8:11.040
它設定了一個參數叫做 Reduction Ratio
8:11.040–8:12.760
也就是壓縮比例
8:12.760–8:14.880
哦 所以它會先算帳
8:14.880–8:17.320
對 當 Jev 評估完畢
8:17.320–8:18.920
準備動刀刪除之前
8:18.920–8:20.600
系統會先預估一下
8:20.600–8:24.360
如果預計能砍掉的內容比例小於 0.25
8:24.360–8:28.920
也就是說 Jev 認為能刪掉的廢話不到四分之一
8:28.920–8:30.240
系統就會判斷說
8:30.240–8:32.040
這套壓縮根本不划算
8:32.040–8:32.800
馬上停損
8:32.800–8:33.560
就是這樣
8:33.560–8:36.320
它會直接退回原本的完整對話
8:36.320–8:38.440
或者 Fallback 回去使用
8:38.440–8:40.600
Cloud Code 內建的裁減機制
8:40.600–8:43.120
它不會為了展現自己會壓縮
8:43.120–8:45.440
而硬去執行無效的操作
8:45.440–8:48.240
懂得及時停損是很聰明的設計
8:48.240–8:50.520
但如果我們把目光放遠一點
8:50.520–8:53.240
考慮到企業長期的技術選型
8:53.240–8:56.440
我們最怕的其實是被單一廠商綁架
8:56.440–8:57.560
Vendor Lock-in
8:57.560–9:00.920
這確實是企業導入新技術時最大的顧慮
9:00.920–9:04.400
對啊 今天這個套件是為 Jev 模型設計的
9:04.400–9:07.720
如果我不想把資料打給 TypeSafe 的 API
9:07.720–9:10.200
或者我們公司已經買了大量的
9:10.200–9:12.200
OpenAI 或 Anthropic 的額度
9:12.200–9:14.320
這套機制還有用武之地嗎
9:14.320–9:15.920
來源文件雖然沒有明說
9:15.920–9:18.160
它原生內建了所有主流模型
9:18.160–9:21.240
但它刻意留下了一道非常寬廣的後門
9:21.240–9:23.560
開發者可以自行實作一個
9:23.560–9:25.520
名為 Jev Asker 的介面
9:25.520–9:26.800
Jev Asker
9:26.800–9:29.760
意思是只要我符合這個介面的標準
9:29.760–9:31.760
我背後要接誰都可以
9:31.760–9:34.920
沒錯 只要你能寫出一個 Ask 的方法
9:34.920–9:37.680
你就可以自行撰寫底層的傳輸邏輯
9:37.680–9:40.960
而且這個專案是作為 NPM 模組發布的
9:40.960–9:42.920
所以它可以直接裝在專案裡
9:42.920–9:45.480
對 它還大方地匯出了像是
9:45.480–9:46.840
Compact Messages
9:46.840–9:49.720
Collect Tool Calls 這些核心函式
9:49.720–9:51.480
這些就像是樂高積木一樣
9:51.480–9:53.400
這對於技術主管來說
9:53.400–9:55.000
真的是一盒定心丸
9:55.000–9:58.640
這種模組化暴露出核心介面的設計
9:58.640–10:02.880
意味著我們甚至可以把這套刪除法的演算法
10:02.880–10:07.400
抽離出來 改寫整合到公司內部的私有 AI 系統中
10:07.400–10:10.200
這樣技術綁架的風險就趨近於零了
10:10.200–10:11.760
既然機制這麼彈性
10:11.760–10:14.200
那我們就得來檢驗它的心臟了
10:14.200–10:17.800
它到底是怎麼給出那個所謂的刪除得分的
10:17.800–10:19.480
它的評分機制是這樣
10:19.480–10:23.240
Jev 會針對每一個沒被勾選的工具呼叫
10:23.240–10:25.640
問兩個非常刁鑽的問題
10:25.640–10:26.840
哪兩個問題
10:26.840–10:30.600
第一 這個呼叫的記錄本身該留下來嗎
10:30.600–10:32.160
知道它曾經被執行過
10:32.160–10:34.280
對接下來的任務還重要嗎
10:34.280–10:36.800
嗯 這是評估動作本身
10:36.800–10:37.840
那第二個呢
10:37.840–10:41.880
第二 這個執行的結果該原封不動保留嗎
10:41.880–10:43.480
還是其實可以刪掉
10:43.480–10:46.720
大不了讓 AI 發現缺資料時重新跑一次
10:46.720–10:50.720
哦 所以它把動作跟結果分開來評估
10:50.720–10:52.560
那幾個分數是多少
10:52.560–10:56.360
系統依賴一個預設為 0.5 的 keep threshold
10:56.360–10:57.880
也就是保留門檻
10:57.880–10:59.680
大於 0.5 就保留嗎
10:59.680–11:03.800
對 如果 Jev 給出保留結果的機率大於 0.5
11:03.800–11:05.880
那就整組完好無缺地留下
11:05.880–11:08.960
那如果結果不重要 但動作很重要呢
11:08.960–11:10.800
如果保留結果的機率不高
11:10.800–11:13.560
但保留動作記錄的機率大於 0.5
11:13.560–11:15.560
它就會把那份龐大的結果
11:15.560–11:17.240
截斷到前 300 個字元
11:17.240–11:18.840
並加上一行註解
11:18.840–11:21.040
告訴 AI 這裡曾經發生過什麼
11:21.040–11:24.560
了解 那如果兩個機率都低於 0.5 呢
11:24.560–11:26.520
那就是整組直接超度
11:26.520–11:27.520
完全刪除
11:27.520–11:30.280
超度 這形容很貼切
11:30.280–11:32.520
邏輯聽起來很縝密啦
11:32.520–11:35.600
但我們都知道 機率不代表絕對
11:35.600–11:38.600
萬一 Jev 今天就是判斷失誤
11:38.600–11:41.280
把一個超級關鍵的記錄給刪了
11:41.280–11:43.440
導致模型徹底忘記了
11:43.440–11:44.240
剛剛讀過的檔名
11:44.240–11:46.160
這時候補救機制是什麼
11:46.160–11:48.920
開發者在畫面上其實不會瞎子摸象
11:48.920–11:50.840
你會看到一個 Toast 提示
11:50.840–11:53.400
明確告訴你保留了幾筆訊息
11:53.400–11:56.160
但如果真的誤刪了關鍵資訊怎麼辦
11:56.160–11:58.920
文件也坦承這項技術有它的局限
11:58.920–12:00.440
如果真的刪錯了
12:00.440–12:02.400
其實補救方式非常直覺
12:02.400–12:04.960
因為你是在具有代理能力的環境裡
12:04.960–12:07.760
AI 如果發現自己缺少某個參數
12:07.760–12:10.000
它可以隨時再次執行該工具
12:10.000–12:12.640
大不了就是讓 AI 再花個幾秒鐘
12:12.640–12:14.320
重新讀一次檔案
12:14.320–12:15.960
這成本還算可以接受
12:15.960–12:20.440
除此之外 為了確保系統不會因為 API 連線失敗
12:20.440–12:21.320
而整組崩潰
12:21.320–12:23.480
作者在寫單元測試的時候
12:23.480–12:26.080
特別實作了一個不聯網的 Fake Jev
12:26.080–12:28.120
不聯網的假 Jev
12:28.120–12:29.800
這有什麼好處
12:29.800–12:31.840
這確保了在真實情境中
12:31.840–12:34.440
萬一 Jev 回傳了破損的 JSON
12:34.440–12:36.320
或是網路直接斷線
12:36.320–12:40.160
系統能百分之百順暢地執行優雅降級
12:40.160–12:41.640
優雅降級
12:41.640–12:43.480
也就是無縫切換回
12:43.480–12:45.840
Cloud Code 原本內建的裁減機制對吧
12:45.840–12:46.800
完全正確
12:46.800–12:49.320
有降級機制確實讓人安心
12:49.320–12:51.920
但說到聯網打 API
12:51.920–12:55.440
我們就必須面對企業導入時最大的心魔了
12:55.440–12:57.040
那就是資安
12:57.040–12:59.400
沒錯 這真的是重中之重
12:59.400–13:02.200
任何會把資料往外送的外掛
13:02.200–13:04.920
在公司內部都會面臨嚴格的審查
13:04.920–13:08.680
對 這部分資料裡有提到什麼防護機制嗎
13:08.680–13:10.080
這是今天最核心
13:10.080–13:12.360
最需要劃重點的資安警告
13:12.360–13:16.320
這個套件在運作時 你需要填寫 API Key
13:16.320–13:19.320
而且它會將你那份完整的對話記錄
13:19.320–13:21.600
包含所有的工具輸入參數
13:21.600–13:24.680
毫無保留地傳送到 TypeSafe 的伺服器
13:24.680–13:26.520
等一下 毫無保留
13:26.520–13:31.840
也就是說 如果我的程式碼裡夾帶了 AWS 的機密金鑰
13:31.840–13:35.440
或者我們公司核心產品還沒公開的商業邏輯
13:35.440–13:38.000
這些都會變成純文字
13:38.000–13:40.120
直接送到別人的伺服器上
13:40.120–13:40.920
毫不設防
13:40.920–13:41.720
完全會
13:41.720–13:43.960
來源文件完全沒有提到
13:43.960–13:47.440
任何內建的自動過濾或清理敏感資訊的機制
13:47.440–13:49.200
哇 這太危險了吧
13:49.200–13:52.280
作者反而在 README 裡非常用力地警告大家
13:52.280–13:55.080
絕對不要把金鑰提交到原始碼中
13:55.080–13:56.400
這等於是在暗示
13:56.400–14:00.240
資料的對外傳輸是完全透明且具有風險的
14:00.240–14:02.560
這件事對台灣的中小企業
14:02.560–14:05.400
資安公司或是企業內部團隊來說
14:05.400–14:06.320
太關鍵了
14:06.320–14:07.120
非常關鍵
14:07.120–14:10.320
我們常常看到工程師為了解決眼前的
14:10.320–14:11.800
Context 爆滿痛點
14:11.800–14:14.400
上網隨手就裝了一個開源工具
14:14.400–14:16.240
這裡的實務提醒是
14:16.240–14:19.240
如果你的專案牽涉到任何商業機密
14:19.240–14:23.240
絕對不能在沒有自建防線的情況下直接套用
14:23.240–14:25.640
沒錯 這也呼應了前面提到的
14:25.640–14:26.760
Jev Asker 介面
14:26.760–14:28.960
如果企業真的要導入
14:28.960–14:31.560
技術團隊必須自己寫一個中介層
14:31.560–14:34.240
在把資料送出去給 Jev 評分之前
14:34.240–14:37.040
先在本地端把敏感資訊過濾掉
14:37.040–14:39.480
企業的底線是不能妥協的
14:39.480–14:41.720
但其實即使資安這關過了
14:41.720–14:44.320
技術團隊還要面對另一個深淵
14:44.320–14:46.480
那就是部署的摩擦力
14:46.480–14:47.920
部署的坑真的很多
14:47.920–14:51.120
技術再好 如果無法順暢地部署到
14:51.120–14:52.880
每一位工程師的電腦上
14:52.880–14:55.880
或者沒辦法放進 CI/CD 的流程裡
14:55.880–14:56.880
那也是白搭
14:56.880–14:59.040
我看到文件特別提到
14:59.040–15:02.400
這個機制依賴 Cloud Code 的 Function Hooks 功能
15:02.400–15:03.840
對 麻煩就在於
15:03.840–15:06.280
這個功能目前還處於早期測試階段
15:06.280–15:08.080
所以它不是 NPM 安裝完
15:08.080–15:09.920
就能無腦啟動的
15:09.920–15:11.240
遠比那複雜
15:11.240–15:12.560
你必須在環境變數
15:12.560–15:14.520
或者是本機的設定檔裡
15:14.520–15:17.800
強制宣告一個全域變數來開啟這個功能
15:17.800–15:20.240
哦 要手動去開 Feature Flag
15:20.240–15:22.760
對 這代表團隊裡的每一個使用環境
15:22.760–15:24.960
包括每位新進員工的筆電
15:24.960–15:27.200
或是雲端的 CI/CD 伺服器
15:27.200–15:30.240
都必須先經歷這個手動開啟的步驟
15:30.240–15:31.840
否則外掛根本不會動
15:31.840–15:34.400
哇 這對 DevOps 團隊來說
15:34.400–15:35.720
絕對是個大坑啊
15:35.720–15:37.600
推廣新工具時
15:37.600–15:39.840
只要多一個手動設定步驟
15:39.840–15:41.480
採用率就會掉一半
15:41.480–15:43.520
確實會增加初期的推廣成本
15:43.520–15:45.960
不過談到推廣跟說服
15:45.960–15:49.360
我注意到作者做了一件讓我非常驚艷的事情
15:49.360–15:53.600
他為了展示這套抽象的得分刪除法技術
15:53.600–15:57.360
特地寫了一個 macOS 原生的 Swift UI App
15:57.360–15:59.600
只為了錄製一段展示影片
15:59.600–16:01.840
這在開源推廣上真的非常聰明
16:01.840–16:03.760
對啊 為什麼他不直接錄個
16:03.760–16:05.680
無聊的終端機畫面就好
16:05.680–16:07.200
還要特地寫個 App
16:07.200–16:08.840
這個 App 其實從頭到尾
16:08.840–16:10.440
都沒有呼叫任何真實的 API
16:10.440–16:12.400
它裡面顯示的對話跟決策
16:12.400–16:14.600
全都是用腳本預先寫實的
16:14.600–16:17.360
它純粹就是為了視覺化演出而生的
16:17.360–16:18.640
視覺化演出
16:18.640–16:20.640
它具體演出的是什麼效果
16:20.640–16:22.360
當你在畫面上看到一長串
16:22.360–16:23.560
密密麻麻的歷史記錄
16:23.560–16:26.880
系統判定哪些舊的呼叫是不需要的廢話時
16:26.880–16:29.640
那些文字會直接在畫面上變成紅色
16:29.640–16:31.800
然後動態地折疊消失
16:31.800–16:34.400
哇 變成紅色然後消失
16:34.400–16:36.760
這種視覺衝擊力太強了吧
16:36.760–16:39.600
對一個沒時間看長篇技術文件的技術主管
16:39.600–16:40.960
或非技術老闆來說
16:40.960–16:42.600
這幾秒鐘的動態裁剪
16:42.600–16:45.680
能讓他們瞬間看懂這個技術的核心價值
16:45.680–16:48.400
這裡有一個超棒的實務應用價值
16:48.400–16:50.360
如果我們是工程師
16:50.360–16:52.040
準備向老闆提案導入
16:52.040–16:55.280
這種可以幫公司省 API 費用的新架構
16:55.280–16:56.680
嗯 你要怎麼說服他
16:56.680–16:59.360
與其貼出一堆冷冰冰的 Lockdown
16:59.360–17:01.200
或是 Token 節省數據
17:01.200–17:05.400
不如學學這種視覺化展示核心邏輯的手法
17:05.400–17:08.440
老闆一看紅字消失 馬上就知道
17:08.440–17:09.920
哦 垃圾被清掉了
17:09.920–17:11.560
有用的東西還在
17:11.560–17:13.000
而且我們省錢了
17:13.000–17:15.800
沒錯 能把深奧的底層邏輯
17:15.800–17:17.600
轉化為直覺的視覺
17:17.600–17:20.720
有時候比寫出這段程式碼還要困難
17:20.720–17:23.560
這絕對是提升競爭力的好方法
17:23.560–17:28.640
聊到這裡我們最後來宏觀地檢視一下產業趨勢
17:28.640–17:30.080
面對上下文爆滿
17:30.080–17:32.120
目前業界有遮蔽法
17:32.120–17:35.400
有直接砍掉舊對話的滑動視窗
17:35.400–17:37.320
還有傳統的摘要法
17:37.320–17:40.200
GMV 帶來的這種得分刪除
17:40.200–17:42.160
未來真的會成為主流嗎
17:42.160–17:44.760
它還有什麼無法跨越的曲線
17:44.760–17:47.040
滑動視窗雖然簡單粗暴
17:47.040–17:50.200
但大家都意識到它會無可避免地
17:50.200–17:52.880
遺失早期設定的系統約束條件
17:52.880–17:56.760
GMV 確實在精確度上開創了一個新流派
17:56.760–18:00.240
但它目前有一個非常硬傷的缺陷
18:00.240–18:01.400
什麼缺陷
18:01.400–18:04.960
在最終輸出實際保留下來的歷史記錄裡
18:04.960–18:06.440
純文字訊息
18:06.440–18:08.640
也就是人類跟 AI 講的話
18:08.640–18:10.800
永遠不會被移除或縮減
18:10.800–18:14.160
等等 也就是說如果使用者自己打字
18:14.160–18:16.000
貼了幾萬字的會議記錄
18:16.000–18:18.120
甚至是一堆無意義的廢話
18:18.120–18:21.160
這個外掛其實拿它一點辦法都沒有
18:21.160–18:22.120
一點辦法都沒有
18:22.120–18:26.520
純文字只會在傳給 GMV 評估的那個狀態中
18:26.520–18:27.120
被縮減
18:27.120–18:30.240
但最終真實保留在上下文裡的記錄
18:30.240–18:33.720
人類打的純文字會被百分之百完整保留
18:33.720–18:36.680
所以它只管工具呼叫的記錄
18:36.680–18:39.440
對 GMV 的權限僅限於決定
18:39.440–18:41.240
要不要刪除工具呼叫
18:41.240–18:42.480
跟工具回傳結果
18:42.480–18:44.400
這個誤區非常重要
18:44.400–18:47.280
這意味著企業在評估導入時
18:47.280–18:49.280
絕對不能抱持著說
18:49.280–18:52.440
哦 我裝了這個就能無腦壓縮所有人類對話
18:52.440–18:53.960
這是一個錯誤期待
18:53.960–18:56.720
沒錯 它是一把極端特化的手術刀
18:56.720–18:59.120
它最佳的發揮舞台是那種
18:59.120–19:01.440
多代理人瘋狂反覆執行工具
19:01.440–19:05.960
在背後產生大量 JSON 報表與錯誤日誌的自動化任務
19:05.960–19:07.600
只有在這種情境下
19:07.600–19:11.160
大量的無效系統痕跡才可以被精準抹除
19:11.160–19:13.320
但如果是人類純聊天
19:13.320–19:15.960
它的節省效果其實微乎其微
19:15.960–19:18.840
對 這點在導入前一定要評估清楚
19:18.840–19:22.000
所以真的是要把刀用在刀口上
19:22.000–19:25.840
針對自動化與工具密集的任務去應用
19:25.840–19:29.280
才能最大化節省 Token 的投資報酬率
19:29.280–19:32.640
今天的解析真的非常精彩
19:32.640–19:34.480
從果汁機的殘酷比喻
19:34.480–19:36.840
到多階段處理的精妙
19:36.840–19:39.280
還有繁體中文的潛在風險
19:39.280–19:42.360
甚至資安防護跟視覺化展示
19:42.360–19:44.400
這讓我們不禁反思
19:44.400–19:46.720
在未來 AI 越變越強的時代
19:46.720–19:51.160
我們真的需要讓 AI 記住所有的摸索與錯誤過程嗎
19:51.160–19:56.760
還是其實只要讓它記住關鍵的結論與原始資料就足夠了
19:56.760–19:58.680
今天最後的實務提醒是
19:58.680–20:00.640
看到新的開源工具
20:00.640–20:04.200
大家不要只看表面上宣稱省了多少 Token
20:04.200–20:07.080
一定要往底層看它的資料流向
20:07.080–20:08.960
有沒有資安過濾機制
20:08.960–20:12.680
能不能真正安全地落地到你們公司的規範中
20:12.680–20:15.760
沒錯 安全永遠是第一考量
20:15.760–20:18.240
喜歡我們的深入分析討論嗎
20:18.240–20:21.000
記得轉發給有需要的親朋好友
20:21.000–20:24.240
並且幫我們按讚訂閱開啟小鈴鐺
20:24.240–20:26.320
更多相關資訊連結
20:26.320–20:28.440
請參考影片下方的資訊欄
20:28.440–20:29.920
最後感謝您的收聽
20:29.920–20:32.040
祝您順心 我們下集再會
20:32.040–20:33.080
拜拜
0:00.000–0:01.600
zh大家想像一個情境
大家想像一個情境
0:01.600–0:03.640
zh現在是凌晨一點
現在是凌晨一點
0:03.640–0:06.280
zh然後你為了解一個系統 bug
然後你為了解一個系統 bug
0:06.280–0:08.000
zh已經坐在電腦前
已經坐在電腦前
0:08.000–0:09.880
zh除錯了十幾分鐘
除錯了十幾分鐘
0:09.880–0:11.320
zh哇 凌晨一點
哇 凌晨一點
0:11.320–0:13.520
zh這聽起來就是我們工程師的
這聽起來就是我們工程師的
0:13.520–0:14.840
zh日常噩夢
日常噩夢
0:14.840–0:16.720
zh真的超級痛苦
真的超級痛苦
0:16.720–0:18.960
zh然後你剛剛把一份
然後你剛剛把一份
0:18.960–0:21.280
zh就是大概 2000 行左右的
就是大概 2000 行左右的
0:21.280–0:22.560
zhJSON 錯誤報告
JSON 錯誤報告
0:22.560–0:24.920
zh還有三個核心程式碼
還有三個核心程式碼
0:24.920–0:26.120
zh檔案的片段
檔案的片段
0:26.120–0:28.440
zh全部貼給你的 AI 助手
全部貼給你的 AI 助手
0:28.440–0:31.160
zh嗯 這資訊量真的很龐大
嗯 這資訊量真的很龐大
0:31.160–0:32.880
zh對 然後你好不容易
對 然後你好不容易
0:32.880–0:34.360
zh真的是好不容易
真的是好不容易
0:34.360–0:36.320
zh引導他找到了問題點
引導他找到了問題點
0:36.320–0:37.680
zh你就下指令說
你就下指令說
0:37.680–0:40.160
zh太好了 就針對剛剛那個
太好了 就針對剛剛那個
0:40.160–0:42.440
zhoff 檔案生成修復程式碼
off 檔案生成修復程式碼
0:42.440–0:43.880
zh結果你猜怎麼著
結果你猜怎麼著
0:43.880–0:45.440
zh該不會是忘記了吧
該不會是忘記了吧
0:45.440–0:47.200
zh沒錯 他回傳了一段
沒錯 他回傳了一段
0:47.200–0:49.360
zh完全不相關的邏輯
完全不相關的邏輯
0:49.360–0:51.520
zh甚至連檔名都拼錯
甚至連檔名都拼錯
0:51.520–0:54.680
zh也就是說 他的上下文記憶
也就是說 他的上下文記憶
0:54.680–0:56.600
zh就在最關鍵的這一刻
就在最關鍵的這一刻
0:56.600–0:58.280
zh徹底爆滿崩潰了
徹底爆滿崩潰了
0:58.280–0:59.720
zh這種時候真的會讓人
這種時候真的會讓人
0:59.720–1:00.800
zh想直接砸螢幕
想直接砸螢幕
1:00.800–1:04.120
zh其實這就是開發界常說的
其實這就是開發界常說的
1:04.120–1:06.880
zh所謂的上下文視窗危機
所謂的上下文視窗危機
1:06.880–1:08.960
zh對 Context Window 危機
對 Context Window 危機
1:08.960–1:11.680
zh沒錯 當歷史資訊量太大
沒錯 當歷史資訊量太大
1:11.680–1:13.320
zh傳統的 AI 系統
傳統的 AI 系統
1:13.320–1:14.600
zh為了解決這個問題
為了解決這個問題
1:14.600–1:16.000
zh通常會在背後
通常會在背後
1:16.000–1:17.120
zh偷偷做一件事
偷偷做一件事
1:17.120–1:19.160
zh就是把前面的對話
就是把前面的對話
1:19.160–1:20.240
zh進行摘要
進行摘要
1:20.240–1:22.360
zh但講到傳統的摘要法
但講到傳統的摘要法
1:22.360–1:23.880
zh那根本就像是
那根本就像是
1:23.880–1:26.360
zh我們清理冰箱的時候
我們清理冰箱的時候
1:26.360–1:27.880
zh把所有剩菜
把所有剩菜
1:27.880–1:30.600
zh隔夜飯全部倒進果汁機裡
隔夜飯全部倒進果汁機裡
1:30.600–1:31.760
zh然後打成一鍋
然後打成一鍋
1:31.760–1:34.520
zh完全看不出原貌的綜合果汁
完全看不出原貌的綜合果汁
1:34.520–1:36.040
zh這個比喻非常精準
這個比喻非常精準
1:36.040–1:38.080
zh體積確實是變小了
體積確實是變小了
1:38.080–1:38.920
zh沒錯 對
沒錯 對
1:38.920–1:40.320
zh可是如果我現在需要
可是如果我現在需要
1:40.320–1:41.760
zh找裡面的一根蔥
找裡面的一根蔥
1:41.760–1:43.560
zh抱歉 完全找不到
抱歉 完全找不到
1:43.560–1:45.440
zh在程式碼的環境裡
在程式碼的環境裡
1:45.440–1:47.000
zh少掉的那根蔥
少掉的那根蔥
1:47.000–1:49.880
zh可能就是一個至關重要的 API 參數
可能就是一個至關重要的 API 參數
1:49.880–1:52.760
zh確實 這會讓整個後續的除錯
確實 這會讓整個後續的除錯
1:52.760–1:53.440
zh完全失準
完全失準
1:53.440–1:56.080
zh而且比綜合果汁更糟的是
而且比綜合果汁更糟的是
1:56.080–1:58.640
zh這杯果汁還會讓 AI 產生幻覺
這杯果汁還會讓 AI 產生幻覺
1:58.640–2:00.640
zh讓它去憑空捏造那些
讓它去憑空捏造那些
2:00.640–2:02.320
zh被摘要吃掉的細節
被摘要吃掉的細節
2:02.320–2:04.440
zh哇 那真的是越忙越忙
哇 那真的是越忙越忙
2:04.440–2:06.960
zh所以我們在本次深入探討中
所以我們在本次深入探討中
2:06.960–2:10.080
zh要來解析一個全新的開源專案
要來解析一個全新的開源專案
2:10.080–2:13.000
zh這是一個 Cloud Code 的擴充套件
這是一個 Cloud Code 的擴充套件
2:13.000–2:14.280
zh兼 NPM 模組
兼 NPM 模組
2:14.280–2:18.280
zh叫做 Fast-Jev-Compaction
叫做 Fast-Jev-Compaction
2:18.280–2:20.400
zh這個套件的策略非常極端
這個套件的策略非常極端
2:20.400–2:22.640
zh它主打的是逐字保留
它主打的是逐字保留
2:22.640–2:24.680
zh以及得分刪除法
以及得分刪除法
2:24.680–2:27.080
zh也就是說 它不打果汁了
也就是說 它不打果汁了
2:27.080–2:30.000
zh它是把你確定已經過期的食材
它是把你確定已經過期的食材
2:30.000–2:31.880
zh整包連同包裝袋
整包連同包裝袋
2:31.880–2:33.400
zh直接丟進垃圾桶
直接丟進垃圾桶
2:33.400–2:35.640
zh而留下來的每一顆蘋果
而留下來的每一顆蘋果
2:35.640–2:37.360
zh都是百分之百原封不動
都是百分之百原封不動
2:37.360–2:38.520
zh非常新鮮的
非常新鮮的
2:38.520–2:40.720
zh沒錯 這就是它的核心理念
沒錯 這就是它的核心理念
2:40.720–2:42.280
zh所以今天的任務
所以今天的任務
2:42.280–2:45.280
zh我們就是要來拆解這套機制的底層邏輯
我們就是要來拆解這套機制的底層邏輯
2:45.280–2:48.360
zh比如它能省下多少 Token
比如它能省下多少 Token
2:48.360–2:49.560
zh如果是很短的對話
如果是很短的對話
2:49.560–2:51.120
zh會不會反而增加成本
會不會反而增加成本
2:51.120–2:53.680
zh還有對我們台灣的中小企業來說
還有對我們台灣的中小企業來說
2:53.680–2:55.960
zh這到底能不能真正落地
這到底能不能真正落地
2:55.960–2:58.960
zh這些實務問題都非常關鍵
這些實務問題都非常關鍵
2:58.960–3:02.320
zh那我們先從它的保鮮機制談起好了
那我們先從它的保鮮機制談起好了
3:02.320–3:04.280
zh我注意到來源資料裡提到
我注意到來源資料裡提到
3:04.280–3:06.880
zh它會把每一筆工具呼叫
它會把每一筆工具呼叫
3:06.880–3:09.720
zh就是 Tool Use 跟它的結果 Tool Result
就是 Tool Use 跟它的結果 Tool Result
3:09.720–3:11.320
zh成對地綁定在一起
成對地綁定在一起
3:11.320–3:14.400
zh對 這是它運作的最基礎基石
對 這是它運作的最基礎基石
3:14.400–3:16.120
zh因為在 Cloud Code 這種
因為在 Cloud Code 這種
3:16.120–3:17.880
zh會瘋狂呼叫終端機
會瘋狂呼叫終端機
3:17.880–3:20.040
zh或者是讀取檔案的環境中
或者是讀取檔案的環境中
3:20.040–3:22.160
zh工具的操作跟回傳結果
工具的操作跟回傳結果
3:22.160–3:23.680
zh是絕對不能脫鉤的
是絕對不能脫鉤的
3:23.680–3:26.800
zh了解 那它怎麼決定誰該留下來
了解 那它怎麼決定誰該留下來
3:26.800–3:28.120
zh系統有一個叫做
系統有一個叫做
3:28.120–3:30.440
zhPreserve Recent Messages 的設定
Preserve Recent Messages 的設定
3:30.440–3:31.720
zh預設值是 6
預設值是 6
3:31.720–3:35.240
zh意思是最新發生的前 6 筆對話訊息
意思是最新發生的前 6 筆對話訊息
3:35.240–3:37.440
zh會被加上精選的保護罩
會被加上精選的保護罩
3:37.440–3:38.200
zh精選
精選
3:38.200–3:40.360
zh所以這 6 筆是絕對安全的
所以這 6 筆是絕對安全的
3:40.360–3:41.400
zh絕對不碰
絕對不碰
3:41.400–3:44.160
zh它保證你當下正在處理的邏輯
它保證你當下正在處理的邏輯
3:44.160–3:45.280
zh不會被刪掉
不會被刪掉
3:45.280–3:46.320
zh但挑戰來了
但挑戰來了
3:46.320–3:48.480
zh如果要請 Jev 這個模型
如果要請 Jev 這個模型
3:48.480–3:49.840
zh來幫我們評估那些
來幫我們評估那些
3:49.840–3:53.320
zh沒被勾選的舊資料該不該刪
沒被勾選的舊資料該不該刪
3:53.320–3:55.800
zh我們得把整個長篇大論的歷史記錄
我們得把整個長篇大論的歷史記錄
3:55.800–3:56.840
zh傳送給它對吧
傳送給它對吧
3:56.840–3:59.560
zh沒錯 這就是一個潛在的瓶頸
沒錯 這就是一個潛在的瓶頸
3:59.560–4:01.400
zhJev 本身的上下文上限
Jev 本身的上下文上限
4:01.400–4:03.480
zh是 32K 個 Token
是 32K 個 Token
4:03.480–4:06.000
zh如果在傳送評估的路上就先爆了
如果在傳送評估的路上就先爆了
4:06.000–4:07.480
zh那這個壓縮工具
那這個壓縮工具
4:07.480–4:08.720
zh不就毫無意義了嗎
不就毫無意義了嗎
4:08.720–4:11.200
zh所以開發者為了解決這個問題
所以開發者為了解決這個問題
4:11.200–4:14.360
zh設定了一個 Max State Tokens 的上限
設定了一個 Max State Tokens 的上限
4:14.360–4:16.120
zh預設是 25,000
預設是 25,000
4:16.120–4:18.040
zh25,000 留了一點緩衝空間
25,000 留了一點緩衝空間
4:18.040–4:21.920
zh對 而且為了在不拖慢系統速度的前提下
對 而且為了在不拖慢系統速度的前提下
4:21.920–4:23.840
zh估算這 25,000 個 Token
估算這 25,000 個 Token
4:23.840–4:25.880
zh它放棄了傳統那種
它放棄了傳統那種
4:25.880–4:28.240
zh精確但很笨重的分詞器
精確但很笨重的分詞器
4:28.240–4:29.600
zh不用 Tokenizer
不用 Tokenizer
4:29.600–4:30.680
zh那它怎麼算
那它怎麼算
4:30.680–4:33.840
zh它直接用字元來進行粗略的估算
它直接用字元來進行粗略的估算
4:33.840–4:35.600
zh等一下 用字元算
等一下 用字元算
4:35.600–4:37.760
zh這在英文環境或許說得通
這在英文環境或許說得通
4:37.760–4:39.880
zh大約 6 個英文字母算一個詞
大約 6 個英文字母算一個詞
4:39.880–4:41.360
zh數字算半個 Token
數字算半個 Token
4:41.360–4:42.720
zh標點符號算一個
標點符號算一個
4:42.720–4:45.320
zh這是一種為了效能妥協的做法
這是一種為了效能妥協的做法
4:45.320–4:48.200
zh沒錯 這是一種啟發式演算法
沒錯 這是一種啟發式演算法
4:48.200–4:50.520
zh可是這在我們台灣的實務應用上
可是這在我們台灣的實務應用上
4:50.520–4:52.280
zh根本是個隱形地雷吧
根本是個隱形地雷吧
4:52.280–4:54.680
zh你想想看 如果使用者的 Prompt
你想想看 如果使用者的 Prompt
4:54.680–4:56.880
zh或者那個巨大的 JSON 報表裡
或者那個巨大的 JSON 報表裡
4:56.880–4:58.360
zh塞滿了繁體中文呢
塞滿了繁體中文呢
4:58.360–5:00.480
zh哇 這裡真的講到重點了
哇 這裡真的講到重點了
5:00.480–5:02.720
zh在大多數大型語言模型裡
在大多數大型語言模型裡
5:02.720–5:06.320
zh一個繁體中文字可能就會消耗 2 到 3 個 Token
一個繁體中文字可能就會消耗 2 到 3 個 Token
5:06.320–5:08.440
zh如果系統還傻傻地以為
如果系統還傻傻地以為
5:08.440–5:10.520
zh6 個中文字才等於 1 個 Token
6 個中文字才等於 1 個 Token
5:10.520–5:13.840
zh這絕對會嚴重低估真實的 Token 數量
這絕對會嚴重低估真實的 Token 數量
5:13.840–5:16.440
zh這個實務觀察真的非常敏銳
這個實務觀察真的非常敏銳
5:16.440–5:19.400
zh這個開源專案目前的設計思維
這個開源專案目前的設計思維
5:19.400–5:21.960
zh確實帶有強烈的英語系
確實帶有強烈的英語系
5:21.960–5:23.600
zh跟程式碼本位色彩
跟程式碼本位色彩
5:23.600–5:25.880
zh對 最後送給 Jev 的時候
對 最後送給 Jev 的時候
5:25.880–5:29.040
zh肯定會直接撞破 32K 的上限
肯定會直接撞破 32K 的上限
5:29.040–5:30.440
zh導致 API 報錯
導致 API 報錯
5:30.440–5:34.080
zh這也是為什麼它把安全水位設在 25,000
這也是為什麼它把安全水位設在 25,000
5:34.080–5:36.400
zh留了足足 7K 的緩衝
留了足足 7K 的緩衝
5:36.400–5:40.280
zh但對於大量處理中文文本的團隊來說
但對於大量處理中文文本的團隊來說
5:40.280–5:42.120
zh技術主管在導入時
技術主管在導入時
5:42.120–5:44.920
zh絕對需要注意這個資源估算的比例
絕對需要注意這個資源估算的比例
5:44.920–5:47.000
zh了解 要特別小心
了解 要特別小心
5:47.000–5:49.320
zh不過撇除中文字元的問題
不過撇除中文字元的問題
5:49.320–5:53.360
zh當它發現資源數真的超過了 25,000 的限制
當它發現資源數真的超過了 25,000 的限制
5:53.360–5:55.440
zh我看到資料說它的處理手法
我看到資料說它的處理手法
5:55.440–5:57.080
zh叫做多階段處理
叫做多階段處理
5:57.080–5:58.760
zh對 Stage Based Fitting
對 Stage Based Fitting
5:58.760–6:00.600
zh它的做法相當精妙
它的做法相當精妙
6:00.600–6:01.960
zh讓我推演一下
讓我推演一下
6:01.960–6:04.880
zh假設我有一個 5000 行的系統日誌
假設我有一個 5000 行的系統日誌
6:04.880–6:07.240
zh它總不可能直接放棄壓縮吧
它總不可能直接放棄壓縮吧
6:07.240–6:10.240
zh它一定是從那些最肥大的參數開刀
它一定是從那些最肥大的參數開刀
6:10.240–6:11.200
zh完全正確
完全正確
6:11.200–6:14.320
zh第一階段 它會把所有沒被勾選的
第一階段 它會把所有沒被勾選的
6:14.320–6:15.840
zh舊工具輸入參數
舊工具輸入參數
6:15.840–6:19.200
zh硬生生壓縮到 1000 個字元
硬生生壓縮到 1000 個字元
6:19.200–6:21.080
zh所以它把中間挖空了嗎
所以它把中間挖空了嗎
6:21.080–6:23.440
zh沒錯 它只保留開頭跟結尾
沒錯 它只保留開頭跟結尾
6:23.440–6:26.120
zh把中間龐大的資料直接捨棄
把中間龐大的資料直接捨棄
6:26.120–6:29.840
zh所以它保留了工具曾經被執行過的形狀
所以它保留了工具曾經被執行過的形狀
6:29.840–6:31.000
zh但捨棄了內容
但捨棄了內容
6:31.000–6:33.160
zh那如果挖空到 1000 字元
那如果挖空到 1000 字元
6:33.160–6:35.400
zh算一算還是超過 25,000 呢
算一算還是超過 25,000 呢
6:35.400–6:36.920
zh那它就會變得更殘酷一點
那它就會變得更殘酷一點
6:36.920–6:38.320
zh進入第二階段
進入第二階段
6:38.320–6:40.280
zh把限制縮減到 200 個字元
把限制縮減到 200 個字元
6:40.280–6:42.760
zh200 字元真的很少了
200 字元真的很少了
6:42.760–6:45.560
zh如果再不行 就砍到極限的 60 個字
如果再不行 就砍到極限的 60 個字
6:45.560–6:48.160
zh到最後如果還是塞不進去
到最後如果還是塞不進去
6:48.160–6:50.160
zh那些很久以前的舊訊息
那些很久以前的舊訊息
6:50.160–6:53.080
zh會被徹底折疊成一句簡單的短語
會被徹底折疊成一句簡單的短語
6:53.080–6:54.760
zh像是一句註解那樣嗎
像是一句註解那樣嗎
6:54.760–6:57.160
zh對 例如省略 N 個字元
對 例如省略 N 個字元
6:57.160–6:59.480
zh就這樣一步一步削肉剔骨
就這樣一步一步削肉剔骨
6:59.480–7:01.440
zh直到整包資料的估算值
直到整包資料的估算值
7:01.440–7:03.960
zh能安全塞進 25,000 的限制裡
能安全塞進 25,000 的限制裡
7:03.960–7:06.400
zh再送給 Jev 去做最後的決策
再送給 Jev 去做最後的決策
7:06.400–7:10.200
zh哇 這種在極限狀態下的多階段處理邏輯
哇 這種在極限狀態下的多階段處理邏輯
7:10.200–7:11.640
zh對我們工程師來說
對我們工程師來說
7:11.640–7:13.840
zh真的是一個很棒的價值提升
真的是一個很棒的價值提升
7:13.840–7:14.400
zh怎麼說
怎麼說
7:14.400–7:16.200
zh就是在系統設計時
就是在系統設計時
7:16.200–7:18.720
zh為了追求極致的效能跟穩定
為了追求極致的效能跟穩定
7:18.720–7:21.080
zh其實你不一定需要追求百分之百
其實你不一定需要追求百分之百
7:21.080–7:22.320
zh精確的 Token 計算
精確的 Token 計算
7:22.320–7:24.280
zh用簡單的資源估算
用簡單的資源估算
7:24.280–7:26.120
zh搭配多層次的安全防線
搭配多層次的安全防線
7:26.120–7:28.120
zh實務上不僅運作更快
實務上不僅運作更快
7:28.120–7:29.560
zh容錯率也更高
容錯率也更高
7:29.560–7:31.400
zh工程思維的精髓
工程思維的精髓
7:31.400–7:34.080
zh就是用最小的算力成本
就是用最小的算力成本
7:34.080–7:36.520
zh換取最大的系統穩定度
換取最大的系統穩定度
7:36.520–7:37.920
zh但講到成本
但講到成本
7:37.920–7:41.080
zh這就衍生出另一個很現實的問題了
這就衍生出另一個很現實的問題了
7:41.080–7:41.840
zh什麼問題
什麼問題
7:41.840–7:45.360
zh如果今天我這個除錯任務其實很簡單
如果今天我這個除錯任務其實很簡單
7:45.360–7:48.240
zh我只跟 AI 來回對話了三四次
我只跟 AI 來回對話了三四次
7:48.240–7:50.000
zh上下文根本還很空
上下文根本還很空
7:50.000–7:52.640
zh為了清理那一點點的歷史記錄
為了清理那一點點的歷史記錄
7:52.640–7:54.960
zh我還要特地把資料打包
我還要特地把資料打包
7:54.960–7:58.760
zh傳送一個 API 請求給 Jev 去做評分
傳送一個 API 請求給 Jev 去做評分
7:58.760–8:01.520
zh這反而多花了一筆 API 費用
這反而多花了一筆 API 費用
8:01.520–8:02.920
zh甚至增加了網路延遲對吧
甚至增加了網路延遲對吧
8:02.920–8:05.080
zh沒錯 這樣感覺很不划算
沒錯 這樣感覺很不划算
8:05.080–8:07.000
zh其實這個外掛並沒有那麼死板
其實這個外掛並沒有那麼死板
8:07.000–8:08.240
zh在系統內部
在系統內部
8:08.240–8:11.040
zh它設定了一個參數叫做 Reduction Ratio
它設定了一個參數叫做 Reduction Ratio
8:11.040–8:12.760
zh也就是壓縮比例
也就是壓縮比例
8:12.760–8:14.880
zh哦 所以它會先算帳
哦 所以它會先算帳
8:14.880–8:17.320
zh對 當 Jev 評估完畢
對 當 Jev 評估完畢
8:17.320–8:18.920
zh準備動刀刪除之前
準備動刀刪除之前
8:18.920–8:20.600
zh系統會先預估一下
系統會先預估一下
8:20.600–8:24.360
zh如果預計能砍掉的內容比例小於 0.25
如果預計能砍掉的內容比例小於 0.25
8:24.360–8:28.920
zh也就是說 Jev 認為能刪掉的廢話不到四分之一
也就是說 Jev 認為能刪掉的廢話不到四分之一
8:28.920–8:30.240
zh系統就會判斷說
系統就會判斷說
8:30.240–8:32.040
zh這套壓縮根本不划算
這套壓縮根本不划算
8:32.040–8:32.800
zh馬上停損
馬上停損
8:32.800–8:33.560
zh就是這樣
就是這樣
8:33.560–8:36.320
zh它會直接退回原本的完整對話
它會直接退回原本的完整對話
8:36.320–8:38.440
zh或者 Fallback 回去使用
或者 Fallback 回去使用
8:38.440–8:40.600
zhCloud Code 內建的裁減機制
Cloud Code 內建的裁減機制
8:40.600–8:43.120
zh它不會為了展現自己會壓縮
它不會為了展現自己會壓縮
8:43.120–8:45.440
zh而硬去執行無效的操作
而硬去執行無效的操作
8:45.440–8:48.240
zh懂得及時停損是很聰明的設計
懂得及時停損是很聰明的設計
8:48.240–8:50.520
zh但如果我們把目光放遠一點
但如果我們把目光放遠一點
8:50.520–8:53.240
zh考慮到企業長期的技術選型
考慮到企業長期的技術選型
8:53.240–8:56.440
zh我們最怕的其實是被單一廠商綁架
我們最怕的其實是被單一廠商綁架
8:56.440–8:57.560
enVendor Lock-in
Vendor Lock-in
8:57.560–9:00.920
zh這確實是企業導入新技術時最大的顧慮
這確實是企業導入新技術時最大的顧慮
9:00.920–9:04.400
zh對啊 今天這個套件是為 Jev 模型設計的
對啊 今天這個套件是為 Jev 模型設計的
9:04.400–9:07.720
zh如果我不想把資料打給 TypeSafe 的 API
如果我不想把資料打給 TypeSafe 的 API
9:07.720–9:10.200
zh或者我們公司已經買了大量的
或者我們公司已經買了大量的
9:10.200–9:12.200
zhOpenAI 或 Anthropic 的額度
OpenAI 或 Anthropic 的額度
9:12.200–9:14.320
zh這套機制還有用武之地嗎
這套機制還有用武之地嗎
9:14.320–9:15.920
zh來源文件雖然沒有明說
來源文件雖然沒有明說
9:15.920–9:18.160
zh它原生內建了所有主流模型
它原生內建了所有主流模型
9:18.160–9:21.240
zh但它刻意留下了一道非常寬廣的後門
但它刻意留下了一道非常寬廣的後門
9:21.240–9:23.560
zh開發者可以自行實作一個
開發者可以自行實作一個
9:23.560–9:25.520
zh名為 Jev Asker 的介面
名為 Jev Asker 的介面
9:25.520–9:26.800
enJev Asker
Jev Asker
9:26.800–9:29.760
zh意思是只要我符合這個介面的標準
意思是只要我符合這個介面的標準
9:29.760–9:31.760
zh我背後要接誰都可以
我背後要接誰都可以
9:31.760–9:34.920
zh沒錯 只要你能寫出一個 Ask 的方法
沒錯 只要你能寫出一個 Ask 的方法
9:34.920–9:37.680
zh你就可以自行撰寫底層的傳輸邏輯
你就可以自行撰寫底層的傳輸邏輯
9:37.680–9:40.960
zh而且這個專案是作為 NPM 模組發布的
而且這個專案是作為 NPM 模組發布的
9:40.960–9:42.920
zh所以它可以直接裝在專案裡
所以它可以直接裝在專案裡
9:42.920–9:45.480
zh對 它還大方地匯出了像是
對 它還大方地匯出了像是
9:45.480–9:46.840
enCompact Messages
Compact Messages
9:46.840–9:49.720
zhCollect Tool Calls 這些核心函式
Collect Tool Calls 這些核心函式
9:49.720–9:51.480
zh這些就像是樂高積木一樣
這些就像是樂高積木一樣
9:51.480–9:53.400
zh這對於技術主管來說
這對於技術主管來說
9:53.400–9:55.000
zh真的是一盒定心丸
真的是一盒定心丸
9:55.000–9:58.640
zh這種模組化暴露出核心介面的設計
這種模組化暴露出核心介面的設計
9:58.640–10:02.880
zh意味著我們甚至可以把這套刪除法的演算法
意味著我們甚至可以把這套刪除法的演算法
10:02.880–10:07.400
zh抽離出來 改寫整合到公司內部的私有 AI 系統中
抽離出來 改寫整合到公司內部的私有 AI 系統中
10:07.400–10:10.200
zh這樣技術綁架的風險就趨近於零了
這樣技術綁架的風險就趨近於零了
10:10.200–10:11.760
zh既然機制這麼彈性
既然機制這麼彈性
10:11.760–10:14.200
zh那我們就得來檢驗它的心臟了
那我們就得來檢驗它的心臟了
10:14.200–10:17.800
zh它到底是怎麼給出那個所謂的刪除得分的
它到底是怎麼給出那個所謂的刪除得分的
10:17.800–10:19.480
zh它的評分機制是這樣
它的評分機制是這樣
10:19.480–10:23.240
zhJev 會針對每一個沒被勾選的工具呼叫
Jev 會針對每一個沒被勾選的工具呼叫
10:23.240–10:25.640
zh問兩個非常刁鑽的問題
問兩個非常刁鑽的問題
10:25.640–10:26.840
zh哪兩個問題
哪兩個問題
10:26.840–10:30.600
zh第一 這個呼叫的記錄本身該留下來嗎
第一 這個呼叫的記錄本身該留下來嗎
10:30.600–10:32.160
zh知道它曾經被執行過
知道它曾經被執行過
10:32.160–10:34.280
zh對接下來的任務還重要嗎
對接下來的任務還重要嗎
10:34.280–10:36.800
zh嗯 這是評估動作本身
嗯 這是評估動作本身
10:36.800–10:37.840
zh那第二個呢
那第二個呢
10:37.840–10:41.880
zh第二 這個執行的結果該原封不動保留嗎
第二 這個執行的結果該原封不動保留嗎
10:41.880–10:43.480
zh還是其實可以刪掉
還是其實可以刪掉
10:43.480–10:46.720
zh大不了讓 AI 發現缺資料時重新跑一次
大不了讓 AI 發現缺資料時重新跑一次
10:46.720–10:50.720
zh哦 所以它把動作跟結果分開來評估
哦 所以它把動作跟結果分開來評估
10:50.720–10:52.560
zh那幾個分數是多少
那幾個分數是多少
10:52.560–10:56.360
zh系統依賴一個預設為 0.5 的 keep threshold
系統依賴一個預設為 0.5 的 keep threshold
10:56.360–10:57.880
zh也就是保留門檻
也就是保留門檻
10:57.880–10:59.680
zh大於 0.5 就保留嗎
大於 0.5 就保留嗎
10:59.680–11:03.800
zh對 如果 Jev 給出保留結果的機率大於 0.5
對 如果 Jev 給出保留結果的機率大於 0.5
11:03.800–11:05.880
zh那就整組完好無缺地留下
那就整組完好無缺地留下
11:05.880–11:08.960
zh那如果結果不重要 但動作很重要呢
那如果結果不重要 但動作很重要呢
11:08.960–11:10.800
zh如果保留結果的機率不高
如果保留結果的機率不高
11:10.800–11:13.560
zh但保留動作記錄的機率大於 0.5
但保留動作記錄的機率大於 0.5
11:13.560–11:15.560
zh它就會把那份龐大的結果
它就會把那份龐大的結果
11:15.560–11:17.240
zh截斷到前 300 個字元
截斷到前 300 個字元
11:17.240–11:18.840
zh並加上一行註解
並加上一行註解
11:18.840–11:21.040
zh告訴 AI 這裡曾經發生過什麼
告訴 AI 這裡曾經發生過什麼
11:21.040–11:24.560
zh了解 那如果兩個機率都低於 0.5 呢
了解 那如果兩個機率都低於 0.5 呢
11:24.560–11:26.520
zh那就是整組直接超度
那就是整組直接超度
11:26.520–11:27.520
zh完全刪除
完全刪除
11:27.520–11:30.280
zh超度 這形容很貼切
超度 這形容很貼切
11:30.280–11:32.520
zh邏輯聽起來很縝密啦
邏輯聽起來很縝密啦
11:32.520–11:35.600
zh但我們都知道 機率不代表絕對
但我們都知道 機率不代表絕對
11:35.600–11:38.600
zh萬一 Jev 今天就是判斷失誤
萬一 Jev 今天就是判斷失誤
11:38.600–11:41.280
zh把一個超級關鍵的記錄給刪了
把一個超級關鍵的記錄給刪了
11:41.280–11:43.440
zh導致模型徹底忘記了
導致模型徹底忘記了
11:43.440–11:44.240
zh剛剛讀過的檔名
剛剛讀過的檔名
11:44.240–11:46.160
zh這時候補救機制是什麼
這時候補救機制是什麼
11:46.160–11:48.920
zh開發者在畫面上其實不會瞎子摸象
開發者在畫面上其實不會瞎子摸象
11:48.920–11:50.840
zh你會看到一個 Toast 提示
你會看到一個 Toast 提示
11:50.840–11:53.400
zh明確告訴你保留了幾筆訊息
明確告訴你保留了幾筆訊息
11:53.400–11:56.160
zh但如果真的誤刪了關鍵資訊怎麼辦
但如果真的誤刪了關鍵資訊怎麼辦
11:56.160–11:58.920
zh文件也坦承這項技術有它的局限
文件也坦承這項技術有它的局限
11:58.920–12:00.440
zh如果真的刪錯了
如果真的刪錯了
12:00.440–12:02.400
zh其實補救方式非常直覺
其實補救方式非常直覺
12:02.400–12:04.960
zh因為你是在具有代理能力的環境裡
因為你是在具有代理能力的環境裡
12:04.960–12:07.760
zhAI 如果發現自己缺少某個參數
AI 如果發現自己缺少某個參數
12:07.760–12:10.000
zh它可以隨時再次執行該工具
它可以隨時再次執行該工具
12:10.000–12:12.640
zh大不了就是讓 AI 再花個幾秒鐘
大不了就是讓 AI 再花個幾秒鐘
12:12.640–12:14.320
zh重新讀一次檔案
重新讀一次檔案
12:14.320–12:15.960
zh這成本還算可以接受
這成本還算可以接受
12:15.960–12:20.440
zh除此之外 為了確保系統不會因為 API 連線失敗
除此之外 為了確保系統不會因為 API 連線失敗
12:20.440–12:21.320
zh而整組崩潰
而整組崩潰
12:21.320–12:23.480
zh作者在寫單元測試的時候
作者在寫單元測試的時候
12:23.480–12:26.080
zh特別實作了一個不聯網的 Fake Jev
特別實作了一個不聯網的 Fake Jev
12:26.080–12:28.120
zh不聯網的假 Jev
不聯網的假 Jev
12:28.120–12:29.800
zh這有什麼好處
這有什麼好處
12:29.800–12:31.840
zh這確保了在真實情境中
這確保了在真實情境中
12:31.840–12:34.440
zh萬一 Jev 回傳了破損的 JSON
萬一 Jev 回傳了破損的 JSON
12:34.440–12:36.320
zh或是網路直接斷線
或是網路直接斷線
12:36.320–12:40.160
zh系統能百分之百順暢地執行優雅降級
系統能百分之百順暢地執行優雅降級
12:40.160–12:41.640
zh優雅降級
優雅降級
12:41.640–12:43.480
zh也就是無縫切換回
也就是無縫切換回
12:43.480–12:45.840
zhCloud Code 原本內建的裁減機制對吧
Cloud Code 原本內建的裁減機制對吧
12:45.840–12:46.800
zh完全正確
完全正確
12:46.800–12:49.320
zh有降級機制確實讓人安心
有降級機制確實讓人安心
12:49.320–12:51.920
zh但說到聯網打 API
但說到聯網打 API
12:51.920–12:55.440
zh我們就必須面對企業導入時最大的心魔了
我們就必須面對企業導入時最大的心魔了
12:55.440–12:57.040
zh那就是資安
那就是資安
12:57.040–12:59.400
zh沒錯 這真的是重中之重
沒錯 這真的是重中之重
12:59.400–13:02.200
zh任何會把資料往外送的外掛
任何會把資料往外送的外掛
13:02.200–13:04.920
zh在公司內部都會面臨嚴格的審查
在公司內部都會面臨嚴格的審查
13:04.920–13:08.680
zh對 這部分資料裡有提到什麼防護機制嗎
對 這部分資料裡有提到什麼防護機制嗎
13:08.680–13:10.080
zh這是今天最核心
這是今天最核心
13:10.080–13:12.360
zh最需要劃重點的資安警告
最需要劃重點的資安警告
13:12.360–13:16.320
zh這個套件在運作時 你需要填寫 API Key
這個套件在運作時 你需要填寫 API Key
13:16.320–13:19.320
zh而且它會將你那份完整的對話記錄
而且它會將你那份完整的對話記錄
13:19.320–13:21.600
zh包含所有的工具輸入參數
包含所有的工具輸入參數
13:21.600–13:24.680
zh毫無保留地傳送到 TypeSafe 的伺服器
毫無保留地傳送到 TypeSafe 的伺服器
13:24.680–13:26.520
zh等一下 毫無保留
等一下 毫無保留
13:26.520–13:31.840
zh也就是說 如果我的程式碼裡夾帶了 AWS 的機密金鑰
也就是說 如果我的程式碼裡夾帶了 AWS 的機密金鑰
13:31.840–13:35.440
zh或者我們公司核心產品還沒公開的商業邏輯
或者我們公司核心產品還沒公開的商業邏輯
13:35.440–13:38.000
zh這些都會變成純文字
這些都會變成純文字
13:38.000–13:40.120
zh直接送到別人的伺服器上
直接送到別人的伺服器上
13:40.120–13:40.920
zh毫不設防
毫不設防
13:40.920–13:41.720
zh完全會
完全會
13:41.720–13:43.960
zh來源文件完全沒有提到
來源文件完全沒有提到
13:43.960–13:47.440
zh任何內建的自動過濾或清理敏感資訊的機制
任何內建的自動過濾或清理敏感資訊的機制
13:47.440–13:49.200
zh哇 這太危險了吧
哇 這太危險了吧
13:49.200–13:52.280
zh作者反而在 README 裡非常用力地警告大家
作者反而在 README 裡非常用力地警告大家
13:52.280–13:55.080
zh絕對不要把金鑰提交到原始碼中
絕對不要把金鑰提交到原始碼中
13:55.080–13:56.400
zh這等於是在暗示
這等於是在暗示
13:56.400–14:00.240
zh資料的對外傳輸是完全透明且具有風險的
資料的對外傳輸是完全透明且具有風險的
14:00.240–14:02.560
zh這件事對台灣的中小企業
這件事對台灣的中小企業
14:02.560–14:05.400
zh資安公司或是企業內部團隊來說
資安公司或是企業內部團隊來說
14:05.400–14:06.320
zh太關鍵了
太關鍵了
14:06.320–14:07.120
zh非常關鍵
非常關鍵
14:07.120–14:10.320
zh我們常常看到工程師為了解決眼前的
我們常常看到工程師為了解決眼前的
14:10.320–14:11.800
zhContext 爆滿痛點
Context 爆滿痛點
14:11.800–14:14.400
zh上網隨手就裝了一個開源工具
上網隨手就裝了一個開源工具
14:14.400–14:16.240
zh這裡的實務提醒是
這裡的實務提醒是
14:16.240–14:19.240
zh如果你的專案牽涉到任何商業機密
如果你的專案牽涉到任何商業機密
14:19.240–14:23.240
zh絕對不能在沒有自建防線的情況下直接套用
絕對不能在沒有自建防線的情況下直接套用
14:23.240–14:25.640
zh沒錯 這也呼應了前面提到的
沒錯 這也呼應了前面提到的
14:25.640–14:26.760
zhJev Asker 介面
Jev Asker 介面
14:26.760–14:28.960
zh如果企業真的要導入
如果企業真的要導入
14:28.960–14:31.560
zh技術團隊必須自己寫一個中介層
技術團隊必須自己寫一個中介層
14:31.560–14:34.240
zh在把資料送出去給 Jev 評分之前
在把資料送出去給 Jev 評分之前
14:34.240–14:37.040
zh先在本地端把敏感資訊過濾掉
先在本地端把敏感資訊過濾掉
14:37.040–14:39.480
zh企業的底線是不能妥協的
企業的底線是不能妥協的
14:39.480–14:41.720
zh但其實即使資安這關過了
但其實即使資安這關過了
14:41.720–14:44.320
zh技術團隊還要面對另一個深淵
技術團隊還要面對另一個深淵
14:44.320–14:46.480
zh那就是部署的摩擦力
那就是部署的摩擦力
14:46.480–14:47.920
zh部署的坑真的很多
部署的坑真的很多
14:47.920–14:51.120
zh技術再好 如果無法順暢地部署到
技術再好 如果無法順暢地部署到
14:51.120–14:52.880
zh每一位工程師的電腦上
每一位工程師的電腦上
14:52.880–14:55.880
zh或者沒辦法放進 CI/CD 的流程裡
或者沒辦法放進 CI/CD 的流程裡
14:55.880–14:56.880
zh那也是白搭
那也是白搭
14:56.880–14:59.040
zh我看到文件特別提到
我看到文件特別提到
14:59.040–15:02.400
zh這個機制依賴 Cloud Code 的 Function Hooks 功能
這個機制依賴 Cloud Code 的 Function Hooks 功能
15:02.400–15:03.840
zh對 麻煩就在於
對 麻煩就在於
15:03.840–15:06.280
zh這個功能目前還處於早期測試階段
這個功能目前還處於早期測試階段
15:06.280–15:08.080
zh所以它不是 NPM 安裝完
所以它不是 NPM 安裝完
15:08.080–15:09.920
zh就能無腦啟動的
就能無腦啟動的
15:09.920–15:11.240
zh遠比那複雜
遠比那複雜
15:11.240–15:12.560
zh你必須在環境變數
你必須在環境變數
15:12.560–15:14.520
zh或者是本機的設定檔裡
或者是本機的設定檔裡
15:14.520–15:17.800
zh強制宣告一個全域變數來開啟這個功能
強制宣告一個全域變數來開啟這個功能
15:17.800–15:20.240
zh哦 要手動去開 Feature Flag
哦 要手動去開 Feature Flag
15:20.240–15:22.760
zh對 這代表團隊裡的每一個使用環境
對 這代表團隊裡的每一個使用環境
15:22.760–15:24.960
zh包括每位新進員工的筆電
包括每位新進員工的筆電
15:24.960–15:27.200
zh或是雲端的 CI/CD 伺服器
或是雲端的 CI/CD 伺服器
15:27.200–15:30.240
zh都必須先經歷這個手動開啟的步驟
都必須先經歷這個手動開啟的步驟
15:30.240–15:31.840
zh否則外掛根本不會動
否則外掛根本不會動
15:31.840–15:34.400
zh哇 這對 DevOps 團隊來說
哇 這對 DevOps 團隊來說
15:34.400–15:35.720
zh絕對是個大坑啊
絕對是個大坑啊
15:35.720–15:37.600
zh推廣新工具時
推廣新工具時
15:37.600–15:39.840
zh只要多一個手動設定步驟
只要多一個手動設定步驟
15:39.840–15:41.480
zh採用率就會掉一半
採用率就會掉一半
15:41.480–15:43.520
zh確實會增加初期的推廣成本
確實會增加初期的推廣成本
15:43.520–15:45.960
zh不過談到推廣跟說服
不過談到推廣跟說服
15:45.960–15:49.360
zh我注意到作者做了一件讓我非常驚艷的事情
我注意到作者做了一件讓我非常驚艷的事情
15:49.360–15:53.600
zh他為了展示這套抽象的得分刪除法技術
他為了展示這套抽象的得分刪除法技術
15:53.600–15:57.360
zh特地寫了一個 macOS 原生的 Swift UI App
特地寫了一個 macOS 原生的 Swift UI App
15:57.360–15:59.600
zh只為了錄製一段展示影片
只為了錄製一段展示影片
15:59.600–16:01.840
zh這在開源推廣上真的非常聰明
這在開源推廣上真的非常聰明
16:01.840–16:03.760
zh對啊 為什麼他不直接錄個
對啊 為什麼他不直接錄個
16:03.760–16:05.680
zh無聊的終端機畫面就好
無聊的終端機畫面就好
16:05.680–16:07.200
zh還要特地寫個 App
還要特地寫個 App
16:07.200–16:08.840
zh這個 App 其實從頭到尾
這個 App 其實從頭到尾
16:08.840–16:10.440
zh都沒有呼叫任何真實的 API
都沒有呼叫任何真實的 API
16:10.440–16:12.400
zh它裡面顯示的對話跟決策
它裡面顯示的對話跟決策
16:12.400–16:14.600
zh全都是用腳本預先寫實的
全都是用腳本預先寫實的
16:14.600–16:17.360
zh它純粹就是為了視覺化演出而生的
它純粹就是為了視覺化演出而生的
16:17.360–16:18.640
zh視覺化演出
視覺化演出
16:18.640–16:20.640
zh它具體演出的是什麼效果
它具體演出的是什麼效果
16:20.640–16:22.360
zh當你在畫面上看到一長串
當你在畫面上看到一長串
16:22.360–16:23.560
zh密密麻麻的歷史記錄
密密麻麻的歷史記錄
16:23.560–16:26.880
zh系統判定哪些舊的呼叫是不需要的廢話時
系統判定哪些舊的呼叫是不需要的廢話時
16:26.880–16:29.640
zh那些文字會直接在畫面上變成紅色
那些文字會直接在畫面上變成紅色
16:29.640–16:31.800
zh然後動態地折疊消失
然後動態地折疊消失
16:31.800–16:34.400
zh哇 變成紅色然後消失
哇 變成紅色然後消失
16:34.400–16:36.760
zh這種視覺衝擊力太強了吧
這種視覺衝擊力太強了吧
16:36.760–16:39.600
zh對一個沒時間看長篇技術文件的技術主管
對一個沒時間看長篇技術文件的技術主管
16:39.600–16:40.960
zh或非技術老闆來說
或非技術老闆來說
16:40.960–16:42.600
zh這幾秒鐘的動態裁剪
這幾秒鐘的動態裁剪
16:42.600–16:45.680
zh能讓他們瞬間看懂這個技術的核心價值
能讓他們瞬間看懂這個技術的核心價值
16:45.680–16:48.400
zh這裡有一個超棒的實務應用價值
這裡有一個超棒的實務應用價值
16:48.400–16:50.360
zh如果我們是工程師
如果我們是工程師
16:50.360–16:52.040
zh準備向老闆提案導入
準備向老闆提案導入
16:52.040–16:55.280
zh這種可以幫公司省 API 費用的新架構
這種可以幫公司省 API 費用的新架構
16:55.280–16:56.680
zh嗯 你要怎麼說服他
嗯 你要怎麼說服他
16:56.680–16:59.360
zh與其貼出一堆冷冰冰的 Lockdown
與其貼出一堆冷冰冰的 Lockdown
16:59.360–17:01.200
zh或是 Token 節省數據
或是 Token 節省數據
17:01.200–17:05.400
zh不如學學這種視覺化展示核心邏輯的手法
不如學學這種視覺化展示核心邏輯的手法
17:05.400–17:08.440
zh老闆一看紅字消失 馬上就知道
老闆一看紅字消失 馬上就知道
17:08.440–17:09.920
zh哦 垃圾被清掉了
哦 垃圾被清掉了
17:09.920–17:11.560
zh有用的東西還在
有用的東西還在
17:11.560–17:13.000
zh而且我們省錢了
而且我們省錢了
17:13.000–17:15.800
zh沒錯 能把深奧的底層邏輯
沒錯 能把深奧的底層邏輯
17:15.800–17:17.600
zh轉化為直覺的視覺
轉化為直覺的視覺
17:17.600–17:20.720
zh有時候比寫出這段程式碼還要困難
有時候比寫出這段程式碼還要困難
17:20.720–17:23.560
zh這絕對是提升競爭力的好方法
這絕對是提升競爭力的好方法
17:23.560–17:28.640
zh聊到這裡我們最後來宏觀地檢視一下產業趨勢
聊到這裡我們最後來宏觀地檢視一下產業趨勢
17:28.640–17:30.080
zh面對上下文爆滿
面對上下文爆滿
17:30.080–17:32.120
zh目前業界有遮蔽法
目前業界有遮蔽法
17:32.120–17:35.400
zh有直接砍掉舊對話的滑動視窗
有直接砍掉舊對話的滑動視窗
17:35.400–17:37.320
zh還有傳統的摘要法
還有傳統的摘要法
17:37.320–17:40.200
zhGMV 帶來的這種得分刪除
GMV 帶來的這種得分刪除
17:40.200–17:42.160
zh未來真的會成為主流嗎
未來真的會成為主流嗎
17:42.160–17:44.760
zh它還有什麼無法跨越的曲線
它還有什麼無法跨越的曲線
17:44.760–17:47.040
zh滑動視窗雖然簡單粗暴
滑動視窗雖然簡單粗暴
17:47.040–17:50.200
zh但大家都意識到它會無可避免地
但大家都意識到它會無可避免地
17:50.200–17:52.880
zh遺失早期設定的系統約束條件
遺失早期設定的系統約束條件
17:52.880–17:56.760
zhGMV 確實在精確度上開創了一個新流派
GMV 確實在精確度上開創了一個新流派
17:56.760–18:00.240
zh但它目前有一個非常硬傷的缺陷
但它目前有一個非常硬傷的缺陷
18:00.240–18:01.400
zh什麼缺陷
什麼缺陷
18:01.400–18:04.960
zh在最終輸出實際保留下來的歷史記錄裡
在最終輸出實際保留下來的歷史記錄裡
18:04.960–18:06.440
zh純文字訊息
純文字訊息
18:06.440–18:08.640
zh也就是人類跟 AI 講的話
也就是人類跟 AI 講的話
18:08.640–18:10.800
zh永遠不會被移除或縮減
永遠不會被移除或縮減
18:10.800–18:14.160
zh等等 也就是說如果使用者自己打字
等等 也就是說如果使用者自己打字
18:14.160–18:16.000
zh貼了幾萬字的會議記錄
貼了幾萬字的會議記錄
18:16.000–18:18.120
zh甚至是一堆無意義的廢話
甚至是一堆無意義的廢話
18:18.120–18:21.160
zh這個外掛其實拿它一點辦法都沒有
這個外掛其實拿它一點辦法都沒有
18:21.160–18:22.120
zh一點辦法都沒有
一點辦法都沒有
18:22.120–18:26.520
zh純文字只會在傳給 GMV 評估的那個狀態中
純文字只會在傳給 GMV 評估的那個狀態中
18:26.520–18:27.120
zh被縮減
被縮減
18:27.120–18:30.240
zh但最終真實保留在上下文裡的記錄
但最終真實保留在上下文裡的記錄
18:30.240–18:33.720
zh人類打的純文字會被百分之百完整保留
人類打的純文字會被百分之百完整保留
18:33.720–18:36.680
zh所以它只管工具呼叫的記錄
所以它只管工具呼叫的記錄
18:36.680–18:39.440
zh對 GMV 的權限僅限於決定
對 GMV 的權限僅限於決定
18:39.440–18:41.240
zh要不要刪除工具呼叫
要不要刪除工具呼叫
18:41.240–18:42.480
zh跟工具回傳結果
跟工具回傳結果
18:42.480–18:44.400
zh這個誤區非常重要
這個誤區非常重要
18:44.400–18:47.280
zh這意味著企業在評估導入時
這意味著企業在評估導入時
18:47.280–18:49.280
zh絕對不能抱持著說
絕對不能抱持著說
18:49.280–18:52.440
zh哦 我裝了這個就能無腦壓縮所有人類對話
哦 我裝了這個就能無腦壓縮所有人類對話
18:52.440–18:53.960
zh這是一個錯誤期待
這是一個錯誤期待
18:53.960–18:56.720
zh沒錯 它是一把極端特化的手術刀
沒錯 它是一把極端特化的手術刀
18:56.720–18:59.120
zh它最佳的發揮舞台是那種
它最佳的發揮舞台是那種
18:59.120–19:01.440
zh多代理人瘋狂反覆執行工具
多代理人瘋狂反覆執行工具
19:01.440–19:05.960
zh在背後產生大量 JSON 報表與錯誤日誌的自動化任務
在背後產生大量 JSON 報表與錯誤日誌的自動化任務
19:05.960–19:07.600
zh只有在這種情境下
只有在這種情境下
19:07.600–19:11.160
zh大量的無效系統痕跡才可以被精準抹除
大量的無效系統痕跡才可以被精準抹除
19:11.160–19:13.320
zh但如果是人類純聊天
但如果是人類純聊天
19:13.320–19:15.960
zh它的節省效果其實微乎其微
它的節省效果其實微乎其微
19:15.960–19:18.840
zh對 這點在導入前一定要評估清楚
對 這點在導入前一定要評估清楚
19:18.840–19:22.000
zh所以真的是要把刀用在刀口上
所以真的是要把刀用在刀口上
19:22.000–19:25.840
zh針對自動化與工具密集的任務去應用
針對自動化與工具密集的任務去應用
19:25.840–19:29.280
zh才能最大化節省 Token 的投資報酬率
才能最大化節省 Token 的投資報酬率
19:29.280–19:32.640
zh今天的解析真的非常精彩
今天的解析真的非常精彩
19:32.640–19:34.480
zh從果汁機的殘酷比喻
從果汁機的殘酷比喻
19:34.480–19:36.840
zh到多階段處理的精妙
到多階段處理的精妙
19:36.840–19:39.280
zh還有繁體中文的潛在風險
還有繁體中文的潛在風險
19:39.280–19:42.360
zh甚至資安防護跟視覺化展示
甚至資安防護跟視覺化展示
19:42.360–19:44.400
zh這讓我們不禁反思
這讓我們不禁反思
19:44.400–19:46.720
zh在未來 AI 越變越強的時代
在未來 AI 越變越強的時代
19:46.720–19:51.160
zh我們真的需要讓 AI 記住所有的摸索與錯誤過程嗎
我們真的需要讓 AI 記住所有的摸索與錯誤過程嗎
19:51.160–19:56.760
zh還是其實只要讓它記住關鍵的結論與原始資料就足夠了
還是其實只要讓它記住關鍵的結論與原始資料就足夠了
19:56.760–19:58.680
zh今天最後的實務提醒是
今天最後的實務提醒是
19:58.680–20:00.640
zh看到新的開源工具
看到新的開源工具
20:00.640–20:04.200
zh大家不要只看表面上宣稱省了多少 Token
大家不要只看表面上宣稱省了多少 Token
20:04.200–20:07.080
zh一定要往底層看它的資料流向
一定要往底層看它的資料流向
20:07.080–20:08.960
zh有沒有資安過濾機制
有沒有資安過濾機制
20:08.960–20:12.680
zh能不能真正安全地落地到你們公司的規範中
能不能真正安全地落地到你們公司的規範中
20:12.680–20:15.760
zh沒錯 安全永遠是第一考量
沒錯 安全永遠是第一考量
20:15.760–20:18.240
zh喜歡我們的深入分析討論嗎
喜歡我們的深入分析討論嗎
20:18.240–20:21.000
zh記得轉發給有需要的親朋好友
記得轉發給有需要的親朋好友
20:21.000–20:24.240
zh並且幫我們按讚訂閱開啟小鈴鐺
並且幫我們按讚訂閱開啟小鈴鐺
20:24.240–20:26.320
zh更多相關資訊連結
更多相關資訊連結
20:26.320–20:28.440
zh請參考影片下方的資訊欄
請參考影片下方的資訊欄
20:28.440–20:29.920
zh最後感謝您的收聽
最後感謝您的收聽
20:29.920–20:32.040
zh祝您順心 我們下集再會
祝您順心 我們下集再會
20:32.040–20:33.080
zh拜拜
拜拜

影片筆記:2000 行 JSON 也不怕!🔥 Fast-Jev 把 AI「記憶爆倉」變成精準斷捨離

<!-- VIDEONOTE_PUBLICATION_WARNINGS_BEGIN -->

⚠️ 可先使用,仍有待修正項目

本筆記已完成可閱讀的逐字稿與時間跳轉;下列為待處理問題,建議播放原片確認。

  • 待修正:逐字稿全文快速校讀未完成(已保留自動字幕/原始逐字稿並繼續生成筆記。;未完成的全文速讀項目可在精進模式回聽確認。)

<!-- VIDEONOTE_PUBLICATION_WARNINGS_END -->

一句話總結

影片介紹開源專案 Fast-Jev-Compaction,透過「得分刪除法」(GMV)與 Jev 模型評分,針對工具呼叫(Tool Use)與結果進行精準壓縮,解決 AI 上下文視窗爆滿問題,同時保留最新對話與關鍵資訊,並探討其資安風險與部署限制。

核心重點

  1. 解決上下文危機:傳統摘要法如同「打果汁」會遺失細節並引發 AI 幻覺;Fast-Jev-Compaction 採用「得分刪除法」,主張逐字保留有效資訊,僅刪除過期或低價值內容。
  2. 核心機制:
  • 成對綁定:將工具呼叫(Tool Use)與結果(Tool Result)綁定,確保操作與回傳不脫鉤。
  • 保護機制:預設保留最新 6 筆對話(Preserve Recent Messages)。
  • 評分模型:使用 Jev 模型進行評分,受限于 32K Token 上限,設定 25,000 Token 的安全水位。
  1. 壓縮策略:
  • Token 估算:放棄精確分詞器,改用字元粗略估算以節省效能(英文約 6 字=1 Token),但可能嚴重低估繁體中文的 Token 消耗。
  • 多階段處理:當資料超限時,逐步壓縮參數(從 1000 字元縮減至 60 字元),直至符合限制。
  • 停損機制:若壓縮比例小於 0.25,則放棄壓縮,回退至 Cloud Code 內建機制。
  1. 適用情境:
  • 適用:自動化任務、工具密集任務、大量 JSON 報表與錯誤日誌。
  • 不適用:人類純聊天場景(純文字訊息不會被壓縮)。
  1. 資安與部署:
  • 資料會完整傳送至 TypeSafe 伺服器,缺乏內建敏感資訊過濾,企業需自建過濾層。
  • 依賴處於測試階段的 Function Hooks,需手動開啟 Feature Flag,增加部署摩擦力。

詳細大綱

一、 問題背景:上下文視窗危機

  • 情境描述:工程師在凌晨除錯時,面對龐大 JSON 錯誤報告與程式碼片段,AI 助手因上下文爆滿而崩潰,回傳不相關邏輯或拼錯檔名。
  • 傳統摘要法的缺陷:
  • 如同將剩菜打成綜合果汁,體積變小但原貌消失。
  • 遺失關鍵細節(如 API 參數),導致後續除錯失準。
  • 引發 AI 幻覺,憑空捏造被摘要吃掉的細節。

二、 Fast-Jev-Compaction 核心機制解析

  • 基本策略:
  • 主打「逐字保留」與「得分刪除法」。
  • 不打果汁,而是將過期食材丟棄,保留新鮮蘋果。
  • 運作基石:
  • 將每一筆工具呼叫(Tool Use)與結果(Tool Result)成對綁定,確保操作與回傳不脫鉤。
  • 訊息保護與評估:
  • Preserve Recent Messages:預設值為 6,最新 6 筆對話絕對安全,不被刪除。
  • 評估瓶頸:Jev 模型上下文上限為 32K Token,若傳送評估資料時爆滿,壓縮工具將失效。
  • Max State Tokens:預設上限 25,000,預留緩衝空間。
  • Token 估算與中文風險:
  • 放棄精確分詞器(Tokenizer),改用字元粗略估算(英文約 6 字=1 Token,數字半個,標點一個)。
  • 實務地雷:繁體中文字可能消耗 2-3 個 Token,系統若按英文邏輯估算會嚴重低估,導致 API 報錯。
  • 建議技術主管在導入時注意資源估算比例。

三、 多階段處理與停損機制

  • 多階段處理 (Stage Based Fitting):
  • 當估算值超過 25,000 Token 時啟動。
  • 第一階段:將舊工具輸入參數壓縮至 1000 字元(保留開頭結尾,捨棄中間龐大資料)。
  • 第二階段:若仍超限,縮減至 200 字元。
  • 極限階段:若仍超限,砍至 60 字元。
  • 最終處理:很久以前的舊訊息被折疊成類似註解的短語(如「省略 N 個字元」),直到能安全塞入限制。
  • 停損機制 (Reduction Ratio):
  • 預設壓縮比例參數。
  • 若預估能刪除的內容比例小於 0.25(25%),系統判斷壓縮不划算。
  • 立即停損,退回完整對話或回退至 Cloud Code 內建裁減機制。

四、 彈性設計與技術綁架風險

  • 廠商綁架 (Vendor Lock-in):
  • 企業擔心被單一廠商綁架,若已購買 OpenAI 或 Anthropic 額度,此套件是否適用?
  • 解決方案:
  • 原生內建主流模型,但刻意留下寬廣後門。
  • Jev Asker 介面:開發者可自行實作此介面,定義底層傳輸邏輯,接駁任意模型。
  • 模組化設計:作為 NPM 模組發布,匯出 Compact Messages、Collect Tool Calls 等核心函式。
  • 技術主管可將刪除演算法抽離,整合至公司內部私有 AI 系統,降低綁架風險。

五、 評分邏輯與補救機制

  • Jev 評分機制:
  • 針對未勾選的工具呼叫問兩個問題:
  1. 該呼叫記錄本身是否重要(知道曾被執行過)?
  2. 執行結果是否需原封不動保留,還是可刪除並讓 AI 重新執行?
  • 保留門檻 (Keep Threshold):預設 0.5。
  • 若保留結果機率 > 0.5:整組保留。
  • 若保留結果機率低,但保留動作機率 > 0.5:截斷結果至前 300 字元,並加註解說明曾發生之事。
  • 若兩者機率均 < 0.5:整組直接刪除(超度)。
  • 誤刪補救:
  • Toast 提示:顯示保留了幾筆訊息。
  • 代理能力:若 AI 發現缺少參數,可重新執行工具(重新讀檔),成本可接受。
  • 單元測試:實作不聯網的 Fake Jev,確保在 API 失敗或回傳破損 JSON 時,系統能優雅降級(切換回 Cloud Code 內建機制)。

六、 資安與部署實務

  • 資安警告:
  • 運作時需填寫 API Key,並將完整對話記錄(含工具輸入參數)傳送至 TypeSafe 伺服器。
  • 無內建過濾:缺乏自動過濾敏感資訊機制,程式碼中的 AWS 金鑰或商業邏輯可能以純文字外洩。
  • 作者警告:README 強調勿將金鑰提交至原始碼,暗示資料傳輸透明且具風險。
  • 企業建議:技術團隊需自建中介層,在送給 Jev 評分前於本地端過濾敏感資訊。
  • 部署摩擦力:
  • 依賴 Cloud Code 的 Function Hooks,目前處於早期測試階段。
  • 非安裝即用,需在環境變數或設定檔中強制宣告全域變數以開啟功能。
  • 需手動開啟 Feature Flag,增加 DevOps 團隊推廣成本與新進員工設定負擔。

七、 視覺化展示與產業趨勢

  • 視覺化演示:
  • 作者開發 macOS 原生 Swift UI App 錄製展示影片。
  • 非真實 API 呼叫:對話與決策由腳本預先寫實,僅為視覺化演出。
  • 效果:歷史記錄中判定為廢話的文字變紅並動態折疊消失。
  • 實務價值:直觀展示核心價值,有助於工程師向老闆提案,證明節省 API 費用。
  • 產業趨勢與限制:
  • 現有方法比較:遮蔽法、滑動視窗(遺失早期約束)、傳統摘要法。
  • GMV (得分刪除) 的硬傷:
  • 純文字訊息(人類與 AI 對話)永遠不會被移除或縮減。
  • 僅在傳給 GMV 評估的狀態中被縮減,最終保留的記錄中,人類純文字 100% 完整保留。
  • 適用情境:
  • 最佳舞台:多代理人瘋狂反覆執行工具、產生大量 JSON 報表與錯誤日誌的自動化任務。
  • 不適用:人類純聊天,節省效果微乎其微。
  • 結論:需將刀用在刀口上,針對自動化與工具密集任務應用,最大化 Token 節省報酬率。

工具 / 模型 / 名詞整理

  • Cloud Code:開發環境/擴充套件平台。
  • Fast-Jev-Compaction:本次探討的開源專案名稱,Cloud Code 擴充套件兼 NPM 模組。
  • Jev:用於評估訊息是否該刪除的 AI 模型。
  • TypeSafe:提供 Jev 模型 API 服務的廠商(提及 TypeSafe 的 API)。
  • OpenAI:提及的模型供應商。
  • Anthropic:提及的模型供應商。
  • NPM:Node.js 套件管理系統,Fast-Jev-Compaction 以此模組發布。
  • macOS:作業系統,作者開發 Swift UI App 的平台。
  • Swift UI:用於開發展示 App 的框架。
  • AWS:提及的雲端服務供應商(涉及金鑰管理)。
  • Function Hooks:Cloud Code 的功能鉤子,Fast-Jev-Compaction 依賴此功能。
  • Feature Flag:功能旗標,用於手動開啟特定功能。
  • Jev Asker:Fast-Jev-Compaction 中定義的介面,允許開發者自定義底層傳輸邏輯。
  • Compact Messages:Fast-Jev-Compaction 匯出的核心函式之一。
  • Collect Tool Calls:Fast-Jev-Compaction 匯出的核心函式之一。
  • Fake Jev:單元測試中實作的不聯網假 Jev,用於確保系統優雅降級。
  • GMV:逐字稿後段提及「GMV 帶來的這種得分刪除」,疑為「Jev」或「Fast-Jev-Compaction」的縮寫或口誤。

操作流程整理

  1. 初始化與設定:
  • 安裝 Fast-Jev-Compaction 作為 Cloud Code 擴充套件或 NPM 模組。
  • 手動開啟 Feature Flag 並設定環境變數以啟用 Function Hooks。
  • 填寫 API Key 以連接 TypeSafe 伺服器。
  1. 訊息處理流程:
  • 綁定:系統將工具呼叫(Tool Use)與結果(Tool Result)成對綁定。
  • 保護:預設保留最新 6 筆對話(Preserve Recent Messages)。
  • 估算:使用字元粗略估算 Token 數量(非精確分詞器),檢查是否超過 25,000 Token 上限。
  • 評分:若超限,將資料傳送至 Jev 模型進行評分。
  • Jev 評估工具呼叫記錄的重要性及結果是否需保留。
  • 根據保留門檻(預設 0.5)決定保留、截斷或刪除。
  • 壓縮:若評分後仍需壓縮,啟動多階段處理(Stage Based Fitting):
  • 第一階段:壓縮參數至 1000 字元。
  • 第二階段:縮減至 200 字元。
  • 極限階段:砍至 60 字元。
  • 最終:舊訊息折疊為註解短語。
  • 停損檢查:若壓縮比例小於 0.25,放棄壓縮,回退至 Cloud Code 內建機制。
  1. 執行與監控:
  • AI 執行工具呼叫。
  • 若發生誤刪,AI 可透過重新執行工具(如重新讀檔)進行補救。
  • 系統顯示 Toast 提示保留的訊息數量。
  • 若 API 失敗,系統切換至 Fake Jev 進行單元測試或優雅降級。

值得注意的限制或風險

  1. Token 估算不準確:系統使用字元粗略估算 Token,對於繁體中文可能嚴重低估消耗,導致 API 報錯。
  2. 資安風險:資料完整傳送至 TypeSafe 伺服器,缺乏內建敏感資訊過濾,企業需自建過濾層以防金鑰或商業邏輯外洩。
  3. 適用情境有限:純文字訊息不會被壓縮,僅適用於工具密集與自動化任務,不適用於人類純聊天場景。
  4. 部署複雜度:依賴測試階段的 Function Hooks,需手動開啟 Feature Flag,增加部署與維護成本。
  5. 模型依賴與綁架:雖有 Jev Asker 介面可自定義傳輸邏輯,但仍依賴 TypeSafe 的 Jev 模型服務,需確認長期可用性與成本。
  6. 壓縮極限:極限階段僅保留 60 字元,可能遺失過多上下文資訊,需依賴 AI 重新執行工具的代理能力。

逐字稿辨識疑點

  • off 檔案:逐字稿中提到「針對剛剛那個 off 檔案生成修復程式碼」,疑為口誤或聽寫錯誤,實際語境可能指代某個特定檔案類型或名稱,但無法確定具體所指。
  • Jev 模型:逐字稿多次提及「Jev」作為評估模型,疑為特定模型名稱或專案內部命名,需查證是否為通用模型名稱或拼寫錯誤(如 Gem、Jewel 等,但不得自行更動)。
  • GMV:逐字稿後段提及「GMV 帶來的這種得分刪除」,疑為「Jev」或「Fast-Jev-Compaction」的縮寫或口誤,因前文主要討論 Jev,此處 GMV 可能為聽寫錯誤,但需保留原樣。
  • 25,000 與 32K:關於 Token 上限的數值,逐字稿明確區分 Jev 上限 32K 與 Max State Tokens 上限 25,000,此為專案設定,非錯誤,但需注意其對應關係。
  • 0.25 壓縮比例:關於 Reduction Ratio 的閾值,逐字稿明確指出小於 0.25 時停損,此為邏輯設定,非錯誤。
  • 300 字元截斷:關於保留動作但刪除結果時的截斷長度,逐字稿明確指出前 300 個字元,此為邏輯設定,非錯誤。
  • 6 個英文字母算一個詞:關於 Token 估算的啟發式演算法描述,逐字稿指出這是為了效能妥協的做法,雖與實際 Tokenizer 可能不符,但屬專案設計邏輯,非錯誤。

可延伸追問

  1. Jev 模型的具體評分標準與訓練數據來源為何?
  2. TypeSafe 伺服器的資料保留政策與隱私條款為何?
  3. 如何針對繁體中文環境優化 Token 估算算法?
  4. 企業自建敏感資訊過濾層的最佳實踐與技術方案為何?
  5. Fast-Jev-Compaction 與 Cloud Code 內建機制的具體差異與效能比較?
  6. Jev Asker 介面的實作範例與文件是否公開?

尚未產生學習筆記

請在 Telegram 指令最後加上「學習」,例如:videonote 網址 英文 雙語 學習