跳转到内容

数据流参考

Kitewell 可能访问的每个目的地、它收到什么,以及如何阻止:这是哪些数据会离开你的电脑的详细版。

每一项都说明发送什么、由谁接收,以及如何阻止。

  • 模型步骤、助手、失败诊断,或由模型读取的表格列。 发送提示词及其读取的内容(运行输出、日志、页面文字、截屏、表格行、知识库),发往在智能体与模型中选择的模型提供商。如需阻止,请选择运行在你自己服务器上的模型。
  • Kitewell 的内置模型。 发送相同的内容。发往 Dagu Cloud,由它转交给 OpenRouter;Dagu Cloud 不保存提示词文本,只记录工作区、设备、模型和所用的积分。仅限已登录 Dagu Cloud 的电脑。如需阻止,请选择你自己的模型。
  • 按是/否、按选项或按等级判断的表格列。 发送相同的内容,外加每列的问题和每个选项的含义。发往决策模型的提供商:OpenRouter、TypeSafe 或你设置的地址。如需阻止,请改选复制已发布值的列;这种列不需要模型。
  • “交给 AI 智能体”任务。 发送提示词,以及智能体在其工作文件夹中读取的任何内容,受该工具自身条款的约束。发往该命令行工具所登录的服务。如需阻止,请改用其他任务。
  • 按地址导入 API,或请助手检查网页。 发送获取文档或页面的普通请求,不附带任何凭据。发往你提供的地址。如需阻止,请改为上传 OpenAPI 文件。
  • 网站、命令、文件、API、Docker 或远程步骤。 发送步骤所发送的任何内容。发往你的步骤指定的网站、服务器、API、镜像注册表和电脑。如需阻止,请删除该步骤。
  • 电子邮件步骤。 发送邮件,以及你要求的搜索。发往你的邮箱自己的邮件服务器,如果是 Google 邮箱则发往 Gmail API;登录发往 Google 或 Microsoft。如需阻止,请在 邮件账户 中断开该邮箱。
  • 提醒。 发送发生了什么、紧急程度、项目、工作流和一个返回链接。发往你的邮件服务器、Slack 或 Teams 地址、PagerDuty,或你自己的 Webhook。如需阻止,请移除该渠道。
  • 登录 Dagu Cloud。 每六小时发送一次工作区的套餐、Kitewell 版本,以及这台电脑的 ID 和名称。发往由 Descarty 运营的 Dagu Cloud。如需阻止,请在 设备设置 中选择 退出登录。
  • 助手的网络搜索。 发送每次搜索的关键词,以及 Kitewell 的显示语言。发往 Dagu Cloud,由它转交给 Serper;Dagu Cloud 不保存搜索文本,只记录工作区、设备和所用的积分。如需阻止,请在 设备设置 中选择 退出登录;之后助手会改为向你询问地址。
  • 同步项目。 发送该项目的工作流、模型、服务器、API 连接、队列和镜像注册表、密钥的名称和说明、表格、知识库页面、发布版本,以及对于处理邮箱的工作流,由哪位已登录用户的设备运行它。发往 Dagu Cloud。如需阻止,请在该项目上选择 停止同步。
  • 已同步项目的运行。 每两分钟发送一次每次运行的工作流、状态、触发方式、时间和失败步骤的名称,以及这台电脑的 Kitewell 版本和操作系统。发往 Dagu Cloud;从不发送参数、日志、输出或表格中的值。如需阻止,请选择 停止同步;在 Dagu Cloud 中关闭运行状态共享后,只会发送电脑正在运行这一信息。
  • 连接到 Kitewell 的 ChatGPT 或 Claude。 发送应用请求的任何内容:工作流、运行和日志、产物、表格、知识库,以及(具有编辑权限时)这台电脑上 Excel 文件的行。经由 Kitewell 位于 mcp.kitewell.app 的中继发往该应用。如需阻止,请关闭 远程访问,或对该应用选择 吊销。
  • 应用或 API 密钥订阅的事件。 发送每个事件:项目、工作流、运行、结束方式、时间、失败步骤的名称、等待中步骤的问题、表格运行的计数,或错过计划的原因。发往订阅方提供的地址。如需阻止,请在该订阅上选择 移除。
  • 工作流的 Webhook。 不会发出任何内容。请求连同其请求头和请求体传入,在 Kitewell 位于 hooks.kitewell.app 的中继处等待,最长 7 天,直到这台电脑取走它们。如需阻止,请在该 Webhook 上选择 关闭。
  • 更新检查。 发送一个不包含任何与你或你的工作有关信息的请求。工作流引擎的检查发往 GitHub,Kitewell 应用的检查发往 kitewell.app。关闭 引擎自动更新 可停止引擎的检查;应用只在你请求时才检查。
  • 在 Windows 上安装 WebView2。 向 Microsoft 发送下载请求。安装程序通常已附带运行时,因此只有在缺少运行时时才会出现。

