跳转到内容

选择你的使用路径

选择 tool-bridge 时需要回答两个独立问题:

  1. 网关运行在哪里? Node/Docker、Cloudflare Workers,还是嵌入现有应用;
  2. 能力从哪里进入树? 内置集成、MCP、HTTP、Context、Device、Plugin 或另一棵远端树。

宿主决定存储、运维和长连接实现;接入方式决定上游协议和凭证。两者可以自由组合,例如在 Cloudflare 网关挂载一个 MCP Server,也可以在 Node 网关接入本地设备。

你的目标 建议起点
第一次体验,不想配置云账户 5 分钟本地启动
在内网或单台服务器长期运行 部署 Node / Docker
最少步骤部署到边缘 Cloudflare 一键部署
需要完整 Cloudflare gateway、Search 或源码定制 从源码部署到 Cloudflare
已有 Node 22+ 应用,希望注册本地函数 嵌入现有应用
只想让一台内网机器暴露有限 shell/文件 接入本地设备与服务
维度 Node / Docker Cloudflare Workers 嵌入式 SDK
权威状态 SQLite Workers KV 调用方注入 StateStore
对象存储 本地文件 R2 调用方注入 ObjectStore
Search SQLite 索引 完整源码形态使用 D1;一键模板不含 D1 当前公开 SDK 不提供 SearchIndex 注入
设备长连接 Node WebSocket Durable Objects + WebSocket hibernation 可用 connect() 反向连接远端;网关侧能力取决于宿主装配
一致性 SQLite 强一致 KV 认证与注册读取存在最终一致窗口 取决于注入实现
运维责任 主机、TLS、卷、备份 Cloudflare 资源、域名、secret、配额 完全由现有应用承担
适合 内网、自托管、快速闭环 边缘、低主机运维、设备连接 应用内本地工具、定制宿主

所有宿主共享同一套应用语义,但它们不是完全相同的基础设施。不要把 Node 的 SQLite 行为假设成 Workers KV 的强一致保证,也不要把完整源码 gateway 的 D1 Search 假设成一键模板的默认能力。

选择它,如果你:

  • 已有 Linux 主机、NAS 或内网容器平台;
  • 需要 SQLite 的本地强一致状态;
  • 希望对象文件与数据库一起备份;
  • 接入的上游主要在内网,且能自己处理 TLS/反向代理。

不适合只想完全免主机运维,或希望天然在全球边缘就近接入的团队。

开始前准备:一套 Secret 注入方式、持久卷、反向代理的 WebSocket upgrade、备份和恢复路径。先完成本地启动,再按部署 Node / Docker生产化。

Cloudflare 一键部署:最短的边缘路径

Section titled “Cloudflare 一键部署:最短的边缘路径”

Deploy Button 会把模板复制到你的 GitHub 和 Cloudflare 账户,并创建 KV、R2、Durable Objects 与 Static Assets。它适合快速得到一个带 Dashboard 和设备通道的边缘网关。

它不适合需要完整内置 catalog bundle 或 D1 Search 的场景。一键模板当前没有 D1 binding,因此不能静态假设存在 ~search。选择前阅读Cloudflare 一键部署,部署后用根 ~describe 检测 Search capability。

Cloudflare 源码部署:完整 gateway 与定制

Section titled “Cloudflare 源码部署:完整 gateway 与定制”

从 tool-bridge 源码 checkout 运行 tb init cloudflare --repo .,向导会创建 KV、R2、D1 和 Durable Objects,构建 Dashboard 与完整 gateway,并验证根 ~help

选择它,如果你需要:

  • D1 工具搜索;
  • 完整内置 integration catalog;
  • 自己控制 gateway 构建和源码版本;
  • 通过 CI 做可审计的重复部署。

代价是你需要维护 checkout、依赖、Cloudflare 认证和账户特定资源。账户 ID、域名和资源 ID 不应推回公共模板。详见从源码部署到 Cloudflare

SDK 适合已有 Node 22+ 应用,希望程序化注册本地 Tool/Context,并把 tb.fetch 挂到现有 HTTP 宿主。调用方必须决定 StateStore、对象存储、密钥、生命周期和外部暴露方式。

当前发布包是 Node 22 目标,并依赖 Node 的 node:os 与 WebSocket 实现;Fetch 风格的 tb.fetch 不表示这个包可以直接嵌入 Cloudflare Workers。需要 Workers 时使用一键模板或完整 Cloudflare gateway。

它不是“少配置的托管服务”:MemoryStateStore 只适合示例和测试;生产持久化与备份由你负责。SDK 的网关侧设备能力也不会凭空出现,必须由宿主装配。详见嵌入现有应用

来源 什么时候选 凭证与验证
内置集成 catalog 已提供目标 provider,希望少写适配代码 按 export 契约写 SecretStore;以挂载路径 ~help 验证
MCP Server 上游已经提供 Streamable HTTP MCP 使用 authRef/OAuth;验证 discovery 与真实 tool call
声明式 HTTP 上游是稳定、简单的 HTTP API 定义工具 schema/请求映射;复杂逻辑应改用 Plugin
Context 目标是对象、文档或知识内容 根据 capability 使用 Get/List/Put/Search;凭证只入 SecretStore
Device / SDK connect 能力在内网或本机,云端不能主动访问 设备专用 SK、registerPaths、shell/fs 白名单
外部 Plugin 需要代码适配、多个 exports 或独立扩缩 plugin/v2、TLS、PLUGIN_TOKEN、注册/探活/挂载
Federation 另一团队已经运行 HTBP 服务 host allowlist、远端专用 SK、skRef、HTTPS 与环检测
  1. 先用本地 Docker 验证你的真实上游能否被发现和调用;
  2. 为测试 Agent 创建受限 SK,证明路径权限满足预期;
  3. 再根据一致性、网络位置和运维责任选择生产宿主;
  4. 部署后重新读取目标实例的 ~describe、节点级 ~help 和工具级 schema,不要把开发实例能力清单直接当生产事实;
  5. 完成生产上线检查清单