☰
OpenClaw 第6章:TUI 与 Web 控制面板下的基础命令与 skill 实操
2026/10/7 14:58:08 网站建设 项目流程

1. 为什么要在 TUI 和 Web 面板之间来回切换

OpenClaw 这个项目,很多人第一次跑起来之后会卡在一个很实际的问题上:终端里敲命令能看到状态,浏览器里点按钮也能看到状态,那到底该用哪个?我自己的习惯是——部署和排障阶段用 TUI,日常任务编排和 skill 管理用 Web 控制面板。原因不复杂:TUI 的反馈是即时的,一条命令下去 stdout 直接告诉你哪里炸了;Web 面板适合做可视化配置,尤其是 skill 的参数填写和任务历史回看,比在终端里翻日志舒服得多。

这一章要解决的核心问题就是:同一件事,在 TUI 和 Web 控制面板下分别怎么做,做完之后结果对不对得上。比如「查看已安装 skill」这个动作,TUI 里是skill list,Web 面板里是「技能管理」模块;再比如「安装一个 browser skill」,TUI 是skill install browser,Web 面板是搜索 ClawHub 后一键安装。两条路径最终操作的是同一套 skill 注册表,所以结果必须一致——如果不一致,说明有一边的配置没落盘或者服务没重载。

适合谁看?如果你已经按前面的章节把 OpenClaw 跑起来了,终端里能看到claw>提示符,浏览器能打开127.0.0.1:18789,那这一章就是给你准备的。如果你还没跑起来,建议先把服务启动和端口监听确认好,否则后面的命令验证会一直报连接错误。

另外提一句模型接入的事。OpenClaw 本身是交互层和 skill 调度层,真正干活的大模型需要单独配置。我实测下来,用 TaoToken 这类兼容 OpenAI 协议的中转服务比较省事,Base URL 填https://taotoken.net/api,Key 在控制台生成,Model ID 按你订阅的模型填。这样 TUI 和 Web 面板共用同一份模型配置,不会出现「终端能跑、网页报 401」的割裂情况。具体配置片段在第三节会给。

这一章的结构是这样:先把两条交互路径的基础命令和面板模块对齐,然后给出可复制的配置片段,接着逐条验证请求和返回结果,最后把常见的报错对照着排一遍。你跟着做,应该能在 20 分钟内把两条路径都跑通,并且知道出问题时该看哪一边。

2. TUI 基础命令与 skill 调用实操

TUI 是 OpenClaw 最直接的交互方式。启动服务后,终端会出现claw>提示符,这时候你输入的每一条命令都会被解析成对应的操作。新手不用记太多,先把下面这几组命令用熟就够了。

2.1 服务状态类命令

这四个命令是排障时的第一反应,建议先敲一遍确认服务健康:

openclaw status openclaw start openclaw stop openclaw restart

openclaw status会输出当前运行状态、监听端口、已加载 skill 数量。我这边实测的输出大概长这样:

OpenClaw v0.x.x Status: running Port: 18789 Skills loaded: 3 (browser, memory, file) Model endpoint: https://taotoken.net/api

如果Status显示stopped,那后面的 skill 命令都会失败,先openclaw start再继续。restart主要用在改了配置文件之后——比如你更新了模型 Key 或者新增了 skill 目录,不重启不会生效。

2.2 skill 管理命令

skill 是 OpenClaw 的能力单元,browser 负责网页操作,memory 负责上下文记忆,file 负责本地文件读写。常用命令就三条:

skill list skill install browser skill uninstall browser

skill list的输出会带状态标记,比如browser (enabled)、memory (enabled)、file (disabled)。注意enabled和installed是两回事:装上了但没启用,任务里调用会报「skill not available」。启用/禁用一般在 Web 面板里点,TUI 下可以通过配置文件改,后面会给片段。

安装 skill 的时候,如果网络拉取 ClawHub 索引慢,命令会卡几秒,这是正常的。如果超过 30 秒没反应,大概率是索引源不通,可以换国内加速源或者直接用 npm 方式装。

2.3 任务执行与退出

TUI 下也可以直接发起任务,不过更常见的是用 Web 面板创建。TUI 里执行任务一般是:

task run "整理当前目录下的 markdown 文件,按修改时间排序"

执行过程中会实时打印日志,任务结束后返回结果摘要。如果你想中途停掉,Ctrl+C会终止当前任务,但不会退出 TUI。真正退出用:

exit

这里有个坑:exit只是退出交互界面,后台服务还在跑。如果你想让服务也停掉,得再执行openclaw stop。很多人以为exit就是关服务,结果端口一直占着,下次启动报「address already in use」。

2.4 skill 调用的参数传递

skill 安装后,调用时可以带参数。以 browser skill 为例,TUI 下可以这样触发一次网页抓取:

