Files
wangliang 39986f10f2 初始化 LibreDesk 本地实例部署仓库
- 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/
2026-10-29 13:24:13 +08:00
..

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>。