name: qiwei-webhook-relay
先调用 qiwei_product_mode_status 判断产品模式。个人版由技能包内置 ESM Runtime 在客户主机主动轮询;企业版由同一 Runtime 进入中央 Relay 注册和服务端回调流程。
本 skill 负责:
标准产品流程只有 local_polling 和 server_relay 两种传输方式。旧的显式直连工具仅保留兼容,不作为个人版交付步骤。
运行 npm run runtime 后,ESM Runtime 复用现有 Agent Poller,通过 Fmode/Future Server 网关主动同步新消息,并将画像、待办、预警、草稿和会话数据保存在客户项目中。用户不需要配置公网地址。
企微平台把事件推送到 Fmode 中央 Relay 服务器(默认 http://8.138.37.248:4000),本地 Skill 通过长轮询主动取回属于自己的事件。适合 Skill 运行在本地电脑、内网或无固定公网 IP 的场景。
outputs/webhook/relay-config.jsonoutputs/webhook/<date>/<time>-<source>/event-...json.env.local 已配置 QIWEI_AUTH_TOKEN。qiwei_login_start → 用户扫码登录。qiwei_webhook_auto_setup 或 qiwei_relay_connect:
guid;.env.local;guid 建立租户路由;POST /relay/connect;{RELAY_BASE_URL}/api/webhook/ingest;npm run relay;守护进程使用 ESM Runtime,事件在服务端持久排队,本地处理成功后才 ACK。{
"name": "qiwei_relay_register",
"arguments": {
"description": "本地 Skill",
"force": false
}
}
返回 tenantId、apiKey、apiSecret、privateKey,并自动保存到 .env.local。
{
"name": "qiwei_relay_connect",
"arguments": {
"guid": "已登录设备 guid"
}
}
[Unit]
Description=Qiwei Relay Client
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/opt/qiwei-assistant
EnvironmentFile=/opt/qiwei-assistant/.env.local
ExecStart=/usr/bin/node /opt/qiwei-assistant/scripts/start-relay-client.js
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启动:
sudo systemctl daemon-reload
sudo systemctl enable qiwei-relay
sudo systemctl start qiwei-relay
pm2 start scripts/start-relay-client.js --name qiwei-relay
pm2 save
qiwei_webhook_status — 查询 Relay 回调配置状态qiwei_webhook_auto_setup — 注册设备并通过 Fmode 专用接口接入中央 Relayqiwei_relay_config — 读取 Relay 配置qiwei_relay_save_config — 保存 Relay 公钥/租户配置qiwei_relay_register — 注册 Relay 租户并保存凭证qiwei_relay_connect — 配置 Relay 回调地址本地模式工具仅供隔离部署使用;默认调用会被拒绝,防止共享 Token 的全局回调被个人电脑覆盖。