Bot 显示离线
症状:智能体安装干净,但 Discord 里 bot 图标显示离线 / Telegram 不回复 / Slack 用户显示不活跃。
修复:
sento restart
等 30 秒让频道握手。如果还离线,sento logs -n 50 找认证错误。
常见根本原因:
- Bot token 过期或被撤销(Discord token 不活动 90 天会重置)
- 安装后必要的 intents / scope 被去掉了(看每个频道的文档看需要的权限)
- 网络抖动 —— Guardian 通常一分钟内能处理
"Node 20+ required"
症状:npx sentoagent init 以 Node 版本错误失败。
修复(Ubuntu/Debian):
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs
node -v
macOS 上:brew install node@20 然后 brew link --force node@20。
安装时的权限错误
症状:写 /usr/lib/node_modules 或类似路径时 EACCES。
修复:你在用 root 跑,或者没有用户级 npm prefix。创建一个普通用户,以那个用户跑安装:
adduser sento
su - sento
npx sentoagent init
Sentō 的安装器设置了 NPM_CONFIG_PREFIX=~/.npm-global 让用户级安装工作;它在 Docker 或 Linux 上不会以 root 跑。
Playwright 崩 / 智能体 OOM
症状:让智能体浏览网页时它冻结或崩。
修复:你的主机内存不到 2 GB。把 VPS 调到至少 2 GB。Chromium 需要空间喘息。
"Message Content Intent" 错误(Discord)
症状:智能体日志显示 Used disallowed intents,或者智能体静默忽略消息。
修复:打开 Discord Developer Portal → 你的 app → Bot → Privileged Gateway Intents → 启用 Message Content Intent 和 Server Members Intent。重启智能体。
智能体不响应消息
症状:bot 在线,但不回复。
按顺序检查:
- 频道权限 —— bot 角色需要在那个具体频道里有 View Channel + Send Messages。
- @ 触发 —— 在群里,
access.json里requireMention: true意味着 bot 只在被 @ 时响应。 - DM 策略 —— 如果
dmPolicy: "disabled"或"allowlist"+ 空allowFrom,什么都过不去。检查~/.claude/channels/<channel>/access.json。 - 速率限制 —— 如果你刷 bot 刷得太多,速率限制器可能暂时在丢消息。
Guardian 不重启一个卡住的智能体
症状:智能体卡住,Guardian 没反应。
检查:
- Guardian 在跑吗?
pgrep -fa guardian.js应该返回至少一个匹配。 - 重启计数到最大了吗?检查
/tmp/sento-guardian-<agent>.json。如果restarts.length >= 3,Guardian 在 30 分钟窗口过去之前已经放弃了。
修复:删状态文件,重启两个:
rm /tmp/sento-guardian-<agent>.json
sento restart
智能体的记忆不持久
症状:你让智能体记住一些事,但下一次会话它不知道。
检查:
- ClawMem 安装了吗?
ls ~/workspace/memory/应该至少有MEMORY.md。 - 智能体真的写了吗?看
~/workspace/memory/里最新的文件,cat一下。 - 你在依赖 Gemini embeddings 但没 API key 吗?如果是,语义搜索不工作但关键词搜索还行。
iMessage:SQLITE_CANTOPEN
症状:iMessage 智能体读不了消息,日志显示 SQLITE_CANTOPEN。
修复:你启动 Sentō 的终端没有完全磁盘访问权限。给它:
系统设置 → 隐私与安全性 → 完全磁盘访问 → 加上 Terminal(或 iTerm / Warp / Ghostty)。重启终端。
还是卡住?
去 GitHub 开一个 issue,带上:
- 你的 OS / 主机类型(VPS 提供商、macOS 版本、Docker 镜像)
sento doctor的输出sento logs的最后 40 行
真人会读每一个。