task run --skill browser --url "https://example.com" --action extract_text

参数名要和 skill 的 manifest 对齐,写错了会报unknown parameter。Web 面板的好处就在这里——它会根据 skill 的 schema 自动生成表单,你不需要记参数名。所以我的建议是:参数复杂的 skill 用 Web 面板配,参数简单的用 TUI 快速跑。

TUI 的优势是脚本化。你可以把一串命令写进 shell 脚本,批量执行任务,比如每天定时跑一次文件整理。Web 面板做不到这一点,它更适合交互式操作。

3. Web 控制面板配置与可复制片段

Web 控制面板的入口是http://127.0.0.1:18789(本地)或http://服务器公网IP:18789(云端)。打开后左侧是导航,核心就三块:技能管理、任务管理、日志查看。这一节重点不是教你点按钮,而是把面板背后的配置文件写清楚,因为面板上的操作最终都会落到配置文件里,你理解了配置,两条路径就打通了。

3.1 模型接入配置片段

OpenClaw 的模型配置一般在~/.openclaw/config.json或项目根目录的config.json。下面是一个可复制的 JSON 片段,Base URL 指向 TaoToken 的 API 地址:

{ "model": { "provider": "openai-compatible", "base_url": "https://taotoken.net/api", "api_key": "sk-你的Key", "model_id": "claude-3-5-sonnet", "timeout": 60 }, "server": { "port": 18789, "host": "127.0.0.1" }, "skills": { "browser": { "enabled": true }, "memory": { "enabled": true }, "file": { "enabled": false } } }

改完这个文件后,必须openclaw restart才生效。Web 面板的「设置」页其实就是在编辑这个文件,只是做了可视化。如果你在面板上改了 Key,保存后同样要重启服务,否则内存里还是旧配置。

Key 的生成入口在 TaoToken 控制台的 API Keys 页面,建议单独建一个 Key 给 OpenClaw 用,方便后续排查和轮换。

3.2 skill 启用/禁用的配置写法

面板上「技能管理」里的开关,对应配置里的enabled字段。如果你想批量改,直接编辑 JSON 更快:

"skills": { "browser": { "enabled": true, "timeout": 30 }, "memory": { "enabled": true, "max_tokens": 4096 }, "file": { "enabled": true, "root": "/data/workspace" } }

注意fileskill 的root参数,它限制了文件操作的根目录。不配的话默认是当前工作目录,配错了会导致任务报「path out of scope」。这个参数在 Web 面板里是一个输入框,在 TUI 下只能改配置文件。

3.3 任务创建的配置化方式

Web 面板「新建任务」支持可视化选 skill、填参数。它生成的其实是一个任务描述对象,类似:

{ "task": "整理桌面文件", "skill": "file", "params": { "action": "organize", "target_dir": "/data/workspace/desktop", "group_by": "type" } }

这个对象你可以直接存成文件,然后用 TUI 的task run --file task.json执行。反过来,TUI 里跑成功的任务,也可以在面板的「任务历史」里看到记录。两条路径共享同一个任务队列,这是它们结果能对齐的基础。

3.4 日志与排障入口

面板的「日志查看」模块会展示任务执行日志和错误信息。常见的错误比如「技能未启用」「API Key 无效」都会在这里出现。TUI 下对应的命令是查看服务日志文件,一般在~/.openclaw/logs/openclaw.log。我的习惯是:面板看任务级日志,TUI 看服务级日志。任务失败先看面板,服务起不来先看 TUI 和日志文件。

配置这块还有一个细节:如果你在云端部署,host要改成0.0.0.0,否则面板只能本机访问。改完记得检查防火墙端口放行,不然浏览器打不开。

4. 逐条验证请求与成功结果对照

配置写完,接下来是验证。这一节我会把同一件事在两条路径下各做一遍,然后对比结果。你跟着敲,能确认自己的环境是通的。

4.1 验证服务状态

TUI 下:

openclaw status

期望输出里Status: running、Port: 18789、Skills loaded大于 0。如果Skills loaded: 0,说明 skill 目录没被扫描到,检查配置里的 skill 路径。

Web 面板下:打开http://127.0.0.1:18789,首页顶部会显示运行状态和 skill 数量。两个数字应该一致。如果不一致,刷新页面或者重启服务。

4.2 验证 skill 列表

TUI 下:

skill list

输出示例:

browser enabled memory enabled file disabled

Web 面板下:进入「技能管理」,应该看到同样的三个 skill,开关状态一致。如果面板显示 browser 是关的,但 TUI 显示 enabled,说明面板读的是缓存,重启服务即可。

4.3 验证模型请求

这是最关键的一步。TUI 下发起一个简单任务:

task run "用一句话说明什么是 OpenClaw"

如果模型配置正确,几秒后会返回一段文字。如果报401 Unauthorized,检查api_key是否填对、是否有多余空格。如果报connection timeout,检查base_url是否可达。

