1. 卸载飞书插件后,为什么还要做命令行清理
OpenClaw 的插件机制和很多编辑器类似:装的时候一键完成,卸的时候却常常只删掉主程序目录,配置里的引用、缓存、会话记录还留在原地。飞书文件插件(openclaw-lark)尤其明显,它同时涉及文件通道、消息通道和鉴权配置三块内容,任何一块没清干净,下次启动 OpenClaw 时都可能出现插件加载失败、通道重复注册,甚至因为残留的旧 Key 导致请求被拒。
这篇面向的是需要批量移除飞书文件、并且希望 AI 工具链配置保持整洁的开发者。核心动作分三步:先用命令行把插件目录和缓存删掉,再手动清理 openclaw.json 里的引用,最后用 TaoToken 的统一 Key/API 通道验证配置是否真的生效。整个过程不需要图形界面,全部可以在终端里完成,适合写进脚本做批量处理。
需要先明确一点:卸载飞书插件不等于卸载 OpenClaw 本身,也不影响你其他插件的使用。我们要做的只是把 openclaw-lark 相关的文件、配置项、缓存目录清理干净,让 OpenClaw 回到「没装过这个插件」的状态。如果你同时还在用其他通道(比如自定义 webhook),清理时注意别误删它们的配置。
下面按「前置准备 → 命令行清理 → 配置骨架 → 验证生效 → 排错」的顺序展开,每一步都给可复制的命令和配置片段。
2. TaoToken 前置:统一 Key 与 API 通道
清理完插件后,你需要一个稳定的模型调用通道来验证 OpenClaw 是否恢复正常。我习惯用 TaoToken 做这件事,原因是它把多家模型的 Key 收敛成一个 API 入口,配置里只需要维护一份 base_url 和一份 Key,插件增删时不会牵动模型层配置。
TaoToken 的定位是统一的模型 API 通道,适合需要频繁切换模型、又不想在每份配置文件里散落多个 Key 的开发者。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api (这个地址不加 UTM 参数,直接用于配置)。
在开始清理前,建议先把 Key 准备好,这样清理完可以立刻验证。操作路径是:登录后进入控制台,在 API Keys 页面创建一个新 Key。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API Keys 页面是 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
创建 Key 时注意两点:一是给它起一个能识别的名字,比如 openclaw-verify,方便以后排查;二是创建后立刻复制保存,页面刷新后就不再完整显示。如果你打算长期用 OpenClaw 做编码或 Agent 任务,可以顺带了解一下 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,它更适合高频调用场景。
提示:Key 只用于本地配置,不要写进会提交到 Git 的文件里。建议用环境变量或单独的本地配置文件承载。
3. 可复制配置:命令行清理与 settings.json/config.toml 骨架
3.1 删除插件目录与缓存
先确认 OpenClaw 的配置根目录。默认情况下,Windows 在%USERPROFILE%\.openclaw,macOS / Linux 在~/.openclaw。飞书插件的主目录是extensions/openclaw-lark,缓存通常在cache/lark或logs/lark下。
Windows PowerShell 下执行:
# 删除插件主目录 Remove-Item -Recurse -Force "$env:USERPROFILE\.openclaw\extensions\openclaw-lark" # 删除飞书相关缓存与日志 Remove-Item -Recurse -Force "$env:USERPROFILE\.openclaw\cache\lark" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "$env:USERPROFILE\.openclaw\logs\lark" -ErrorAction SilentlyContinuemacOS / Linux 下执行:
# 删除插件主目录 rm -rf ~/.openclaw/extensions/openclaw-lark # 删除飞书相关缓存与日志 rm -rf ~/.openclaw/cache/lark rm -rf ~/.openclaw/logs/lark执行完可以用ls或Get-ChildItem确认目录已经不存在。如果提示目录不存在,说明之前已经清过,不影响后续步骤。
3.2 清理 openclaw.json 中的引用
插件目录删掉后,配置文件里还留着引用。打开~/.openclaw/openclaw.json,需要删除三处内容:plugins.allow数组里的openclaw-lark、plugins.entries对象里的openclaw-lark条目、以及channels对象里的feishu配置。
清理后的骨架大致如下(只保留结构,具体值按你自己的填):
{ "plugins": { "allow": [ "your-other-plugin" ], "entries": { "your-other-plugin": { "enabled": true } } }, "channels": { "custom-webhook": { "enabled": true } }, "model": { "provider": "taotoken", "baseUrl": "https://taotoken.net/api", "apiKeyEnv": "TAOTOKEN_API_KEY", "model": "your-model-name" } }注意model这一段是验证配置生效的关键,baseUrl填https://taotoken.net/api,apiKeyEnv指向你存放 Key 的环境变量名。这样插件增删不会影响模型通道。
3.3 config.toml 骨架(如果你的 OpenClaw 用 TOML)
部分 OpenClaw 版本或衍生工具用config.toml管理配置。清理飞书插件后,对应的 TOML 骨架可以写成:
[plugins] allow = ["your-other-plugin"] [plugins.entries.your-other-plugin] enabled = true [channels.custom-webhook] enabled = true [model] provider = "taotoken" base_url = "https://taotoken.net/api" api_key_env = "TAOTOKEN_API_KEY" model = "your-model-name"TOML 里没有feishu段就说明清理到位了。保存后建议用python -c "import tomllib; tomllib.load(open('config.toml','rb'))"之类的命令做一次语法校验,避免手改引入格式错误。
3.4 设置环境变量
把 Key 放进环境变量,避免明文写进配置。macOS / Linux:
export TAOTOKEN_API_KEY="你的Key"Windows PowerShell:
$env:TAOTOKEN_API_KEY = "你的Key"如果要持久化,macOS / Linux 写进~/.bashrc或~/.zshrc,Windows 用setx TAOTOKEN_API_KEY "你的Key"。
4. 验证请求:确认配置真的生效
清理和配置改完后,不要急着启动完整 OpenClaw,先用一条最小请求验证模型通道是否通。这样能把「插件残留问题」和「模型配置问题」分开定位。
用 curl 直接打 TaoToken 的 API:
curl -s https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "your-model-name", "messages": [ {"role": "user", "content": "ping"} ] }'如果返回里带有正常的choices字段和内容,说明 Key 和 base_url 都没问题。如果返回 401,检查 Key 是否复制完整、环境变量是否在当前终端生效;如果返回 404,检查 base_url 是否误加了多余路径。
接着启动 OpenClaw,观察启动日志里是否还有openclaw-lark的加载记录。正常情况下应该完全看不到这个插件的名字。如果日志里仍出现,说明openclaw.json里还有残留引用,回到 3.2 再检查一遍plugins.allow和plugins.entries。
最后做一次端到端验证:在 OpenClaw 里发一条普通对话请求,确认模型能正常回复。这一步通过,就说明飞书插件已经卸载干净,模型通道也配置正确。
如果你更想先在网页端确认模型可用,可以直接用模型对话页面测试,地址是 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。接入相关的完整说明在文档里,地址是 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
5. 本篇常见错排查
报错一:启动时提示插件 openclaw-lark 加载失败。这通常是插件目录已删但配置引用还在。检查openclaw.json的plugins.allow数组,把openclaw-lark删掉;再检查plugins.entries里是否还有对应对象。两处都清掉后重启。
报错二:channels 里 feishu 重复注册。说明channels.feishu没删干净,或者你复制了旧配置模板。打开配置文件搜索feishu关键字,把所有相关段落删除。注意别误删custom-webhook等其他通道。
报错三:curl 返回 401 Unauthorized。优先检查环境变量是否在当前 shell 生效,用echo $TAOTOKEN_API_KEY(Windows 用echo $env:TAOTOKEN_API_KEY)确认。如果为空,说明 export 没执行或写错了文件。其次检查 Key 是否在控制台被禁用或删除。
报错四:curl 返回 404 或路径错误。多半是 base_url 写成了https://taotoken.net/api/v1又在代码里重复拼了/v1。统一用https://taotoken.net/api作为 base_url,让客户端自己拼路径。
报错五:清理后其他插件也不工作了。大概率是手改 JSON 时漏了逗号或括号,导致整个文件解析失败。用python -m json.tool openclaw.json校验语法,根据报错行号修复。
报错六:Windows 下 Remove-Item 提示路径不存在。加-ErrorAction SilentlyContinue忽略即可,或者先Test-Path判断再删。批量脚本里建议都加上这个参数,避免中途中断。
6. 长期维护:把清理动作脚本化
飞书插件卸载本身不复杂,难的是每次都要手动改配置、容易漏项。我的做法是把清理逻辑写成一个脚本,插件目录、缓存、配置引用一次性处理,跑完再用 curl 验证模型通道。这样下次再遇到类似插件,改个插件名就能复用。
如果你后续要长期跑编码或 Agent 任务,建议把模型通道固定成 TaoToken 的统一入口,配置里只留一份 base_url 和 Key。需要更高调用额度时再看 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。Key 管理统一在 API Keys 页面,接入细节查文档,验证模型直接用模型对话页面,四个入口分工清楚,排查时不会乱。