腾讯云部署OpenClaw并集成Telegram机器人
<h1>1 项目安装部署</h1><h2>1.1 购买腾讯云</h2>
<p>首先需要购买腾讯云的“轻量应用服务器”,如果是新用户价格还是比较实惠的,最低配置版本一年只需要99元,但是如果是老用户最便宜的是30元/月,比阿里云最低配的还要贵一些。</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260224172356836-1245655577.png" alt="image" width="944" height="614" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>出于性能考虑,买的是199元/年的这款,为了正常流畅的下载github上相关项目,地域这里选的是东京,操作系统选的是“<span class="_lh-layout__header-title app-lighthouse-text-overflow"><span class="_lh-layout__header-title app-lighthouse-text-overflow">Ubuntu22.04-Docker26-V0OA</span></span>”,该镜像基于Ubuntu Server 22.04 LTS 64位操作系统,其中Docker镜像源已默认配置为腾讯云Docker镜像源,可极大加速Docker镜像下载。配置完成并运行后详细情况如下所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260224173654318-1167918752.png" alt="image" width="825" height="446" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p> </p>
<h2>1.2 安装OpenClaw</h2>
<p>这里选择使用openclaw-cn这个开源项目来进行部署,项目地址:https://github.com/jiulingyun/openclaw-cn,为什么不直接用OpenClaw官方安装呢?因为OpenClaw项目目前主要接入的是国外的IM软件,对国内环境不太友好,所以使用openclaw-cn这个项目,它对国内平台的支持更好,配置也更方便,参考4中给出了飞书的配置过程。</p>
<h3>1 安装Node.js</h3>
<p>安装Node.js有多种方法,这里使用NVM安装,NVM(Node Version Manager)允许你在同一台机器上安装和切换多个Node.js版本,且不需要sudo权限安装包。</p>
<p>首先,安装 NVM 脚本:</p>
<div class="cnblogs_code">
<pre>curl -o- https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash</span></pre>
</div>
<p>其次,激活环境,重启终端或运行:</p>
<div class="cnblogs_code">
<pre>source ~/.bashrc</pre>
</div>
<p>之后,安装 Node.js:</p>
<div class="cnblogs_code">
<pre>安装最新LTS版本:nvm <span style="color: rgba(0, 0, 255, 1)">install</span> --<span style="color: rgba(0, 0, 0, 1)">lts
安装特定版本:nvm </span><span style="color: rgba(0, 0, 255, 1)">install</span> <span style="color: rgba(128, 0, 128, 1)">20</span></pre>
</div>
<p>最后,可通过以下命令查看相关软件版本:</p>
<div class="cnblogs_code">
<pre>nvm <span style="color: rgba(0, 0, 255, 1)">ls</span><span style="color: rgba(0, 0, 0, 1)">
node </span>-<span style="color: rgba(0, 0, 0, 1)">v
npm </span>-v</pre>
</div>
<p>如这里使用的是最新版本:v24.13.1。</p>
<h3>2 安装部署OpenClaw</h3>
<p>这里使用项目推荐的安装方式,使用npm进行部署:</p>
<div class="cnblogs_code">
<pre>npm <span style="color: rgba(0, 0, 255, 1)">install</span> -g openclaw-<span style="color: rgba(0, 0, 0, 1)">cn@latest
# 或
pnpm add </span>-g openclaw-cn@latest</pre>
</div>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260224180657132-371433874.png" alt="image" width="600" height="390" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>安装完成后,输入下面的命令检查安装是否正常:</p>
<div class="cnblogs_code">
<pre>openclaw-cn</pre>
</div>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225092518757-184942331.png" alt="image" width="619" height="363" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3>3 模型配置</h3>
<p>运行如下命令:</p>
<div class="cnblogs_code">
<pre>openclaw-cn onboard --<span style="color: rgba(0, 0, 255, 1)">install</span>-daemon</pre>
</div>
<p>这里有一个安装向导,我们选择Yes,之后选择快速安装:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225094545210-1999671452.png" alt="image" width="617" height="521" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>在接下来的模型选择中,这里先跳过:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225094743221-796177943.png" alt="image" width="386" height="558" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>如果跳过后还让选择模型,这里可使用默认的anthropic/claude-opus-4-6,接下来是通道选择,这里选择Telegram:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225095756442-1988695602.png" alt="image" width="662" height="476" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>打开Telegram,然后@BotFather并输入/newbot创建一个新bot:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225095941571-316831740.png" alt="image" width="589" height="290" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>之后会要求你“choose a name”并“choose a username for your bot”,完成这一切即可创建好telegram机器人,并生成Telegram token to access the HTTP API:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225100648637-1786628253.png" alt="image" width="511" height="251" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>需要把这个token复制下来,接下来我们把这个token复制到vps Telegram配置页面:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225100955994-1179411715.png" alt="image" width="648" height="500" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>接下来选择默认选项,完成配置:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225101218021-1230527881.png" alt="image" width="543" height="567" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>之后输出信息如下所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225101530630-507028110.png" alt="image" width="669" height="436" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>下面以DeepSeek-V3.2正式版为例详细进行说明,首先要访问DeepSeek开放平台注册账号,然后创建API key,需要记录该key后续要将其配置到openclaw中:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225145633150-1930238554.png" alt="image" width="1092" height="450" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>之后需要对账户进行充值,如充值10元进行实验,否则后续API调用时会返回“HTTP 402: Insufficient Balance”的错误,这是DeepSeek账号余额不足的报错,充值后即不会再出现该报错,同时在deepseek后台会看到API请求次数信息,Tokens使用情况,以及消费金额及充值余额信息:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225145755315-1114396335.png" alt="image" width="853" height="387" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>之前并没有配置大模型,在openclaw配置完成后,可以通过以下命令重新修改相关配置:</p>
<div class="cnblogs_code">
<pre>openclaw-cn configure</pre>
</div>
<p>运行该命令后可以根据需要修改相关配置,如修改模型时需按向导进行模型选择及配置API key,这里输入上述新创建的key:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225151127300-483482600.png" alt="image" width="354" height="263" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>配置完成后还可以通过修改.openclaw/openclaw.json配置文件修改相关配置,其内容如下:</p>
<div class="cnblogs_code"><img src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" id="code_img_closed_d88a6869-207c-4745-b83d-0eb350e3c700" class="code_img_closed"><img src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" id="code_img_opened_d88a6869-207c-4745-b83d-0eb350e3c700" class="code_img_opened" style="display: none">
<div id="cnblogs_code_open_d88a6869-207c-4745-b83d-0eb350e3c700" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 0, 1)">{
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">meta</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lastTouchedVersion</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">0.1.6</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lastTouchedAt</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2026-02-25T04:11:18.734Z</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">wizard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lastRunAt</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2026-02-25T04:09:59.101Z</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lastRunVersion</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">0.1.6</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lastRunCommand</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">doctor</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lastRunMode</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">local</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">auth</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">profiles</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">deepseek:default</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">provider</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">deepseek</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mode</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">api_key</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
}
}
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">models</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mode</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">merge</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">providers</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">deepseek</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">baseUrl</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://api.deepseek.com/v1</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">api</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">openai-completions</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">models</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: [
{
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">deepseek-chat</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">name</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">DeepSeek Chat</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">reasoning</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">input</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: [
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">text</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
],
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cost</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">input</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">output</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cacheRead</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cacheWrite</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">contextWindow</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">128000</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">maxTokens</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">8192</span><span style="color: rgba(0, 0, 0, 1)">
}
]
}
}
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">agents</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">defaults</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">model</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">primary</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">deepseek/deepseek-chat</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">models</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">deepseek/deepseek-chat</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">alias</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">DeepSeek Chat</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
}
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">workspace</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/home/ubuntu/.openclaw/workspace</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">compaction</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mode</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">safeguard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">maxConcurrent</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">subagents</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">maxConcurrent</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">
}
}
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">messages</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ackReactionScope</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">group-mentions</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">commands</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">native</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">auto</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">nativeSkills</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">auto</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hooks</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">internal</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">enabled</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">entries</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">boot-md</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">enabled</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">command-logger</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">enabled</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">session-memory</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">enabled</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
}
}
}
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">channels</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">telegram</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">enabled</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">dmPolicy</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">pairing</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">botToken</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">8756989402:xxxxx</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">groupPolicy</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">allowlist</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">streamMode</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">partial</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
}
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">gateway</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">port</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 128, 1)">18789</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mode</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">local</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">bind</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">loopback</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">auth</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mode</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">token</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">token</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">xxxxx</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">tailscale</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mode</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">off</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">resetOnExit</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">
}
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">skills</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">install</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">nodeManager</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">npm</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
}
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">plugins</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">entries</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">telegram</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">enabled</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
}
}
}
}</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p>配置中"bind": "loopback",会使得openclaw启动时监听回环地址,这里尝试修改为0.0.0.0任意地址始终没有成功,后来查询AI给出的解释是:OpenClaw的设计哲学显然是“安全高于一切”,它为了保护你的 API Key 和数据,强行把所有的监听都锁死在127.0.0.1这种“安全区”,却给远程部署的用户设下了重重障碍。只能按照AI建议,使用SSH隧道(伪装成 localhost),即在本地电脑(Windows CMD 或 Mac 终端)运行:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">ssh</span> -L <span style="color: rgba(128, 0, 128, 1)">18789</span>:<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>:<span style="color: rgba(128, 0, 128, 1)">18789</span> ubuntu@<span style="color: rgba(128, 0, 128, 1)">xx.xx</span>.<span style="color: rgba(128, 0, 128, 1)">xx.xx</span></pre>
</div>
<p>以上命令中xx.xx.xx.xx是腾讯云服务器IP地址,并保持这个窗口不要关,最小化即可:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225153002958-1566142841.png" alt="image" width="486" height="325" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>在本地浏览器输入:http://127.0.0.1:18789,即可访问配置的openclaw(注意需要在腾讯云后台的防火墙中放开相应端口的外部访问),这种方法的原理:因为你访问的是127.0.0.1,OpenClaw会判定你在“本地”安全环境,所有的1008和1006报错都会瞬间消失。</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225165954609-1826334206.png" alt="image" width="926" height="210" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h1>2 项目应用</h1>
<h2>2.1 Web访问</h2>
<p>如上一节所述,在配置ssh通道以后即可直接通过127.0.0.1:18789直接访问openclaw,可以直接在交互窗口和其进行对话,还可以在web界面查看或修改相关配置,如下图所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225153704907-261907767.png" alt="image" width="905" height="587" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h2>2.2 openclaw-cn tui</h2>
<p>openclaw-cn tui是OpenClaw-CN最核心的交互命令,其中TUI是Text User Interface(文本用户界面)的缩写,简单来说:openclaw-cn tui就是OpenClaw的命令行交互式聊天界面——你可以把它理解成 “在终端里直接和 AI 模型对话的窗口”。其核心作用是直接和模型交互,而无需打开网页,在终端里就能输入问题/指令,DeepSeek(或你配置的其他模型)会直接在终端返回回答,是最轻量化的使用方式。</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225154526949-33670494.png" alt="image" width="652" height="428" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h2>2.3 Telegram机器人</h2>
<p>首先在BotFather对话框中通过“/mybots”选择机器人,之后会让你选择启动哪个机器人,这里选择之前创建的“support_bot @helpzww_bot”,随后会出现相关菜单项,可以对机器人进行编辑设置删除等操作,直接通过@helpzww_bot打开相应机器人的对话框:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225155758447-567342627.png" alt="image" width="633" height="195" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>然后通过“/start”启用机器人,Telegram会给出相关提示,让你在shell终端执行相应的命令配置机器人,配置完成后就可以和Telegram机器人进行对话了,如图所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225160149429-619942684.png" alt="image" width="735" height="251" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>最后还可以将机器人拉入到Telegram群中,创建测试群,在Telegram群中,点击群名称,选择"添加成员"添加若干测试用户,然后通过用户名@helpzww_bot将机器人也添加到群中,最后还需设置机器人权限,确保机器人有读取消息的权限,这里直接设置机器人为管理员以获得更好的功能支持:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225161049336-1967994463.png" alt="image" width="271" height="321" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>之后即可在群里@机器人并向他提问问题:</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225161312930-808832356.png" alt="image" width="516" height="331" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>最后还有一个问题,就是发现只有群拥有者@机器人才能给出响应,AI给出的方案是:关闭隐私模式,即要让机器人能够“听到”群内所有成员的消息(包括普通对话),你需要通过 BotFather 修改设置:</p>
<p>1 打开 Telegram,搜索并进入与 @BotFather 的对话框。</p>
<p>2 输入指令 /mybots。</p>
<p>3 在列表中选择你正在使用的那个机器人。</p>
<p>4 点击 Bot Settings。</p>
<p>5 点击 Group Privacy。</p>
<p>6 点击 Turn off(或者点击 Disable)。当你看到提示 Privacy mode is now disabled for 时,设置生效。</p>
<p>7 关键一步:设置更改后,通常需要将机器人移出群组并重新邀请进入,设置才会刷新。</p>
<p>但是通过这些操作后发现群内其他普通用户在@机器人时它仍无法给出响应,后来发现问题就出在配置文件中的groupPolicy参数上,默认配置是groupPolicy": "allowlist",此时Telegram渠道的群组策略设置为了allowlist(白名单模式)。这意味着:机器人会检查当前群组是否在它的允许列表内,默认情况下,如果白名单为空,机器人只会响应群主(Owner)或特定的管理员,因为它无法确认该群组是否被允许提供服务。OpenClaw 0.1.6版本的groupPolicy接受open、disabled或allowlist,open允许群组内的任何人通过 @机器人 或输入指令来触发响应,而disabled完全禁止在群组中使用。所以这里将openclaw.json配置文件中的groupPolicy改为“open",然后重新运行openclaw:openclaw-cn gateway run,此时发现群内其他非管理员群员@机器人提问问题时它也会给出响应了。</p>
<p><img src="https://img2024.cnblogs.com/blog/465567/202602/465567-20260225165454505-1786436975.png" alt="image" width="521" height="313" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h2>2.4 openclaw 常用命令</h2>
<h3>1 基础命令</h3>
<p>先看最基本的几个命令,这几个是入门必会的:</p>
<div class="cnblogs_code">
<pre>openclaw --<span style="color: rgba(0, 0, 0, 1)">version # 查看当前安装版本
openclaw </span>--<span style="color: rgba(0, 0, 0, 1)">help # 查看帮助信息
openclaw onboard # 全流程引导配置(首次安装必用)
openclaw onboard </span>--force # 强制重新初始化(配置搞乱了就用这个)</pre>
</div>
<h3>2 配置管理</h3>
<p>配置管理是使用频率非常高的命令,特别是查看和修改模型、通道配置的时候:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">openclaw config list # 查看所有配置项
openclaw config get all # 获取全部配置详情
openclaw config get models # 单独查看模型配置
openclaw config get channels # 单独查看通道配置
openclaw config set gateway.port </span><span style="color: rgba(128, 0, 128, 1)">18789</span><span style="color: rgba(0, 0, 0, 1)"># 设置网关端口
openclaw config reset # 重置所有配置(慎用)</span></pre>
</div>
<h3>3 模型管理</h3>
<p>模型是OpenClaw的核心,下面这几个命令帮你管理和排查模型问题:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">openclaw models list # 列出所有已配置模型
openclaw models status # 查看模型在线状态
openclaw models probe # 探测模型可用性(排障神器)
openclaw models set default </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">deepseek-v3.2</span><span style="color: rgba(128, 0, 0, 1)">"</span> # 设置默认模型</pre>
</div>
<h3>4 通道管理</h3>
<p>通道就是OpenClaw和你聊天的桥梁,管理通道的命令如下:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">openclaw channels list # 列出所有通道
openclaw channels status # 查看通道连接状态
openclaw channels </span><span style="color: rgba(0, 0, 255, 1)">login</span><span style="color: rgba(0, 0, 0, 1)"> telegram# 登录Telegram通道
openclaw channels logout all # 登出所有通道</span></pre>
</div>
<h3>5 网关管理(最常用)</h3>
<p>网关管理可以说是日常运维用得最多的命令了,启动、停止、重启、查状态,还能设置开机自启:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">openclaw gateway start # 启动网关服务
openclaw gateway stop # 停止网关服务
openclaw gateway restart # 重启网关(改完配置后必用)
openclaw gateway status # 查看网关运行状态
openclaw gateway </span><span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)"> # 安装为系统服务(开机自启,强烈推荐)
openclaw gateway uninstall # 卸载系统服务</span></pre>
</div>
<h3>6 日志与调试</h3>
<p>遇到问题别慌,先看日志,再跑健康检查:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">openclaw logs # 查看最近日志
openclaw logs </span>-f # 实时跟踪日志(像tail -<span style="color: rgba(0, 0, 0, 1)">f一样)
openclaw logs </span>--<span style="color: rgba(0, 0, 0, 1)">error# 只看错误日志
openclaw doctor # 健康检查(自动诊断问题)
openclaw doctor </span>--fix# 自动修复发现的问题</pre>
</div>
<h3>7 插件与技能管理</h3>
<p>OpenClaw的强大离不开丰富的插件和技能生态:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">openclaw plugins list # 列出已安装插件
openclaw plugins </span><span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)"> [插件名] # 安装新插件
openclaw plugins enable [插件名] # 启用插件
openclaw plugins disable [插件名] # 禁用插件
openclaw skills list # 列出所有技能
openclaw skills enable [技能名] # 启用指定技能
openclaw skills disable [技能名] # 禁用指定技能</span></pre>
</div>
<h3>8 智能体管理</h3>
<p>OpenClaw支持创建多个智能体,不同智能体可以配置不同模型和技能:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">openclaw agent list # 列出所有智能体
openclaw agent create myagent# 创建新智能体
openclaw agent delete myagent# 删除智能体
openclaw agent use main # 切换到主智能体
openclaw agent chat </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">你好</span><span style="color: rgba(128, 0, 0, 1)">"</span> # 直接和智能体对话</pre>
</div>
<h3>9 常用一键组合(完整启动流程)</h3>
<p>最后给大家一个从零启动的完整命令流程,按顺序执行就完事了:</p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">. 检查配置
openclaw config get all
# </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">. 探测模型是否可用
openclaw models probe
# </span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">. 检查通道状态
openclaw channels status
# </span><span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">. 安装为系统服务(首次执行)
openclaw gateway </span><span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)">
# </span><span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">. 启动网关
openclaw gateway start
# </span><span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">. 查看运行状态
openclaw gateway status
# </span><span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">. 实时查看日志
openclaw logs </span>-f</pre>
</div>
<p>掌握了这些命令,日常管理OpenClaw就完全没有压力了。</p>
<p> </p>
<h1>3 参考</h1>
<p>1 https://mp.weixin.qq.com/s/jIM4d36W3vz6PaWnpLlrUQ</p>
<p>2 https://github.com/jiulingyun/openclaw-cn</p>
<p>3 https://gemini.google.com/</p>
<p>4 https://mp.weixin.qq.com/s/zOiVLL31ib7ZVCTTzz8mQA</p><br><br>
来源:https://www.cnblogs.com/zhaoweiwei/p/19634197/OpenClaw
頁:
[1]