DeepSeek Harness 框架怎麼設計的?一切皆插件|架構解析 | 連主迴圈都能換
DeepSeek Harness 框架怎麼設計的?一切皆插件|架構解析 | 連主迴圈都能換
這支影片把 DeepSeek Harness 當成一份架構文件來讀:它不是新模型,而是讓模型能呼叫工具、記錄工作、套用權限與沙箱、並在出事時留下可追溯證據的執行環境。影片先把 Harness 比喻成駕馭馬的裝備,說明開放權重如果沒有執行環境,就像有大腦但沒有神經系統。接著比較 Claude Code、Codex、OpenClaw、Hermes 與 Harness 的差異:核心問題不是誰比較強,而是你能改到哪一層。影片的重點是 Harness 站在「連主迴圈都能替換」的層級,透過 Cordis 的插件化、可回收註冊、設定層堆疊與服務命名,讓系統可以被拆、被換、被組合。後半段聚焦工具呼叫與工作記錄:工具執行前先記錄,經過權限與沙箱,執行後還能檢查結果,最後凍結成不可竄改的結果。影片也提醒 Harness 目前是開發者預覽版,內建沙箱不是完整安全邊界,本機介面不代表模型在本機跑,且 agent 成本高度取決於快取命中與尖離峰價格。
1. Harness 的重點不是模型,而是執行環境
00:00影片開場指出,DeepSeek 這次公開的不是模型,而是讓模型真的能動手做事的執行環境。這件事重要,因為它代表模型公司開始在意模型跑在哪裡、被誰管理、出事時由誰喊停。
影片用 Harness 的原意「馬具」作比喻:模型是馬,Harness 是韁繩、馬鞍與腳蹬。這些裝備不會讓馬更快,但沒有它們,人根本無法上馬;同理,權重只是大腦參數,沒有執行環境就不能開資料夾、記錄過程、呼叫工具或在危險時停下。
定位2. 這類 agent 工具真正差在可改到哪一層
01:52影片先用「解決什麼、什麼時候動、碰得到什麼」比較 Claude Code、Codex、OpenClaw、Hermes 與 Harness。Claude Code / Codex 解決模型碰不到專案的問題;OpenClaw 強調資料在自己裝置上;Hermes 強調會跟著使用者一起長大;Harness 則處理想改系統卻改不動的問題。
接著影片把差異改用房子比喻:第一層像租屋,只能擺家具與掛畫;第二層像買下舊房子,原始碼可改但維護成本也歸你;第三層才是 Harness 的位置,牆本身是一片片可換的,甚至主迴圈本身也是插件。
工具比較3. Cordis 提供的核心是「所有東西都是插件」
04:49影片說 DeepSeek 沒有從零打造骨架,而是選擇 Cordis 這個做了四年的社群專案。Cordis 想解的是一個軟體工程難題:怎麼讓系統的每一塊都能被替換、疊加、拿掉,同時不弄壞其他部分。
Harness 文件的第一個設計哲學是「所有東西都是插件」。因此模型轉接、工具清單、驅動 AI 做事的主迴圈都不是特權核心;想要微調主迴圈時,不是去改原本的核心,而是寫一個自己的插件掛上去,再把原本那個拿掉。
架構核心4. 可卸載與可倒帶,才是真正的熱插拔
06:40影片特別解釋,插件註冊上去的東西在插件被移除時必須整個收回。這對應到日常經驗:很多軟體反安裝後仍留下設定、資料夾或背景影響,因為只做了安裝那半邊。
Harness 的規則是每一個註冊都要帶移除方法。你加提示詞、工具或監聽器,都透過同一套機制裝上去,也由同一套機制記住如何還原;插件卸載時,做過的事會照順序倒著收回。影片認為這是熱插拔真正可行的原因。
生命週期5. 設定層與服務命名讓底層實作可替換
07:30影片說 Harness 跑起來的東西是一疊設定層堆出來的:底層包含模型、轉接、工具、儲存、沙箱、權限;上層可以再疊網頁介面、無介面執行、個人設定檔與臨時參數。
另一個重要設計是服務用固定名字被引用,例如工具叫 Tools、模型叫 LM、工作階段叫 Sessions。其他插件找的是這些名字,而不是某份具體程式碼,因此底層可以換成完全不同實作,上層不必跟著改;啟動順序也能由系統依賴宣告自動計算。
組態與依賴6. 工具呼叫先記錄,再放行,最後凍結結果
09:10影片把工具呼叫拆成一條比想像更長的路:模型說要跑指令時,第一件事不是執行,而是先把呼叫寫進記錄。這讓系統即使當掉,也查得到當時想做什麼。
接著工具呼叫會經過權限與沙箱決定放行、阻擋或詢問人。影片強調,如果問不到人,例如沒有介面或沒人在電腦前,就算拒絕,不算通過。工具跑完後還有結果檢查,可以擋下、替換或補話,最後才凍結成不可再改的結果。
安全與稽核7. 「模型看得到的,一定被記下來」是整套設計的支點
10:00影片認為工作階段記錄裡最漂亮的一句是:模型看得到的,一定被記下來。意思是只要某段文字進入送給模型的請求,它就必須能從記錄裡重新拼回來,而且系統會在執行時檢查這件事,做不到就報錯。
這讓許多功能都變成同一條記錄的衍生品:從某一步分岔出去重跑、關掉電腦明天接續、追查 AI 為什麼刪掉檔案,都可以回到當下的完整脈絡。影片把它比成法院逐字記錄,而不是事後補寫的會議紀要。
工作階段記錄8. 能力接縫必須拆出定義、實作與使用者
10:49影片說能力接縫要有三個角色:定義能力長相的人、真正實作它的人、使用它的人。只有其中一個角色,不算真正的接縫。
影片用檔案系統與跑指令共用同一個執行環境作例子:當執行環境指向遠端沙箱機器,跑指令工具、終端機與程式碼補全會一起搬過去,不需要各自另外改。關鍵是中間的插座形狀被單獨定義出來。
可替換性9. 防禦性模式把真實傷疤寫成規則
12:18影片介紹另一份文件「防禦性模式」,它不是在講理想設計,而是把真的發生過或差點發生的 bug 寫成規則,防止再犯。
影片挑了兩條:第一,結果可能同時包含多種狀態,例如程式超時又回報成功,所以超時訊號與結束碼要分開呈現,不能互相遮蔽。第二,關閉要等到真的安靜,不是發出停止指令就離開;要等子程式死透,且先關監聽再殺,避免晚回來的通知亂跑。
可靠性10. 四種模式與實際限制:先玩,不要急著正式上線
13:10影片說安裝後有四種模式:完整版會開檔案、指令、搜尋、規劃與子代理;第二種把工具包成程式碼,讓 AI 用寫程式方式一次呼叫多個工具;第三種極簡,只給指令列與編輯器;第四種是創造者模式,能讓 AI 回頭改正在跑的系統本身,官方標示高度信任,影片建議先不要碰。
影片也列出限制:Harness 目前是開發者預覽版,之後一定會有不相容變更;內建沙箱網路不受限且其他程式看得到,不能當真正安全邊界;本機網頁介面只是控制台,模型仍在遠端,仍需金鑰與費用。
風險提醒11. Agent 的帳單形狀取決於快取與尖離峰
14:37影片提醒,骨架免費不代表模型免費;agent 工作的成本結構與一般聊天不同,關鍵在快取命中。Agent 一輪一輪跑,每輪都會把前面做過的事重新送入背景,因此很像天天走同一條路的人。
影片引用官方價目表說,同樣一百萬個字,系統存過與沒存過的價格差 31 倍;也提到官方把一天切成尖峰與離峰,尖峰價格是離峰兩倍,而換算到台灣時間剛好落在上班時段。
成本12. 結論:模型公司開始搶執行環境
15:30影片最後把整份文件收束成一句話:讓一個很複雜的東西,還能被一個人看懂,還敢動手去改。
如果只記一句,影片建議記「模型看得到的,就一定被記下來」,因為它支撐了倒帶、分岔與查證。對工程師,影片建議可以裝起來玩,但先不要用在正式事情;對看趨勢的人,重點不是框架本身,而是模型公司開始搶執行環境。
趨勢模型看得到的,就一定被記下來;這句話撐起了倒帶、分岔與查證。
重點時間戳索引
- 00:00DeepSeek Harness 被定位為模型旁邊的執行環境,不是模型本身;值得看的原因是模型公司開始公開 agent 的骨架設計。
- 01:00Harness 的比喻是馬具:模型像馬,Harness 是讓你真正能駕馭它做事的整套裝備。
- 01:52影片用三個問題比較 Claude Code、Codex、OpenClaw、Hermes 與 Harness:解決什麼、什麼時候動、碰得到什麼。
- 03:12真正的差異是「能改到哪一層」;Harness 站在連主迴圈都能當插件替換的第三層。
- 04:17Harness 架構文件短但有態度,甚至建議用 agent 讀程式碼來理解架構,表示文件也寫給 AI 看。
- 04:49DeepSeek 沒有從零造骨架,而是選用已存在四年的 Cordis;其核心問題是讓系統每一塊都能被替換、疊加、拿掉而不弄壞其他部分。
- 05:35第一個設計哲學是所有東西都是插件,連模型轉接、工具清單與主迴圈本身都不是特權核心。
- 06:40每個註冊都必須帶移除方法,所以插件卸載時能依序倒帶收回,這是熱插拔真正可行的原因。
- 07:30執行出來的系統由多層設定堆疊而成,底層包含模型、工具、儲存、沙箱與權限,上層可由 UI、無介面模式、使用者設定與臨時參數覆蓋。
- 08:37服務透過固定名字被引用,例如 Tools、LM、Sessions;上層依賴的是服務名稱,不是某份具體程式碼,因此底層實作可替換。
- 09:10工具呼叫流程先記錄、再經權限與沙箱、再執行工具、再檢查結果,最後凍結成不可再改的結果。
- 10:00工作階段記錄的核心句是「模型看得到的,一定被記下來」;這讓分岔重跑、續跑與事故追查都建立在同一條記錄上。
- 10:49能力接縫必須分成定義者、實作者、使用者三個角色;只把某份實作硬綁給使用者,不算真正可替換。
- 11:41架構文件提供「新行為該放哪裡」的對照表,並要求如果改主迴圈也要更新地圖,避免文件過期。
- 12:18防禦性模式來自實際或差點發生的 bug,例如超時與結束碼要分開呈現、關閉流程要等子程式真的安靜。
- 13:10Harness 有四種執行模式:完整版、把工具包成程式碼的模式、極簡模式,以及高度信任但危險的創造者模式。
- 14:00限制包含開發者預覽版會有不相容變更、內建沙箱不是安全邊界、本機控制台不等於本機模型。
- 14:37骨架免費但模型仍要錢;agent 成本受快取命中與尖離峰價格影響,影片提到快取與未快取價差可達 31 倍。
- 15:30結論是這份文件其實在處理同一件事:讓複雜系統仍能被一個人看懂、敢動手改;趨勢上,模型公司開始搶執行環境。
⚠️ 未確認 / 無法核對項目
- 影片沒有可用 YouTube 字幕;主文依 Whisper STT 逐字稿與影片描述整理。
- 部分產品名與技術詞由 ASR 漂字還原,已列在對照表;未能從字幕原檔核對。
- 影片提到安裝後一行指令可啟動,但逐字稿沒有清楚保留實際命令,因此報告不補寫命令。
🎙️ ASR 漂字對照表
| Cloudcode | → | Claude Code |
| OpenCloud | → | OpenClaw |
| Hermis | → | Hermes |
| Longraph | → | LangGraph |
| 股價 / 股架 | → | 骨架 |
| 殺香 | → | 沙箱 |
| 主彎 / 組繪圈 / 組維圈 | → | 主迴圈 |
| BASS | → | base / 基礎設定層 |
| QLM | → | LM |
| 快取命中 | → | cache hit / 快取命中 |
📎 原始內容(查證 / AI 追查用,非閱讀主文,點擊展開)
1 00:00:00,000 --> 00:00:04,320 大家好我是Jim 2 00:00:04,320 --> 00:00:05,320 这里是AI Notebook 3 00:00:05,320 --> 00:00:06,500 三天12万颗星 4 00:00:06,500 --> 00:00:07,600 这是Deep Seek 5 00:00:07,600 --> 00:00:09,140 刚公开了一个工具 6 00:00:09,140 --> 00:00:10,000 叫Harness 7 00:00:10,000 --> 00:00:12,020 在GitHub上拿到了收藏数 8 00:00:12,020 --> 00:00:13,300 很多做得很好的专案 9 00:00:13,300 --> 00:00:15,240 做十年也到不了这个数字 10 00:00:15,240 --> 00:00:16,740 让我坐下来把它读完了 11 00:00:16,740 --> 00:00:17,700 不是这个数字 12 00:00:17,700 --> 00:00:20,540 Deep Seek一路走来出的都是模型 13 00:00:20,540 --> 00:00:22,180 这次公开的不是模型 14 00:00:22,180 --> 00:00:24,440 是模型旁边那一整套东西 15 00:00:24,440 --> 00:00:27,880 让模型真的能动手做事的那个执行环境 16 00:00:27,880 --> 00:00:29,880 你家做模型的公司 17 00:00:29,880 --> 00:00:31,680 开始在意模型跑在哪里 18 00:00:31,680 --> 00:00:32,300 被谁管 19 00:00:32,300 --> 00:00:34,000 出事的时候谁喊停 20 00:00:34,000 --> 00:00:35,940 这件事本身就值得看 21 00:00:35,940 --> 00:00:39,000 而且他们连整份架构文件都一起公开了 22 00:00:39,000 --> 00:00:41,040 129行八个章节 23 00:00:41,040 --> 00:00:43,780 里面写着一件你平常看不到的事 24 00:00:43,780 --> 00:00:45,880 一个会自己动手做事的AI 25 00:00:45,880 --> 00:00:47,740 它的骨架应该怎么设计 26 00:00:47,740 --> 00:00:50,040 这种东西通常锁在公司内部 27 00:00:50,040 --> 00:00:51,380 所以今天这支影片 28 00:00:51,380 --> 00:00:54,560 就是要把这份架构仔细研究一遍 29 00:00:54,560 --> 00:00:55,840 里面每一个设计 30 00:00:55,840 --> 00:00:57,300 我都会翻成白话讲给你听 31 00:00:57,300 --> 00:00:59,840 顺便看他跟你已经在用的那几个工具 32 00:00:59,840 --> 00:01:00,420 插在哪 33 00:01:00,420 --> 00:01:00,980 主弯 34 00:01:00,980 --> 00:01:02,940 你会发现这些设计 35 00:01:02,940 --> 00:01:04,500 其实都在回答同一个问题 36 00:01:04,500 --> 00:01:06,020 好先讲清楚 37 00:01:06,020 --> 00:01:06,980 Harness这个字 38 00:01:06,980 --> 00:01:08,480 它原本的意思是马具 39 00:01:08,480 --> 00:01:09,740 就是套在马身上 40 00:01:09,740 --> 00:01:12,060 让你能驾驭它的那套装备 41 00:01:12,060 --> 00:01:13,820 缰绳 马鞍 脚灯 42 00:01:13,820 --> 00:01:15,980 这些东西一个都不会让马跑得更快 43 00:01:15,980 --> 00:01:17,020 但没有它们 44 00:01:17,020 --> 00:01:18,100 你根本上不了马 45 00:01:18,100 --> 00:01:19,480 放到AI这里 46 00:01:19,480 --> 00:01:20,520 模型是那匹马 47 00:01:20,520 --> 00:01:21,180 Harness 48 00:01:21,180 --> 00:01:23,780 就是让你真的能用它做事的那一整套东西 49 00:01:23,780 --> 00:01:24,380 你可能会想 50 00:01:24,380 --> 00:01:26,000 模型不是已经很强了吗 51 00:01:26,000 --> 00:01:27,600 开放权重都放出来了 52 00:01:27,600 --> 00:01:28,840 直接拿来用不就好了 53 00:01:28,840 --> 00:01:29,480 问题是 54 00:01:29,480 --> 00:01:31,800 权重只是一颗大脑的参数档 55 00:01:31,800 --> 00:01:33,600 它不会自己开你的资料夹 56 00:01:33,600 --> 00:01:35,080 不会记得上一部做了什么 57 00:01:35,080 --> 00:01:37,600 也不会在跑坏的时候停下来问你 58 00:01:37,600 --> 00:01:39,240 有一位分析师讲得很好 59 00:01:39,240 --> 00:01:40,680 只有开放权重 60 00:01:40,680 --> 00:01:41,760 没有执行环境 61 00:01:41,760 --> 00:01:42,680 就像有身体 62 00:01:42,680 --> 00:01:43,520 没有神经系统 63 00:01:43,520 --> 00:01:45,240 Harness就是那套神经系统 64 00:01:45,240 --> 00:01:47,120 它管模型怎么收到你的话 65 00:01:47,120 --> 00:01:48,560 工具怎么被呼叫 66 00:01:48,560 --> 00:01:50,240 做过的事怎么被记下来 67 00:01:50,240 --> 00:01:52,160 还有出事的时候谁有权喊停 68 00:01:52,160 --> 00:01:54,160 在打开那份文件之前 69 00:01:54,160 --> 00:01:56,440 先花一分钟搞清楚谁是谁 70 00:01:56,440 --> 00:01:59,160 Cloudcode Codex OpenCloud Hermes 71 00:01:59,160 --> 00:02:00,440 它们全部都是Harness 72 00:02:00,440 --> 00:02:02,560 但差别不只是你在哪里跟它讲话 73 00:02:02,560 --> 00:02:03,880 我用三个问题来分 74 00:02:03,880 --> 00:02:05,600 第一个问题也是最根本的 75 00:02:05,600 --> 00:02:06,640 它想解决什么 76 00:02:06,640 --> 00:02:07,600 这不用猜 77 00:02:07,600 --> 00:02:09,920 每一个专案自己那句介绍就是答案 78 00:02:09,920 --> 00:02:12,160 Cloudcode跟Codex解决的是 79 00:02:12,160 --> 00:02:14,240 模型很强却碰不到你的专案 80 00:02:14,240 --> 00:02:16,280 所以把模型接近你的终端机 81 00:02:16,280 --> 00:02:17,560 直接读你的程式码 82 00:02:17,560 --> 00:02:19,000 OpenCloud解决的是 83 00:02:19,000 --> 00:02:20,280 助理是别人 84 00:02:20,280 --> 00:02:21,640 资料也在别人那里 85 00:02:21,640 --> 00:02:23,400 所以它跑在你自己的装置上 86 00:02:23,400 --> 00:02:25,000 专案标签直接挂着一句 87 00:02:25,000 --> 00:02:26,400 你的资料你自己拥有 88 00:02:26,400 --> 00:02:28,520 Harness解决的是Agent 89 00:02:28,520 --> 00:02:29,760 每次都从零开始 90 00:02:29,760 --> 00:02:30,880 什么都不记得 91 00:02:30,880 --> 00:02:32,320 所以它介绍只有一句 92 00:02:32,320 --> 00:02:33,800 会跟着你一起长大 93 00:02:33,800 --> 00:02:35,240 那Harness解决的是 94 00:02:35,240 --> 00:02:36,720 你想改它却改不动 95 00:02:36,720 --> 00:02:37,880 第二个问题 96 00:02:37,880 --> 00:02:38,760 它什么时候动 97 00:02:38,760 --> 00:02:40,760 前面两个要你叫它才动 98 00:02:40,760 --> 00:02:41,680 做完就结束 99 00:02:41,680 --> 00:02:43,520 后面两个是一直在线的Harness 100 00:02:43,520 --> 00:02:44,920 甚至会自己按表操课 101 00:02:44,920 --> 00:02:45,600 你不用开口 102 00:02:45,600 --> 00:02:46,480 第三个问题 103 00:02:46,480 --> 00:02:48,240 也是我觉得最该问的 104 00:02:48,240 --> 00:02:49,520 它碰得到什么 105 00:02:49,520 --> 00:02:50,880 OpenCloud的说明档 106 00:02:50,880 --> 00:02:51,760 自己写着 107 00:02:51,760 --> 00:02:54,240 工具预设是直接跑在你的主机上的 108 00:02:54,240 --> 00:02:56,160 除非你自己去设定沙香 109 00:02:56,160 --> 00:02:58,400 Harness可以整个丢到云端的机器上跑 110 00:02:58,400 --> 00:02:59,600 不用碰你的笔电 111 00:02:59,600 --> 00:03:00,960 那Harness呢 112 00:03:00,960 --> 00:03:02,880 他把这件事做成一道关卡 113 00:03:02,880 --> 00:03:04,000 等一下你会看到 114 00:03:04,000 --> 00:03:05,360 每一次工具呼叫 115 00:03:05,360 --> 00:03:07,440 都要先过权限跟沙香 116 00:03:07,440 --> 00:03:08,720 它们差多少呢 117 00:03:08,720 --> 00:03:10,560 你看一下收藏数就知道了 118 00:03:10,560 --> 00:03:11,520 知道形状之后 119 00:03:11,520 --> 00:03:12,680 还有一个更重要的差别 120 00:03:12,680 --> 00:03:13,600 你能改到哪一层 121 00:03:13,600 --> 00:03:14,400 刚刚说了 122 00:03:14,400 --> 00:03:15,840 这几个其实是同一种东西 123 00:03:15,840 --> 00:03:18,080 所以真正该问的不是谁比较强 124 00:03:18,080 --> 00:03:19,280 是你能改到多深 125 00:03:19,280 --> 00:03:20,640 我用房子来比 126 00:03:20,640 --> 00:03:22,080 第一层像租来的房子 127 00:03:22,080 --> 00:03:22,840 你可以摆家具 128 00:03:22,840 --> 00:03:23,680 可以挂画 129 00:03:23,680 --> 00:03:25,040 但你不能打掉墙 130 00:03:25,040 --> 00:03:26,320 换成工具就是 131 00:03:26,320 --> 00:03:27,120 可以加工具 132 00:03:27,120 --> 00:03:28,240 可以加提示词 133 00:03:28,240 --> 00:03:29,520 但那个一步一步驱动 134 00:03:29,520 --> 00:03:30,800 AI做事的主回圈 135 00:03:30,800 --> 00:03:31,760 是它的 136 00:03:31,760 --> 00:03:32,880 你只能设定第二层 137 00:03:32,880 --> 00:03:34,880 像把整栋旧房子买下来自己改 138 00:03:34,880 --> 00:03:35,920 原始码都给你 139 00:03:35,920 --> 00:03:37,200 Codex就是这种 140 00:03:37,200 --> 00:03:38,880 你想打掉哪一面墙都行 141 00:03:38,880 --> 00:03:39,760 代价是 142 00:03:39,760 --> 00:03:40,520 从那天起 143 00:03:40,520 --> 00:03:42,800 这栋房子的保养就变你的事了 144 00:03:42,800 --> 00:03:44,880 第三层才是Harness站的地方 145 00:03:44,880 --> 00:03:47,840 这栋房子的墙本身就是一片一片可以换的 146 00:03:47,840 --> 00:03:49,200 换墙不用动骨架 147 00:03:49,200 --> 00:03:50,320 文件里写的很白 148 00:03:50,320 --> 00:03:52,640 连那个主回圈本身都是外挂 149 00:03:52,640 --> 00:03:54,960 至于Longraph那一类的开发套件 150 00:03:54,960 --> 00:03:56,400 它根本不在这个梯子上 151 00:03:56,400 --> 00:03:57,760 它连房子都不是 152 00:03:57,760 --> 00:03:58,720 而是建材 153 00:03:58,720 --> 00:03:59,840 有意思的是 154 00:03:59,840 --> 00:04:02,240 Hermis跟Harness压的宝不一样 155 00:04:02,240 --> 00:04:03,280 Hermis堵 156 00:04:03,280 --> 00:04:04,320 它会自己变墙 157 00:04:04,320 --> 00:04:07,600 做完一件事会把经验写成一份技能档存起来 158 00:04:07,600 --> 00:04:09,720 Harness堵的是你可以自己动手改 159 00:04:09,720 --> 00:04:11,520 一个把赌注压在时间 160 00:04:11,520 --> 00:04:12,800 一个压在你手上 161 00:04:12,800 --> 00:04:13,760 一直讲完了 162 00:04:13,760 --> 00:04:15,520 我们回去读那份文件 163 00:04:15,520 --> 00:04:17,400 看它怎么做到第三层 164 00:04:17,400 --> 00:04:19,320 这本文件叫架构说明 165 00:04:19,320 --> 00:04:20,400 129行 166 00:04:20,400 --> 00:04:21,240 8个章节 167 00:04:21,240 --> 00:04:21,720 不长 168 00:04:21,720 --> 00:04:23,280 你午休就读得完 169 00:04:23,280 --> 00:04:24,840 但他第一句话就很有态度 170 00:04:24,840 --> 00:04:25,320 他说 171 00:04:25,320 --> 00:04:27,000 在你动任何程式之前 172 00:04:27,000 --> 00:04:27,960 先读这个 173 00:04:27,960 --> 00:04:30,200 他预设你已经懂底下那个框架 174 00:04:30,200 --> 00:04:30,840 如果不懂 175 00:04:30,840 --> 00:04:32,640 他把入门的连结放在那里 176 00:04:32,640 --> 00:04:34,440 然后第7行有一句话 177 00:04:34,440 --> 00:04:36,760 我觉得是整份文件最有意思的地方 178 00:04:36,760 --> 00:04:38,680 他说我们建议你用一个agent 179 00:04:38,680 --> 00:04:40,160 去读这份程式吗 180 00:04:40,160 --> 00:04:41,440 理解它的架构 181 00:04:41,440 --> 00:04:42,240 你发现了吗 182 00:04:42,240 --> 00:04:44,440 这份文件不只是写给人看的 183 00:04:44,440 --> 00:04:46,440 也是写给AI看的 184 00:04:46,440 --> 00:04:47,920 接下来我就一个一个带你看 185 00:04:47,920 --> 00:04:49,520 全部翻成白话 186 00:04:49,520 --> 00:04:50,680 有意思的是 187 00:04:50,680 --> 00:04:53,640 Deepseek没有自己从零造这套股价 188 00:04:53,640 --> 00:04:56,080 他们挑了一个已经存在4年的社群专案 189 00:04:56,080 --> 00:04:57,000 叫Cordis 190 00:04:57,000 --> 00:04:59,000 这个专案在被选中之前 191 00:04:59,000 --> 00:05:00,000 收藏数是4000 192 00:05:00,000 --> 00:05:03,600 200多 4200多在开放原始码的世界里不算小 193 00:05:03,600 --> 00:05:05,300 但也绝对称不上有名 194 00:05:05,600 --> 00:05:06,700 很多人根本没听过 195 00:05:07,200 --> 00:05:09,300 就是一个安静做了4年的小专案 196 00:05:09,300 --> 00:05:10,400 结果他一息之间 197 00:05:10,700 --> 00:05:12,600 变成一个12万星专案的地基 198 00:05:12,800 --> 00:05:14,600 Cordis自己的介绍只有一句话 199 00:05:14,900 --> 00:05:16,900 时空可组合性的原框架 200 00:05:17,500 --> 00:05:18,800 这句话听起来很悬 201 00:05:19,100 --> 00:05:20,700 但他想解决的事情很具体 202 00:05:21,100 --> 00:05:23,700 怎么让一个系统的每一块都能被换掉 203 00:05:23,700 --> 00:05:25,000 被叠加被拿掉 204 00:05:25,000 --> 00:05:26,400 而不会把其他部分弄坏 205 00:05:26,800 --> 00:05:27,900 这件事听起来简单 206 00:05:27,900 --> 00:05:30,300 实际上是软体工程里最难的问题之一 207 00:05:30,700 --> 00:05:32,100 Lipsic看上的就是这个 208 00:05:32,500 --> 00:05:34,700 所以Harness的第一句设计哲学是 209 00:05:35,000 --> 00:05:36,200 所有东西都是外挂 210 00:05:36,200 --> 00:05:38,800 外挂白话讲就是可以自由装上 211 00:05:39,100 --> 00:05:40,000 拔掉的零件 212 00:05:40,500 --> 00:05:43,100 文件一开头就在讲Cordis带来什么 213 00:05:43,400 --> 00:05:46,400 要听懂他得先看一般的软体长什么样 214 00:05:46,600 --> 00:05:47,800 中间有一个核心 215 00:05:48,000 --> 00:05:49,300 旁边挂一些扩充点 216 00:05:49,300 --> 00:05:51,300 你想加功能可以挂在扩充点上 217 00:05:51,300 --> 00:05:52,100 这没问题 218 00:05:52,700 --> 00:05:55,100 但只要你要改的事情核心没有预留位置 219 00:05:55,100 --> 00:05:56,400 你就得动核心 220 00:05:56,400 --> 00:05:57,700 动核心的代价很大 221 00:05:57,900 --> 00:05:59,200 因为所有人都靠他活 222 00:05:59,600 --> 00:06:01,700 你改坏一个地方全部一起坏 223 00:06:02,100 --> 00:06:04,200 而且久了之后会出现一个现象 224 00:06:04,400 --> 00:06:06,300 核心变成没人敢碰的东西 225 00:06:06,600 --> 00:06:09,200 大家宁可绕路绕出一堆奇怪的补丁 226 00:06:09,400 --> 00:06:11,100 Harness的文件里有一句话 227 00:06:11,400 --> 00:06:12,300 讲的很直接 228 00:06:12,500 --> 00:06:15,300 这里没有一个有特权的核心让你去修 229 00:06:15,600 --> 00:06:19,000 扩充他的方式是把你的外挂挂在其他外挂旁边 230 00:06:19,000 --> 00:06:19,900 这是什么意思呢 231 00:06:20,100 --> 00:06:24,900 就是连模型转接连工具清单连那个一步一步驱动 232 00:06:24,900 --> 00:06:26,300 AI做事的组绘圈 233 00:06:26,300 --> 00:06:27,300 本身都是外挂 234 00:06:27,500 --> 00:06:28,800 所以你想宽调组维圈 235 00:06:28,800 --> 00:06:29,700 你不是去改他 236 00:06:29,900 --> 00:06:32,300 你是写一个自己的挂上去把原本那个拿掉 237 00:06:32,500 --> 00:06:33,100 像乐高 238 00:06:33,500 --> 00:06:34,700 像一体成型的家具 239 00:06:35,200 --> 00:06:36,000 刚刚那句话 240 00:06:36,200 --> 00:06:40,600 还有后半段注册上去的东西在外挂被拿掉的时候要整个收回来 241 00:06:40,800 --> 00:06:41,600 这是什么意思呢 242 00:06:42,000 --> 00:06:43,100 你有沒有装过那种软体 243 00:06:43,100 --> 00:06:45,600 反安装之后电脑里还留一堆垃圾 244 00:06:45,800 --> 00:06:47,600 设定被改过的地方没还原 245 00:06:47,900 --> 00:06:50,000 资料夹里留着一些你不敢删的档案 246 00:06:50,400 --> 00:06:51,600 开机还是比以前慢 247 00:06:51,900 --> 00:06:54,300 就是装的时候没有留下海的方法 248 00:06:54,400 --> 00:06:56,200 软体世界里这种事非常普遍 249 00:06:56,200 --> 00:06:57,400 因为装很简单 250 00:06:57,400 --> 00:06:58,600 移除很麻烦 251 00:06:58,900 --> 00:07:00,600 大部分人只做前面那一半 252 00:07:00,800 --> 00:07:04,100 Harness的规则是每一个注册都必须带一个移除的方法 253 00:07:04,300 --> 00:07:05,500 你加一段提示词 254 00:07:05,700 --> 00:07:06,600 加一个工具 255 00:07:06,700 --> 00:07:07,600 加一个监听器 256 00:07:07,600 --> 00:07:09,500 都是透过同一个机制装上去 257 00:07:09,700 --> 00:07:11,700 每个机制会记住怎么还原 258 00:07:11,700 --> 00:07:13,300 所以外挂被拿掉的时候 259 00:07:13,300 --> 00:07:16,000 他做过的每件事会照顺序倒着收回来 260 00:07:16,300 --> 00:07:17,100 像倒带一样 261 00:07:17,100 --> 00:07:18,300 这条看起来很无聊 262 00:07:18,300 --> 00:07:20,200 但他是热插把的真正原因 263 00:07:20,500 --> 00:07:21,800 你会看到很多框架 264 00:07:22,300 --> 00:07:23,600 宣称可以热插把 265 00:07:23,600 --> 00:07:25,500 结果把玩要重新启动才正常 266 00:07:25,500 --> 00:07:27,000 那就是这一条没做到 267 00:07:27,400 --> 00:07:28,400 下一张讲的是 268 00:07:28,600 --> 00:07:30,800 你跑起来的那个东西到底怎么被组出来的 269 00:07:30,900 --> 00:07:31,500 答案是 270 00:07:31,600 --> 00:07:33,700 他是一叠设定层堆出来的 271 00:07:33,800 --> 00:07:35,400 最底下那一层叫BASS 272 00:07:35,400 --> 00:07:36,000 模型 273 00:07:36,200 --> 00:07:36,800 转接 274 00:07:36,900 --> 00:07:37,500 工具 275 00:07:37,600 --> 00:07:38,300 储存 276 00:07:38,300 --> 00:07:38,900 杀箱 277 00:07:38,900 --> 00:07:39,600 权限 278 00:07:39,600 --> 00:07:40,500 全部在里面 279 00:07:40,800 --> 00:07:42,800 每一种组合都从这一层开始 280 00:07:43,300 --> 00:07:44,400 上面可以再叠 281 00:07:44,500 --> 00:07:46,600 你要网页界面就叠网页那一层 282 00:07:46,900 --> 00:07:48,800 你只要跑完一次就收工 283 00:07:48,900 --> 00:07:50,200 就叠无界面那一层 284 00:07:50,300 --> 00:07:52,000 再上面是你自己的设定档 285 00:07:52,200 --> 00:07:54,400 最上面是你临时加的那一行参数 286 00:07:54,400 --> 00:07:55,800 这里有一个指令我很喜欢 287 00:07:56,000 --> 00:07:56,800 你可以叫他 288 00:07:56,900 --> 00:07:59,300 把组好的整颗树印出来文件讲的很白 289 00:07:59,300 --> 00:08:00,500 印出来任何一行 290 00:08:00,700 --> 00:08:02,600 你都可以用自己的设定盖掉 291 00:08:02,700 --> 00:08:04,100 这就像一份摊开合约 292 00:08:04,100 --> 00:08:05,400 每一条你都看得到 293 00:08:05,500 --> 00:08:07,300 每一条你都可以划掉重写 294 00:08:07,600 --> 00:08:09,000 堵出来的那棵树上 295 00:08:09,500 --> 00:08:11,100 每一块都站住一个名字 296 00:08:11,200 --> 00:08:13,000 上面的人要用下面那一块 297 00:08:13,100 --> 00:08:14,300 靠的就是这个名字 298 00:08:14,500 --> 00:08:15,600 这听起来很技术 299 00:08:15,700 --> 00:08:17,000 但它其实就是电话簿 300 00:08:17,500 --> 00:08:19,300 想像你家水管漏水 301 00:08:19,500 --> 00:08:21,500 一种做法是你认识一个师傅 302 00:08:21,700 --> 00:08:22,900 有他的电话你打给他 303 00:08:23,100 --> 00:08:24,400 他很好很可靠 304 00:08:24,700 --> 00:08:26,400 直到有一天他搬家了或者退休了 305 00:08:26,400 --> 00:08:27,100 你就完蛋了 306 00:08:27,300 --> 00:08:28,600 你得重新认识一个人 307 00:08:28,700 --> 00:08:30,800 另一种做法是你翻电话簿 308 00:08:30,900 --> 00:08:32,400 找到水电这个分类 309 00:08:32,600 --> 00:08:33,800 打上面的号码 310 00:08:33,900 --> 00:08:34,800 谁接不重要 311 00:08:34,800 --> 00:08:37,300 重要的是水电这个分类永远在 312 00:08:37,500 --> 00:08:39,100 Harness就是后面这种 313 00:08:39,600 --> 00:08:40,300 每个服务 314 00:08:40,400 --> 00:08:42,000 站住一个固定的名字 315 00:08:42,100 --> 00:08:43,100 工具叫Tools 316 00:08:43,200 --> 00:08:44,500 模型叫LM 317 00:08:44,600 --> 00:08:45,700 地图叫Sessions 318 00:08:45,900 --> 00:08:48,200 别的外挂用工具是去找Tools 319 00:08:48,300 --> 00:08:48,900 这个名字 320 00:08:49,300 --> 00:08:51,400 而不是去引用某一份具体的程式码 321 00:08:51,600 --> 00:08:52,600 好处是什么呢 322 00:08:52,700 --> 00:08:54,900 你把它底下换成完全不同的实作 323 00:08:55,000 --> 00:08:55,500 上面 324 00:08:55,600 --> 00:08:56,600 所有人都不用改 325 00:08:56,800 --> 00:08:58,000 而且还有一个附带好处 326 00:08:58,100 --> 00:08:59,200 开机顺序不用你排 327 00:08:59,400 --> 00:09:00,600 每个外挂只要宣告 328 00:09:00,700 --> 00:09:01,700 我需要哪些服务 329 00:09:01,700 --> 00:09:03,800 系统就会自己算出谁该先启动 330 00:09:03,800 --> 00:09:04,700 谁该后启动 331 00:09:05,200 --> 00:09:06,300 想完五条抽象的 332 00:09:06,400 --> 00:09:07,600 我们看一个具体的东西 333 00:09:07,600 --> 00:09:08,400 一个工具 334 00:09:08,500 --> 00:09:09,300 被呼叫的时候 335 00:09:09,300 --> 00:09:10,400 到底发生什么事 336 00:09:10,600 --> 00:09:12,200 一条路比你想的长很多 337 00:09:12,400 --> 00:09:14,300 模型说我要跑这个指令 338 00:09:14,400 --> 00:09:15,600 第一件事不是去跑 339 00:09:15,900 --> 00:09:18,000 是先把这个呼叫写进记录 340 00:09:18,100 --> 00:09:19,000 注意顺序 341 00:09:19,100 --> 00:09:20,500 是执行之前就写 342 00:09:20,500 --> 00:09:22,000 所以就算等一下整个当掉 343 00:09:22,300 --> 00:09:23,900 还是查得到当时想做什么 344 00:09:24,000 --> 00:09:25,300 接着进到第一道关卡 345 00:09:25,400 --> 00:09:27,500 权限跟杀香在这里决定放行 346 00:09:27,600 --> 00:09:28,200 挡一下 347 00:09:28,400 --> 00:09:29,200 还是问人 348 00:09:29,200 --> 00:09:31,800 要问人的话会跳出一个一次性的确认 349 00:09:31,900 --> 00:09:33,400 这里有一个设计我很喜欢 350 00:09:33,500 --> 00:09:34,500 如果问不到人 351 00:09:34,900 --> 00:09:35,400 比如说 352 00:09:35,600 --> 00:09:36,600 没有界面可以问 353 00:09:36,600 --> 00:09:38,100 或者根本没人在电脑前面 354 00:09:38,200 --> 00:09:39,100 那就是算拒绝 355 00:09:39,100 --> 00:09:40,000 而不是算通过 356 00:09:40,300 --> 00:09:41,500 这个选择看起来很小 357 00:09:41,800 --> 00:09:42,900 但他决定了一件事 358 00:09:43,200 --> 00:09:44,300 没人看的时候 359 00:09:44,400 --> 00:09:45,800 这个系统是保守的 360 00:09:45,800 --> 00:09:46,600 还是放纵的 361 00:09:46,900 --> 00:09:49,200 然后才轮到工具本体真的跑 362 00:09:49,300 --> 00:09:50,400 跑完还没结束 363 00:09:50,500 --> 00:09:52,100 还有一关可以检查结果 364 00:09:52,200 --> 00:09:52,900 可以挡下 365 00:09:53,000 --> 00:09:53,700 可以换掉 366 00:09:53,900 --> 00:09:55,100 可以补一段话进去 367 00:09:55,300 --> 00:09:56,400 最后才冻结成一个 368 00:09:56,400 --> 00:09:57,700 谁都不能再改的结果 369 00:09:57,700 --> 00:10:00,100 再往下一张叫工作阶段记录 370 00:10:00,000 --> 00:10:02,600 里面有我觉得整份文件最漂亮的一句话 371 00:10:02,600 --> 00:10:03,900 模型看得到的 372 00:10:03,900 --> 00:10:05,200 一定被记下来 373 00:10:05,200 --> 00:10:06,740 意思是任何一个字 374 00:10:06,740 --> 00:10:09,340 只要他进到了送给模型的那个请求礼 375 00:10:09,340 --> 00:10:12,080 他就必须能从记录里重新拼回来 376 00:10:12,080 --> 00:10:13,880 而且他们不是写在文件上就算了 377 00:10:13,880 --> 00:10:14,960 他们写了一个检查 378 00:10:14,960 --> 00:10:16,560 在跑的时候盯着这件事 379 00:10:16,560 --> 00:10:17,940 做不到就直接报错 380 00:10:17,940 --> 00:10:19,080 为什么要做到这么硬呢 381 00:10:19,080 --> 00:10:19,840 因为这样一来 382 00:10:19,840 --> 00:10:20,580 很多 383 00:10:20,580 --> 00:10:22,760 你以为要各自开发的功能 384 00:10:22,760 --> 00:10:24,620 其实都是同一条记录的衍生品 385 00:10:24,620 --> 00:10:27,020 你想从某一步分岔出去重跑 386 00:10:27,020 --> 00:10:28,680 可以想关掉电脑 387 00:10:28,680 --> 00:10:29,520 明天接着做 388 00:10:29,520 --> 00:10:29,820 可以 389 00:10:29,820 --> 00:10:31,700 你想知道昨天那个AI 390 00:10:31,700 --> 00:10:32,860 为什么会删掉你的档案 391 00:10:32,860 --> 00:10:34,260 把记录拉出来 392 00:10:34,260 --> 00:10:36,140 那一刻他眼前有什么 393 00:10:36,140 --> 00:10:37,280 你一个字都不会漏 394 00:10:37,280 --> 00:10:39,180 这就像法院的逐字记录 395 00:10:39,180 --> 00:10:40,900 我是散毁之后补写的会议纪要 396 00:10:40,900 --> 00:10:42,260 是当下就留了底 397 00:10:42,260 --> 00:10:43,400 差别在哪里呢 398 00:10:43,400 --> 00:10:45,520 补写的东西你只能选择相信 399 00:10:45,520 --> 00:10:46,580 当下留了底 400 00:10:46,580 --> 00:10:47,120 你可以查 401 00:10:47,120 --> 00:10:49,640 这两件事在出事的时候差很多 402 00:10:49,640 --> 00:10:51,860 下一张叫能力接缝 403 00:10:51,860 --> 00:10:53,980 文件给了接缝一个很严格的定义 404 00:10:53,980 --> 00:10:55,600 要有三个角色才算数 405 00:10:55,600 --> 00:10:56,600 哪三个呢 406 00:10:56,600 --> 00:10:58,960 一个负责定义这个能力长什么样 407 00:10:58,960 --> 00:11:00,360 一个负责真的把它做出来 408 00:11:00,360 --> 00:11:01,480 一个负责使用它 409 00:11:01,480 --> 00:11:03,400 文件里特别强调一句话 410 00:11:03,400 --> 00:11:05,080 只有其中一个角色不算数 411 00:11:05,080 --> 00:11:06,160 这是在讲什么 412 00:11:06,160 --> 00:11:08,340 很多系统会说这里可以换 413 00:11:08,340 --> 00:11:09,680 结果你真的去换的时候 414 00:11:09,680 --> 00:11:11,800 才发现界面根本没有被单独定义出来 415 00:11:11,800 --> 00:11:14,840 使用的人其实直接绑死在某一份实作上 416 00:11:14,840 --> 00:11:15,760 那就不是能换 417 00:11:15,760 --> 00:11:17,200 那只是还没有人去换过而已 418 00:11:17,200 --> 00:11:18,440 做对了会怎样呢 419 00:11:18,440 --> 00:11:19,720 文件里举了一个例子 420 00:11:19,720 --> 00:11:21,440 档案系统跟跑指令 421 00:11:21,440 --> 00:11:23,680 这两件事共用同一个执行环境 422 00:11:23,680 --> 00:11:26,800 所以当你把它指向一台远端的杀箱机器 423 00:11:26,800 --> 00:11:28,640 那些跑指令的工具 424 00:11:28,640 --> 00:11:29,840 那个终端机 425 00:11:29,840 --> 00:11:32,000 连程式码补全都一起搬过去了 426 00:11:32,000 --> 00:11:33,440 没有任何一个要另外改 427 00:11:33,440 --> 00:11:35,200 这样插座规格发电厂 428 00:11:35,200 --> 00:11:36,600 从烧煤换成太阳能 429 00:11:36,600 --> 00:11:38,280 你家的电器一台都不用换 430 00:11:38,280 --> 00:11:39,920 因为中间那个插座的形状 431 00:11:39,920 --> 00:11:41,600 早就被单独定义出来了 432 00:11:41,600 --> 00:11:45,160 文件里我觉得最实用的一段叫做 433 00:11:45,160 --> 00:11:46,960 新的行为该放哪里 434 00:11:46,960 --> 00:11:48,640 这一张就是一张对照表 435 00:11:48,640 --> 00:11:50,120 左边是你想做的事 436 00:11:50,120 --> 00:11:51,400 右边是你该挂在哪里 437 00:11:51,400 --> 00:11:53,040 你想加一个模型供应商 438 00:11:53,040 --> 00:11:55,760 QLM那个名字上注册一个转接器 439 00:11:55,760 --> 00:11:57,560 你想给AI一个新工具 440 00:11:57,560 --> 00:11:58,880 去Tool上注册 441 00:11:58,880 --> 00:12:01,320 它的说明会自动被放进给模型的提示里 442 00:12:01,320 --> 00:12:02,880 你想拦截每一次请求 443 00:12:02,880 --> 00:12:03,760 用事件 444 00:12:03,760 --> 00:12:06,080 你想加一个关掉电脑还在的状态 445 00:12:06,080 --> 00:12:07,720 去扩充事件的行别 446 00:12:07,720 --> 00:12:09,160 这一张开头还有一句话 447 00:12:09,160 --> 00:12:11,560 他说如果你改的是主回圈本身 448 00:12:11,560 --> 00:12:13,440 你要顺手更新这张表 449 00:12:13,440 --> 00:12:14,400 你听出来了吗 450 00:12:14,400 --> 00:12:16,600 这张表就是这个专案的地图 451 00:12:16,600 --> 00:12:18,800 而他规定地图不准过期 452 00:12:18,800 --> 00:12:20,960 架构文件旁边还有一份 453 00:12:20,960 --> 00:12:22,320 不讲怎么设计 454 00:12:22,320 --> 00:12:23,400 讲怎么不出事 455 00:12:23,400 --> 00:12:25,360 标题叫防御性模式 456 00:12:25,360 --> 00:12:26,400 开头就说 457 00:12:26,400 --> 00:12:29,440 好下面每一条都是真的发生过 458 00:12:29,440 --> 00:12:30,960 或者差一点就发生的bug 459 00:12:30,960 --> 00:12:32,960 写成规则来防止它再来一次 460 00:12:32,960 --> 00:12:34,360 我很喜欢这种文件 461 00:12:34,360 --> 00:12:35,680 因为他不是在讲理想 462 00:12:35,680 --> 00:12:36,720 是在讲伤疤 463 00:12:36,720 --> 00:12:38,000 我挑两条给你 464 00:12:38,000 --> 00:12:38,640 第一条 465 00:12:38,640 --> 00:12:40,800 结果可能同时是好几件事 466 00:12:40,800 --> 00:12:42,640 一个程式可以同时于时 467 00:12:42,640 --> 00:12:44,040 又回报执行成功 468 00:12:44,040 --> 00:12:46,680 因为他自己把中断的讯号拦下来了 469 00:12:46,680 --> 00:12:49,040 所以于时讯号结束代码要各报各的 470 00:12:49,040 --> 00:12:50,800 不可以把一个藏在另一个底下 471 00:12:50,800 --> 00:12:52,840 不然呼叫的人会把一个被砍断的执行 472 00:12:52,840 --> 00:12:54,240 读成一次干净的成功 473 00:12:54,240 --> 00:12:55,840 第二条更严格关闭 474 00:12:55,840 --> 00:12:57,560 要关到真的静下来 475 00:12:57,560 --> 00:12:58,520 不是喊一声就走 476 00:12:58,520 --> 00:13:00,080 你送出一个结束的指令 477 00:13:00,080 --> 00:13:00,920 然后就回传 478 00:13:00,920 --> 00:13:02,880 那些子程式可能还活着 479 00:13:02,880 --> 00:13:04,000 正确做法是 480 00:13:04,000 --> 00:13:05,320 等他们真的死透 481 00:13:05,320 --> 00:13:07,040 而且要先把监听关掉再杀 482 00:13:07,040 --> 00:13:08,880 这样晚一步才回来的通知 483 00:13:08,880 --> 00:13:10,000 才不会到处乱跑 484 00:13:10,000 --> 00:13:11,160 所以讲完了 485 00:13:11,160 --> 00:13:12,920 我们看它实际跑起来是什么样子 486 00:13:12,920 --> 00:13:14,840 装好之后你可以选四种模式 487 00:13:14,840 --> 00:13:16,000 第一种是完整版 488 00:13:16,000 --> 00:13:16,680 档案 489 00:13:16,680 --> 00:13:17,740 指定搜寻规划 490 00:13:17,740 --> 00:13:18,840 还有直代理全开 491 00:13:18,840 --> 00:13:20,240 就是你预期一个agent 492 00:13:20,240 --> 00:13:21,160 该有的样子 493 00:13:21,160 --> 00:13:22,480 第二种比较特别 494 00:13:22,480 --> 00:13:24,040 它把工具包成程式码 495 00:13:24,040 --> 00:13:25,800 让AI用写程式的方式 496 00:13:25,800 --> 00:13:27,280 一次呼叫好几个工具 497 00:13:27,280 --> 00:13:28,560 我不是一轮一轮问 498 00:13:28,560 --> 00:13:29,840 这样省很多来回 499 00:13:29,840 --> 00:13:31,380 第三种是极简 500 00:13:31,380 --> 00:13:33,280 只给指令列跟编辑器 501 00:13:33,280 --> 00:13:35,040 适合你想看清楚 502 00:13:35,040 --> 00:13:36,560 模型自己到底有多少能耐 503 00:13:36,560 --> 00:13:38,400 第四种叫创造者模式 504 00:13:38,400 --> 00:13:39,160 这个要小心 505 00:13:39,160 --> 00:13:41,280 它给AI的工具是 506 00:13:41,280 --> 00:13:43,100 可以回头改这个系统自己的 507 00:13:43,100 --> 00:13:43,780 也就是说 508 00:13:43,780 --> 00:13:45,680 AI当场写出来的程式码 509 00:13:45,680 --> 00:13:47,880 会直接在正在跑的系统上执行 510 00:13:47,880 --> 00:13:49,340 官方自己在文件上 511 00:13:49,340 --> 00:13:50,820 标了高度信任的警告 512 00:13:50,820 --> 00:13:52,720 这是很大胆的设计 513 00:13:52,720 --> 00:13:53,880 也是很危险的设计 514 00:13:53,880 --> 00:13:55,200 我建议你先不要碰 515 00:13:55,200 --> 00:13:56,080 好 516 00:13:56,080 --> 00:13:57,260 讲到这里都很漂亮 517 00:13:57,260 --> 00:13:59,120 但我要老实跟你说几件事 518 00:13:59,120 --> 00:14:00,960 不然这支影片就变成广告了 519 00:14:00,960 --> 00:14:01,360 第一 520 00:14:01,360 --> 00:14:03,100 它现在是开发者预览版 521 00:14:03,100 --> 00:14:04,960 说明档用全大写写着 522 00:14:04,960 --> 00:14:06,360 一定会有不相容的改动 523 00:14:06,360 --> 00:14:07,580 你今天写的外挂 524 00:14:07,580 --> 00:14:09,280 下个月可能就跑不起来 525 00:14:09,280 --> 00:14:10,440 所以你要锁住版本 526 00:14:10,440 --> 00:14:10,960 第二 527 00:14:10,960 --> 00:14:12,600 它内建的那个沙箱 528 00:14:12,600 --> 00:14:14,100 文件上自己写着 529 00:14:14,100 --> 00:14:14,880 网络不受限 530 00:14:14,880 --> 00:14:16,300 其他程式看得到 531 00:14:16,300 --> 00:14:17,940 所以那不是真正的隔离 532 00:14:17,940 --> 00:14:19,860 你不能把它当成安全边界 533 00:14:19,860 --> 00:14:22,320 该关的还是要用真的虚拟机关 534 00:14:22,320 --> 00:14:22,900 第三 535 00:14:22,900 --> 00:14:24,500 它跑起来会开一个 536 00:14:24,500 --> 00:14:25,640 本机的网页界面 537 00:14:25,640 --> 00:14:27,480 很多人看到本机两个字会误会 538 00:14:27,480 --> 00:14:29,280 以为模型在自己电脑上跑 539 00:14:29,280 --> 00:14:30,060 不是的 540 00:14:30,060 --> 00:14:32,600 那只是控制台模型还是在远端 541 00:14:32,600 --> 00:14:33,600 还是要填金钥 542 00:14:33,600 --> 00:14:34,440 还是要付钱 543 00:14:34,440 --> 00:14:37,400 然后付钱就要讲另一半起了 544 00:14:37,400 --> 00:14:38,560 股价免费送你 545 00:14:38,560 --> 00:14:39,740 但模型还是要钱 546 00:14:39,740 --> 00:14:42,080 而且agent这种工作的账单形状 547 00:14:42,080 --> 00:14:43,580 跟你平常聊天完全不一样 548 00:14:43,580 --> 00:14:46,160 完全在一个叫快取命中的东西 549 00:14:46,160 --> 00:14:47,880 你跟AI讲话的时候 550 00:14:47,880 --> 00:14:49,560 前面那大段背景 551 00:14:49,560 --> 00:14:50,460 通常每次都一样 552 00:14:50,460 --> 00:14:51,740 系统会把它存起来 553 00:14:51,740 --> 00:14:52,820 第二次就不用重算 554 00:14:52,820 --> 00:14:54,240 所以算你比较便宜 555 00:14:54,240 --> 00:14:56,780 你可以想成搭同一条路线的月票 556 00:14:56,780 --> 00:14:58,440 走越多次越划算 557 00:14:58,440 --> 00:14:59,660 便宜多少呢 558 00:15:00,000 --> 00:15:01,180 官方的价目表 559 00:15:01,180 --> 00:15:02,560 同样是100万个字 560 00:15:02,560 --> 00:15:05,140 系统存过的跟没存过的差31倍 561 00:15:05,140 --> 00:15:08,040 而Agent刚好就是最靠这个活的工作 562 00:15:08,040 --> 00:15:08,960 因为他一轮一轮跑 563 00:15:08,960 --> 00:15:11,800 每一轮都要把前面做过的事重新送一遍 564 00:15:11,800 --> 00:15:13,640 他就是那个天天走同一条路的人 565 00:15:13,640 --> 00:15:15,600 所以真正决定你账单的 566 00:15:15,600 --> 00:15:17,100 不是他都会写程式 567 00:15:17,100 --> 00:15:18,840 是你又没有让他一直走同一条路 568 00:15:18,840 --> 00:15:20,160 还有一件事你要知道 569 00:15:20,160 --> 00:15:23,120 官方把一天切成尖峰跟离峰 570 00:15:23,120 --> 00:15:25,200 尖峰的单价是离峰的两倍 571 00:15:25,200 --> 00:15:28,380 而那个尖峰时段换算成台湾时间 572 00:15:28,380 --> 00:15:30,480 刚好就是我们上班的那几个小时 573 00:15:30,480 --> 00:15:32,600 对那同一个问题是什么呢 574 00:15:32,600 --> 00:15:34,140 这份文件从头到尾讲的 575 00:15:34,140 --> 00:15:35,200 其实都是同一件事 576 00:15:35,200 --> 00:15:37,000 让一个很复杂的东西 577 00:15:37,000 --> 00:15:38,280 还能被一个人看懂 578 00:15:38,280 --> 00:15:39,320 还敢动手去改 579 00:15:39,320 --> 00:15:40,440 如果你只记得一句 580 00:15:40,440 --> 00:15:42,360 我建议这句模型看得到的 581 00:15:42,360 --> 00:15:43,100 就一定被记下来 582 00:15:43,100 --> 00:15:44,740 因为他一句话就撑起了 583 00:15:44,740 --> 00:15:45,980 可以倒带可以分岔 584 00:15:45,980 --> 00:15:47,660 可以查这样这三件事 585 00:15:47,660 --> 00:15:49,940 其他的设计都是在保护他 586 00:15:49,940 --> 00:15:51,040 如果你是工程师 587 00:15:51,040 --> 00:15:52,940 我建议你今天就把它装起来 588 00:15:52,940 --> 00:15:54,700 玩意行指令就开得起来 589 00:15:54,700 --> 00:15:56,620 但先不要拿去做正式的东西 590 00:15:56,620 --> 00:15:58,120 如果你是在看趋势的人 591 00:15:58,120 --> 00:16:00,040 你要看的不是这个框架本身 592 00:16:00,040 --> 00:16:00,840 是这件事 593 00:16:00,840 --> 00:16:03,240 模型公司开始抢执行环境了 594 00:16:03,240 --> 00:16:04,360 欢迎订阅追踪 595 00:16:04,360 --> 00:16:05,240 后续下次见