- docker compose 部署:app / db / redis / tls(nginx) / bridge-tools,宿主端口错开避免与本机服务冲突 - bridge-tools 内联进仓库(compose build 路径改为 ./bridge-tools),仓库自包含可部署 - 部署说明 README、crm-new 对照与 bridge-tools 方案文档、备份与隧道脚本 - .gitignore 排除 .env、config.toml、uploads/、tls 私钥/证书、backups/、logs/
2.0 KiB
2.0 KiB
bridge-tools
LibreDesk 的业务工具服务(从 crm-new/bridge 裁剪):只保留 AI 助手需要的 4 个 HTTP 工具,
其余能力(AI 编排、RAG/知识库、OTP 验证、转人工、身份签发、质量飞轮)全部由 LibreDesk v2.9.1 内置实现。
工具
| 工具 | 需要验证 | 作用 |
|---|---|---|
search_products |
否 | 商品搜索(价格/库存/图片/product_id/URL),catalog 失败时退回 autocomplete 和站点地图类目链接 |
search_orders |
是 | 订单列表/详情(状态、商品、金额、地址、物流);邮箱只取 LibreDesk 身份头 |
search_inventory |
否 | 实时库存 + 预购 ETA |
get_customer_info |
是 | 会员资料(等级、积分、余额、注册时间等) |
接口
GET /healthz— 健康检查(公开)GET /tools/manifest— 工具清单(X-Tools-Key),可用来在 LibreDesk 批量注册POST /tools/<name>— 执行工具(X-Tools-Key+ LibreDesk 注入的X-Libredesk-*身份头)
与 LibreDesk 的约定
- LibreDesk 调用自定义工具时会注入身份头:
X-Libredesk-Contact-Id/-External-Id/-Type/-Email/-Verified、X-Libredesk-Conversation-UUID、X-Libredesk-Inbox-Id; - 邮箱、验证状态一律以这些头为准(不信任模型参数);
search_orders/get_customer_info在 LibreDesk 侧应设置requires_verification=true,客户验证(内置 OTP)后才会被放行;- 工具鉴权:在 LibreDesk 的工具 Headers 里配置
X-Tools-Key,值等于本服务的TOOLS_SHARED_KEY。
本地运行 / 测试
node --test "test/*.test.js" # 单测(mock RPC,不需要外部服务)
node src/server.js # 本机启动(需环境变量,见 .env.example)
部署
作为服务并入 ../libredesk/docker-compose.yml(服务名 bridge-tools),
与 LibreDesk 同一 Docker 网络,LibreDesk 侧工具 URL 用 http://bridge-tools:4100/tools/<name>。