安全
它能碰到什么,碰不到什么
有用的问题是具体的:机器人能碰到什么、我们存了什么、什么把一个客户的对话和另一个的隔开。下面是答案,包括控制力在哪里止步。
标准托管机器人没有任何工具
对标准托管站点,你的 Context 和对话进去,文本出来。机器人没有 shell、文件系统或通用网络访问。它碰不到其他客户的数据,因为那项能力根本不存在,而不只是被一条指令禁止。
托管 Enterprise 是明确的例外:你可以配置一个由你运行的 MCP 上下文工具。机器人可以调用那个工具,也不能调用其他任何工具;它同样拿不到 shell、文件系统或通用浏览器。
对话如何彼此隔离
每段对话都存储在一个由站点 id 和对话 id 组成的密钥之下,这两个 id 都由我们固定,而不是由调用方选择。站点无法指定另一个站点的对话,因为它无法指定一个没有被发给它的站点 id。
对话 id 经过签名,访客无法猜出或篡改出别人的对话。
你的密钥是公开的;域名才是控制
密钥必须出现在你的页面源码里。在浏览器中,从你未列出的域名发出的、带着它密钥的请求会被拒绝。其他账户无法认领你已经在服务的域名,虽然你自己账户下的两个机器人可以共享一个域名。
Origin 是浏览器层面的控制,不是对抗任意 API 客户端的证明:非浏览器软件可以伪造该请求头。除非你刻意支持移动应用,否则请关闭无 Origin 访问;启用了,就要求应用安装时注册。
我们能看见什么
我们能读取你站点上的对话——它们存储在我们的硬件上,静态时未加密,否则支持工作就是空话。它们会被托管服务的定期保留清理移除。删除机器人会立即让其密钥失效,但不会立即抹掉已存储的对话或采集的访客线索。
我们不把你的对话用于模型训练。托管模型是运行在我们硬件上的开源权重模型,你的文本只用于回答那段对话。
模型在哪里运行
运行在我们自己的硬件上。我们不会为了模型推理把访客消息发送给 OpenAI、Anthropic、Google 或其他第三方模型提供商。转录邮件、客户配置的 Enterprise MCP 工具以及交付服务所需的基础设施属于其他数据路径,详见我们的隐私声明。
人设的极限
告诉代理不该说什么的指令很强,但不是绝对的。意志坚定的访客有时能把模型绕过去。我们用正是这些手法测试它——冒充、“忽略你的指令”、自称站点所有者、要求它复述自己的提示词——并设计它予以拒绝。但我们不会称这种防护是绝对的,因为指令级的防护本来就不是。
所以重要的边界是结构性的,而不是指令性的。不要把秘密放进 Context 再靠一条 Guardrail 守住它;凡是代理知道的,都当作访客最终可能读到的一样对待。
我们不会声称什么
我们没有任何合规认证——没有 SOC 2、没有 ISO 27001、没有 HIPAA。如果你的采购流程需要其中之一,我们今天就不合适,我们宁可现在说,而不是在问卷里说。
如果要求是数据完全不能离开你的网络,托管服务就是错误的形态,自己运行 才是正确的形态。
报告问题
如果你发现安全问题,发邮件到 security@kavilo.cloud。我们会确认收到,也宁愿你别扭地告诉我们,也不要我们永远不知道。