1. OpenClaw 故障排查飞书插件、Ollama 与端口占用一次讲清OpenClaw 是一个把本地大模型、聊天渠道和自动化任务串起来的网关型工具你可以把它理解成一个“消息中转站”飞书里发一句话它转给 Ollama 或云端模型再把结果送回去。适合已经在本地跑 Ollama、又想把飞书当交互入口的开发者。但真正用起来故障往往不是模型本身而是插件加载、认证变量和端口这三件事。我实测下来90% 的“服务起不来”都能归到这三类飞书插件 SDK 版本不兼容、Ollama 缺少占位认证、18789 端口被僵尸进程占着。这篇按“先定位、再修复、后验证”的顺序把可复制的配置和命令都给出来你照着做就能把服务拉回 Running 状态。2. 前置用 TaoToken 统一 Key 与 API 通道在排查之前先把模型通道理顺否则你会在“到底是插件坏了还是 Key 失效了”之间反复横跳。TaoToken 提供统一的 Key 和 API 入口把 Ollama 本地模型和云端模型放在同一套配置里管理排查时只需看一个通道是否通。官网入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 基址配置里填这个不要加多余路径https://taotoken.net/api你需要先去控制台建一个 Key再把它写进 OpenClaw 的 provider 配置。这样飞书插件报错时你能快速区分是“插件加载失败”还是“模型通道 401”。模型对话调试https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewriteAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite注意Ollama 作为本地 provider 时OpenClaw 仍要求一个非空的 apiKey 字段随便填ollama-local即可它不会真的去校验。这一步不做日志会直接抛OLLAMA_API_KEY required。3. 可复制配置config.toml 与 settings.json 骨架OpenClaw 的配置分两层网关级用config.toml插件与模型级用settings.json部分版本叫openclaw.json。下面这份骨架可以直接改路径使用。3.1 config.toml 网关骨架# ~/.openclaw/config.toml [gateway] host 127.0.0.1 port 18789 log_level info [plugins] # 只允许加载白名单插件避免重复 id 冲突 allow [feishu] load_paths [~/.openclaw/extensions] [logging] level infoport就是后面端口排查的核心allow白名单能直接压掉duplicate plugin id detected这类警告。3.2 settings.json 模型与插件骨架{ models: { providers: { ollama: { baseUrl: http://127.0.0.1:11434, apiKey: { source: literal, value: ollama-local } }, taotoken: { baseUrl: https://taotoken.net/api, apiKey: { source: env, value: TAOTOKEN_API_KEY } } } }, plugins: { feishu: { enabled: true, appId: cli_xxxxxxxx, appSecret: { source: env, value: FEISHU_APP_SECRET } } } }把敏感值走env引用日志里就不会出现明文 Key也能消掉possibly sensitive key found的扫瞄提示——那个提示本身是正常现象不是错误。3.3 环境变量一次性写全# Linux / macOS export OLLAMA_API_KEYollama-local export TAOTOKEN_API_KEYsk-你的key export FEISHU_APP_SECRET你的飞书secret# Windows PowerShell 永久写入 [Environment]::SetEnvironmentVariable(OLLAMA_API_KEY, ollama-local, User) [Environment]::SetEnvironmentVariable(TAOTOKEN_API_KEY, sk-你的key, User)4. 验证请求与成功结果配置写完别急着开飞书先用命令行把通道打通确认模型侧没问题再去看插件。4.1 端口检测与僵尸进程清理# Windows查谁占了 18789 Get-NetTCPConnection -LocalPort 18789 -ErrorAction SilentlyContinue | Select-Object LocalPort, OwningProcess # 杀掉 OpenClaw 相关 node 进程 Get-Process node -ErrorAction SilentlyContinue | Where-Object { $_.Path -like *openclaw* } | Stop-Process -Force# Linux / macOS lsof -Pi :18789 -sTCP:LISTEN -t pkill -f openclaw4.2 重启并验证openclaw gateway stop openclaw gateway start openclaw status openclaw logs --follow成功标志很明确openclaw status里Running: Yes日志出现feishu: loaded并且不再有createFixedWindowRateLimiter is not a function。如果飞书渠道状态从disconnected (1006)变成Connected说明插件和网关都通了。4.3 模型通道单独验证curl https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY返回模型列表就说明 Key 和 API 通道正常此时若飞书仍不通问题一定在插件层不用再怀疑模型。5. 本篇常见错排查5.1 飞书插件 SDK 不兼容报错createFixedWindowRateLimiter is not a function根因是 OpenClaw 新版移除了旧 SDK 函数而飞书插件还在调旧 API。处理顺序先删本地重复插件目录再重启不行就降级到稳定版本。rm -rf ~/.openclaw/extensions/feishu rm -rf $(npm root -g)/openclaw/extensions/feishu openclaw gateway start # 仍失败则降级 npm install -g openclaw2026.2.255.2 Ollama 认证缺失报错Ollama requires authentication to be registered as a provider按 3.3 设好OLLAMA_API_KEY即可值任意非空。5.3 端口占用与重复插件Port 18789 is already in use和duplicate plugin id detected经常一起出现本质是上一次没退干净的进程 两处插件目录同时被加载。按 4.1 清进程再确认~/.openclaw/extensions/和 npm 全局目录下只有一个 feishu。报错现象根因快速动作createFixedWindowRateLimiter is not a function插件 SDK 版本不兼容删插件目录或降级OLLAMA_API_KEY required缺占位认证设环境变量Port 18789 is already in use僵尸进程占端口杀进程重启duplicate plugin id detected插件重复安装清理重复目录possibly sensitive key found配置扫瞄提示正常可忽略6. 长期编码与 Agent 场景的通道选择如果你不只是排查一次而是要把 OpenClaw 当长期编码助手或 Agent 网关跑建议把模型通道固定成 TaoToken 的 Coding Plan省得每次换模型都改配置。Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite排查时记住一个顺序先看端口再看环境变量最后看插件版本。这三步走完OpenClaw 基本都能回到 Running。
阅读完成 · 觉得有帮助?