1. 项目概述:当旧笔记本遇上AI,解放双手不是梦

最近在折腾一个挺有意思的事儿,把我那台吃灰多年的旧笔记本重新利用了起来。这台老伙计配置不高,i5-8250U的CPU,8GB内存,跑个Windows都略显吃力,更别提什么AI大模型了。但正是这么一台“电子垃圾”,我给它装上了Linux Mint,部署了一个叫OpenClaw的AI智能体框架,然后神奇的事情发生了:它居然能自动帮我处理飞书上的重复性工作,比如整理会议纪要、汇总日报、甚至根据关键词抓取小红书上的内容填充到多维表格里。最夸张的一次,它默默无闻地替我干了三个多小时的活儿,而我那段时间,正心安理得地在沙发上刷抖音。

这听起来有点像天方夜谭,但背后的逻辑其实很清晰。OpenClaw本质上是一个基于Node.js的AI Agent(智能体)框架,它就像一个“数字员工”,可以接收指令,调用各种工具(比如访问网页、操作API、读写文件),并利用本地或云端的大模型(如通过Ollama部署的Llama 3、Qwen等)进行思考决策,最终完成一系列任务。我的角色,从一个重复劳动的执行者,转变成了任务的规划者和监督者。这篇文章,我就来详细拆解一下这个过程的每一步:从硬件准备、系统选择、环境搭建,到OpenClaw的核心配置、飞书机器人对接,以及如何设计一个能稳定运行数小时的自动化流程。如果你手头也有闲置的旧电脑,或者对用AI自动化处理办公任务感兴趣,那这篇从零到一的实战记录,或许能给你一些直接的参考。

2. 核心思路与方案选型:为什么是这套组合拳?

在开始动手之前,明确目标和选择合适的技术栈至关重要。我的核心需求很明确: 利用本地有限的硬件资源,实现一个能7x24小时低成本、自动化处理飞书办公场景任务的AI助手 。基于这个目标,我做了以下几项关键决策。

2.1 硬件与操作系统:旧笔记本的“重生”之路

为什么选择旧笔记本+Linux Mint?这并非随意之举。

首先, 成本与能效 。旧笔记本本身是沉没成本,让它重新发光发热就是最大的价值。其功耗远低于常年开机的台式机或服务器,对于需要长期在线的自动化任务来说,电费也是一笔不小的节约。其次, Linux系统的稳定性与资源友好性 。Windows系统后台服务多,资源占用大,对于老旧硬件不友好。而Linux Mint,特别是Xfce桌面版本,以其轻量、稳定、对硬件要求极低著称,能将有限的系统资源(CPU、内存)最大限度地留给我们的AI应用。

注意 :在选择Linux Mint版本时,我强烈推荐 Linux Mint 21.3 “Virginia” 的Xfce或MATE版本。它基于Ubuntu 22.04 LTS,拥有长达5年的支持周期,软件源丰富且稳定。网络上热词中提到的“22.3”版本目前尚不稳定,作为生产环境或长期运行的基础,应优先选择LTS(长期支持)版本。

关于安装方式,使用Rufus制作启动U盘时,对于大多数2010年后的电脑(包括我的旧笔记本),建议选择 GPT分区表 + UEFI启动模式 。这能更好地支持现代硬件特性,并且是未来的趋势。只有在遇到非常老的、明确只支持BIOS启动的电脑时,才考虑MBR模式。

2.2 AI框架选型:为什么是OpenClaw?

市面上AI Agent框架不少,如LangChain、AutoGPT等。选择OpenClaw主要基于以下几点考量:

  1. 轻量与专注 :OpenClaw设计相对简洁,核心专注于任务规划和工具调用,没有过于庞大的抽象层,这使得它在资源受限的环境下运行更高效,也更容易理解和调试。
  2. 与Ollama生态无缝集成 :OpenClaw可以非常方便地接入本地通过Ollama部署的大语言模型。这意味着我不需要昂贵的API密钥(如GPT-4),利用本地免费的开源模型(如Llama 3.1 8B、Qwen2.5 7B等)就能驱动智能体,实现了真正的零运营成本(电费除外)。
  3. 灵活的扩展性 :它支持自定义工具(Tool)的开发,用JavaScript/TypeScript就能编写,这让我可以轻松地为它“教”会操作飞书API、读写特定格式文件等专属技能。
  4. 活跃的社区与清晰的日志 :虽然相对较新,但其社区反馈和问题解决比较及时。运行时的思考过程、工具调用记录都以结构化的方式输出,对于排查问题、优化指令非常有帮助。

