lesson: Pixel 6 OpenAWS 无法通过 SSH 启动，watchdog 必须在 Termux 本地运行（SSH启动会死）

category: deployment


lesson: Pixel 6 构建 OpenAWS 内存不足（JavaScript heap out of memory），8GB 不够用

category: hardware


lesson: 执行 openclaw gateway restart 会重启自己导致会话中断

category: operation


lesson: CLIProxyAPI Claude 模型频繁触发限流会导致冷却时间累积（7分钟→27分钟）

category: api


lesson: NodeSeek 签到用 session cookie（不是 _nk），Chrome 重启后 CDP WebSocket URL 会变

category: automation


lesson: fuclaude 只支持 Claude session key，不支持 ChatGPT

category: tool


lesson: OpenClaw provider 列表从内置定义生成，models.mode=replace 只控制模型合并不控制显示

category: config


lesson: OpenClaw 重启会覆盖手动配置，需用 jq 生成完整配置后替换


lesson: CLIProxyAPI Claude Pro 速率限制严格，频繁调用触发长时间冷却（4-7分钟）


lesson: 排查 OpenClaw/cliproxy 报错时，要区分『新配置默认模型』和『旧会话残留模型』；切模型不一定立刻覆盖活跃会话。


lesson: cliproxy/OpenAI 兼容 baseUrl 常见坑：不要多写 /v1（会变成 /v1/v1/chat/completions），也不要少写成直接 /chat/completions。


lesson: 引入新的记忆治理方法时，优先遵守：旧记忆不丢、主记忆脱水、经验单独沉淀、重要修改先备份、渐进优化不硬重构。

category: memory


lesson: 直接用 Debian 官方 cloud 镜像远程 DD 刷机会因默认仅允许 SSH key 登录而无法密码登陆；远程重装应优先准备带密码/预置用户的方案。


lesson: OpenClaw 2026.3.7 起 Telegram 配置不再支持 channels.telegram.bots，需改用 channels.telegram.botToken；providers 也不再走旧字段。


lesson: Kwrt/OpenWrt 定制版修软件源时，不能直接套标准 OpenWrt 镜像路径；修好后常需清 /tmp/luci-* 才能让面板状态刷新。


lesson: CLIProxyAPI OAuth 认证每次启动生成新的 state，必须用最新 URL；State mismatch 日志 = 用了旧 URL

category: authentication


lesson: CLIProxyAPI Docker 容器需要 config.yaml 挂载到 /CLIProxyAPI/config.yaml，否则启动失败

category: docker


lesson: 百度千帆 qianfan-code-latest 模型不支持 function calling，群聊触发工具调用会报错


lesson: 用户级 systemd 服务（systemctl --user）需要 enable-linger 才能在没有活跃会话时持续运行，否则 SSH 断开后服务会被杀

category: systemd


lesson: 火山方舟 Coding Plan 的 Base URL 是 https://ark.cn-beijing.volces.com/api/coding/v3，不是 /api/v3（后者会产生额外费用）


lesson: DPNet 土耳其网络到 QQ API 延迟 216ms 会限流，已迁移 QQ Bot 到 Bero（香港 52ms 正常）

category: network


type: ops-lesson

topic: N100 DD 重装

lesson: 直接刷 Debian cloud 官方镜像会默认只开 SSH key 登录、没有预设密码；远程无带外管理时不要直接上 cloud 镜像。


topic: CLIProxyAPI 认证文件持久化

lesson: Docker 场景下认证文件必须落在宿主机挂载目录内，否则容器重启后会被覆盖丢失。


topic: OpenClaw /models 精简

lesson: /models 展示是否精简，先看 models.providers 与 models.mode=replace；agents.defaults.models 主要用于 alias/展示收口，不是决定 provider 组数量的第一开关。


tag: frp

lesson: macOS 上 frpc 若被重复启动，会持续报 proxy already exists；重启/重登后服务端旧会话释放，54545/18790 映射即可恢复。


tag: snell

lesson: Snell DNS 超时不一定是 resolv.conf 缺 use-vc；如果服务器本身 ping 8.8.8.8 正常但 Snell 日志持续 DNS error，问题在 Snell 侧 DNS 配置或上游稳定性。


tag: cron

lesson: cron 表达式 `0 3 */3 * *` 是每月按日期 1/4/7/10... 执行，不是『每 72 小时』也不是『每天』；需要精确间隔应改用其他方案。


tag: cloudflare

lesson: Cloudflare 保护页面用 puppeteer/playwright stealth 也难以绕过；puppeteer 页面标题 'Just a moment...'、playwright 显示 '请稍候…' 都表明被拦截。自动化采集应避开 Cloudflare 保护的站点。


tag: aff-monitor

lesson: WHMCS 产品页按钮 id 格式为 `product{pid}-order-button`，可从中提取 pid 拼接 aff 链接；但前提是产品页结构标准，不同 WHMCS 主题可能有差异。


tag: telegram

lesson: TG 推送 chat not found 通常是 chat_id 填错；测试环境假数据 -1001234567890 需换成真实频道 ID。


tag: wecom

lesson: 企业微信群聊机器人（长连接模式）只推送 @消息，无法实现关键词触发；这是企业微信 API 限制，不是插件问题。


tag: backup

lesson: vps-snapshot 远程同步可能因目录结构嵌套导致备份不在预期位置；检查时需用 ls -laR 看完整目录树。


tag: template

lesson: 用 shell heredoc 直接写 EJS/HTML 模板容易被转义字符破坏；复杂模板应先本地写文件再上传/覆盖。


lesson: 排查 Telegram 引用回复失效时，先检查 gateway token mismatch 与 18790 端口双实例冲突；replyToMode 改对了也可能因网关实例冲突而无法生效。


lesson: 复盘/优化 agent 人格时，SOUL.md 负责角色与行为风格，USER.md 负责用户偏好与行动边界，HEARTBEAT.md 负责静默维护与打扰阈值；三者分层比把规则全塞进一个文件更稳。


tag: security

lesson: 安装第三方 skill 前即使功能合理，也要检查是否夹带作者私有设备/token 示例；发布包内出现真实 IP、token、账号痕迹时，应直接视为高风险样本。