除此之外,Kitewell 不发送任何内容。应用中没有使用情况跟踪,没有崩溃报告,也没有数据分析。只有在你通过 Kitewell 的内置模型或助手的网络搜索发送请求时,Descarty 才会收到你的运行所处理的数据,而且仅限这些请求中的内容。

内容 存放位置
密钥的值 在每个项目的引擎中加密保存,在日志中被遮盖,从不被读回、导出、备份或同步。已同步的项目只携带密钥的名称和说明;每台电脑各自持有自己的值。请参阅密钥
登录信息 邮箱连接、保存的网站登录信息、SSH 密钥和主机信任,以及镜像注册表密码。全部加密保存,或保存在只有你的用户才能读取的文件中,并且都不包含在备份中。封存它们的密钥又用操作系统持有的设备密钥封存
运行日志和产物 保存在数据文件夹中,默认按项目保留 30 天。请参阅运行与日志。已同步的项目会报告每次运行的状态和失败步骤的名称,从不报告其参数、日志、产物或表格中的值
助手的对话和失败诊断 保存在数据文件夹中:这台电脑有一份对话,不包含在备份中;诊断按项目保存
Excel 工作簿 在保存该文件的电脑上就地读取和写入。链接到工作簿的表格会携带文件名以及哪台电脑持有它,从不携带单元格。其路径、每个结果写回哪一行,以及为撤销而保留的副本,都留在那台电脑上。请参阅自动处理 Excel
工作流定义和知识库 保存在数据文件夹中,直到你将其导出、共享或同步

关于这些,有两点需要了解。你下载的快照会包含运行输出和为撤销而保留的 Excel 副本,因此请把下载的快照当作敏感文件对待。

如果你让模型或已连接的应用读取工作簿的单元格,这些单元格就会离开电脑;了解边界说明了具体情况。

每项 AI 功能都会指定一个你在智能体与模型中添加的模型,或 Kitewell 的内置模型。

  • 提供商包括 Anthropic、OpenAI、Google Gemini、OpenRouter、Z.ai、OpenCode Zen,或你自己运行的任何 OpenAI 兼容服务器,例如 Ollama 或 vLLM。决策模型使用 OpenRouter 或 TypeSafe。
  • 你自己的服务器会把提示词、页面文字和截屏留在你的网络之内。小型本地模型通常无法操作浏览器或桌面,因此请按任务选择。
  • 通过 OpenRouter 时,Kitewell 自己进行的读取(助手、失败诊断和表格的结果列)会要求 OpenRouter 只路由到既不存储所收内容、也不用其进行训练的提供商。工作流中的模型步骤由引擎发送,不会提出这一要求。
  • Kitewell 的内置模型在已登录 Dagu Cloud 的电脑上无需密钥,费用从工作区的积分中扣除。Dagu Cloud 会要求 OpenRouter 把它转交的每个请求只路由到既不存储请求、也不用其进行训练的提供商。桌面步骤只有在 Kitewell Personal 和 Team 上才能使用它。

网站步骤或桌面步骤输入的值(例如密码)写作 %name%。只有名称会到达模型。

  • 工作流以运行 Kitewell 的人的权限运行。命令步骤可以读取你能读取的任何内容,包括数据文件夹。只运行你信任的定义和命令。
  • 桌面步骤的截屏包含屏幕上的所有窗口。请关闭不应被看到的内容,或使用一台没有其他人在用的电脑。
  • 电子邮件是不可信的输入。邮件中的文字一旦到达命令,或到达会运行命令的智能体,就可能操纵它。如果工作流存在这种情况,检查并运行 会提醒你。
  • Webhook 请求同样是不可信的输入。除非 Webhook 校验发送方的签名,否则任何拥有该 URL 的人都可以启动那个工作流。请参阅通过 Webhook 启动工作流。
  • 让助手或已连接的应用读取 Excel 文件,会把其单元格发送出去:根据文件搭建表格时,发送列清单和十个示例行;按名称请求行时,则发送这些行本身。
  • 备份和项目导出不加密。它们不包含密钥的值和登录信息,但会按原样保存定义、表格、知识库、运行输出和设置。把它们移到共享存储之前,请自行加密。
  • 提醒渠道的凭据(例如 Slack 地址)保存在设备的凭据文件中,用设备密钥封存,而不是保存在系统钥匙串中。
  • 通过 MCP 或 REST 的远程访问,只能经由这台电脑的本地地址访问 Kitewell。例外情况是经由 Kitewell 中继的 ChatGPT 和 Claude,以及你自己在前面加了 HTTPS 的客户端。请参阅 MCP 与 API 访问。
  • macOS:~/Library/Application Support/Kitewell/
  • Windows:%LOCALAPPDATA%\Kitewell\