2.3 核心工作流设计

整个系统的运行逻辑可以概括为一个闭环: 用户触发(飞书消息/定时任务) -> OpenClaw Agent接收解析 -> 大模型思考规划 -> 调用具体工具执行 -> 返回结果到飞书

例如,我设置了一个每天下午5点的定时任务。时间一到,OpenClaw Agent被唤醒,它的大模型“大脑”会思考:“主人需要整理今天的项目日报。我需要做以下几步:1. 去飞书文档项目空间,找到今天创建的文档。2. 提取关键进展和风险点。3. 去飞书多维表格,找到‘项目日报’表。4. 将提取的信息按照表格格式填充进去。” 然后,它会依次调用“读取飞书文档API”、“文本摘要工具”、“写入飞书多维表格API”等,最终完成任务并给我发送一条完成通知。

3. 基础环境搭建:从零构建稳定底座

有了清晰的蓝图,接下来就是打地基。这一步的稳定性直接决定了后续所有工作的成败。

3.1 Linux Mint系统安装与基础配置

  1. 制作安装盘与安装 :从Linux Mint官网下载21.3 Xfce版本的ISO镜像。使用Rufus(选择GPT for UEFI)将其写入U盘。从U盘启动后,选择“Install Linux Mint”,跟随图形化向导操作即可。分区建议:至少给根目录 / 分配30GB空间,交换分区(swap)大小可与物理内存相当或略大(8GB),剩余空间可以挂载到 /home
  2. 系统更新与基础工具安装 :安装完成后,首先打开终端,更新系统并安装必备工具。
    sudo apt update && sudo apt upgrade -y
    sudo apt install -y curl wget git vim net-tools
    
  3. 配置国内软件源(可选但强烈推荐) :为了获得更快的下载速度,可以将软件源替换为国内镜像,如阿里云或清华源。这能显著加速后续Node.js、Docker等软件的安装。

3.2 Node.js环境部署:避开版本陷阱

OpenClaw基于Node.js,因此一个正确版本的Node.js环境是关键。热词中提到的错误 error installing 24.19.0: node.js v24.19.0 is not yet released 正是典型的版本问题。

不要直接使用系统默认仓库或 apt install nodejs ,它提供的版本通常很旧。推荐使用NodeSource维护的仓库来安装LTS版本。

# 1. 清理可能存在的旧版本(如果之前安装过)
sudo apt remove --purge nodejs npm -y
sudo apt autoremove -y

# 2. 安装NodeSource仓库并安装Node.js 20 LTS(长期支持版,最稳定)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# 3. 验证安装
node --version # 应输出 v20.x.x
npm --version  # 应输出 10.x.x

实操心得 :坚持使用 Node.js的LTS版本 (当前是20.x)。这是生产环境的黄金标准,避免了最新版可能存在的兼容性问题。安装后,可以通过 npm config set registry https://registry.npmmirror.com 设置npm镜像,加速后续OpenClaw及其依赖的安装。

3.3 Ollama本地大模型引擎部署

这是整个系统的“大脑”。Ollama让我们能在本地轻松运行各种开源大模型。

# 使用一键安装脚本(最方便)
curl -fsSL https://ollama.ai/install.sh | sh

# 启动Ollama服务(安装后通常已自动启动)
sudo systemctl start ollama
sudo systemctl enable ollama # 设置开机自启

# 拉取一个适合旧笔记本配置的模型,例如Qwen2.5 7B,它在性能和精度间取得了很好的平衡
ollama pull qwen2.5:7b
# 也可以尝试更小的模型,如Llama 3.2 3B,速度更快
# ollama pull llama3.2:3b

模型选择策略 :在8GB内存的旧笔记本上,运行7B参数的模型已是极限。运行前,务必确保有足够的可用内存。可以通过命令 ollama run qwen2.5:7b 进行交互式测试,观察内存占用和响应速度。如果内存不足,系统会疯狂使用Swap,导致卡顿甚至死机。这时就需要考虑更小的模型(如3B)或优化系统,关闭不必要的图形界面和服务。

4. OpenClaw的安装、配置与核心机制解析

基础环境就绪,主角OpenClaw可以登场了。这部分是核心,涉及安装、配置和对其工作逻辑的理解。

4.1 安装OpenClaw与初始化项目

OpenClaw通常以项目模板或CLI工具的形式提供。假设我们从GitHub仓库克隆一个模板项目开始。

