背景:博主使用的是mac电脑,所以本文档前面的npm安装流程,windows用户自行安装


本地电脑安装NPM

NPM是一个极为重要的Node.js软件包管理器,它允许用户轻松安装、更新、卸载任何需要的Node.js软件包。

准备工作

在安装NPM之前,我们需要确保我们已经安装了以下软件:

  • Node.js:NPM是随Node.js一起发布的。如果没有安装Node.js,可以在Node.js官网下载。
  • Xcode命令行工具:可以在这里下载并安装Xcode命令行工具。
  • Homebrew:它是一个Mac OS X下的包管理器,可以在Homebrew官网上找到详细的安装说明。
    安装完成后,可以运行以下命令检查是否成功安装了这些软件:

1) 安装 Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

如果提示 brew: command not found,通常是还没把 Homebrew 加到 PATH。按安装完成时终端提示,把 eval … 那行加入你的 shell 配置即可(zsh 一般是 ~/.zprofile 或 ~/.zshrc)。

2) 使用 Homebrew 安装 Node.js(会同时带上 npm)

brew update
brew install node

3) 验证 node / npm / brew 版本

node -v
npm -v
brew -v

在这里插入图片描述


Error

在这里插入图片描述
按 brew 给的 Caveats 做两步:创建目录 + 写入 shell 配置,然后用 nvm 装 Node(含 npm)

1) 创建 NVM 目录
mkdir -p ~/.nvm
2) 配置 zsh(Mac 默认一般是 zsh)

把下面三行追加到 ~/.zshrc:

echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh"' >> ~/.zshrc
echo '[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm"' >> ~/.zshrc

让配置立即生效(或重开一个终端也行):

source ~/.zshrc
3) 验证 nvm 可用并安装 Node(LTS)
command -v nvm
nvm --version
nvm install --lts
nvm use --lts
node -v
npm -v

安装 OpenClaw

强调一点 在安装OpenClaw 前,你需要先有一个聊天app的机器人apikey用来接受你的消息

  • “YOUR_APP_ID”
  • “YOUR_APP_SECRET”,

如果没有,可以参考下面我的飞书聊天软件机器人配置

用 npm 全局安装 openclaw 命令就是:

npm install -g openclaw@latest

新手引导并安装服务,对OpenClaw 进行初始化配置

完整的安装向导+配置系统服务,推荐新手使用
openclaw onboard --install-daemon
仅配置运行向导
openclaw onboard

在这里插入图片描述
配置聊天机器人
在这里插入图片描述
一路默认,走到skiils选择,密钥信息, Hooks,配置等,可以跳过,后面在网页的ui界面自行配置
在这里插入图片描述
How do you want to hatch your bot?
│ ○ Hatch in TUI (recommended)
│ ● Open the Web UI
│ ○ Do this later
选择网页版,会跳出来下面的ui界面,说明你的🦞已经配置成功了。你可以在这个页面发起聊天,也可以管理它的一些功能
在这里插入图片描述

在这里如果你配置了飞书机器人,你就可以在飞书登陆页面看到下面的初始化界面

在这里插入图片描述
复制粘贴 最后一行命令,在本地电脑的命令行运行,允许openclaw与飞书机器人进行交互
在这里插入图片描述
回到飞书,给你的ai助手做一些简单的配置吧
在这里插入图片描述

你叫***,作为我的Ai 助理,帮助我完成一些日常的自动化任务。我喜欢简单专业的回复,你可以叫我:**,时区是:北京


使用飞书开发者后台作为机器人聊天工具

在这里插入图片描述

添加机器人权限

在这里插入图片描述

{
"scopes":{
"tenant":[
"contact:user.base:readonly",
"im:chat",
"im:chat:read",
"im:chat:update",
"im:message",
"im:message.group_at_msg:readonly",
"im:message.p2p_msg:readonly",
"im:message:send_as_bot",
"im:resource"
],
"user":[]
}
}

配置事件与回调,用来让机器人收到消息,有问题看下面的错误解答 Error2

在这里插入图片描述
添加事件,按需选择,截图仅供参考在这里插入图片描述

发布聊天机器人


Error


Q1

在这里插入图片描述
关键报错行是:

npm error command git --no-replace-objects ls-remote ssh://git@github.com/whiskeysockets/libsignal-node.git
npm error git@github.com: Permission denied (publickey).

说明:openclaw 的依赖里有一个包(whiskeysockets/libsignal-node.git)通过 git+ssh 拉取,npm 调用 git@github.com 时你本机没有可用的 GitHub SSH 公钥认证,所以被拒绝。

下面给你两条解决路线,不展开讲了(推荐先走 A,最稳)。

  • 配置 GitHub SSH Key(推荐,适用于长期使用)
  • 强制把 git@github.com 改走 HTTPS(不想配 SSH 的临时方案) 自行baidu
1) 检查你是否已有 SSH key
ls -al ~/.ssh
2) 没有就生成一个(推荐 ed25519)
ssh-keygen -t ed25519 -C "username" -f ~/.ssh/id_ed25519
一路回车即可(是否设置密码按你需要)。
3) 启动 ssh-agent 并加载 key
eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
4) 把公钥加入 GitHub
pbcopy < ~/.ssh/id_ed25519.pub
5) 验证 SSH 到 GitHub 通不通
ssh -T git@github.com

Q2

在这里插入图片描述

未检测到应用连接信息,请确保长连接建立成功后再保存配置 配置文档

解决方法参考 飞书官方sdk
配置事件订阅方式

看报错信息就是本地电脑没有安装 飞书的 集成 SDK。在这里博主采用的是python -集成 SDK 安装方案。运行代码

# Homebrew 安装 python3
brew install python
# 验证
python3 --version
pip3 --version
which python3
# pip/setuptools 升级
python3 -m pip install --upgrade pip setuptools wheel

# 1) 创建目录并创建虚拟环境
mkdir -p ~/ENV
python3 -m venv ~/ENV/python3
# 2) 激活/验证/退出:
source ~/ENV/python3/bin/activate
python -V
pip -V
deactivate

# 飞书 sdk 使用的 whl
pip install lark-oapi -U
python -m pip install -U python-socks

将应用给的密钥粘贴代码,并运行python3脚本

  • “YOUR_APP_ID”
  • “YOUR_APP_SECRET”,

import lark_oapi as lark

## P2ImMessageReceiveV1 为接收消息 v2.0;CustomizedEvent 内的 message 为接收消息 v1.0。

def do_p2_im_message_receive_v1(data: lark.im.v1.P2ImMessageReceiveV1) -> None:
    print(f'[ do_p2_im_message_receive_v1 access ], data: {lark.JSON.marshal(data, indent=4)}')
def do_message_event(data: lark.CustomizedEvent) -> None:
    print(f'[ do_customized_event access ], type: message, data: {lark.JSON.marshal(data, indent=4)}')
event_handler = lark.EventDispatcherHandler.builder("", "") \
    .register_p2_im_message_receive_v1(do_p2_im_message_receive_v1) \
    .register_p1_customized_event("out_approval", do_message_event) \
    .build()
def main():
    cli = lark.ws.Client("YOUR_APP_ID", "YOUR_APP_SECRET",
                         event_handler=event_handler,
                         log_level=lark.LogLevel.DEBUG)
    cli.start()
if __name__ == "__main__":
    main()


在这里插入图片描述


参考文献

Mac安装npm全面指南
OpenClaw
docs.bigmodel.cn/cn/coding-plan/tool/openclaw

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