data/config.yaml。首次启动会从默认模板生成该文件;下面的示例与 LangBot 仓库中的 src/langbot/templates/config.yaml 保持一致。
大多数自部署用户只需要关注公网地址、数据库/向量库、对象存储与 Box Runtime。未理解用途的容量和 Cloud 安全上限建议保持默认值。
完整默认配置
配置分组说明
API、WebUI 与成员邀请
api.port:LangBot HTTP API 与 WebUI 的监听端口,默认5300。api.webhook_prefix:对外可访问的服务地址,用于生成机器人平台的 Webhook 回调地址;生产环境通常应设置为反向代理后的 HTTPS 域名。api.extra_webhook_prefix:需要同时展示第二个回调入口时使用,留空即不启用。api.webui_url:WebUI 与 API 跨域部署时的浏览器端规范来源,例如开发环境的http://localhost:3000。OAuth 回调只信任该配置与webhook_prefix,不会信任请求中的Host或Origin请求头。api.global_api_key:供自动化程序、HTTP Service API 和内置 MCP 服务使用的全局密钥。设置后可通过X-API-Key或Authorization: Bearer鉴权,无需登录会话或数据库中的lbk_密钥;留空表示关闭。workspace.invitations.public_web_url:邀请链接使用的 WebUI 公网地址;留空时依次回退到api.webui_url、api.webhook_prefix。workspace.invitations.email:可选的邀请邮件发送配置。provider支持resend、smtp,留空时只生成邀请链接、不发送邮件。
命令、并发与 Webhook 限制
command:控制命令系统是否启用、命令前缀以及权限映射。concurrency.pipeline:实例同时处理的流水线请求数量;concurrency.session:同一会话允许的并发数量。concurrency.pending_queries与pending_queries_per_workspace:限制“排队中 + 执行中”的请求总量,防止突发流量形成无限队列。webhooks.max_per_workspace:每个 Workspace 最多调度的启用 Webhook 数量,硬上限为64。webhooks.max_inflight_requests:全实例同时发送的 Webhook 请求数,硬上限为128;槽位占满时会快速失败,不会无限积压任务。
Cloud 目录安全上限
cloud.directory 是单个 LangBot Cloud 逻辑实例的运行安全上限,不是套餐权益:
max_active_workspaces:允许加载的活跃 Workspace 数量,Core 绝对上限为5000。max_snapshot_workspaces/max_snapshot_memberships:一次签名目录快照允许携带的 Workspace 与成员关系数量。max_response_bytes:签名控制面响应在验证前允许缓冲的最大字节数,默认32 MiB、绝对上限64 MiB。
系统限制与内存保留
system.instance_id、edition、recovery_key:实例身份、发行版与恢复信息;除非部署流程明确要求,否则保持默认。system.disabled_adapters:禁用的消息平台适配器列表。system.blocking_executor:限制所有asyncio.to_thread工作共享的线程池、排队任务和单 Workspace 占用,防止阻塞调用拖垮进程。system.limitation:实例级机器人、流水线、扩展、知识库数量限制;-1表示不限制。force_box_session_id_template用于 SaaS 强制统一沙箱作用域,普通自部署应保持空字符串。task_retention:异步任务记录、日志字符数和用户主动任务并发上限。session_retention:进程内会话缓存上限与空闲 TTL;它不是持久聊天记录。websocket_retention:浏览器连接数、Workspace 代理缓存、对话缓存与发送队列上限。response_limits:限制单次上游模型响应的字符数和流式分块数。system.jwt.expire以秒为单位;生产环境应显式设置不可预测的system.jwt.secret。
数据库与向量数据库
database.use支持sqlite与postgresql。SQLite 适合单机轻量部署;多实例或较高并发建议使用 PostgreSQL。database.postgresql.url非空时优先于拆分的host、port、user、password、database字段,并可保留 TLS 与查询参数。- PostgreSQL 的
pool_size、max_overflow、连接池超时与回收参数共同限制连接资源;三个数据库超时字段只应用于 Cloud 运行时连接。 database.cloud_migration.operator_dsn_env指定 Cloud 发布迁移读取的运维级 DSN 环境变量。运维角色必须与运行时角色分离,密码不要写入配置文件或命令行参数。vdb.use选择向量后端。页面列出了 Qdrant、SeekDB、Milvus、pgvector 与 Valkey Search 的连接参数;只需要配置实际选中的后端。vdb.runtime_cache_limit限制进程内集合/索引句柄数量。vdb.pgvector.use_business_database: true表示复用database.postgresql;allowed_dimensions限定发布迁移创建 ANN 索引的向量维度。vdb.valkey_search需要带 Search 模块的 Valkey 服务,例如valkey/valkey-bundle:9.1.0。连接按需建立,支持 HNSW/FLAT 与 COSINE/L2/IP。
存储、插件、MCP 与监控
storage.use选择本地或 S3 存储;max_object_read_bytes限制一次读入 Core 内存的对象大小,内置 Local/S3 实现的硬上限为64 MiB。storage.cleanup控制上传文件与日志的周期清理。max_files_per_run限制一次扫描的文件数,硬上限10000。storage.s3.max_concurrency限制委托给工作线程的同步 boto3 操作数量。plugin.worker定义所有插件安装都不能突破的 CPU、内存、PID、打开文件、文件大小与全局 Worker 预算;插件清单不能抬高这些上限。重启参数用于抑制 Runtime 重启风暴。plugin.binary_storage.max_value_bytes限制单个插件二进制存储值,默认10 MiB。mcp.lifecycle_concurrency限制 MCP 启停并发,硬上限128;mcp.stdio.enabled可独立禁用本地 stdio MCP,而不影响 HTTP/SSE MCP。monitoring.query_limits限制分页、CSV 导出、详情、时序桶和高 offset 查询在内存/数据库中的工作量。monitoring.auto_cleanup控制监控数据保留与分批删除;max_batches_per_table_per_run防止单个 Workspace 的积压长期占用 PostgreSQL。
Box 沙箱
box.enabled是总开关。关闭后不会连接或启动 Box Runtime,并禁用原生沙箱工具、Skill 添加/编辑和 stdio MCP;只读 Skill 列表以及 HTTP/SSE MCP 仍可使用。box.backend可选local、docker、nsjail、e2b;box.runtime.endpoint用于连接外部 WebSocket Runtime,留空时使用本地自动管理 Runtime。box.limits限制会话、托管进程、已完成进程、Workspace 扫描条目、准入记录和 RPC 文件大小。box.admission是 Cloud v2 的强制准入与硬资源配额。普通 OSS 默认required: false;流水线、Workspace 权益或工具调用都不能放宽 Runtime 拥有的限制。box.local配置本地工作目录、Skill 根目录、允许挂载根目录和可选磁盘配额。Docker 部署时,host_root应使用 Box 容器可挂载的绝对宿主机路径。box.default_memory_mb是每个 MCP stdio 进程的默认 nsjail cgroup 内存上限。Node.js MCP 通常比 Python MCP 占用更多内存;过低时常见return_code=137。box.docker.cpu_limit_enabled: false只取消 Docker 的 CPU 参数,内存与 PID 限制仍然生效。box.e2b用于 E2B 或自托管兼容服务。
LangBot Space
space.url:Space OAuth 与 API 服务地址。space.models_gateway_api_url:LangBot MaaS 的 OpenAI 兼容模型网关地址。space.oauth_authorize_url:OAuth 授权页地址。space.disable_models_service/disable_telemetry:分别关闭 Space 模型服务与遥测上报。
通过环境变量设置
任何嵌套配置都可以转换为“大写 + 双下划线”环境变量:API__PORT→api.portWORKSPACE__INVITATIONS__PUBLIC_WEB_URL→workspace.invitations.public_web_urlCONCURRENCY__PENDING_QUERIES_PER_WORKSPACE→concurrency.pending_queries_per_workspaceDATABASE__POSTGRESQL__POOL_SIZE→database.postgresql.pool_sizeSTORAGE__CLEANUP__MAX_FILES_PER_RUN→storage.cleanup.max_files_per_runPLUGIN__WORKER__MAX_TOTAL_MEMORY_MB→plugin.worker.max_total_memory_mbMCP__STDIO__ENABLED→mcp.stdio.enabledBOX__DEFAULT_MEMORY_MB→box.default_memory_mb
data/config.yaml。
Docker 部署中,统一把
BOX__* 环境变量设置在 langbot 服务上。LangBot 会通过 INIT RPC 将 Box 配置传给 langbot_box;直接在 langbot_box 服务上设置 LANGBOT_BOX_* 或 BOX__* 不会被读取。