# 1. 克隆示例项目或模板(请替换为实际的官方仓库地址)
git clone <https://github.com/your-org/openclaw-example.git> my-openclaw-agent
cd my-openclaw-agent

# 2. 安装项目依赖
npm install

# 3. 复制环境变量示例文件并配置
cp .env.example .env

接下来,编辑 .env 文件,这是整个项目的配置中心。

4.2 核心配置文件详解

.env 文件中的配置项决定了OpenClaw如何工作。以下是最关键的几项:

# 大模型配置:指向本地Ollama
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=qwen2.5:7b # 与之前pull的模型一致

# 智能体(Agent)配置
AGENT_NAME=我的飞书小助手
AGENT_INSTRUCTION=你是一个高效的办公助手,负责处理飞书上的重复性任务,包括整理文档、汇总信息、操作多维表格。你的回答应简洁、准确,并直接执行任务。

# 工具(Tools)配置
# 这里需要配置飞书机器人的凭证(后续获取)
FEISHU_APP_ID=your_app_id
FEISHU_APP_SECRET=your_app_secret
FEISHU_BOT_NAME=OpenClawBot

AGENT_INSTRUCTION (智能体指令)是灵魂 :这个提示词(Prompt)定义了AI的角色、能力和行为边界。写得好,AI就能精准理解你的意图;写得模糊,它就可能“胡言乱语”或拒绝执行。我的经验是: 指令要具体、包含正面引导和负面约束 。例如,加上“请逐步思考”、“如果遇到无法确认的操作,先询问用户”、“输出结果时,避免使用Markdown格式,使用纯文本”等,能极大提升任务完成的稳定性和结果质量。

4.3 OpenClaw的核心工作流与工具(Tool)概念

理解OpenClaw如何工作,才能更好地驾驭它。其核心是 “规划-执行”循环

  1. 接收目标 :你通过飞书机器人或命令行给Agent一个目标,如“总结今天项目群里的所有文档链接”。
  2. 规划分解 :Agent内部的大模型根据 AGENT_INSTRUCTION 和当前目标,将大目标拆解成一系列可执行的子步骤。例如:“第一步,调用‘获取群消息历史’工具;第二步,过滤出包含文档链接的消息;第三步,调用‘总结文本’工具对每个链接进行摘要;第四步,调用‘发送飞书消息’工具将结果发回。”
  3. 工具执行 :对于每个子步骤,Agent会从它可用的“工具箱”(Tools)里选择合适的工具来执行。工具就是一段段具体的代码函数,可以调用飞书API、访问网页、运行系统命令等。
  4. 观察与迭代 :工具执行后会产生结果(成功或失败,附带数据)。Agent会“观察”这个结果,并结合最初的目标,决定下一步是继续执行下一个子步骤,还是需要调整计划。
  5. 最终输出 :所有子步骤完成后,Agent生成最终结果并输出。

因此,要让OpenClaw帮你干活,核心就是两点:1. 写好指令(告诉它怎么想);2. 准备好工具(告诉它怎么做) 。飞书自动化,本质上就是为它开发或配置一系列操作飞书API的工具。

5. 飞书机器人创建与深度集成

OpenClaw需要“手”和“眼睛”来操作和感知飞书,这就是飞书机器人。集成过程有些繁琐,但一劳永逸。

5.1 创建飞书应用与机器人

  1. 登录 飞书开放平台 ,进入“开发者后台”。
  2. 点击“创建企业自建应用”,填写应用名称(如“AI办公助手”),并上传应用头像。
  3. 在应用详情页,找到“凭证与基础信息”页面。这里你能看到 App ID App Secret 。这就是OpenClaw配置中需要的 FEISHU_APP_ID FEISHU_APP_SECRET 。立即将它们填入项目的 .env 文件。

    关键避坑点 App Secret 点击复制后,务必立即粘贴保存到安全的地方。它只显示一次,丢失后只能重置,重置会导致所有基于旧Secret的配置失效。

  4. 配置 权限(Scopes) :根据你的需求,为应用添加权限。至少需要:
    • im:message (发送与接收单聊、群聊消息)
    • im:message.group:readonly (读取群消息)
    • im:message.p2p:readonly (读取单聊消息)
    • drive:drive:readonly drive:drive (访问云文档)
    • bitable:table:readonly bitable:table (读写多维表格)
    • 注意:部分高级权限可能需要企业管理员审核。
  5. 启用 机器人(Bot) :在“功能”菜单下,开启“机器人”能力。
  6. 配置事件订阅(关键!) :这是让机器人能被动接收消息的关键。
    • “请求地址 URL”:填写你部署OpenClaw服务的公网地址 + 回调路径,例如 https://your-server.com/feishu/event 在本地开发时,你需要使用内网穿透工具(如ngrok、localtunnel)将本地的服务暴露一个临时公网地址 ,用于飞书服务器回调验证。
    • “加密密钥”:随机生成一个,并记录到OpenClaw的配置中(如果框架支持)。
    • “订阅事件”:勾选 im.message.receive_v1 (接收消息事件)。
  7. 发布版本与申请上线 :在“版本管理与发布”中,创建一个版本并申请发布。如果是个人测试,可以只发布到“测试企业”(即你自己所在的企业)。审核通过后,应用才真正可用。

