mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-11-01 05:15:22 +08:00
104 lines
5.2 KiB
Plaintext
104 lines
5.2 KiB
Plaintext
---
|
|
title: "Data Collection Policy"
|
|
description: "What data LangBot collects and how it is used"
|
|
---
|
|
|
|
LangBot collects minimal, anonymized telemetry data to help improve the product. This document explains what data is collected, how it is used, and how you can opt out.
|
|
|
|
## What We Collect
|
|
|
|
When telemetry is enabled (via LangBot Space integration), the following data is sent **per conversation query**:
|
|
|
|
| Field | Description |
|
|
|---|---|
|
|
| `query_id` | A randomly generated unique ID for the query (not linked to user identity) |
|
|
| `adapter` | The messaging platform adapter in use (e.g., WeChat, QQ, Telegram) — only the adapter type name, not your account info |
|
|
| `runner` | The AI runner type (e.g., `local-agent`, `dify-service-api`) |
|
|
| `model_name` | The model name used for the query (e.g., `gpt-4o`, `deepseek-chat`) |
|
|
| `duration_ms` | How long the query took to process (in milliseconds) |
|
|
| `version` | The LangBot version you are running |
|
|
| `instance_id` | A randomly generated UUID identifying your LangBot instance (generated at first launch, not linked to personal identity) |
|
|
| `pipeline_plugins` | Names of pipeline plugins involved in the query |
|
|
| `features` | Anonymous feature-usage counters for the query (see below) |
|
|
| `error` | Error traceback if the query failed (no user content included) |
|
|
| `timestamp` | When the query occurred (UTC) |
|
|
|
|
#### The `features` object
|
|
|
|
To understand which capabilities are actually used, each query event may include the following counters and category names — **never the content** of tool calls, retrieved documents, or executed code:
|
|
|
|
| Key | Description |
|
|
|---|---|
|
|
| `tool_calls` | Number of tool invocations during the query, grouped by tool source (`native` / `plugin` / `mcp` / `skill`) |
|
|
| `tool_call_rounds` | How many agent tool-call rounds the query took |
|
|
| `kb` | Knowledge base usage: number of knowledge bases queried, knowledge engine plugin IDs in use, and the number of retrieved entries — not the retrieved text |
|
|
| `sandbox` | Number of sandbox code executions and sandbox errors — not the executed code or its output |
|
|
| `activated_skills` | Names of skills activated during the query |
|
|
| `mcp_servers` | Names of MCP servers bound to the pipeline (omitted when "all enabled" is used) |
|
|
|
|
### Instance heartbeat
|
|
|
|
In addition to per-query events, LangBot sends an anonymous **instance heartbeat** once shortly after startup and then once per day. It describes the instance's configuration profile — never its data:
|
|
|
|
| Field | Description |
|
|
|---|---|
|
|
| `deploy_platform` | How LangBot is deployed (`docker`, `linux`, `darwin`, `win32`, ...) |
|
|
| `database` | Database kind in use (`sqlite` or `postgresql`) — no connection details |
|
|
| `vdb` | Vector database kind in use (e.g., `chroma`, `milvus`, `qdrant`) — no connection details |
|
|
| `box` | Sandbox configuration: enabled flag, availability, backend kind (`docker` / `nsjail` / `e2b`), deployment topology — no workspace contents |
|
|
| `adapters` | Adapter type names of enabled bots |
|
|
| `bot_count`, `pipeline_count`, `mcp_server_count`, `knowledge_base_count`, `plugin_count`, `skill_count` | Object counts only — no names or contents of these resources |
|
|
|
|
### Surveys
|
|
|
|
LangBot may occasionally present in-app surveys (e.g., product-market fit surveys). Participation is **optional**. When a survey is submitted, the following is sent:
|
|
|
|
- Survey ID and your answers
|
|
- Your instance ID and LangBot version
|
|
- Whether you completed or dismissed the survey
|
|
|
|
## What We Do NOT Collect
|
|
|
|
- ❌ **Message content** — We never collect the content of your conversations
|
|
- ❌ **User identities** — No usernames, emails, phone numbers, or account IDs from your messaging platforms
|
|
- ❌ **API keys or credentials** — Your model provider API keys are never transmitted
|
|
- ❌ **IP addresses** — We do not log or store your IP address for analytics purposes
|
|
- ❌ **File or media content** — No images, documents, or other media you exchange with the bot
|
|
|
|
## How We Use the Data
|
|
|
|
The collected telemetry data is used to:
|
|
|
|
1. **Understand usage patterns** — Which adapters, runners, and models are most popular
|
|
2. **Improve reliability** — Identify common errors and failure modes
|
|
3. **Guide development** — Prioritize features and platform support based on real usage
|
|
4. **Monitor performance** — Track response times and identify bottlenecks
|
|
|
|
## Data Storage & Retention
|
|
|
|
- Telemetry data is sent to **LangBot Space** (`space.langbot.app`)
|
|
- Data is stored on servers operated by the LangBot team
|
|
- Data is retained for product analytics purposes and may be aggregated for public statistics (e.g., total user count)
|
|
|
|
## How to Opt Out
|
|
|
|
You can disable telemetry at any time by setting `disable_telemetry: true` in the `space` section of your `data/config.yaml` configuration file:
|
|
|
|
```yaml
|
|
space:
|
|
url: "https://space.langbot.app"
|
|
disable_telemetry: true
|
|
```
|
|
|
|
When telemetry is disabled:
|
|
- No query data will be sent
|
|
- No instance heartbeats will be sent
|
|
- No surveys will be fetched or displayed
|
|
- All other LangBot features continue to work normally
|
|
|
|
## Changes to This Policy
|
|
|
|
We may update this policy as LangBot evolves. Changes will be documented in our release notes and reflected in this page.
|
|
|
|
*Last updated: June 2026*
|