Files
LangBot/docs/zh/insight/data-collection-policy.mdx
RockChinQ 9d2042478a Add 'docs/' from commit '51dddcb3f891d60bc38645e88b2dbd515344da81'
git-subtree-dir: docs
git-subtree-mainline: 0582d1b3d4
git-subtree-split: 51dddcb3f8
2026-10-27 08:04:35 +00:00

79 lines
7.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "数据收集政策"
description: "可选遥测、执行链路、数据范围与关闭方法"
---
LangBot 向 `space.url` 配置的 LangBot Space 服务(默认为 `https://space.langbot.app`)发送产品遥测,用于了解使用情况和改进可靠性。**遥测默认开启,可以关闭。** 以下说明对应 4.11 当前的执行遥测协议(`schema: 2`);旧版本数据另见下文。
## 执行遥测
符合上报条件的一次执行由共享 `event_id` 的独立记录组成:每个工作流节点完成时生成一条 `execution_node`,执行结束时生成一条 `execution_chain`。Core 将记录放入有界缓冲区,后台批量发送;Space 将节点重组为执行链路。当前发送端不再使用旧的功能窗口计数或在本地拼装完整链路。
**平台事件没有命中业务路由,或最终命中 `discard`(忽略/丢弃)且没有匹配的插件订阅时,不上报任何执行节点或链路结束记录。** 路由禁用、事件类型或过滤条件不匹配也属于此范围;本地日志和监控仍保留原有行为。主路由未命中但插件事件处理器匹配时,保留实际处理的执行,省略未命中和丢弃旁支的遥测。
命中业务路由后,目标不可用、执行失败、超时或 Pipeline 内部过滤仍可上报。有效交互回调恢复原处理器、WebUI/API 调试及显式指定 Pipeline 的独立调用也可上报;无效回调不会单独取得上报资格。此过滤先于采样和失败兜底,对 Cloud 同样生效。升级 Core 后生效;旧客户端及已有历史记录不受追溯修改。
| 数据 | 内容 |
|---|---|
| 标识与环境 | `instance_id`、`workspace_uuid`、`event_id`、版本、部署版本类型、时间戳、调试标记与采样信息 |
| 执行节点 | 平台事件、路由、Pipeline、Runner、平台 API 和工具调用的操作标识、处理模式、结果、起止时间、父子节点与顺序、路由目标和 Runner 运行标识 |
| 链路结束 | 整体结果、关闭原因、耗时、节点数、因采样未上报的节点数、来源、模型名称、适配器、Runner 与管道插件 |
| 绑定资源 | Pipeline 或 Agent 获准使用的插件、MCP 服务器、知识库、工具及来源、技能、模型、平台 API 的标识或名称,以及资源选择字段、能力与授权标记;实际字段取决于执行路径 |
| 错误 | 经过长度限制和空白清理的简短错误文本,可能包含异常类型与异常消息前缀 |
绑定资源表示这次执行被配置或授权使用哪些资源,**不等于实际调用、检索或消耗了这些资源**。路由目标使用 `type:uuid`,不使用用户自定义规则名。
执行记录不会主动采集消息正文、提示词、模型回复、平台用户或群组 ID、工具/API 参数或结果、凭据或完整异常堆栈。**但错误文本截断并非可靠脱敏,异常消息前缀以及自定义的模型、技能或资源名称仍可能含有敏感信息。** 实例与工作区标识可能关联到部署或账户,不能将这些记录视为匿名数据或保证不含用户内容。
### 采样与调试执行
社区版通过 `space.execution_trace` 控制执行上报:
| 模式 | 行为 |
|---|---|
| `all`(默认) | 记录所有符合上报条件的执行的节点和结束记录 |
| `sampled` | 根据事件标识的稳定哈希,在入口决定是否采样;成功执行约保留 `1/N`,N 为 `space.execution_trace_sample`(默认 20),同一次执行共享采样决定 |
| `failures` | 普通执行不保留节点,只在失败、取消、超时或有链路失败原因时上报结束记录 |
| `off` | 关闭节点和链路结束记录;没有继续上报的独立窗口计数,工作区心跳仍由总开关控制 |
`sampled` 未命中的执行如果失败,仍会上报链路结束记录,但不会追补已跳过的节点,因此可能只有摘要而没有完整链路。WebUI 调试执行在 `all`、`sampled` 和 `failures` 下均保留,并带有调试标记;`off` 或总开关关闭后不再上报。
**Cloud 在产品遥测启用时固定使用 `all`**,以避免对成功执行的采样影响活动计数;实例运维方仍可使用 `space.disable_telemetry` 关闭本页所述产品遥测。
### 发送与完整性
记录通过 `POST /api/v1/telemetry` 发送。默认刷新间隔为 180 秒,可通过 `space.telemetry_flush_seconds` 调整。每次刷新最多发送 128 条,内存缓冲最多 512 条;发送成功后才移除对应记录,失败会重试,缓冲满时丢弃最旧记录。停机时尝试在有限时间内发送剩余记录。
网络故障、超时或服务端错误不会使业务执行因遥测失败而报错,上报失败详情记录在 DEBUG 日志中。采样、缓冲溢出、进程退出或跨任务关联失效可能造成不完整链路,**全量模式不保证完整送达**。平台 API 返回成功也不代表用户已阅读消息。
## 心跳、问卷与旧版本数据
活跃工作区在启动约 30 秒后首次发送 `instance_heartbeat`。普通部署此后每天发送,Cloud runtime 每 5 分钟刷新。心跳包含部署平台、数据库/向量数据库类型、沙箱配置与可用性、适配器类型,以及机器人、Pipeline、插件、Agent、事件处理器、事件绑定、MCP、知识库和技能等资源数量;不主动包含资源正文或连接凭据。
自愿参与的应用内问卷会发送问卷 ID、提交的回答、实例 ID、版本及完成/关闭状态。问卷回答是用户主动提供的内容。
Space 仍兼容旧版本的 `query` 和 `feature_execution` 数据。旧查询记录可能含模型名称、功能使用计数、自定义技能/MCP 名称及原始 traceback。当前执行记录的字段限制不会追溯清理这些历史数据,也不会改变仍在运行的旧客户端的上报内容。
## 存储与保留
数据存储在所配置的 Space 服务。执行列表、链路详情和汇总仅供获授权的遥测管理用户或服务客户端访问。`execution_node`、`execution_chain` 及旧 `feature_execution` 原始记录按 30 天窗口定期分批清理;服务中断或积压可能延迟删除。该期限不改变旧查询遥测、心跳、问卷、账户或服务日志的保留规则。
关闭遥测会停止后续上报,但不会删除服务端已有记录。如需处理历史数据,请联系 [[email protected]](mailto:[email protected]) 或所用 Space 的管理员。
## 关闭遥测
在 `data/config.yaml` 的现有 `space` 节点中设置以下值,保留其他配置,然后重启 LangBot:
```yaml
space:
disable_telemetry: true
```
此开关统一关闭本页所述产品遥测,并关闭问卷获取。使用 YAML 布尔值,不要加引号。恢复默认开启状态时,改回 `false` 并重启。
如果部署设置了 `SPACE__DISABLE_TELEMETRY`,该环境变量会在启动时覆盖文件设置;请同时修改或移除它。容器环境变量改变后需要重新创建容器。Cloud 由实例运维方配置,对该实例所有工作区生效。此设置不影响机器人正常运行,也不修改消息平台、模型提供商或插件自身的隐私设置。
Cloud 的 Plugin Runtime 运维健康上报独立于产品遥测,由 `plugin.runtime_ops.enabled` 控制,不能通过 `space.disable_telemetry` 关闭。
参见[系统环境设置](../deploy/settings)。