5.2 在OpenClaw中集成飞书SDK与开发工具

飞书提供了官方的Node.js SDK ( @larksuiteoapi/node-sdk ),我们需要在OpenClaw项目中安装并基于它开发工具。

# 在OpenClaw项目目录下安装飞书SDK
npm install @larksuiteoapi/node-sdk

然后,我们需要在OpenClaw的工具目录(例如 src/tools/ )下创建飞书相关的工具。一个最简单的“发送消息”工具可能长这样:

// src/tools/feishuSendMessage.js
import { Tool } from 'openclaw-core'; // 假设OpenClaw的核心类
import * as lark from '@larksuiteoapi/node-sdk';

export class FeishuSendMessageTool extends Tool {
  name = 'feishu_send_message';
  description = '向指定的飞书用户或群组发送一条文本消息';

  // 定义工具需要的输入参数
  parameters = {
    receive_id_type: { type: 'string', enum: ['open_id', 'user_id', 'email', 'chat_id'], description: '接收者ID类型' },
    receive_id: { type: 'string', description: '接收者的ID' },
    content: { type: 'string', description: '要发送的文本内容' },
  };

  async execute(args) {
    const { receive_id_type, receive_id, content } = args;
    // 初始化飞书客户端,从环境变量读取凭证
    const client = new lark.Client({
      appId: process.env.FEISHU_APP_ID,
      appSecret: process.env.FEISHU_APP_SECRET,
    });

    try {
      const resp = await client.im.message.create({
        params: { receive_id_type },
        data: {
          receive_id,
          msg_type: 'text',
          content: JSON.stringify({ text: content }),
        },
      });
      return `消息发送成功!消息ID: ${resp.data.message_id}`;
    } catch (error) {
      return `消息发送失败: ${error.message}`;
    }
  }
}

类似地,你可以创建 FeishuReadBitableTool (读取多维表格)、 FeishuSearchDocsTool (搜索文档)等。 开发工具的关键在于仔细阅读飞书开放平台的API文档,正确处理认证、参数和返回值

5.3 处理飞书事件回调与安全验证

飞书服务器在收到消息后,会向你配置的“请求地址URL”发送一个HTTP POST请求。OpenClaw需要提供一个HTTP服务来接收并处理它。

  1. 验证URL :在首次配置事件订阅时,飞书会发送一个带 challenge 参数的GET请求进行验证。你的服务必须能正确解析并原样返回这个 challenge 值。
  2. 解密事件 :飞书发送的事件是加密的。你需要使用配置的“加密密钥”和SDK提供的方法进行解密,才能得到真实的消息内容。
  3. 触发Agent :解密后,得到消息事件(如用户@了机器人)。此时,你可以提取消息内容、发送者等信息,将其作为新的“目标”或“指令”,传递给OpenClaw的Agent主循环,启动一次任务执行。

这部分逻辑通常写在OpenClaw项目的HTTP服务器入口文件中(例如 src/server.js index.js )。确保你的服务能够处理 application/json 类型的POST请求,并实现飞书要求的加解密流程。

6. 构建自动化工作流:从单次任务到持续运行

单个工具的调用只是开始,真正的价值在于将多个工具串联起来,形成自动化工作流。

6.1 设计一个具体的自动化任务:日报自动汇总