备份与恢复说明了各部分包含什么,卸载说明了如何将其全部删除。

模型步骤会访问 api.anthropic.com、api.openai.com、generativelanguage.googleapis.com、openrouter.ai、api.z.ai、opencode.ai,或你设置的基础地址。决策模型只通过 HTTPS 访问 openrouter.ai/api/alpha 或 api.typesafe.ai/v1。在模型表单中选择提供商时,还会从 OpenRouter 或 OpenCode Zen 获取该提供商公开的模型列表;该请求不携带密钥,也不包含任何与你有关的信息。

表格的读取每行最多发送 48 KiB:该行的标签和输入、每个步骤的结果、运行发布的输出、运行生成的最多五个文本文件,以及最后一个步骤和失败步骤日志的末尾部分。

请求通过 HTTPS 发往 console.dagu.sh,并带有 User-Agent: Kitewell/<version>。超过 256 KiB 的同步文档,会通过 Dagu Cloud 返回的签名地址上传到其存储中。这台电脑的云凭据是数据文件夹顶层的一个文件,与其设置放在一起,从不包含在备份中。

网络搜索发往 console.dagu.sh,由它转发给位于 google.serper.dev 的 Serper,并返回标题、地址和摘要。

发往 Kitewell 内置模型的请求会发往 console.dagu.sh,并携带一个有效期一周、每天续期的运行令牌,从不使用这台电脑自身的凭据;Dagu Cloud 再把它转发到 openrouter.ai。

已同步项目的运行状态每两分钟发往 console.dagu.sh 一次,进行中的运行有变化时会更早。未送达的报告会重新发送。Dagu Console 会将每次运行保留 14 天,每日汇总保留 13 个月,告警在解除后保留 90 天。

中继是一个 Cloudflare Worker,每台设备对应一个对象。电脑通过 WebSocket 主动连接到它,因此你的网络上没有任何程序在监听传入连接。

它保存这台电脑的名称、Kitewell 版本、最后一次收到其消息的时间,以及工具列表调用的最近一次回答,并在最后一次收到该设备消息 30 天后全部删除。MCP 请求和响应只是经过,不会被保存。

Webhook 的请求体和请求头是例外。它们会一直保存到设备取走为止:最长 7 天,最多 1,000 个等待中的请求,每个请求体 512 KiB,请求头 16 KiB,每个 URL 每分钟 60 个请求。

Webhook 令牌只以哈希形式保存。中继本身不写任何日志。Webhook 是 Kitewell Personal 和 Team 的功能。

事件投递不经过中继。它们直接从这台电脑发往订阅方的地址:仅限 HTTPS,仅限公网地址,不使用代理,不跟随重定向,最大 256 KiB,以 Standard Webhooks 格式签名,最长重试 24 小时。

引擎检查从 api.github.com 读取 dagucloud/dagu 的最新版本,下载则来自该仓库在 GitHub 上的发布文件。

Kitewell 应用从构建时指定的 HTTPS 地址读取一份签名清单,并在运行安装程序之前验证其 SHA-256。在 Windows 上,安装 WebView2 会从 go.microsoft.com 获取 Microsoft 自己的引导程序,并在运行前检查 Microsoft 的签名。

密钥使用引擎的 AES-256-GCM 存储。邮箱密码和刷新令牌用每台设备专用的邮件密钥,以 AES-256-GCM 封存。

引擎的密钥、邮件密钥和凭据文件,各自用同一把设备密钥封存:在 Windows 上,这是机器范围的 DPAPI 数据块,只有那台电脑能打开;在 Mac 上,这是只有你的用户才能读取的文件。请参阅密钥。

这些都不包含在备份中,复制到另一台机器上的数据文件夹也无法打开其中任何一个。数据文件夹和备份文件夹只有你的用户账户才能读取。