自托管
同一个代理,跑在你的网络里
托管服务从你写的一段描述里回答。有些问题没法这样回答,因为答案在实时系统里——上周有多少订单延迟发货、这个客户的账户是不是逾期了。弥合这个差距有两条路,它们在信任谱上处于不同的位置。
Enterprise 套餐,托管。 代理调用你运行的 MCP 服务器。你公开任何有意义的工具——查询端点、库存检查、CRM 查找——代理在提问时从我们的云调用它们。你的源数据留在你的网络里;只有每个工具调用的响应越过边界。当你愿意让那些数据离开、又不想运营任何 kavilo 基础设施时,这是正确的选择。
自托管。 对完全不能把数据发到任何地方的人,同一个代理跑在你的网络内,紧挨着数据,为你的内网服务。它比你想象的少:数据库桥接就托管在进程内,没有第二个服务要部署,也没有端口要开。
什么也没有暴露
你的内部站点和代理都在你的网络里,所以没有隧道、没有公开主机名、没有入站防火墙规则。这是“无入站”不再是缓解措施的部署——外部没有任何东西在监听。
天生只读
桥接只接受一条只读的 SELECT,包括 WITH … SELECT,缺失行限制时补一个行限制。这是在查询路径里强制执行的,而不是礼貌地请求模型配合——而且它后面还应该放一个不能写入的数据库角色,因为授权是一种控制,检查是第二道防线。
什么会离开,直说
- 用远程模型提供方——我们的、OpenAI、Anthropic 或任何其他配置了提供方——该提供方会看到对话、你的 schema、代理写的查询,以及这些查询返回的行。
- 用本地推理,在你的硬件上,什么也不离开。不是 schema,也不是行。
这是真正不同的姿态。如果你的要求是没有一行数据能越过边界,就用本地推理——同一套配置,只改一个提供方设置。别让任何人告诉你托管选项是等价的,我们也不例外。
二进制里有什么
没有我们的店面。你运行的构建里没有支付处理、没有注册流程、没有编译进去的价格表——那些只存在于运行本网站的构建里。这是一条有意的界线:你网络里的代理运行时不该包含 Stripe 客户端,“它为什么会有”是对任何供应商都合理的提问。
它在什么位置
| 部署 | 代理运行于 | 离开你的网络 |
|---|---|---|
| 托管组件(仅 Context) | 我们的云 | Context、访客消息和回复 |
| 托管组件,Enterprise(MCP 上下文) | 我们的云 | Context、对话、MCP 请求和响应 |
| 自托管,远程模型 | 你的网络 | 对话、schema、查询和返回的行 |
| 自托管,本地推理 | 你的网络 | 无 |
两种自托管方式用的是同一个 kavilo 部署。从远程模型切到本地推理是提供方配置变更,不是数据迁移。
开始之前
这不是自助服务——得先聊聊你的数据和你的网络。和我们谈谈。