以“自动汇总项目日报到多维表格”为例,拆解Agent需要执行的步骤:

  1. 触发 :可以是定时任务(Cron Job),也可以是飞书群里的一句特定指令,如“@小助手 生成日报”。
  2. 规划与执行
    • 步骤1 :调用 搜索飞书群消息工具 ,过滤出过去24小时内,来自特定项目群、且包含“日报”、“总结”、“进展”等关键词的消息。
    • 步骤2 :对于每条相关消息,调用 文本提取与摘要工具 (可以是一个调用本地大模型进行总结的Tool),提炼出核心内容、负责人、状态。
    • 步骤3 :调用 读取飞书多维表格工具 ,获取“项目日报表”的表结构和最新一行,确定今天要写入的位置。
    • 步骤4 :调用 写入飞书多维表格工具 ,将步骤2中提炼出的结构化数据(项目名、内容摘要、负责人、日期)作为新的一行填入表格。
    • 步骤5 :调用 发送飞书消息工具 ,向我私聊或群内发送一条通知:“今日项目日报已自动汇总至多维表格,共处理X条记录。”
  3. 容错与确认 :在关键步骤(如写入表格)前,可以设计让Agent先输出一个预览,经我确认后再执行。或者在工具执行失败时,让其尝试重试或转换为向我发送求助信息。

6.2 实现定时任务与守护进程

为了让这个流程在旧笔记本上7x24小时运行,我们需要解决两个问题:定时触发和进程保活。

  1. 使用Node.js的定时任务库 :在OpenClaw的主程序中,可以使用 node-cron bull 等库来定义定时任务。
    import cron from 'node-cron';
    import { mainAgent } from './agent.js'; // 你的Agent主逻辑
    
    // 每天下午5点30分执行日报汇总任务
    cron.schedule('30 17 * * *', async () => {
      console.log('开始执行定时日报汇总任务...');
      await mainAgent.run('请开始执行每日项目日报汇总流程。');
    });
    
  2. 使用进程守护工具PM2 :这是保证Node.js应用稳定运行的关键。即使程序崩溃或系统重启,PM2也能自动将其拉起来。
    # 全局安装PM2
    npm install -g pm2
    
    # 在OpenClaw项目根目录下,用PM2启动你的应用
    pm2 start src/server.js --name "openclaw-agent"
    
    # 设置开机自启(针对Linux Mint)
    pm2 startup
    # 执行上面命令输出的提示命令
    pm2 save
    
    使用 pm2 logs openclaw-agent 可以实时查看日志, pm2 monit 可以监控资源占用,非常方便。

6.3 资源监控与优化

旧笔记本资源有限,必须精打细算。

  • 内存监控 :Ollama模型是内存消耗大户。可以通过 htop pm2 monit 命令实时监控。如果发现内存持续吃紧(>90%),可以考虑:
    • 换用更小的模型(如从7B换到3B)。
    • 为Ollama设置 num_ctx (上下文长度)等参数,降低内存占用。
    • 关闭Linux Mint的图形界面,以纯命令行模式运行,可以节省出可观的内存( sudo systemctl set-default multi-user.target 然后重启)。
  • 日志管理 :OpenClaw和PM2会产生日志。定期清理或轮转日志文件,防止磁盘被占满。可以配置 pm2-logrotate 模块。
  • 网络稳定性 :确保家庭网络稳定,特别是使用了内网穿透工具时。不稳定的网络会导致飞书回调失败,任务中断。

7. 常见问题、排查技巧与进阶思考

在实际部署和运行过程中,我踩过不少坑。这里把一些典型问题和解决方法记录下来。

7.1 安装与依赖问题

  • 问题 npm install 时卡住或报网络错误。
    • 解决 :更换npm镜像源为国内源(如前所述)。对于某些特定的、从GitHub直接下载的包,可以尝试设置Git代理或使用 npm config set fetch-retry-mintimeout 20000 等参数增加超时。
  • 问题 :运行OpenClaw时提示 Error: Cannot find module 'http_parser' 或类似模块找不到错误。
    • 解决 :这通常是Node.js版本或项目依赖损坏导致的。首先确认Node.js版本是否符合要求(v20 LTS)。然后彻底删除 node_modules 文件夹和 package-lock.json 文件,重新运行 npm install

