# 默认模型档案: .,对应 config/models/.yaml default_model: deepseek_v4.flash models_dir: config/models skills_dir: skills workspace_dir: workspace system_prompt: prompts/system/general_v1.md # 媒体生成每账号每日配额(usage_events.kind=image/video 计数,服务器本地 00:00 重置)。 # 失败任务不算(record_*_usage 只在成功 + 下载完才落库)。≤ 0 视为不限。 # 跨 task 跨 variant 全口径合计。改后 重启 web 生效。 quotas: images_per_day: 20 # seedream 等图像 tool 调用上限 videos_per_day: 5 # seedance 等视频 tool 调用上限 # per-user 工作目录总字节上限(包括上传 + tool 写的所有产物);≤ 0 视为不限。 # 写前 gate(/v1/files/upload + DockerExecutor.write/edit),超额返 [Error] 硬阻。 # 实测靠 lifespan 后台 15min 扫描 user_disk_usage 表,扫描间隙轻微突破接受 # (跟 image/video 配额 race-tolerant 一致);外部用户开放前再上 OS 层 xfs prjquota 兜底。 disk_bytes_per_user: 5gb # 支持 5gb / 500mb / 1073741824(整数 bytes) disk_scan_interval_seconds: 900 # 后台扫描周期,默 15 分钟 # 优雅 drain(SIGTERM / systemctl restart):先拒新 POST /messages(返 503 + Retry-After, # 客户端退避重试覆盖),等在跑的 run 自然收尾;超 drain_timeout 还没完的转协作式 cancel # (下个 chunk 间隙退、标 idle 不报 error);再过 cancel_grace 仍没退的留给 systemd SIGKILL, # 下次启动 reaper 标 error(最坏退化 = 改前行为)。改后重启 web 生效。 # ★ systemd unit 的 TimeoutStopSec 必须 > drain_timeout + cancel_grace + 余量(见 RUN.md 部署 SOP)。 shutdown: drain_timeout_seconds: 30 # 等在跑 run 收尾的上限 = 部署期 503 窗口上限;超时转 cancel # (= 用户按停止,标 idle 可重发,非 error),故偏短更安全 cancel_grace_seconds: 15 # 超时转 cancel 后再给的退场宽限 # Sandbox 容器资源限制(docker run flag,env 可 override);改后重启 web 生效, # 新起的容器用新值,已 running 的不变(idle 5min 回收后下次起)。 sandbox: memory: 2g # --memory (env: ZCBOT_SANDBOX_MEMORY) cpus: 1.0 # --cpus (env: ZCBOT_SANDBOX_CPUS) pids_limit: 256 # --pids-limit (env: ZCBOT_SANDBOX_PIDS_LIMIT) # 容器 DNS server 显式配置(docker run --dns,容器 /etc/resolv.conf 直接写, # 绕过 docker daemon 上游 DNS 探测路径;腾讯云轻量 / 部分云上 daemon 探测 # systemd-resolved 上游会失败,导致 embedded DNS 127.0.0.11 forward 出去也跪)。 # 默公共 DNS,国内访问通畅;留空(`dns: []`)走 docker 默认探测。 dns: - "8.8.8.8" # Google - "114.114.114.114" # 国内通用