Web 面板下:新建任务,输入同样的问题,点执行。结果应该和 TUI 返回的内容语义一致(措辞可能不同,因为模型有随机性)。如果面板报错但 TUI 正常,大概率是面板的服务进程没读到最新配置,重启。

4.4 验证 skill 调用

TUI 下调用 browser skill:

task run --skill browser --url "https://example.com" --action extract_text

期望返回网页的文本内容。如果报skill not available,回到 4.2 确认 browser 是 enabled。

Web 面板下:新建任务,技能选 browser,参数里填 URL 和 action,执行。结果应该和 TUI 一致。这里有个细节:面板的参数表单是根据 skill schema 生成的,如果某个参数没显示,说明 skill manifest 里没定义,需要检查 skill 版本。

4.5 验证任务历史

TUI 下执行的任务,应该在 Web 面板的「任务历史」里能看到。反过来也一样。如果看不到,检查两边是否连的同一个服务实例——有时候你开了两个端口,自己连混了。

验证通过的标准很简单:同一件事,两条路径的结果能对上,任务历史能互相看到。做到这一步,说明你的 OpenClaw 交互层已经打通了。

5. 常见报错对照与排查

这一节列几个我实际踩过的报错,按报错信息对照排查。你遇到问题先在这里找,找不到再看日志文件。

5.1 401 Unauthorized

完整报错大概是:

Error: model request failed: 401 Unauthorized

原因:API Key 无效或没填。排查步骤:打开配置文件确认api_key字段,注意不要有引号嵌套错误。如果 Key 是从 TaoToken 控制台复制的,确认没有复制到多余空格。改完openclaw restart。

5.2 local proxy failed / connection refused

Error: local proxy failed: dial tcp 127.0.0.1:18789: connect: connection refused

这个报错说明 TUI 或面板在尝试连本地服务,但服务没起来。先openclaw status确认,如果是 stopped,openclaw start。如果启动失败,看日志文件里的具体原因,常见的是端口被占用。

5.3 reading choices 相关报错

Error: reading choices: unexpected end of JSON input

这是模型返回体解析失败,通常是因为base_url配错了,返回的不是标准 OpenAI 格式。确认base_url是https://taotoken.net/api,不要多加/v1或者漏掉路径。有些兼容服务路径不一样,以文档为准。

5.4 OAuth 相关报错

Error: OAuth token expired

如果你用的是需要 OAuth 的模型服务,token 过期会报这个。OpenClaw 本身不管理 OAuth 刷新,需要你在外部刷新后更新配置。用 API Key 方式接入可以避开这个问题。

5.5 skill install 卡住

Installing browser skill... (长时间无响应)

ClawHub 索引拉取慢。可以换国内加速源,或者直接用 npm 安装:

npm install -g @openclaw/skill-browser

装完在配置里把browser.enabled设为 true,重启服务。

5.6 面板打不开

浏览器访问127.0.0.1:18789无响应。检查三件事:服务是否 running、host配置是否是127.0.0.1或0.0.0.0、防火墙是否放行。云端部署还要检查安全组规则。

5.7 两条路径结果不一致

TUI 能跑,面板报错,或者反过来。九成是配置没同步。确认两边读的是同一个配置文件,改完都重启。如果还不行,看面板的日志模块和服务日志文件,对比时间戳,找到分歧点。

排查的核心思路就一条:先确认服务状态,再确认配置加载,最后看具体请求的返回体。大部分问题在前两步就能定位。

6. 把两条路径用顺手的几个建议

做到这里,TUI 和 Web 面板应该都能跑了。最后说几个我自己的使用习惯,不是必须,但能省时间。

日常任务编排我基本都在 Web 面板做,因为参数表单省去了查 schema 的麻烦,任务历史也直观。但涉及批量操作、定时脚本、CI 集成的时候,TUI 的命令行优势就出来了——你可以把task run写进 shell 脚本,配合 cron 定时执行。

skill 的安装和启用,我建议在面板里做,因为能看到 ClawHub 的搜索结果和版本信息。但 skill 的参数微调,比如改 timeout、改 root 目录,直接编辑 JSON 更快,改完重启。

模型配置这块,不管你用哪条路径,最终都落到同一份 config.json。所以改 Key、换模型的时候,改一次就行,不用两边都改。改完记得重启,这是最容易忘的一步。

如果你还没配模型,可以先去 TaoToken 控制台生成一个 Key,Base URL 用https://taotoken.net/api,Model ID 按你订阅的填。配好之后,TUI 和面板共用这一份配置,不会出现一边通一边不通的情况。

最后,遇到报错别慌,先看日志。面板的日志模块和服务日志文件能覆盖 90% 的问题。剩下的 10%,多半是配置没重启或者端口连混了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询