7.2 飞书集成问题

  • 问题 :飞书事件订阅URL验证失败,提示“请求不合法”或“无效的redirect_uri”。
    • 解决 :这是最常遇到的问题。请按顺序检查:
      1. URL地址 :确保填写的URL是HTTPS开头(飞书要求),并且末尾没有斜杠。本地开发时,内网穿透工具(如ngrok)每次重启都会变地址,记得去飞书后台更新。
      2. 服务器响应 :你的服务必须在5秒内响应飞书的验证请求,并正确返回 challenge 值。检查你的服务器代码逻辑,确保路由正确,且没有因为跨域(CORS)等问题被阻塞。
      3. 网络可达 :确保你的服务器(或穿透后的地址)能从公网访问。可以用 curl 命令或在线端口检测工具测试。
  • 问题 :机器人能收到消息,但调用飞书API(如发消息、读表格)时返回权限错误( code 99xxxx )。
    • 解决 :99%的原因是 权限(Scopes)没开通或没生效 。去飞书开放平台后台检查:
      1. 应用是否已“发布”并“审核通过”?未上线的应用只有开发者自己能用部分基础权限。
      2. 所需的精确权限是否已添加到“权限管理”中?例如,操作多维表格需要 bitable:table ,而不仅仅是 bitable:table:readonly
      3. 修改权限并发布新版本后, 需要管理员在飞书移动端或管理后台重新审核通过 ,新权限才会生效。
  • 问题 App Secret 复制粘贴到 .env 文件后,程序仍报错“invalid app secret”。
    • 解决 :检查 .env 文件格式,确保 FEISHU_APP_SECRET 的值没有多余的空格、换行或引号。最好用纯文本编辑器查看。如果怀疑泄露或错误,可以去飞书后台重置App Secret,然后更新所有使用该Secret的地方。

7.3 OpenClaw与Ollama问题

  • 问题 :OpenClaw调用Ollama模型超时或无响应。
    • 解决
      1. 确认Ollama服务是否运行: systemctl status ollama ollama serve 查看。
      2. 确认模型是否已下载: ollama list
      3. 测试模型本身是否正常: ollama run qwen2.5:7b 进行简单对话。
      4. 检查OpenClaw配置中的 OLLAMA_BASE_URL 是否正确(默认是 http://localhost:11434 )。
      5. 查看Ollama日志: journalctl -u ollama -f ,看是否有加载错误。
  • 问题 :Agent执行任务时陷入死循环,或者做出匪夷所思的决策。
    • 解决 :这通常是 AGENT_INSTRUCTION (指令)写得不够清晰 导致的。需要优化指令:
      • 明确边界 :告诉它什么能做,什么绝对不能做。
      • 分步思考 :在指令中加入“请逐步思考你的计划,并分步骤执行”。
      • 设置检查点 :“在执行任何修改操作(如写入、删除)前,必须先向我确认”。
      • 限制工具使用 :在指令中明确列出它本次任务可用的工具,避免它去调用不相关的工具。
    • 此外,可以开启OpenClaw的详细日志,观察Agent的“思考链”,看它是在哪一步做出了错误判断。

7.4 系统与性能问题

  • 问题 :运行一段时间后,系统变得极其卡顿,响应缓慢。
    • 解决 :这通常是 内存耗尽,系统开始使用Swap(交换分区) 导致的。使用 free -h htop 命令确认。解决方法:
      1. 为Ollama设置内存限制(如果版本支持)。
      2. 换用更小的模型。
      3. 增加物理内存(如果笔记本支持升级)。
      4. 增加Swap空间大小: sudo fallocate -l 4G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile ,然后将其添加到 /etc/fstab 实现永久挂载。
  • 问题 :定时任务没有执行。
    • 解决
      1. 检查服务器时间是否准确: date
      2. 检查PM2进程状态: pm2 list ,看应用是否在运行。
      3. 查看应用日志: pm2 logs openclaw-agent ,看是否有定时任务触发的记录或报错。
      4. 检查Cron表达式是否正确。

将OpenClaw部署在旧笔记本上,并让它接管飞书上的重复工作,这个过程本身就是一个极佳的“降本增效”和“技术复健”项目。它不仅仅是为了省下那几小时的时间,更重要的是构建了一种人机协作的新范式:你负责制定战略和规则,AI负责执行战术和重复劳动。这台旧笔记本,也从一台即将被淘汰的设备,变成了一个24小时在线的智能办公节点,价值被重新激活。

在整个搭建过程中,最深的体会是: 稳定性高于一切 。一个偶尔能完成复杂任务的AI,远不如一个每次都能稳定完成简单任务的AI有价值。因此,在工具链选择(LTS版本的Node.js、Linux Mint)、模型选型(在性能与资源间平衡)、任务设计(步骤清晰、有确认机制)上,都要以稳定可靠为首要目标。先让一个最简单的流程(比如“收到关键词后回复固定消息”)跑通、跑稳,然后再逐步增加复杂度。当你在刷抖音时,听到旧笔记本风扇轻微转动,随后手机飞书弹出“今日工作已处理完毕”的通知,那种感觉,才是技术带来的实实在在的愉悦。

更多推荐