境下的排查與修復)
1. 這個報錯到底卡在哪openclaw onboard --install-daemon 與 tslib.js 的關系openclaw onboard --install-daemon是 OpenClaw 初始化守護進程的入口命令它會把 CLI 本體、后臺 daemon 以及一批運行時依賴一次性裝好。你敲下這條命令后看到Error: Cannot find module ./internal/tslib.js說明 Node 在加載某個包時按相對路徑去找internal/tslib.js這個文件結果沒找到。注意關鍵詞是「相對路徑」——./internal/tslib.js不是從 node_modules 根目錄找而是從報錯那個包自己的目錄里找。這個報錯最常出現(xiàn)在anthropic-ai相關依賴的深層嵌套結構里。tslib 本來是 TypeScript 編譯后代碼的運行時輔助庫正常安裝時它會被放在包的internal/子目錄下。一旦 npm 在安裝這個深層依賴時網(wǎng)絡中斷、緩存寫壞或者包本身發(fā)布時打包不完整這個文件就會缺失于是 require 直接拋錯。它和 TaoToken 的關系在于TaoToken 提供統(tǒng)一的 Key 與 API 通道OpenClaw 通過它去調(diào)用模型能力。但依賴安裝這一層和 API 通道是兩回事——報錯發(fā)生在本地文件系統(tǒng)不是網(wǎng)絡鑒權。很多人一看到報錯就以為是 Key 配錯了其實方向反了。這篇就按「依賴完整性 → Node 版本 → 安裝路徑」三個角度把這條命令從報錯到 daemon 正常啟動走一遍。適合已經(jīng)在用 OpenClaw、并且把模型請求接到 TaoToken 通道上的開發(fā)者。2. 先把 TaoToken 通道準備好Key 與接入信息在動依賴之前先把上層通道確認好避免修完依賴又卡在鑒權上。TaoToken 的定位是統(tǒng)一 Key/API 通道你只需要一個 Key就能在 OpenClaw 這類工具里對接模型能力不用為每個模型單獨維護一套憑證。你需要拿到兩樣東西一個是 API Key一個是接入地址。Key 在控制臺的 API Keys 頁面創(chuàng)建地址用https://taotoken.net/api這個地址不加任何查詢參數(shù)。創(chuàng)建 Key 的入口在這里控制臺 API Keyshttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_tslib拿到 Key 之后先別急著寫進 OpenClaw 配置用一條最簡請求驗證通道本身是通的。這一步能把「通道問題」和「依賴問題」徹底分開——如果這條命令都失敗那后面修 tslib 也沒意義。curl -sS https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json返回里能看到模型列表就說明 Key 和通道都正常。把 Key 存成環(huán)境變量后面 OpenClaw 直接讀它避免明文寫進配置文件# Linux / macOS export TAOTOKEN_API_KEYsk-你的key # Windows PowerShell $env:TAOTOKEN_API_KEY sk-你的key如果你更想先在網(wǎng)頁里確認模型能不能正常對話可以直接用模型對話頁試一句比命令行更直觀模型對話https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_tslib通道確認沒問題再回到openclaw onboard --install-daemon的依賴修復上。3. 可復制配置三步定位 tslib.js 缺失3.1 第一步確認報錯包與文件是否真的缺失先別急著重裝先定位到底是哪個包缺文件。用 Node 直接打印模塊解析路徑比盲猜快得多# 找到 openclaw 全局安裝位置 npm root -g # 進入全局 node_modules搜索 tslib.js 的實際分布 find $(npm root -g) -name tslib.js -path *internal* 2/dev/nullWindows PowerShell 用這條npm root -g Get-ChildItem -Path (npm root -g) -Recurse -Filter tslib.js -ErrorAction SilentlyContinue | Where-Object { $_.FullName -like *internal* }如果輸出為空說明internal/tslib.js確實沒被裝下來屬于文件缺失如果輸出里有路徑但報錯依舊那多半是 Node 版本或路徑解析的問題往下看 3.2 和 3.3。3.2 第二步核對 Node 版本與包要求./internal/tslib.js這種相對路徑解析對 Node 版本和包導出規(guī)則比較敏感。先看當前版本node -v npm -vOpenClaw 這類工具通常要求 Node 18 以上部分新版本依賴需要 Node 20 LTS。如果你的版本偏低用 nvm 切一個穩(wěn)定版再重裝比在舊版本上反復折騰省事# 安裝并使用 Node 20 LTS nvm install 20 nvm use 20 node -v版本對齊后再執(zhí)行一次依賴重裝。這里建議先清緩存避免又下到壞文件npm cache clean --force npm install -g openclawlatest --verbose--verbose會打印每個依賴的下載與解壓過程如果 tslib 相關文件在安裝階段就報錯日志里能直接看到是哪個包、哪一步斷的。3.3 第三步檢查安裝路徑與殘留文件如果版本沒問題、緩存也清了還是報錯那就是安裝路徑里有殘留的損壞文件。npm 的uninstall有時刪不干凈尤其是全局目錄下的舊包。手動清一遍最有效。Windows 下全局 npm 目錄通常在%AppData%\npm進去刪掉這幾樣如果存在%AppData%\npm\node_modules %AppData%\npm\openclaw %AppData%\npm\openclaw.cmdLinux / macOS 對應的是$(npm root -g)和$(npm bin -g)下的 openclaw 可執(zhí)行文件。刪之前把里面其他重要的全局包記一下回頭一起重裝。清理完再重裝并強制走 HTTPS 拉取避免 SSH 方式在部分網(wǎng)絡下中斷導致文件不完整git config --global url.https://github.com/.insteadOf ssh://gitgithub.com/ npm install -g openclawlatest --verbose如果最新版依然報同樣的錯說明這個版本在打包上可能有問題降一個穩(wěn)定版試試npm view openclaw versions --json # 先看歷史版本 npm install -g openclaw上一個穩(wěn)定版本號 --verbose4. 驗證請求daemon 是否真的起來了依賴修好后重新跑初始化命令并加上--verbose看詳細過程openclaw onboard --install-daemon --verboseWindows 上如果遇到執(zhí)行策略攔截用這條繞過powershell -ExecutionPolicy Bypass -Command openclaw onboard --install-daemon --verbose命令跑完后用openclaw doctor做一次自檢它會檢查 daemon 狀態(tài)、依賴完整性和配置項openclaw doctor自檢通過后再確認 daemon 進程確實在跑# Linux / macOS ps aux | grep openclaw # Windows PowerShell Get-Process | Where-Object { $_.ProcessName -like *openclaw* }最后做一次端到端驗證讓 OpenClaw 通過 TaoToken 通道發(fā)一個最小請求確認模型能正常返回。這一步同時驗證了「依賴修復成功」和「通道配置正確」兩件事。如果你在驗證模型響應時想換個更輕的方式可以直接在模型對話頁發(fā)同一句 prompt 做對照模型對話https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_tslib5. 本篇常見錯排查報錯依舊但文件已存在多半是 Node 版本和包的導出規(guī)則不匹配。切到 Node 20 LTS 后重裝別在舊版本上反復試。重裝后報權限錯誤Windows 下用管理員 PowerShellLinux/macOS 下檢查全局目錄歸屬必要時用sudo或改 npm 全局前綴到用戶目錄。npm install卡在某個包不動先npm cache clean --force再確認鏡像源可用。國內(nèi)環(huán)境可以臨時切鏡像源加速但裝完建議切回官方源避免鏡像同步延遲導致版本對不上。daemon 啟動后立刻退出看openclaw doctor的輸出通常是配置里 Key 或接入地址寫錯。確認用的是https://taotoken.net/api且 Key 從環(huán)境變量讀取而不是硬編碼。降級后仍報 tslib 缺失說明問題不在版本而在安裝路徑殘留?;氐?3.3把全局目錄里的 openclaw 相關文件和 node_modules 徹底刪干凈再裝。改了配置但 daemon 沒生效daemon 通常需要重啟才會重讀配置。改完配置后重啟 daemon再跑一次openclaw doctor確認。6. 長期跑編碼與 Agent把通道固定下來如果你不只是偶爾用 OpenClaw而是長期跑編碼任務或 Agent 流程建議把 TaoToken 通道固定成一套配置避免每次重裝都重新配。Key 統(tǒng)一從環(huán)境變量讀接入地址寫死成https://taotoken.net/api這樣依賴升級、版本回退都不會影響通道本身。需要長期跑編碼和 Agent 的場景可以看下 Coding Plan它更適合把模型調(diào)用穩(wěn)定接進日常開發(fā)流Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_tslib接入細節(jié)和參數(shù)說明都在文檔里遇到配置項不確定時對照著改接入文檔https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_tslib回到這條報錯本身Cannot find module ./internal/tslib.js的核心就一句話本地依賴文件缺失或路徑解析失敗和 API 通道無關。按「確認文件缺失 → 對齊 Node 版本 → 清理安裝路徑」三步走基本都能修好。修完記得用openclaw doctor和一次真實請求做雙重驗證別只看命令沒報錯就以為成了。